《C++课程设计》学生成绩管理系统课程设计论文
《《C++课程设计》学生成绩管理系统课程设计论文》由会员分享,可在线阅读,更多相关《《C++课程设计》学生成绩管理系统课程设计论文(24页珍藏版)》请在装配图网上搜索。
1、《C++课程设计》 课程设计题目:学生成绩管理系统 学生学号: 学生姓名: 指导教师: 二〇一〇年十一月二十八日 目 录 1、系统总体框架 2、功能分析 3、模块设计与分析 4、类的设计与分析 5、特色算法分析 6、功能测试 7、存在的不足与对策 8、程序源代码 9、使用说明 1、 系统总体框架 主 菜 单 输入学生资料模块 输出学生资料模块 按学生姓名进行排列模块 添加学生 资料模块 按姓名查找,删除该学生资料模块
2、查找并显示学生资料模块 按姓名查找,修改学生资料模块 从文件中读入数据模块 储存学生资料并退出系统模块 图1 2、功能分析 “学生成绩管理系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。这九个模块既相互联系又相互独立。 本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理
3、操作。本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。 3、模块设计与分析 (1)输入学生资料模块: 主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后
4、,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。 (2)输出学生资料模块: 主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。 (3) 按学生姓名进行排列模块 主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
5、(4) 添加学生资料模块 主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。 (5)按姓名查找,删除该学生资料模块 主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化 (6)查找并显示学生资料模块 主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查
6、找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息 (7)按姓名查找,修改学生资料模块 主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。 (8)从文件中读入数据模块 主要功能是用来从文件中读入学生数据。由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。 (9)储存学生资料并退出系统模块 主要功能是用来储存学生资料。在对系统
7、进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。 4、类的设计与分析 Student类类图 student num cla name byyl jsjzc sjk jsjyy typedef class { public: char num[10]; char cla[10]; char name[20]; char byyl[10]; char jsjzc[20]; char sjk[10]; char jsjyy[20]; char jsdl[
8、20]; }Student; 表1 Student类说明表 名称 属性 说明 num 数据成员 说明学生学号 cla 数据成员 说明学生班级 name 数据成员 说明学生名字 byyl 数据成员 说明学生数据结构成绩 jsjzc 数据成员 说明学生离散数学成绩 sjk 数据成员 说明学生大学物理成绩 jsjyy 数据成员 说明学生大学英语成绩 Jssl 数据成员 说明学生模拟电路成绩 5、特色算法分析 功能:定义菜单函数,通过输出函数显示系统功能。利用switch语句实现多分支选择结构。 算法思路
9、:switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句。
代码:
void main() //主函数调用。
{
int n=0;
for(;;)
{
switch(menu())
{
case 1:
cout< 10、;
case 2:
cout< 11、 cout< 12、(stu,n);
cout< 13、u,n);
break;
case 0:
cout< 14、
图五 为添加学生资料模块
图六 为按姓名查找,删除该学生资料模块
图七 为查找并显示学生资料模块
图八 为按姓名查找,修改学生资料模块
图九 为从文件中读入数据模块
图十 为储存学生资料并退出系统模块
7、存在的不足与对策
本学生成绩管理系统由九个模块组成,每个模块相互联系又相互独立。这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。而且在每个模块也有不 15、足的地方,比如在输入学生资料时,对每个信息项没有严格的规定,可以输入任何的字符。同时有些模块还不能实现本应该有的功能,这有待以后努力,争能够实现该有的功能。
在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。因此开发出一个不仅仅是适用于大 16、中专院校以及其它高校通用的学生成绩管理系统是必要的。
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系 17、统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩。
8、程序源代码
#include 18、0];
char jsjzc[20];
char sjk[10];
char jsjyy[20];
char jsdl[20];
}Student;
Student stu[80];
int menu()
{
char c;
for(;c<0||c>8;)
{
system("cls");
cout<<" 欢迎使用本学生成绩管理系统!!"< 19、*********** 学生成绩管理系统 ****************************** "< 20、<<" "<<"6.查找并显示学生资料"< 21、
int Input(Student stud[],int n) //输入数据。
{
int i=0;
char sign,x[10];
for(;sign != n && sign != N;)
{
cout< 22、(15)<<" "<<"数据结构:";
cin>>stud[n+i].byyl;
cout< 23、 cout< 24、)<<" ";
cout< 25、<"-"< 26、 if(strcmp(stud[j].num,stud[j+1].num)>0)
{
strcpy(t,stud[j+1].cla);
strcpy(stud[j+1].cla,stud[j].cla);
strcpy(stud[j].cla,t);
strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[ 27、j+1].name,stud[j].name);
strcpy(stud[j].name,t);
strcpy(t,stud[j+1].byyl);
strcpy(stud[j+1].name,stud[j].byyl);
strcpy(stud[j].byyl,t);
strcpy(t,stud[j+1].jsjzc);
strcpy(stud[j+1].name,stud[j].jsjzc);
strcpy(stud[j].jsjzc,t);
strcpy(t,stud[j+1].s 28、jk);
strcpy(stud[j+1].name,stud[j].sjk);
strcpy(stud[j].sjk,t);
strcpy(t,stud[j+1].jsjyy);
strcpy(stud[j+1].name,stud[j].jsjyy);
strcpy(stud[j].jsjyy,t);
strcpy(t,stud[j+1].jsdl);
strcpy(stud[j+1].name,stud[j].jsdl);
strcpy(stud[j].jsdl,t);
29、 }
cout< 30、"<<"数据结构:";
cin>>stud[n].byyl;
cout< 31、成功!"< 32、
{
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j].cla,stud[j+1].cla);
strcpy(stud[j].byyl,stud[j+1].byyl);
strcpy(stud[j].jsjzc,stud[j+1].jsjzc);
strcpy(stud[j].sjk,stud[j+1].sjk);
strcpy(stud[j].jsjyy,stud[j+1].jsjyy);
strcpy(stu 33、d[j].jsdl,stud[j+1].jsdl);
}
cout< 34、i==n)
{
printf("\t\t\t没有发现该学生资料!\n"); /*输入失败信息*/
return;
}
cout< 35、<"大学英语:"< 36、ext(Student stud[], int n) //从文件中读入数据。
{
int i=0,num;
FILE *fp;
char filename[20];
cout< 37、,"%d",&num);
for(;i 38、
return(n);
}
void WritetoText(Student stud[],int n) //将所有记录写入文件。
{
int i=0;
FILE *fp;
char filename[20];
cout< 39、dl;
system("pause");
return;
}
fprintf(fp,"%d\n",n);
for(;i 40、t< 41、
{
switch(menu())
{
case 1:
cout< 42、;
system("pause");
break;
case 4:
cout< 43、< 44、;
system("pause");
break;
case 8:
cout< 45、)用户进入系统后,就会看到学生管理系统的主菜单页面。系统总共有九个模块,分别由0到8表示,在主菜单页面只能输入数字0到8,输入其他字符无效,如果用户输入无效字符,系统仍停留在主菜单页面。
(2)进入到主菜单页面后,用户可以根据自己的需求选择不同的选项,选择后系统就会进入子系统页面,然后用户按系统的提示操作就行了。
ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIV 46、R97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRi 47、c5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2Hj 48、QKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15 49、Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8 50、l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20F 51、bmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ
24
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。