c语言班级成绩管理系统.docx
- 文档编号:30254475
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:24
- 大小:144.19KB
c语言班级成绩管理系统.docx
《c语言班级成绩管理系统.docx》由会员分享,可在线阅读,更多相关《c语言班级成绩管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
c语言班级成绩管理系统
IMBstandardizationoffice【IMB5AB-IMBK08-IMB2C】
c语言班级成绩管理系统
课程设计报告
课程名称C语言程序设计
课题名称班级成绩管理系统
专业网络工程
班级1001
学号
姓名张剑
指导教师唐北平、陈淑红、谭小兰
2011年6月20日
湖南工程学院
课程设计任务书
课程名称C语言程序设计
课题班级成绩管理系统
专业班级网络工程
学生姓名张剑
学号
指导老师唐北平、陈淑红、谭小兰
审批
任务书下达日期2011年6月20日
任务完成日期2011年7月03日
1、设计内容与设计要求
1.设计内容:
对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
1、本系统采用一个结构体数组,每个数据的结构应当包括:
学号、姓名、M门课程名称。
2、本系统显示这样的菜单:
请选择系统功能项:
a、成绩录入、显示
b、成绩修改
c、成绩查询
d、成绩排序、统计
e、退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
2.设计要求:
掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;
7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;
二、进度安排
第十八周星期18时00分——11时30分
星期214时30分——18时00分
星期38时00分——11时30分
星期48时00分——11时30分
第十九周星期18时00分——11时30分
星期二14时30分——18时00分
主要功能介
二、概要设计
程序的模块
程序流程
三、详细设计
系统总体结构
学生信息录入
成绩查询系统
成绩删除模块
排序统计系统
退出系统
四、课程设计总结
课程设计心得
在程序设计中的问题和解决
附录
源程序清单(带注释)
计算机与通信学院课程设计评分表
一、功能简介
主要功能介绍
1、本系统采用一个结构体数组,每个数据的结构包括:
学号、姓名、M门课程名称。
2、
本程序具有:
(1)成绩录入
(2)成绩显示(3)成绩删除(4)成绩排序、统计(5)退出系统
二、概要设计
程序的模块
统模块图如下:
程序流程
三、详细设计
系统总体结构
学生信息录入
成绩查询系统
成绩删除模块
排序统计系统
退出系统
六、课程设计总结
课程设计心得:
课程设计给我一个学以致用的机会,刚开始的时候还以为学这黑黑的东西没用,只是一些简单的计算。
经过了这次的练习我才发现原来的黑屏有它自己的好处,通过学习也发现原来这种黑屏就是那些应用程序的原型,不论你以后学程序开发还是网页的制作都有很好大好处,这些基础是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
通过这次的学习我发现以后不管是哪一科我们尽量要把它拿过来使用,只有把知识应用到实际生活中才能说这知识是自己的啦。
在以后找工作中这些作品就会是我的学习凭证,是我的能力的体现,不难想象一个公司要的是一些实际的东西不需要太多的理论。
在程序设计中的问题和解决:
在调试过程中我们也遇到过不少的错误,警告等,有些错误多达二十多个,改得头都是晕的,有时就想放弃了,但是在老师的帮助下,我慢慢的将程序调好,这都归功于老师的帮助。
有时我们在调试的时候无意间多打了一个空格或者是无意间删了一个字符,导致程序很多的错误,还有就是在建库的时候不能出错,一但出了一点错就得重新输入。
所以,希望以后程序设计者一定要注意这点,一定要小心,三思而后行。
还有就是程序本身存在很多不足,有待改进。
比如修改模块,一次只能改一项数据。
附录
源程序清单(带注释)
#include<>
#include<>
#include<>
#include<>
voidhomepage();;
Sleep(100);
}
system("cls");
homepage();
break;
}
else
printf("\n用户名或密码无效请重新输入:
\n");
continue;
}
if(k==0)
printf("\n连续输入错误3次将退出程序\n");
Sleep(2000);
quit();
}
voidhomepage()
{
charn;
printf("\n\n");
printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("\t┃************************************************************┃\n");
printf("\t┃***┃\n");
printf("\t┃*1.录入成绩*2.显示成绩*┃\n");
printf("\t┃***┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┃***┃\n");
printf("\t┃*3.删除记录*4.排序成绩*┃\n");
printf("\t┃***┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┃**┃\n");
printf("\t┃*0.退出程序*┃\n");
printf("\t┃**┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
while((n!
='1')&&(n!
='2')&&(n!
='3')&&(n!
='4')&&(n!
='0'))
{
printf("\n请选择:
");
fflush(stdin);
scanf("%c",&n);
switch(n)
{
case'1':
input();
break;
case'2':
if(count<10)
display();
else
{
printf("记录数已满\n");
Sleep(2000);
system("cls");
homepage();
}
break;
case'3':
del();
break;
case'4':
sort();
case'0':
quit();
break;
default:
printf("\n选项错误\n");
}
}
}
voiddisplay()
{
inti;
charc;
system("cls");
switch(sort_type)
{
case0:
printf("\t\t未排序:
\n\n");
break;
case1:
printf("\t\t按学号排序:
\n\n");
break;
case2:
printf("\t\t按c语言成绩排序:
\n\n");
break;
case3:
printf("\t\t按数学成绩排序:
\n\n");
break;
case4:
printf("\t\t按英语成绩排序:
\n\n");
break;
case5:
printf("\t\t按平均成绩排序:
\n\n");
break;
}
printf("\t学号\t姓名\tc语言\t数学\t英语\t平均成绩\n");
for(i=0;i { printf("\t%d\t%s\t%\t%\t%\t%\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg); } printf("\n\n按任意键返回\n"); c=getch(); system("cls"); homepage(); } voidinput() { inti,numcheck; charc; system("cls"); do { printf("学号: \n"); scanf("%d",&stu[count].num); numcheck=1; if(stu[count].num<0) printf("请输入正整数: \n"); for(i=0;i { if(stu[count].num==stu[i].num) { numcheck=0; printf("学号重复,重新输入: \n"); } } }while(! numcheck); printf("姓名: \n"); fflush(stdin); gets(stu[count].name); for(i=0;i<3;i++) { printf("第%d门课成绩: \n",i+1); scanf("%f",&stu[count].score[i]); } stu[count].avg=(stu[count].score[0]+stu[count].score[1]+stu[count].score[2])/3; printf("是否继续输入(y/n): \n"); do { c=getchar(); if(c=='y'||c=='Y') { count++; if(count<10) input(); else { printf("记录数已满\n"); Sleep(2000); system("cls"); homepage(); } } elseif(c=='n'||c=='N') { count++; system("cls"); homepage(); } else; }while((c! ='y')&&(c! ='n')&&(c! ='Y')&&(c! ='N')); } voiddel() { inti,j,del_num,match=0; charc; system("cls"); printf("请输入要删除的学生学号: \n"); scanf("%d",&del_num); waiting(); for(i=0;i { if(stu[i].num==del_num) { match=1; for(j=i;j /*{ stu[j].num=stu[j+1].num; strcpy(stu[j].name,stu[j+1].name); stu[j].score[0]=stu[j+1].score[0]; stu[j].score[1]=stu[j+1].score[1]; stu[j].score[2]=stu[j+1].score[2]; stu[j].avg=stu[j+1].avg; }*/ stu[j]=stu[j+1]; } } if(! match) printf("没有要找的学号.\n"); printf("是否继续删除(y/n)"); fflush(stdin); do { c=getchar(); if(c=='y'||c=='Y') { count--; del(); } elseif(c=='n'||c=='N') { count--; system("cls"); homepage(); } else; }while((c! ='y')&&(c! ='n')); } voidsort() { inti,j; intchoice; structstudenttemp; system("cls"); printf("\t\t请选择排序功能: \n"); printf("\t1.按学号排序\n"); printf("\t2.按c语言成绩排序\n"); printf("\t3.按数学成绩排序\n"); printf("\t4.按英语成绩排序\n"); printf("\t5.按平均成绩排序\n"); do { scanf("%d",&choice); }while((choice! =1)&&(choice! =2)&&(choice! =3)&&(choice! =4)&&(choice! =5)); switch(choice) { case1: { for(i=0;i { for(j=0;j { if(stu[j].num>stu[j+1].num) { temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } } sort_type=1; break; } case2: { for(i=0;i { for(j=0;j { if(stu[j].score[0] { temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } } sort_type=2; break; } case3: { for(i=0;i { for(j=0;j { if(stu[j].score[1] { temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } } sort_type=3; break; } case4: { for(i=0;i { for(j=0;j { if(stu[j].score[2] { temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } } sort_type=4; break; } case5: { for(i=0;i { for(j=0;j { if(stu[j].avg { temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } } sort_type=5; break; } } system("cls"); waiting(); homepage(); } voidwaiting() { inti; printf("\n\t请稍侯..........."); for(i=0;i<25;i++) { switch(i%4) { case1: printf("\b\\");break; case2: printf("\b-");break; case3: printf("\b/");break; case0: printf("\b|");break; } Sleep(100); } system("cls"); } voidquit() { system("cls"); printf("\n\n"); printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); printf("\t┃************************************************************┃\n"); printf("\t┃**┃\n"); printf("\t┃**^__^*谢谢使用班级成绩管理系统*^__^**┃\n"); printf("\t┃**┃\n"); printf("\t┃**^__^*开心每一天*^__^**┃\n"); printf("\t┃**┃\n"); printf("\t┃*湖南工程学院*┃\n"); printf("\t┃*计算机与通信学院网络工程1001班*┃\n"); printf("\t┃************************************************************┃\n"); printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"); } 附: 课程设计报告装订顺序: 封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式: 一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容: 一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。 正文总字数要求在5000字以上(不含程序原代码)。 计算机科学与技术系课程设计评分表 课题名称: 班级成绩管理系统 项目 评价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日期: (注: 1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。 )
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 班级 成绩管理系统