学生成绩管理系统.docx
- 文档编号:16529540
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:37
- 大小:390.90KB
学生成绩管理系统.docx
《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(37页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统
本模板是课程设计报告模板,请各位同学认真阅读以下要求:
1.本页为设计报告要求页,不必打印。
(制作好报告后输出时将本页删除)
2.本模板的各种字体及页面设置请同学们不要改动。
3.本设计报告左侧装订。
在虚线处装订。
4.在课程设计封皮一页上用已经设置好的宋体四号来填写各个项目。
5.在课程设计评定表一页上用宋体小四填写班级、学号、姓名、项目组、项目组长、项目组组员、本人工作简介。
组长评语一栏应由组长来给出。
6.在课程设计任务书一页的开头应按照给定的设置(黑体三号)填写好你的班级,在第五项时间安排里面应用宋体五号加粗来填写好日期范围。
7.从程序基本框架结构图开始到设计报告的最后一页都要求有页眉,内容为你的课程设计题目,宋体小五居中。
页脚中的页码已经设置好,同学们不必改动。
8.在程序基本框架结构图采用WORD中的自选图形绘制程序基本框架结构图,也就是程序流程图。
9.在程序设计说明书中应该描述程序的设计思想,重点描述自己做的那部分的设计思想。
字体用宋体小四。
10.在代码清单中打印程序已经调试好的可运行的程序代码。
要求字体为宋体五号。
(页数可增加)
11.报告的最后一部分是设计总结,应在程序代码之后另起一页,主要写通过一周课程设计你自己的体会,包括你学到了什么,哪里遇到了困难解决的办法以及今后的目标。
字体用宋体小四。
12.报告的各个部分都可以不为规定的一页,自己可增加页数,但要保证开始另外一项要另起一页。
13.服务课程名称:
本科添写:
C语言;/专科添写:
计算机语言(c)
14.报告完成后,要更新目录。
方法为:
单击目录左侧,选定整个目录后,按F9键更新目录。
┊┊
课程设计
服务课程名称:
C语言
系:
自动控制工程
专业:
生产过程自动化
班级:
生自专112
学号:
2011336205姓名:
张一鸣
指导教师:
马玲姚大鹏
课程设计周次:
第15周
起始日期:
2012.6.4至2012.6.8
目录
C语言课程设计成绩评定表1
C语言课程设计任务书2
程序设计思路3
程序基本框架结构图5
系统运行界面截图6
源代码清单10
课程设计总结29
┊┊
C语言课程设计成绩评定表
班级
生自专112
学号
05
姓名
张一鸣
项目组
第三组
项目组长
叶佳兴
项目组组员
张诗瑶,张一鸣,赵永锋,崔明阳,蔡瑞杰
本人工作简介:
我们组的课程设计是学生成绩管理系统,我设计研究的是其中的输入数据部分,以及和组员共同处理其中出现的各种影响程序正常运行的问题
组长评语:
:
该同学在实训期间,认真完成组长所安排的任务,每天按时按量完成任务,而且对组内其它成员和同学的疑问不遗余力,而且对于自己不会的疑问主动请教,大量查阅资料和网络,帮助组长完成最后的程序组装和调试,值得嘉奖!
成绩评定标准
A
B
C
D
E
理论基础
很好
好
比较好
一般
不好
报告完成情况
很好
好
比较好
一般
不好
纪律表现
很好
好
比较好
一般
不好
程序创意
很好
好
比较好
一般
不好
所选模块完成情况
很好
好
一般
较差
不好
所选算法难易程度
复杂
比较复杂
一般
简单
很简单
程序可操作性
很好
好
一般
较差
不好
答辩表现
很好
好
一般
较差
不好
最后成绩
优秀
A>=5
B<=3
C<=0
D=0
E=0
良好
A>=3
B<=4
C<=1
D=0
E=0
中等
A>=1
B>=2
C>=4
D<=1
E=0
及格
A=0
B=0
C<=4
D>=4
不及格
A=0
B=0
C=0
D<=4
E>=4
负责指导教师:
(签名)
指导教师:
(签名)
C语言课程设计任务书
一、设计目的
通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求
1、认真查阅参考书、资料2、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课设报告装订内容及顺序
1、课程设计封皮2、目录
3、课程设计成绩评定表4、课程设计任务书
5、程序基本框架图6、程序设计说明书
7、源代码清单8、课设总结与心得
四、设计题目
__学生成绩管理系__________________________
五、时间安排(一周:
从6月4日到6月8日)
1、查阅资料及程序设计(1天)2、程序编制及调试(3天)
3、成绩评定(0.5天)3、打印报告(0.5天)
六、参考文献
1、《C语言程序设计》李淑华/李贞编大连理工大学出版社
2、《C语言程序设计》孙连科/姚大鹏编辽海出版社
3、《C++时尚编程百例》网冠科技编.机械工业出版社
4、《TURBOC实用大全》徐金梧等编.机械工业出版社
程序设计思路
本系统为简易学生成绩管理系统,简单的模仿了当我们平时考试的成绩情况。
本系统总体上分为六个大部分。
即输入、显示、查询、追加、排序、删除数据。
这六个系统基本山涵盖了学生成绩管理系统的主要使用功能。
首先在在录入系统中运用到文件的打开与关闭以及循环的相关内容,并将所输入的信息写入文件中。
在浏览系统中通过对文件的打开、只读、关闭操作来将录入的成绩分类处理显示出来。
对重新加入的学生成绩进行追加管理,并在最后将相关数据重新录入文件中。
在菜单系统中记住函数,通过switch函数实现多分支选择语句对各系统的调用和判断。
菜单系统的制作制作使用到了文件与数组的有关内容。
通过对文件内容的输入、显示、追加读写添删来实现对相关数据的修改以及具体功能的实现。
我负责编写的内容是成绩输入系统部分。
本系统分为两部分,分别是按姓名查询和按学号查询。
两种查询方案的程序设计首先需要运用到从主函数调用到该子函数glance1或glance2,在该子函数中定义一个指向文件的指针。
对文件进行打开判断是否为空、再读取所要的查取方式和搜索的成绩数据,判断是否查找到需要信息,输出相应结果,最后关闭文件。
该函数中利用指针指向文件使程序简单而合乎逻辑,数组的运用使查找信息更方便、简明地表现出来,并且在其中使用到if条件语句来区分输入信息是否得到相应。
以上即为本应用程序简要的设计思路,以及对设计思路如何进行实际功能实现的概略说明。
此次应用的诸多方法受所学知识的有限都是比较简单原始的,随着我们知识的增加和经验的积累,相信以后能设计出更为完善的应用程序。
程序基本框架结构图
系统运行界面截图
源代码清单
#include
#include
#include
#defineSTUstructstudent
#defineSsizeof(structstudent)
voidf1();
voidf2();
voidf3();
voidf4();
voidf5();
voidf6();
intf7();
voidf9();
voidf10();
voidf11();
voidf13();
voidf14();
voidf15();
voidf17();
voidf18();
structstudent
{
longnum;
charname[20];
floatenglish;
floatmath;
floattotal;
floatave;
STU*next;
};
voidmain()
{start:
inta,i;
a=f7();
switch(a)
{
case1:
f1();break;
case2:
f2();break;
case3:
f3();system("cls");break;
case4:
f4();system("cls");break;
case5:
f5();system("cls");break;
case6:
f6();system("cls");break;
case0:
return;
}
printf("是否继续查询主函数,是输入1,否输入0\n");
scanf("%d",&i);
system("cls");
if(i==1)
gotostart;
printf("退出了主函数");
return;
}
intf7()
{
inti;
printf("\n\t**************欢迎使用学生成绩管理系统***************\n");
printf("\n\t\t\t一.录入学生信息(请输入1)\n\t\t\t二.显示学生信息(请输入2)\n\t\t\t三.查询学生信息(请输入3)\n\t\t\t四.追加学生信息(请输入4)\n\t\t\t五.删除学生信息(请输入5)\n\t\t\t六.学生排序信息(请输入6)\n\t\t\t七.退出(请输入0)\n");
printf("\n\t***********欢迎使用学生成绩管理系统************\t\n");
printf("\t\t\t\t选择功能选项:
");
scanf("%d",&i);
while(i<0||i>6)
{
printf("你的输入有误,请查证后在输入一个在0--6之间的数:
");
getchar();
scanf("%d",&i);
}system("cls");
returni;
}
voidf1()
{
inti,n;
STU*p;
FILE*fp;
if((fp=fopen("d:
\\file1","wb"))==NULL)
{
printf("cannotopenfile1!
\n");exit(0);
}
printf("\n\t请输入人数:
");
scanf("%d",&n);
for(i=0;i { p=(STU*)malloc(S); printf("\tnum(请输入学生学号): "); scanf("%ld",&p->num); printf("\tnum(请输入姓名): "); scanf("%s",p->name); printf("\tnum(请输入高数成绩): "); scanf("%f",&p->math); while(p->math<0||p->math>100) { printf("输入有误,请重新输入一个数,数据应在0--100之间: "); getchar(); scanf("%.2f",&p->math); } printf("\tnum(请输入英语成绩): "); scanf("%f",&p->english); while(p->english<0||p->english>100) { printf("输入有误,请重新输入一个数,数据应在0--100之间: "); getchar(); scanf("%f",&p->english); } p->total=(p->english+p->math); p->ave=p->total/2; fwrite(p,S,1,fp); printf("请输入下一位同学信息\n"); }system("cls"); fclose(fp); } voidf2() { intn=0; STU*head,*p1,*p2; FILE*fp; fp=fopen("d: \\file1","rb"); if(fp==NULL) {printf("cannotopenfile1! "); return; } p1=p2=(STU*)malloc(S); head=NULL; while(fread(p1,S,1,fp)! =0) {n++; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(STU*)malloc(S); } free(p1); p2->next=NULL; if(head==NULL) {printf("listnull! \n");return;} p1=head; printf("\t学号\t\t姓名\t\t英语\t高数\t总分\t平均成绩\n"); while(p1! =NULL) { printf("\t%ld\t\t%s\t\t%.2f\t%.2f\t%.2f\t%.2f\n",p1->num,p1->name,p1->english,p1->math,p1->total,p1->ave); p1=p1->next; } fclose(fp); } voidf3() {start1: inti,k; printf("\t*******你现在使用的是学生信息查询系统*******\n"); printf("\t\t\t一.按学号查询(请输入1)\n\t\t\t二.按姓名查询(请输入2)\n\t\t\t三.按总分查询(请输入3)\n\t\t\t四.推出(请输入0)\n"); printf("\t选择功能选项: "); scanf("%d",&i); while(i<0||i>3) { printf("你的输入有误,请查证后在输入一个在0--3之间的数: "); getchar(); scanf("%d",&i); } switch(i) {case1: f9();system("cls");break; case2: f10();system("cls");break; case3: f11();system("cls");break; case0: return; } printf("是否继续按其他方式查询,是输入1,否输入0\n"); scanf("%d",&k); system("cls"); if(k==1) gotostart1; system("cls"); return; } voidf9() { longi; intn=0,k=0; charc; STU*head,*p1,*p2; FILE*fp; fp=fopen("d: \\file1","rb"); if(fp==NULL) {printf("cannotopenfile1! "); return; } p1=p2=(STU*)malloc(S); head=NULL; while(fread(p1,S,1,fp)! =0) {n++; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(STU*)malloc(S); } free(p1); p2->next=NULL; start2: printf("\n\n\n请输入要查询的学生学号: "); scanf("%ld",&i); if(head! =NULL) for(p1=head;p1! =NULL;p1=p1->next) { if(p1->num==i) {printf("\t学号\t姓名\t英语\t高数\t总分\t平均成绩\n\n"); printf("\t%ld\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",p1->num,p1->name,p1->english,p1->math,p1->total,p1->ave); k=1; } } if(k==0) printf("\n\n查无此人\n"); printf("是否要继续查询,是请输入Y(y),否请输入N(n)"); getchar(); scanf("%c",&c); system("cls"); if(c=='y'||c=='Y') {k=0; gotostart2;} fclose(fp); return; } voidf10() { chari[20],c; intn=0,k=0; STU*head,*p1,*p2; FILE*fp; fp=fopen("d: \\file1","rb"); if(fp==NULL) {printf("cannotopenfile1! "); return; } p1=p2=(STU*)malloc(S); head=NULL; while(fread(p1,S,1,fp)! =0) {n++; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(STU*)malloc(S); } p2->next=NULL; start3: printf("\n\n\n请输入要查询的学生姓名: "); scanf("%s",i); if(head! =NULL) for(p1=head;p1! =NULL;p1=p1->next) { if(strcmp((p1->name),i)==0) {printf("\t学号\t姓名\t英语\t高数\t总分\t平均成绩\n\n"); printf("\t%ld\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",p1->num,p1->name,p1->english,p1->math,p1->total,p1->ave); k=1; } } if(k==0) printf("\n\n查无此人\n"); printf("是否要继续查询,是请输入Y(y),否请输入N(n)"); getchar(); scanf("%c",&c); system("cls"); if(c=='y'||c=='Y') {k=0; gotostart3;} fclose(fp); return; } voidf11() { floati; intn=0,k=0; charc; STU*head,*p1,*p2; FILE*fp; fp=fopen("d: \\file1","rb"); if(fp==NULL) {printf("cannotopenfile1! "); return; } p1=p2=(STU*)malloc(S); head=NULL; while(fread(p1,S,1,fp)! =0) {n++; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(STU*)malloc(S); } p2->next=NULL; start4: printf("\n\n\n请输入要查询的学生总分: "); scanf("%f",&i); for(p1=head;p1! =NULL;p1=p1->next) { if(p1->total==i) {printf("\t学号\t姓名\t英语\t高数\t总分\t平均成绩\n\n"); printf("\t%ld\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",p1->num,p1->name,p1->english,p1->math,p1->total,p1->ave); k=1; } } if(k==0) printf("\n\n查无此人\n"); printf("是否要继续查询,是请输入Y(y),否请输入N(n)"); getchar(); scanf("%c",&c); system("cls"); if(c=='y'||c=='Y') {k=0; gotostart4;} fclose(fp); return; } voidf4() {start8: intn=0,k; STU*head,*p1,*p2,*p; FILE*fp; p=(STU*)malloc(S); printf("请输入要追加的学生的学号: "); scanf("%ld",&p->num); printf("请输入要追加的学生的姓名: "); scanf("%s",p->name); printf("请输入要追加的学生的英语成绩: "); scanf("%f",&p->english); printf("请输入要追加的学生的高数成绩: "); scanf("%f",&p->math); p->total=(p->english+p->math); p->ave=p->total/2; fp=fopen("d: \\file1","rb"); if(fp==NULL) { printf("cannotopenfile1! "); return; } p1=p2=(STU*)malloc(S); head=NULL; while(fread(p1,S,1,fp)! =0) { n++; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(STU*)malloc(S); } fclose(fp); p2->next=p; p->next=NULL; if((fp=fopen("d: \\file1","wb"))==NULL) {printf("cannotopenfile1! ");exit(0);} p1=head; while(p1! =NULL) {fwrite(p1,S,1,fp); p1=p1->next; } printf("%ld追加成功\n",p->num); fclose(fp); printf("是否继续追加,是输入1,否则输入0: \n"); scanf("%d",&k); system("cls"); if(k==1) gotostart8; else return; } voidf5() {start9: i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)