小型学生成绩管理系统.docx
- 文档编号:9409627
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:15
- 大小:79.91KB
小型学生成绩管理系统.docx
《小型学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《小型学生成绩管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
小型学生成绩管理系统
高级语言(C)课程设计
题目:
小型学生成绩管理系统
院(系、部):
姓名:
班级:
指导教师签名:
2010年7月8日·北京
目录
前言C语言程序综合设计任务书--------------------------------------------------3
一、任务书---------------------------------------------------------------------------------------------------4
二、小型学生成绩管理系统---------------------------------------------------------------------------5
1.总体设计----------------------------------------------------------------------------------------------------5
2.模块划分----------------------------------------------------------------------------------------------------5
3.算法说明----------------------------------------------------------------------------------------------------5
4.各函数模块功能及流程图-------------------------------------------------------------------------------5
5.程序测试----------------------------------------------------------------------------------------------------7
6.结论----------------------------------------------------------------------------------------------------------7
7.源程序清单-------------------------------------------------------------------------------------------------7
三、体会及建议-------------------------------------------------------------------------------------------12
四、参考文献----------------------------------------------------------------------------------------------12
前言C语言程序综合设计任务书
(设计性实验)
§1.1设计目的
通过一个综合应用程序的开发,掌握C语言程序设计的基本方法和常用算法,学会从实际应用出发来分析问题,进行软件规划和算法设计,逐步求精,养成良好的编程风格,熟悉软件设计的基本步骤,为后续课程的学习打下良好的基础。
§1.2设计时间
设计时间为1或2周,一般分散在几周内进行,同学利用课余时间查阅资料,编制程序,完成设计。
为方便同学答疑,安排部分学时的集中上机辅导,每班配备两名指导教师。
§1.3设计要求
1.每个同学可从课设选题中选择一个题目,独立完成设计。
同学也可以自拟题目,但需经指导教师确认题目符合设计要求。
2.每个班分成5~6组,每组4~6名同学,由指定组长负责组建本组,要求组内同学题目不能相同,每组最终要将组内各成员的设计集成在一起,统一运行。
3.按时参加集中辅导,记考勤。
4.按时提交设计报告,按时参加验收和答辩。
一、任务书
题目1:
小型学生成绩管理系统
功能:
实现某班级的学生成绩管理,学生的基本信息包括学号、姓名、各科成绩等信息。
基本要求:
1.设计简单的菜单,能够进行系统功能选择。
2.实现信息的录入功能。
3.在已有信息的基础上添加新的记录。
4.删除指定学号的学生记录。
5.修改指定学号的学生记录
6.实现信息的浏览功能
7.按学号查询功能
8.按总分或平均分排序功能
二、小型学生成绩管理系统
1.总体设计
实现某班级的学生成绩管理
使用指针、结构体等相关知识完成以下内容
1).简单菜单界面,按0—7键选择选项
2).实现各个函数的功能
2.模块划分
主模块:
main()/*主函数*/
其他模块:
AppendScore()/*录入学生信息*/
TotalScore()/*计算学生成绩总和*/
PrintScore()/*输出学生信息*/
SearchScore()/*按学号查询学生信息*/
SortScore()/*按成绩总和排序*/
AddScore()/*添加某学生信息*/
DeleteScore()/*删除某学生信息*/
ModifyScore()/*修改某学生信息*/
Menu()/*打印菜单*/
3.算法说明
Step1打印主菜单.
Step2按0—7键选择.
Step3实现各个函数的功能.
4.各函数模块功能及流程图
AppendScore()/*录入学生信息*/
TotalScore()/*计算学生成绩总和*/
PrintScore()/*输出学生信息*/
SearchScore()/*按学号查询学生信息*/
SortScore()/*按成绩总和排序*/
AddScore()/*添加某学生信息*/
DeleteScore()/*删除某学生信息*/
ModifyScore()/*修改某学生信息*/
Menu()/*打印菜单*/
流程图如下:
5.程序测试
1).静态检查。
2).静态检查无误后,上机调试。
3).改正语法错误,运行。
检查错误方法:
1).将程序与流程图仔细对照,如果流程图正确,程序写错了,错误很容易发现。
2).采取“分段检查”的方法,不断缩小检查区,就可能发现错误所在。
6.结论
此程序可以再TC中正常、正确运行。
实现某班级的学生成绩管理。
附:
源程序清单
#include
#include
#include
#include
#defineSTU_NUM40
#defineCOURSE_NUM10
structstudent
{
intnumber;
charname[15];
intscore[COURSE_NUM];
intsum;
floataverage;
};
typedefstructstudentSTU;
voidAppendScore(STU*head,intn,intm)
{
intj;
STU*p;
for(p=head;p
{
printf("\nInputnumber:
");
scanf("%d",&p->number);
printf("Inputname:
");
scanf("%s",p->name);
for(j=0;j { printf("Inputscore%d: ",j+1); scanf("%d",p->score+j); } } } voidPrintScore(STU*head,intn,intm) { STU*p; inti; charstr[100]={'\0'},temp[3]; strcat(str,"NumberName"); for(i=1;i<=m;i++) { strcat(str,"Score"); itoa(i,temp,10); strcat(str,temp); strcat(str,""); } strcat(str,"sumaverage"); printf("%s",str); for(p=head;p { printf("\nNo.%3d%8s",p->number,p->name); for(i=0;i { printf("%7d",p->score[i]); } printf("%11d%9.2f\n",p->sum,p->average); } } voidTotalScore(STU*head,intn,intm) { STU*p; inti; for(p=head;p { p->sum=0; for(i=0;i { p->sum=p->sum+p->score[i]; } p->average=(float)p->sum/m; } } voidSortScore(STU*head,intn) { inti,j,k; STUtemp; for(i=0;i { k=i; for(j=i;j { if((head+j)->sum>(head+k)->sum) { k=j; } } if(k! =i) { temp=*(head+k); *(head+k)=*(head+i); *(head+i)=temp; } } } intSearchNum(STU*head,intnum,intn) { inti; for(i=0;i { if((head+i)->number==num)returni; } return-1; } voidSearchScore(STU*head,intn,intm) { intnumber,findNo; printf("PleaseInputthenumberyouwanttosearch: "); scanf("%d",&number); findNo=SearchNum(head,number,n); if(findNo==-1) { printf("\nNotfound! \n"); } else { PrintScore(head+findNo,1,m); } } voidAddScore(STU*head,intn,intm) { AppendScore(head+n,1,m); TotalScore(head+n,n+1,m); } intDeleteScore(STU*head,intn,intm) { intnumber,findNo; printf("\nInputthenumberyouwanttodelete: \n"); scanf("%d",&number); findNo=SearchNum(head,number,n); if(findNo==-1) { return-1; } else { for(;findNo { *(head+findNo)=*(head+findNo+1); } return1; } } voidModifyScore(STU*head,intn,intm) { intnumber,findNo; printf("\nPleaseInputthenumberyouwanttomodify: \n"); scanf("%d",&number); findNo=SearchNum(head,number,n); if(findNo==-1) { printf("\nNotfound! \n"); } else { AppendScore(head+findNo,1,m); TotalScore(head+findNo,1,m); printf("\nAftermodified\n"); PrintScore(head,n,m); } } charMenu(void) { charch; printf("\nManagementforStudents`scores\n"); printf("1.Appendrecord\n"); printf("2.Listrecord\n"); printf("3.Searchrecord\n"); printf("4.sortrecord\n"); printf("5.Addrecord\n"); printf("6.Deleterecord\n"); printf("7.modifyrecord\n"); printf("0.Exit\n"); printf("PleaseInputyourchoice: "); scanf("%c",&ch); returnch; } main() { charch; intm,n,a; STUstu[STU_NUM]; printf("Inputstudentnumberandcoursenumber(n<40,m<10): "); scanf("%d,%d",&n,&m); while (1) { ch=Menu(); switch(ch) { case'1': AppendScore(stu,n,m); TotalScore(stu,n,m); break; case'2': PrintScore(stu,n,m); break; case'3': SearchScore(stu,n,m); break; case'4': SortScore(stu,n); printf("\nSortedresult\n"); PrintScore(stu,n,m); break; case'5': if(n+1>40) { printf("\nNoplace! \n"); } if(n+1<=40) { AddScore(stu,n,m); n=n+1; printf("\nAfteradded\n"); PrintScore(stu,n,m); } break; case'6': a=DeleteScore(stu,n,m); if(a==-1) { printf("Notfound! \n"); } if(a==1) { n=n-1; printf("\nAfterdeleted\n"); PrintScore(stu,n,m); } break; case'7': ModifyScore(stu,n,m); break; case'0': printf("Endofprogram! "); exit(0); break; default: printf("Inputerror! "); break; } } } 三、体会及建议 程序设计不是一个简单过程,它需要设计者在经过对课题要求熟悉了解之后,找出对应的合理的算法,并不断上机调试,不断地修改和改进。 尤其是当设计者对相关函数一无所知时,编一个程序的难度可想而知。 不过,只要在编程过程中不断学习,不断探索,不断实践,不断克服所遇到的一个个难题,最终一个令人感到无比振奋的程序诞生了。 成功的道路势必会崎岖坎坷,但只要有知难而上的精神,只要不断努力,一定会得到胜利的果实! 四、参考文献 [1]苏小红等.C语言大学实用教程(第二版).电子工业出版社.2004.P244-308 [2]苏小红等.C语言大学实用教程习题与实验指导.电子工业出版社.2004. P173,P227-232
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)