学生成绩管理系统课程设计报告Word下载.docx
- 文档编号:19310476
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:23
- 大小:125.45KB
学生成绩管理系统课程设计报告Word下载.docx
《学生成绩管理系统课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
3、模块设计与分析
(1)输入学生资料模块:
主要功能用来对学生的成绩进行收集和输入。
在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。
在准确输入学生资料后,就可以对该学生的各科成绩进行录入。
该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。
(2)输出学生资料模块:
主要功能用来对学生的成绩进行输出。
在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。
具体包括学生的班级,学号,姓名和各科成绩。
在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。
(3)按学生姓名进行排列模块
主要功能是用来对学生的资料按姓名进行排序。
在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
(4)添加学生资料模块
主要功能是用来添加学生资料,成绩。
如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。
如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。
(5)按姓名查找,删除该学生资料模块
主要功能是用来删除学生资料。
在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。
由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化
(6)查找并显示学生资料模块
主要功能是用来查找学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息
(7)按姓名查找,修改学生资料模块
主要功能是用来修改学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。
(8)从文件中读入数据模块
主要功能是用来从文件中读入学生数据。
由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。
这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。
(9)储存学生资料并退出系统模块
主要功能是用来储存学生资料。
在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。
4、类的设计与分析
Student类类图
typedefclass
{
public:
charnum[10];
charcla[10];
charname[20];
charbyyl[10];
charjsjzc[20];
charsjk[10];
charjsjyy[20];
}Student;
表1Student类说明表
名称
属性
说明
num
数据成员
说明学生学号
cla
说明学生班级
name
说明学生名字
byyl
说明学生编译原理成绩
jsjzc
说明学生计算机组成成绩
sjk
说明学生数据库成绩
jsjyy
说明学生计算机英语成绩
5、特色算法分析
功能:
定义菜单函数,通过输出函数显示系统功能。
利用switch语句实现多分支选择结构。
算法思路:
switch语句的执行流程是:
首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句。
流程图:
代码:
voidmain()//主函数调用。
intn=0;
for(;
;
)
{
switch(menu())
case1:
cout<
<
setw(15)<
"
"
输入学生资料"
endl;
n=Input(stu,n);
break;
case2:
输出所有学生资料"
Display(stu,n);
case3:
按姓名排序"
Sort(stu,n);
system("
pause"
);
case4:
插入学生资料"
n=Insert(stu,n);
case5:
删除学生资料"
输入他(她)的姓名:
n=Delete(stu,n);
case6:
查找学生"
Query(stu,n);
case7:
修改学生资料"
输入你要修改的学生的姓名:
n=Xiugai(stu,n);
case8:
从文件中读入数据"
n=AddfromText(stu,n);
case0:
将所有资料写入文件"
WritetoText(stu,n);
}
}
6、功能测试
图1学生成绩管理系统主菜单页面
图二为输入学生资料模块
图三为输出学生资料模块
图四按学生姓名进行排列模块
图五为添加学生资料模块
图六为按姓名查找,删除该学生资料模块
图七为查找并显示学生资料模块
图八为按姓名查找,修改学生资料模块
图九为从文件中读入数据模块
图十为储存学生资料并退出系统模块
7、存在的不足与对策
本学生成绩管理系统由九个模块组成,每个模块相互联系又相互独立。
这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。
只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。
而且在每个模块也有不足的地方,比如在输入学生资料时,对每个信息项没有严格的规定,可以输入任何的字符。
同时有些模块还不能实现本应该有的功能,这有待以后努力,争能够实现该有的功能。
在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。
如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。
但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。
因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。
为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。
现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。
在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。
一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩。
8、程序源代码
#include<
iostream>
stdio.h>
ctype.h>
stdlib.h>
string.h>
iomanip>
usingnamespacestd;
Studentstu[80];
intmenu()
charc;
c<
'
0'
||c>
8'
cls"
欢迎使用本学生成绩管理系统!
!
编程人员:
纪欣吉"
******************************学生成绩管理系统******************************"
setw(32)<
1.输入学生资料"
2.输出学生资料"
3.按学生姓名进行排列"
4.添加学生资料"
5.按姓名查找,删除该学生资料"
6.查找并显示学生资料"
7.按姓名查找,修改该学生资料"
8.从文件中读入数据"
0.储存学生资料并退出系统"
setfill('
='
)<
setw(48)<
="
请选择(0-8):
c=getchar();
return(c-'
intInput(Studentstud[],intn)//输入数据。
inti=0;
charsign,x[10];
sign!
='
n'
&
&
sign!
N'
班级:
cin>
>
stud[n+i].cla;
学号:
stud[n+i].num;
姓名:
stud[n+i].name;
编译原理:
stud[n+i].byyl;
计算机组成原理:
stud[n+i].jsjzc;
数据库:
stud[n+i].sjk;
计算机英语:
stud[n+i].jsjyy;
gets(x);
setw(10)<
还有要输入的信息吗?
(y/n)"
sign;
i++;
return(n+i);
voidDisplay(Studentstud[],intn)//输出数据。
inti;
-'
setw(65)<
-"
班级学号姓名编译原理计算机组成原理数据库计算机英语"
for(i=1;
i<
n+1;
i++)
printf("
\t\t%-9s%-9s%-9s%-9s%-9s%-9s%-9s\n"
stud[i-1].cla,stud[i-1].num,stud[i-1].name,stud[i-1].byyl,stud[i-1].jsjzc,stud[i-1].sjk,stud[i-1].jsjyy);
if(i>
1&
i%10==0)
setw(35)<
voidSort(Studentstud[],intn)//按名字排序。
inti,j;
chart[20];
for(i=0;
n-1;
for(j=0;
j<
n-1-i;
j++)
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[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].sjk);
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);
排序成功!
intInsert(Studentstud[],intn)//插入一条学生信息。
charx[10];
stud[n].cla;
stud[n].num;
stud[n].name;
stud[n].byyl;
stud[n].jsjzc;
stud[n].sjk;
stud[n].jsjyy;
n++;
插入成功!
return(n);
intDelete(Studentstud[],intn)//按名字查找信息,删除信息。
chars[20];
inti=0,j;
s;
while(strcmp(stud[i].name,s)!
=0&
n)i++;
/*查找判断*/
if(i==n)
\t\t\t没有发现该学生资料!
\n"
/*返回失败信息*/
}
for(j=i;
j++)/*删除操作*/
{
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);
当前信息已删除成功!
/*返回成功信息*/
return(n-1);
voidQuery(Studentstud[],intn)//按名字查找信息
n)
/*输入失败信息*/
return;
stud[i].num<
stud[i].byyl<
stud[i].jsjzc<
stud[i].sjk<
stud[i].jsjyy<
intXiugai(Studentstud[],intn)//修改信息。
n=Delete(stud,n);
输入你要修改的学生资料"
n=Insert(stud,n);
修改完成"
intAddfromText(Studentstud[],intn)//从文件中读入数据。
inti=0,num;
FILE*fp;
charfilename[20];
输入文件名:
filename;
if((fp=fopen(filename,"
rb"
))=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 课程设计 报告