基于C++的学生成绩管理系统设计.docx
- 文档编号:24025783
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:45
- 大小:128.77KB
基于C++的学生成绩管理系统设计.docx
《基于C++的学生成绩管理系统设计.docx》由会员分享,可在线阅读,更多相关《基于C++的学生成绩管理系统设计.docx(45页珍藏版)》请在冰豆网上搜索。
基于C++的学生成绩管理系统设计
目录
1.概述………………………………………………………………………………………….…3
1.1项目背景………………………………………………………………………..3
1.1功能需求分析…………………………………………………………………..3
1.2编写目的………………………………………………………………………..3
1.3开发环境……………………………………………………………………….3
2.需求分析…………………………………………………………………………..4
2.1功能需求分析………………………………………………………………..…4
2.2环境需求分析…………………………………………………………………..4
2.3方法需求分析…………………………………………………………………..4
3.概要设计………………………………………………………………………….4
3.1系统功能模块图………………………………………………………………..4
3.2设计思想……………………………………………………………………….5
4.主要代码描述……………………………………………………………………5
4.1显示主菜单……………………………………………………………………..6
4.2显示排序方式…………………………………………………………………..6
4.3输入学生信息…………………………………………………………………..7
4.4删除学生信息…………………………………………………………………..8
4.5详细代码叙述………………………………………………………………….9
5.调试过程…………………………………………………………………………29
6.结束语……………………………………………………………………………31
参考文献…………………………………………………………………………...32
摘要
随着计算机技术的发展,可视编程技术占有了越来越重要的作用。
VisualC++6.0是一种功能强大行之有效的可视化编程工具。
因此此软件是在VisualC++6.0环境下编写的。
对于我们,随着学习的深入,已经大体掌握了VisualC++6.0环境下的程序开发。
为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于VisualC++6.0环境的软件开发,先以字符统计软件作为开始,对VisualC++6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件的开发进行的更加顺利。
本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。
学生成绩管理系统能方便用户迅速、准确处理学生的成绩,得到想要的数据并能将学生的信息以文档保存。
本文介绍了简易学生成绩管理系统在MicrosoftVisualC++6.0环境下的实现过程:
系统的分析,功能模块的设计,系统的调试和测试。
此系统的主要管理的信息有:
学生的班级,学号,姓名和三(可以更改)门课的成绩。
本系统的主要功能有学生成绩的添加、删除、插入、显示,能对学生成绩按分数或学号进行排序,可以根据用户的要求按班级,姓名,学号查询学生的成绩信息,计算每位学生的总分和均分,计算所有同学的总分和平均分,分类汇总统计每门课的的总分均分能保存信息到文件以及从文件中读取信息等功能。
关键词:
项目;学生成绩管理系统;功能模块(函数).
Abstract:
Withthedevelopmentofcomputertechnology,visualprogrammingtechnologyoccupyamoreandmoreimportantrole.Visualc++6.0isapowerfuleffectiveVisualprogrammingtools.ThereforethissoftwareisinVisualc++6.0environmentbenefit.Forus,withlearningdeeply,hasgenerallygraspedVisualc++6.0environmentprogramdevelopment.Tomakeourprogrammingabilityelevatedtoahigherlevel,deepeningofobject-orientedprogrammingthinkingandproblem-solvingability,inthecurriculumdesignofweeks,basedonVisualc++6.0environmentofsoftwaredevelopment,firstincharacterstatisticalsoftwareforVisualc++,asastart6.0environmentandobject-orientedprogamdesign,makingmemoriesandfamiliarwithonthebasisofthenextemployeetrainingsoftwaredevelopmentofmoresmoothly.
Thisdocumentfromtheoutlinedesign,detaileddesign,referencesourcecodeanddisplaytheprogramrunsthescreenshotsaspectsdetailedintroducesthesoftwaredevelopmentprocess.Students'performancemanagementsystemcanconvenientuserfast,accurateprocessingstudents'scores,thedesireddataandstudents'informationaccordingtothedocumentpreservation.ThispaperintroducesthesimplestudentperformancemanagementsysteminMicrosoftVisualc++6.0environmentofrealizationprocess:
systemanalysis,functionmoduledesign,systemcommissioningandtesting.Thesystem'smainmanagementinformationare:
studentclass,studentid,nameandthree(canchange)coursegrades.Thesystem'smainfunctionofthestudent'sgradeadd,delete,insert,display,canaccordingtothegradesofstudentachievementorstudentidsorting,canaccordingtotheuser'srequirementsaccordingtoclass,name,studentidinquiresthestudentperformanceinformation,calculateeachstudent'soverallscoreandpartitioning,computingallclassmateoftotalscorepeace,collectclassifiedstatisticaldivideeachcoursetotalscorealikecanstoreinformationfromthedocumenttothefileandreadinformation,andotherfunctions.
Keywords:
projects;Students'performancemanagementsystem;Function
Modlefunction.
1概述
本系统是基于VC平台开发的,用C来完成此课题。
深入了解数据的组织,存储,处理逻辑及数据的显示。
在用C完成课题的过程中去体会——数据是如何组织和存储的,数据是如何显示的,数据的处理逻辑是什么。
该系统的功能是以菜单方式工作,用户通过选择数字来选择学生信息录入功能---输入学生基本信息,学生信息浏览功能---输出学生的基本信息,查询、排序功能---算法,按学号查询,按姓名查询。
学生信息的删除与修改(可选项)的等基本的功能,从而实现用户的想法。
在各项基本功能之下我们可以看到各种小的模块来满足用户的各种需求,达到快速方便的效果。
1.1项目背景
随着现代科技的发展,互联网时代的到来,电脑给人们带来了很大的便利。
学生信息管理系统可以为学校师生提供查询、修改、统计等服务,为学校管理提供了极大的方便。
1.2编写目的
通过对学生信息管理系统的编写,实现对学生信息的快速查找,添加,删除统计等功能,同时通过此次课程设计进一步加深对数据处理的各方面理解。
1.3开发环境
采用VisualC++6.0
2.需求分析
2.1功能需求分析
学生信息包括:
姓名,班级,学号,性别,出生年月(其它信息可酌情增加)
需要完成的各项功能:
(1)添加学生信息:
输入并保存学生信息
(2)显示学生信息:
出现“显示学生信息子菜单”,供操作者选择
(3)删除学生信息:
显示现有的学生信息,让操作者输入要删除学生的学号,将其删除后再次显示其余的学生信息
(4)查询学生信息:
出现“查询学生信息子菜单”,供操作者选择
(5)修改学生信息:
出现“修改学生信息子菜单”,供操作者选择
(6)统计学生信息:
统计并显示优、良、中、及格、不及格的人数与比例,以及总人数、及格率、最高分、最低分、平均分(包括一个学生多门课的学生成绩,和某一门课的学生平均成绩)。
2.2环境需求分析:
操作系统:
Windows7
开发软件:
VisualC++6.0
2.3方法需求分析
由于数组存放数据的时候要先确定数组的规模,不能动态的分配内存空间,而单链表是非连续存放的,可以对内存空间进行动态分配,此系统是用单链表完成的。
然后定义链表的结点类型为结构就可以实现对学生学号、姓名、成绩、班级等学生信息保存。
每次只要返回头指针,就可以对整个链表进行操作,因此选链表来存放学生信息。
3概要设计
3.1系统功能模块图
系统功能单元:
各个功能单元完成情况良好,均能准确并且快速的实现课题所需功能。
3.2设计思想:
(1)学生信息管理系统的功能为显示主要操作页面。
学生信息处理功能包括输入学生信息,显示学生的个人信息,学生信息条件查询(分为:
按学生姓名进行查询,按学生学号进行查询),更新学生个人信息。
(2)学生信息管理系统的功能模块有:
系统登陆界面,美观大方,按enter键进入主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。
1.添加学生信息。
2.显示学生信息
3.删除学生
4.查询学生信息。
5.修改学生信息
6.统计学生信息
0.退出
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
学生信息管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此此系统采用单链表来完成。
各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。
4主要代码描述
4.1显示主菜单
voidDisplayMainMenu()//作者:
闾泽民
{
printf("系统的主菜单:
\n");
printf("\n欢迎来到学生成绩管理系统!
在该系统你可以。
。
。
。
\n");
printf("\n\t1:
添加学生信息\n");
printf("\n\t2:
显示学生信息\n");
printf("\n\t3:
删除学生信息\n");
printf("\n\t4:
查询学生信息\n");
printf("\n\t5:
修改学生信息\n");
printf("\n\t6:
统计学生信息\n");
printf("\n\t0:
退出系统\n");
printf("\n\t请选择:
");
}
4.2.显示排序方式
voidName(Studentstu[],intMax)//按名字排序//作者:
不详
{
inti,j;
Studentp;
for(i=0;i for(j=0;j if(strcmp(stu[j].name,stu[j+1].name)>0) { p=stu[j]; stu[j]=stu[j+1]; stu[j+1]=p; } Display(stu,Max); } voidSort(Studentstu[],intMax)//按学号排序//作者: 不详 { inti,j; Studentp; for(i=0;i for(j=0;j if(stu[j].num>stu[j+1].num) { p=stu[j]; stu[j]=stu[j+1]; stu[j+1]=p; } Display(stu,Max); } 4.3输入学生信息 intInforInput(Studentstu[],intid)//学生信息输入//作者: 不详 { intnumber,i,m; printf("\n\t请输入本次录入的学生人数: "); scanf("%d",&number); m=number+id; if(number>MaxNum) { printf("输入人数太多,请重新输入! \n"); return(0); } for(i=id;i { printf("\n\t请输入第%d个学生人数的学号: ",i+1); scanf("%d",&stu[i].num); printf("\n\t姓名: "); scanf("%s",stu[i].name); printf("\n\t班级: "); scanf("%d",&stu[i].classes); printf("\n\t性别: "); scanf("%s",stu[i].sex); printf("\n\t请依次输入英语,JAVA,语文,C,数学的成绩: "); scanf("%f%f%f%f%f",&stu[i].mark.English,&stu[i].mark.Java,&stu[i].mark.Chinese,&stu[i].mark.C,&stu[i].mark.Math); } printf("\n\t你输入的信息是: \n"); SaveStu(stu,i); for(i=id;i { printf("\n\t姓名: %s\t班级: %d\t学号: %d\t性别: %s\n",stu[i].name,stu[i].classes,stu[i].num,stu[i].sex); printf("\n\t学生成绩信息: \n"); printf("\n\tEnglish: %.2f\tjava: %.2f\tChinese: %.2f\tC: %.2f\tMath: %.2f\n",stu[i].mark.English,stu[i].mark.Java,stu[i].mark.Chinese,stu[i].mark.C,stu[i].mark.Math); } return(i); } 4.4删除学生信息 intDelete(Studentstu[],intMax)//作者: 不详 { intj,i; intfindnum; printf("\n\t请输入要删除的学号: "); scanf("%d",&findnum); while(findnum! =0) { if((i=FindStuNum(stu,findnum,Max))! =-1) { for(j=i;j { stu[j].num=stu[j+1].num; strcpy(stu[j].name,stu[j+1].name); stu[j].classes=stu[j+1].classes; strcpy(stu[j].sex,stu[j+1].sex); stu[j].mark.English=stu[j+1].mark.English; stu[j].mark.Java=stu[j+1].mark.Java; stu[j].mark.Chinese=stu[j+1].mark.Chinese; stu[j].mark.C=stu[j+1].mark.C; stu[j].mark.Math=stu[j+1].mark.Math; } Max=Max-1; SaveStu(stu,Max); printf("\n\t删除完毕! \n"); } else { printf("\n\t没有你输入的学号! \n"); } printf("\n\t请输入要删除的学号,退出请按'0': "); scanf("%d",&findnum); } Display(stu,Max); return(Max); } 4.5详细代码描述 #include #include #include #include #include #defineMaxNum2000 #defineFileName"Student.txt" //定义结构体 structscore floatEnglish; floatJava; floatChinese; floatC; floatMath; }; typedefstructSTUDENT { intnum; charname[10]; intclasses; charsex[10]; structscoremark; }Student; //函数 voidSaveStu(Studentstu[],intMax); voidDisplayStuInf(Studentstu[],intMax); voidDisplayMainMenu(); intDelete(Studentstu[],intMax); intInforInput(Studentstu[],intid); intRead(Studentstu[]); voidSort(Studentstu[],intMax); intFindStuNum(Studentstu[],intfindunm,intMax); intFindStuName(Studentstu[],charfindname[],intMax); voidQueryInformation(Studentstu[],intMax);//查询学生信息 voidEdit(Studentstu[],intMax); voidName(Studentstu[],intMax); voidEnglishCore(Studentstu[],intMax); voidAverageCore(Studentstu[],intMax); voidDisplay(Studentstu[],intMax); voidCount(Studentstu[],intMax); voidEnglish(Studentstu[],intMax); voidJava(Studentstu[],intMax); voidChinese(Studentstu[],intMax); voidC(Studentstu[],intMax); voidMath(Studentstu[],intMax); voidStuCore(Studentstu[],intMax); voidCount(Studentstu[],intMax) intselect; printf("\n\t1.英语成绩统计\n\n\t2.Java成绩统计\n\n\t3.语文成绩统计\n\n\t4.C成绩统计\n\n\t5.数学成绩统计\n\n\t6.学生成绩统计\n\n\t0.退出\n\t"); printf("\n\t请选择: "); scanf("%d",&select); while(select! =0) { switch(select) { case1: English(stu,Max); break; case2: Java(stu,Max); break; case3: Chinese(stu,Max); break; case4: C(stu,Max); break; case5: Math(stu,Max); break; case6: StuCore(stu,Max); break; default: printf("\n\t输入错误! 请重新输入! \n"); } printf("\n\t"); scanf("%d",&select); } } voidEnglish(Studentstu[],intMax) { inti,you,liang,zhong,jige,buji; floathigh,low,sum,n,av; sum=0;you=0;liang=0;zhong=0;jige=0;buji=0; low=stu[0].mark.English; h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C+ 学生 成绩管理系统 设计