C语言学生成绩管理系统.docx
《C语言学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
C语言学生成绩管理系统
C语言学生成绩管理系统
1、
系统总体框架
设计目的:
(1)基本掌握面向过程程序设计的基本思路和方法;
(2)达到熟练掌握C语言的基本知识和技能;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题
主
菜
单
输入学输出学按学生查找并储存学按姓按姓添加从文件
生资料生资料姓名进显示学生资料
名查名查模块模块学生中读入行排列生资料并退出
模块模块系统模找,删找,修资料数据模块
模块除该学改学生块
生资料资料模
模块块
图1
2、功能分析
“学生成绩管理系统”包括九个模块:
输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。
每个模块既相互联系又相互独立。
本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方
便对成绩的各项管理操作。
本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。
3、模块设计与分析
(1)输入学生资料模块:
主要功能用来对学生的成绩进行收集和输入。
在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。
在准确输入学生资料后,就可以对该学生的各科成绩进行录入。
该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。
(2)输出学生资料模块:
主要功能用来对学生的成绩进行输出。
在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。
具体包括学生的班级,学号,姓名和各科成绩。
在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。
(3)按学生姓名进行排列模块
主要功能是用来对学生的资料按姓名进行排序。
在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
(4)添加学生资料模块
主要功能是用来添加学生资料,成绩。
如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。
如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。
(5)按姓名查找,删除该学生资料模块
主要功能是用来删除学生资料。
在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。
由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化
(6)查找并显示学生资料模块
主要功能是用来查找学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息
(7)按姓名查找,修改学生资料模块
主要功能是用来修改学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。
)从文件中读入数据模块(8
主要功能是用来从文件中读入学生数据。
由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。
这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。
(9)储存学生资料并退出系统模块
主要功能是用来储存学生资料。
在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。
4、类的设计与分析
Student类类图
student
numclanamebyyljsjzcsjkjsjyy
typedefclass
{
public:
charnum[10];
charcla[10];
charname[20];
charbyyl[10];
charjsjzc[20];
charsjk[10];
charjsjyy[20];
charjsdl[20];
}Student;
表1Student类说明表
名称属性说明num数据成员说明学生学号cla数据成员说明学生班级name数据成员说明学生名字byyl数据成员说明学生数据结构成绩jsjzc数据成员说明学生离散数学成绩sjk数据成员说明学生大学物理成绩jsjyy数据成员说明学生大学英语成绩Jssl数据成员说明学生模拟电路成绩
5、特色算法分析
功能:
定义菜单函数,通过输出函数显示系统功能。
利用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;
}
}
}
6、功能测试
图1学生成绩管理系统主菜单页面
图二为输入学生资料模块
图三为输出学生资料模块
图四按学生姓名进行排列模块
图五为添加学生资料模块
图六为按姓名查找,删除该学生资料模块
图七为查找并显示学生资料
图八为按姓名查找,修改学生资料模块
图九为从文件中读入数据模块
图十为储存学生资料并退出系统模块
、存在的不足与对策7
本学生成绩管理系统由10个模块组成,每个模块相互联系又相互独立。
这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。
只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。
而且在每个模块也有不足的地方,比如在输入学生资料时,对每个信息项没有严格的规定,可以输入任何的字符。
同时有些模块还不能实现本应该有的功能,这有待以后努力,争能够实现该有的功能。
在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。
如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。
但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。
因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。
为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。
现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已
不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。
在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。
一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩。
8、程序源代码
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
typedefclass
{
public:
charnum[10];
charcla[10];
charname[20];
charbyyl[10];
charjsjzc[20];
charsjk[10];
charjsjyy[20];
charjsdl[20];
}Student;
Studentstu[80];
intmenu()
{
charc;
for(;c<'0'||c>'8';)
{
system("cls");
cout<<"欢迎使用学生成绩管理系统~~"<cout<<"编程人员:
陈家文";
cout<cout<<"******************************学生成绩管理系统*********************