04033018计算机成绩统计系统Word文档下载推荐.docx
- 文档编号:15994166
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:15
- 大小:38.53KB
04033018计算机成绩统计系统Word文档下载推荐.docx
《04033018计算机成绩统计系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《04033018计算机成绩统计系统Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
总成绩=考试成绩*70%+平时成绩30%)。
(3)采用选择法对总成绩排序并打印。
(4)修改某个学生的平时成绩或考试成绩。
三、课程设计要求
1.程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“学生信息录入”、“总成绩统计”、“总成绩排序”、“成绩更改”、“退出”5项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、说明书成绩
六、教师评语
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段6
四、课设总结12
五、参考文献12
六、源程序13
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,它们的功能分别是:
添加学生数据函数,总成绩查询函数,总成绩排序函数,更改学生数据函数。
这四个函数的实现严格按照题目的要求。
1、添加学生数据函数主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能;
2、总成绩排序函数按照题目的具体要求实现的是总成绩的递减排序以及名次显示,其中总成绩相同者名次相同;
3、总成绩查询函数对全体同学的总成绩进行查询;
4、更改数据函数可以实现对学生记录中除学号以外的信息进行修改;
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录都包含学号、姓名,以及平时成绩和考试成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入D盘的student.txt文件中,其它函数每次对学生记录的访问,其数据来源都是student.txt文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
二、程序流程图
1、程序总体结构图
.
图1程序总体结构图
2、具体功能框图
(1)添加学生数据函数add
图2添加学生数据函数
(2)按总分排序函数sort
图3总分排序函数
(3)更改学生信息函数change
图4更改学生数据
三、核心技术的实现说明及相应程序段
本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。
在这些函数当中,添加数据函数、更改数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。
1、添加数据函数
添加数据分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;
其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以if((fp=fopen("
d:
\\student.txt"
"
a"
))!
=NULL)/*新建学生文件并添加信息*/
{
printf("
请输入要添加的学生数量,按回车键确认:
"
);
scanf("
%d"
&
n);
for(i=1;
i<
=n;
i++)
{printf("
\n请输入第%d个学生的学号、姓名,用空格分开,并按回车键确认:
\n"
i);
%s%s"
stu.num,stu.name);
\n请输入第%d个学生的平时成绩、考试成绩,用空格分开,并按回车键确认:
%f%f"
stu.usual,&
stu.exam);
fprintf(fp,"
\n%s%s%f%f"
stu.num,stu.name,stu.usual,stu.exam);
/*学生信息写入文件*/
}
fclose(fp);
}
4、修改成绩change():
这个程序段主要应用还是for()循环和if()条件的嵌套来确定要修改的人的及其所对应的成绩。
通过赋值,替换学生成绩。
函数段如下:
voidchange()
{structstudentstu[N],temp;
intn,i;
FILE*fp;
\n请输入要更改信息的学生学号,按回车键确认:
%s"
temp.num);
reads(stu,&
for(i=0;
n;
if(strcmp(temp.num,stu[i].num)==0)
break;
if(i>
=n)
{printf("
无此学生信息!
return;
\n请输入更改后学生的姓名,平时成绩和考试成绩,按回车键确认:
%s%f%f"
temp.name,&
temp.usual,&
temp.exam);
stu[i]=temp;
if((fp=fopen("
w"
))==NULL)/*更新文件*/
打开文件失败!
fprintf(fp,"
\n%s%s%f%f%f"
stu[i].num,stu[i].name,stu[i].usual,stu[i].exam);
修改学生信息成功!
}3、总分排序函数
对于总分的排序采用的排序算法是选择法排序,其中总分的求得是在排序的过程中实现的,这部分程序仍然调用了reads函数,整个排序过程在结构体数组stu中实现,由于排序算法涉及到两个数组元素的信息交换,因此还需要定义一个中间变量来协助。
排序函数使学生数据的排列顺序发生了变化,因此也需要队员文件进行更新,此外,对于学生排序后名次的确定,仅在结果输出时予以显示,并未将名次信息写入源文件。
具体的程序段如下:
voidsort()/*按照学生总成绩由高到低排序*/
{FILE*fp;
structstudentstu[20],a;
intn,i,j;
for(j=n-1;
j>
=0;
j--)/*选择法排序*/
for(i=j-1;
i>
i--)
if(stu[j].usual*0.3+stu[j].exam*0.7>
stu[i].usual*0.3+stu[i].exam*0.7)
{
a=stu[j];
stu[j]=stu[i];
stu[i]=a;
}
printf("
\n名次学号姓名平时成绩考试成绩总成绩:
if((fp=fopen("
j=1;
{fprintf(fp,"
stu[i].num,stu[i].name,stu[i].usual,stu[i].exam);
if(stu[i].usual*0.3+stu[i].exam*0.7==stu[i+1].usual*0.3+stu[i+1].exam*0.7)
\n%3d%5s%5s%8.2f%8.2f%9.2f\n"
j,stu[i].num,stu[i].name,stu[i].usual,stu[i].exam,stu[i].usual*0.3+stu[i].exam*0.7);
else
j++,stu[i].num,stu[i].name,stu[i].usual,stu[i].exam,stu[i].usual*0.3+stu[i].exam*0.7);
getch();
四、课设总结
通过这次课程设计,使我又进一步熟悉和掌握了通过用C语言软件编写一个实际应用的程序,对一些文件打开等细节的程序函数进行了复习和熟悉,顺便也了解了一些WORD中没有了解的例如目录搜索等方法,而且我深深的体会到编程是一个需要谨慎与严密精神的工作,同时我也感觉到做一名优秀程序员的不易。
在编程序过程中,我积极的和同学讨论,请教老师一些困难的问题和难点,最终编好和完善了程序。
使程序基本能完成编好和完善了程序,而且用户界面也比较友好,用了全中文的形式,使界面更容易被别人接受,在运行过程中输出内容明了,循环顺畅,退出方便,很好的完成了任务。
五、参考文献
1谭浩强.C程序设计.北京:
清华大学出版社,2005
2刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,2006
六、源程序
#include<
stdio.h>
stdlib.h>
conio.h>
string.h>
#defineN20
structstudent
{charnum[20];
charname[10];
floatusual;
floatexam;
};
voidmenu();
voidreads(structstudentstu[N],int*n);
voidadd();
voidtotal();
voidsort();
voidchange();
voidmain()
{
intn;
while
(1)
{
menu();
\n请输入您要选择的操作序号,按回车键确认:
switch(n)
{case1:
add();
break;
case2:
total();
case3:
change();
case4:
sort();
case5:
exit(0);
default:
输入错误,请输入列表中存在的序号!
\n"
voidmenu()
{printf("
**************************计算机成绩统计系统************************"
\n1添加学生数据"
\n2总成绩统计数据"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04033018 计算机 成绩 统计 系统