学生成绩管理系统课程设计报告Word文件下载.docx

上传人:b****1 文档编号:5219580 上传时间:2023-05-04 格式:DOCX 页数:19 大小:158.37KB
下载 相关 举报
学生成绩管理系统课程设计报告Word文件下载.docx_第1页
第1页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第2页
第2页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第3页
第3页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第4页
第4页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第5页
第5页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第6页
第6页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第7页
第7页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第8页
第8页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第9页
第9页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第10页
第10页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第11页
第11页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第12页
第12页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第13页
第13页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第14页
第14页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第15页
第15页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第16页
第16页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第17页
第17页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第18页
第18页 / 共19页
学生成绩管理系统课程设计报告Word文件下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统课程设计报告Word文件下载.docx

《学生成绩管理系统课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统课程设计报告Word文件下载.docx

张明明 

01 

67 

78 

82

李成友 

02 

91 

88

张辉灿 

03 

68 

82 

56

王露 

04 

56 

45 

77

陈东明 

05 

38 

47

…. 

.. 

学生成绩信息文件2(2.txt),内容如下:

陈果 

31 

57 

李华明 

32 

88 

90 

68

张明东 

33 

48 

42 

李明国 

34 

50 

87

陈道亮 

35 

47 

58 

二、基本要求

试编写一管理系统,要求如下:

1)实现对两个文件数据进行合并,生成新文件3.txt

2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt

3)对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)

4)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)

5)要求使用结构体和数组实现上述要求.

三、设计目的

1)培养学生综合程序设计的能力,训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力。

2)巩固、深化学生的理论知识,提高编程水平,培养严谨的科学态度和良好的学习作风。

为今后学习其他计算机课程打下基础。

3)将书本上的理论知识和工作、生产实际有机地结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高编程序能力和创新意识。

四、概要设计

五、详细设计

1)主要数据结构:

structstudent

{

charname[6];

intnum;

longintchi;

longintmath;

longinteng;

longintsum;

};

2)模块功能:

合并模板、提取模板、排序模板、查询模板、模块功能

1、生成文件3:

实现对两个文件数据进行合并,生成新文件3.txt;

2、查看文件3:

显示文件3里的所有信息;

3、生成文件补考文件4:

抽取出三科成绩中有补考的学生并保存在一个新文件4.txt;

4、查看文件4:

显示文件4里的所有信息;

5、排序后的文件3:

对合并后的文件3.txt中的数据按总分降序排序(冒泡、插入);

6、查找学生信息:

按姓名查找学生的信息并输出结果(顺序、折半);

3)调用关系

主函数可调用其它函数

六、源程序

#include<

stdio.h>

stdlib.h>

structstudentstu1[100],stu2[100],stu3[100],stu4[100],t,tmp;

FILE*fp;

inti,j;

voidcreat1()//对1.txt的成绩进行读取

{inti;

for(i=1;

i<

=5;

i++)

fscanf(fp,"

%s%d%ld%ld%ld"

stu1[i].name,&

stu1[i].num,&

stu1[i].chi,&

stu1[i].math,&

stu1[i].eng);

printf("

\n1.txt中学生的成绩如下:

\n"

);

姓名学号语文数学英语\n"

i++)

printf("

%s%d%ld%ld%ld\n"

stu1[i].name,stu1[i].num,stu1[i].chi,stu1[i].math,stu1[i].eng);

}

voidcreat2()//对2.txt的成绩进行读取

for(j=1;

j<

j++)

stu2[j].name,&

stu2[j].num,&

stu2[j].chi,&

stu2[j].math,&

stu2[j].eng);

\n2.txt中学生的成绩如下:

stu2[j].name,stu2[j].num,stu2[j].chi,stu2[j].math,stu2[j].eng);

voidhb()//把合并后的成绩赋值到新的结构体数组stu3[a]中

inti;

{

stu3[i]=stu1[i];

}

