C++学生成绩管理系统课程设计报告.docx
《C++学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。
C++学生成绩管理系统课程设计报告
目录
摘要II
AbstractII
1绪论1
1.1背景1
1.2目的1
1.3意义1
1.4内容1
2设计方案简述2
2.1系统框架2
2.2功能分析3
2.3需求分析3
3详细设计4
3.1、模块设计与分析4
3.2、类的设计与分析5
3.3、特色算法分析6
4设计结果及分析8
4.1功能测试8
4.2存在的缺陷和优点13
5总结14
参考文献15
附录:
程序源代码16
摘要
学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
本系统主要完成对学生成绩的管理,包括添加、修改、删除,查询,打印信息以用户管理等六个方面。
系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。
系统的核心是添加、修改和删除三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成添加或删除操作时系统会自动地完成学生成绩的修改。
查询功能也是系统的核心之一,在系统中主要根据学生姓名和学号进行查询,其目的都是为了方便用户使用。
系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。
系统采用MicrosoftOffice中的Access2000来设计数据库,并使用当前优秀的开发工具—VB6.0,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。
重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键词:
MIS;VB6.0;学生成绩管理系统
Abstract
Inmodern,high-techleapinthedevelopmentofalargenumberofpopularcomputer,makingitfasterandfasterpaceoflife.Therefore,theeducationsectorforeffectivemulti-informationmanagement,hasbecomethetoppriorityintheeducationindustry.Currently,schoolcomplex,multi-weightdata,althoughthevarioustypesofmanagementinformationsystemhasenteredtheuniversity,butnotyetuniversal,andforstudentperformancemanagement,thecurrentdoesnothaveacomplete,unifiedsystem.Academicstafffortheuniversitytoreducenegativeandenhanceefficiency,somakethestudentachievementmanagementsystem.
Studentperformancemanagementsystemdevelopmentrequirementsbasedontheeducationsystemismainlyusedtocompletetheeducationofstudentsonthedailyperformancemanagementofdigitalfiles.SystematicallytotheSenate,theteachingserviceandinformationmanagement,datamanagement,moremodern,automated,intelligent,humane.Atthesametime,reducingtheworkloadofUniversityacademicstaffmanagement,reducecosts,improveefficiencyandaccuracy,ithasbecomemoreorganized,scientific,fortheeducationsectorhasmadetremendouscontributions,butalsofortoday'sprivateeducationcompetitivenessinthefutureincreased.
Studentperformancemanagementsystemusesanewconceptofperformancemanagementsystemfromasoundbasisforinformationmanagement,andtocreateanewuser,hascreatedscoresofdatainput,modification,browsing,statistics,functionaloperation,abletobasicallymeettheneedsofuniversityteachersneeds
Keywords:
Multi-information;managementsystem;performancedata
1绪论
1.1背景
学院在教学这一部分主要是由教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,以及让教务处在最短的时间段把学生的成绩核算出来,提高教务处的办事效率。
同时,能够随时对学生、学生成绩进行各种查询和统计,以及很好地对系统进行维护。
1.2目的
1、使用本系统将大大提高学院教务人员管理业务的处理效率;
2、提高成绩信息数据的准确性和安全性;
3、减少成绩信息管理的重复性和低效性,节约人力、物力和时间。
1.3意义
C++是实践性很强的课程。
课程设计是加强学生实践能力的一个强有力手段。
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
1.4内容
1、输入学生资料
2、输出学生资料
3、按学生姓名进行排列
4、添加学生资料
5、按姓名查找,删除该学生资料
6、查找并显示学生资料
7、按姓名查找,修改学生资料
8、从文件中读入数据
9、储存学生资料并退出系统
2设计方案简述
2.1系统框架
图2-1
2.2功能分析
“学生成绩管理系统”包括九个模块:
输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。
这九个模块既相互联系又相互独立。
本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。
本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。
2.3需求分析
1、用VC语言实现系统;
2、对学生信息(包括学院、学号、姓名、高等数学、c++语言、大学英语、马列、平均分、总分)进行管理(附加:
可任意添加课程数,最多20门),包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.
3、学生信息包括:
其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:
(1)、每一条记录包括一个学生的学号、姓名、(至少)4门课成绩。
(2)、成绩信息录入功能:
(成绩信息用文件保存,可以一次完成若干条记录的输入。
)
(3)、成绩信息显示浏览功能:
完成全部学生记录的显示。
(4)、查询功能:
完成按姓名或学号查找学生记录,并显示。
(5)、成绩信息的删除:
按姓名或学号进行删除某学生的成绩.
(6)、排序功能:
按学生学号或总成绩(从小到大)进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的
操作界面应尽可能清晰美观!
3详细设计
3.1、模块设计与分析
(1)输入学生资料模块:
主要功能用来对学生的成绩进行收集和输入。
在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。
在准确输入学生资料后,就可以对该学生的各科成绩进行录入。
该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。
(2)输出学生资料模块:
主要功能用来对学生的成绩进行输出。
在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。
具体包括学生的班级,学号,姓名和各科成绩。
在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。
(3)按学生姓名进行排列模块
主要功能是用来对学生的资料按姓名进行排序。
在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
(4)添加学生资料模块
主要功能是用来添加学生资料,成绩。
如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。
如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。
(5)按姓名查找,删除该学生资料模块
主要功能是用来删除学生资料。
在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。
由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化
(6)查找并显示学生资料模块
主要功能是用来查找学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息
(7)按姓名查找,修改学生资料模块
主要功能是用来修改学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。
(8)从文件中读入数据模块
主要功能是用来从文件中读入学生数据。
由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。
这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。
(9)储存学生资料并退出系统模块
主要功能是用来储存学生资料。
在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。
3.2、类的设计与分析
图3-1Student类类图
typedefclass
{
public:
charnum[10];
charcla[10];
charname[20];
charbyyl[10];
charjsjzc[20];
charsjk[10];
charjsjyy[20];
charjsdl[20];
}Student;
名称
属性
说明
num
数据成员
说明学生学号
cla
数据成员
说明学生班级
name
数据成员
说明学生名字
byyl
数据成员
说明学生数据结构成绩
jsjzc
数据成员
说明学生离散数学成绩
sjk
数据成员
说明学生大学物理成绩
jsjyy
数据成员
说明学生大学英语成绩
Jssl
数据成员
说明学生模拟电路成绩
表3-1Student类说明表
3.3、特色算法分析
功能:
定义菜单函数,通过输出函数显示系统功能。
利用switch语句实现多分支选择结构。
算法思路:
switch语句的执行流程是:
首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句。
代码:
voidmain()//主函数调用。
{
intn=0;
for(;;)
{
switch(menu())
{
case1:
cout<n=Input(stu,n);
break;
case2:
cout<Display(stu,n);
break;
case3:
cout<Sort(stu,n);
cout<system("pause");
break;
case4:
cout<n=Insert(stu,n);
cout<system("pause");
break;
case5:
cout<cout<";
n=Delete(stu,n);
cout<system("pause");
break;
case6:
cout<Query(stu,n);
cout<system("pause");
break;
case7:
cout<cout<";
n=Xiugai(stu,n);
system("pause");
break;
case8:
cout<n=AddfromText(stu,n);
break;
case0:
cout<WritetoText(stu,n);
cout<system("pause");
break;
}
}
}
4设计结果及分析
4.1功能测试
图4-1学生成绩管理系统主菜单页面
图4-2为输入学生资料模块
图4-3为输出学生资料模块
图4-4按学生姓名进行排列模块
图4-5为添加学生资料模块
图4-6为按姓名查找,删除该学生资料模块
图4-7为查找并显示学生资料模块
图4-8为按姓名查找,修改学生资料模块
图4-9为从文件中读入数据模块
图4-10为储存学生资料并退出系统模块
4.2存在的缺陷和优点
本学生成绩管理系统由九个模块组成,每个模块相互联系又相互独立。
这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。
只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。
在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。
如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。
但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。
因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。
为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。
在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。
一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩。
5
总结
在21世纪的今天,随着科技的发展和进步,越来越多的教育单位开始重视信息化建设,利用先进的计算机和网络技术对学生成绩信息进行管理,提高工作效率,减少人力资源的浪费。
本人结合教务管理人员对成绩信息地具体管理需求,开发一套学生成绩管理系统。
本系统的整个开发过程和实现功能,能够进行学生成绩信息录入、修改、查询、浏览、删除、统计等操作,整体界面美观大方,完成了教务人员对学生成绩管理工作的要求,适用于一系列的教育单位。
本系统的应用,将会使学生和教务管理人员在第一时间内获得理想信息。
我学到了很多的东西。
首先,接到设计题目之后,在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。
其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。
通过课程设计,我加深了对C++这门课的认识。
使自己对软件的使用能力得到提升。
参考文献
1.龚志翔.VisualC++编程实例与技巧集粹[M].北京:
北京期望电子出版社,2004
2.孔鹏.Visualc++6.0完全自学手册[M].北京:
机械工业出版社,2006
3.邓华.VisualC++案例教程[M].北京中科多媒体电子出版社,2001
附录:
程序源代码
#include
#include
usingnamespacestd;
intmain()
{
intexchange(int,int);
inta[10];
intc[10][4];
stringname[10];
stringt;
inti,j,n=0,max=0,d=0,k;
cout<<"请依次输入学生学号姓名语数外成绩(成绩按语数外顺序,各数据间用空格隔开)"<for(i=0;i<=9;i++)
{cin>>a[i];
cin>>name[i];
for(j=0;j<=2;j++)
cin>>c[i][j];
}
cout<<"下面输出学生学号姓名语数外成绩"<for(i=0;i<=9;i++)
{
cout<cout<for(j=0;j<=2;j++)
{cout<<""<cout<}
cout<<"下面输出语文成绩单科第一的学生学号、姓名分数"<max=0;
for(i=0;i<=9;i++)
{
if(max{d=i;
max=c[i][0];
}
}
cout<cout<cout<<""<for(i=0;i<=9;i++)
{
if(c[i][0]==c[d][0]&&i!
=d)
{
cout<}
}
cout<<"下面输出数学成绩单科第一的学生分数"<max=0;
for(i=0;i<=9;i++)
{
if(max{d=i;
max=c[i][1];
}
}
cout<cout<cout<<""<for(i=0;i<=9;i++)
{
if(c[i][1]==c[d][1]&&i!
=d)
{
cout<}
}
cout<<"下面输出英语成绩单科第一的学生分数"<max=0;
for(i=0;i<=9;i++)
{
if(max{d=i;
max=c[i][2];
}
}
cout<cout<cout<<""<for(i=0;i<=9;i++)
{
if(c[i][2]==c[d][2]&&i!
=d)
{
cout<}
}
for(i=0;i<=10;i++)
{c[i][3]=(c[i][0]+c[i][1]+c[i][2])/3;
}
cout<<"下面输出三门平均分第一的学生分数"<max=0;
for(i=0;i<=9;i++)
{
if(max{d=i;
max=c[i][3];
}
}
cout<cout<cout<<""<for(i=0;i<=9;i++)
{
if(c[i][3]==c[d][3]&&i!
=d)
{
cout<}
}
for(k=0;k<=9;k++)
{
for(i=0;i<9-k;i++)
{
if(c[i][3]{
exchange(c[i][3],c[i+1][3]);
exchange(c[i][2],c[i+1][2]);
exchange(c[i][1],c[i+1][1]);
exchange(c[i][0],c[i+1][0]);
exchange(a[i],a[i+1]);
t=name[i];name[i]=name[i+1];name[i+1]=t;
}
}
}
cout<<"下面输出学生学号姓名语数外成绩