for(i=6;

=6+j;

stu3[i]=stu2[i-5];

\n3.txt中所有学生的成绩名单:

姓名学号语文数学英语总分\n"

=10;

{stu3[i].sum=stu3[i].math+stu3[i].eng+stu3[i].chi;

%s%d%ld%ld%ld%ld\n"

stu3[i].name,stu3[i].num,stu3[i].chi,stu3[i].math,stu3[i].eng,stu3[i].sum);

fprintf(fp,"

intextract()//把成绩中需要补考的学生成绩保存在数组stu4[j]中

{intj;

j=1;

{

if(stu3[i].math<

60||stu3[i].eng<

60||stu3[i].chi<

60)

{

stu4[j]=stu3[i];

j++;

}

\n补考学生成绩名单如下:

j;

%5s%3d%4d%4d%4\n"

stu4[i].name,stu4[i].num,stu4[i].chi,stu4[i].math,stu4[i].eng);

%5s%3d%4d%4d%4d\n"

voidsort1()//冒泡排序

for(j=i+1;

{

if(stu3[j].sum>

stu3[i].sum)

{t=stu3[j];

stu3[j]=stu3[i];

stu3[i]=t;

}

\n按总分由高到低排序(冒泡)后的成绩如下:

voidsort2()//插入排序

for(i=2;

if(stu3[i].sum>

stu3[i-1].sum)

tmp=stu3[i];

stu3[i]=stu3[i-1];

for(j=i-1;

j>

0&

&

tmp.sum>

stu3[j].sum;

j--)

stu3[j+1]=stu3[j];

stu3[j+1]=tmp;

\n按总分由高到低排序(插入)后的成绩如下:

voidsearch1()//名字查找方式(顺序查找)

{

charfname[6];

\n请输入要查找学生的姓名:

"

scanf("

%s"

&

fname);

if(!

strcmp(stu3[i].name,fname))

\n你所查找(名字顺序)的学生成绩如下:

printf("

voidsearch2()//名字查找方式(折半查找)

intmid,low=1;

inthigh=10;

\n请输入要查找的学生的姓名:

while(low<

=high)

mid=(low+high)/2;

if(strcmp(stu3[mid].name,fname)==0)break;

elseif(strcmp(fname,stu3[mid].name)>

0)high=mid;

elselow=mid;

\n你所查找(名字折半)的学生成绩如下:

stu3[mid].name,stu3[mid].num,stu3[mid].chi,stu3[mid].math,stu3[mid].eng,stu3[mid].sum);

voidmain()

{chardigit;

printf("

***************************系统功能菜单*******************************\n"

---------------------------------------------------------\n"

************************************************************\n"

*1.读取3.txt的成绩(合并)**2.读取4.txt的成绩(补考)*\n"

*3.按总分排序(冒泡)**4.按总分排序(插入)*\n"

*5.按名字查找(顺序)**6.按名字查找(折半)*\n"

*7.退出系统*\n"

---------------------------------------------------------\n"

请选择菜单编号:

scanf("

%c"

digit);

switch(digit)

case'

1'

:

fp=fopen("

d:

\\1.txt"

"

r+"

creat1();

fclose(fp);

fp=fopen("

\\2.txt"

creat2();

\\3.txt"

w"

hb();

fclose(fp);

break;

2'

\\4.txt"

extract();

break;

3'

sort1();

4'

sort2();

5'

search1();

6'

search2();

case'

7'

break;

七、测试结果

1)合并:

2)排序:

冒泡排序:

插入排序:

3)抽出补考学生:

4)按姓名查找:

顺序查找:

折半查找:

八、心得体会

本系统设计是为了合并两个信息表,然后对信息表进行排序,从信息中查询信息。

由于C语言学的不扎实,编程时遇到了很多困难,开始调试的时候经常出现很多的错误,经常容易烦躁,但是经过一段的时间的锻炼使得我能够一步一步的去解决问题。

在程序设计方面,逐渐感觉到模块化设计的重要性,应该分析出功能模块,然后对其细节中的共性和特性作分析。

这次的设计,让我大大地感觉到,成功的程序设计是要建立在熟悉语言的基础之上的。

每一次程序设计能大大地增加对语言的熟悉和感知,能使理论与实际应用相结合,提高了自己组织数据及编写程序的能力。

培养了基本的、良好的程序设计技能以及合作能力。

在上机操作的过程中,培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际和实践编程的能力。

 总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。

九、参考文献:

1.数据结构(C语言版)严蔚敏,吴伟明清华大学出版社

2.C程序设计(第三版)谭浩强清华大学出版社

3.XX搜索

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2