学生成绩管理系统C编程分析方案.docx
《学生成绩管理系统C编程分析方案.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C编程分析方案.docx(19页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C编程分析方案
《C++程序设计》
课程设计报告
设计题目:
学生成绩管理系统
专业:
计算机科学与技术<网络工程)
班级:
学号:
姓名:
指导老师:
日期:
2009.05.31
一、设计任务与要求…………………………………………3
1.设计内容………………………………………………3
2.课程设计的要求………………………………………3
二、系统分析<需求分析)…………………………………3
1.需求分析…………………………………………3
2.系统性能要求……………………………………3
3.系统的功能分析……………………………………3
4.系统功能模块……………………………………3
5.模块框架图…………………………………………3
三、系统设计与实现……………………………………4
1.界面设计…………………………………………4
2.功能设计与实现………………………………4
四、测试结果……………………………………4
五、总结…………………………………………5
六、参考资料……………………………………5
附录:
源程序……………………………………5
一、设计任务与要求
1.设计内容:
a.设计四个类;学生类<描述学生基本信息);成绩类:
班级类;课程类<描述课程信息:
课程编号,科目名称<如高等数学,大学英语等);学生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入;
b.能按学期,按班级完成对学生成绩的录入,修改,能按班级统计学生的成绩。
求学生的总分及平均分。
并能根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单。
能按班级输出学生的成绩单。
–设置学生的成绩信息:
学生学号、姓名、所选课程名称、平时成绩、期末成绩、平时成绩所占百分比
–计算学生总评成绩:
总评成绩=平时成绩*平时成绩所占百分比+期末成绩*<1-平时成绩所占百分比)
–显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信息。
分单人显示和以班输出<班成绩单格式输出到文件)
–注意,至少一个班,30人三门课
2.课程设计的要求:
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序.对给出的程序源代码要给出各部分的详细注释.自己根据能力及需要添加相应功能模块,增强模拟系统功能。
包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计,数据库中的表、视图<如果使用)、索引的结构和定义、触发器、存储过程、课程设计体会。
二、系统分析<需求分析)
1.需求分析:
a.能对学生各科成绩进行录入:
。
b.能对学生的成绩进行增加。
c.能对学生的成绩进行删除。
d.能对学生的成绩进行修改。
e.能对学生的成绩按总成绩,姓名,进行查询。
f.能输出学生的所有数据。
g.能进行成绩统计
h能进行总分查询排名。
2.系统性能要求:
a.系统安全、可靠;
b.功能齐全;
c.操作方便、界面友好;
d易于维护和扩充。
3.系统的功能分析:
资料维护:
系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。
系统功能:
可以对数据表中的信息进行浏览。
系统查询:
可以对学生的信息进行查询。
4.系统功能模块
学生成绩查询系统有:
成绩录入、增加、删除、修改,数据查询,排序显示构成。
5.模块框架图
三、系统设计与实现
1.界面设计
程序运行后会出现一个简捷的窗口,便于用户查询数据。
2.功能设计与实现
通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。
应用系统主控界面包括记录编辑和记录查询等功能模块。
记录编辑功能完成学生成绩记录编辑和记录查询功能。
记录查询功能可以对数据各分类的记录进行查询
四、测试结果
每一个case都能执行,但是有很多的地方都不够完善,例如:
在总成绩排序中,只能输出总成绩,不能单独的输出学生的相应的信息;每次进行别的操作之前都要在进行一次数据的录入,不能直接对原有的文件进行读取。
五、总结
此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。
我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
六、参考资料
C++程序设计谭浩强清华大学出版社
附录:
源程序
#include
#include
#include
#include
#include
usingnamespacestd。
classTstu//通过定义一个类来定义数据录入的函数
{
charname[20]。
intnumber。
floatmath,cpp,english,average,sum。
public:
Tstu(>
{}。
Tstu(charn[20],intnum,floatma,floatcj,floateng>。
floatgetsum(>。
//得到总分的函数
floatgetaver(>。
//得到平均分的函数
friendvoidmain(>。
//将主函数定义为友元函数,方便访问类中的成员
}。
Tstu:
:
Tstu(charn[20],intnum,floatma,floatcj,floateng>
{
strcpy(name,n>。
//得到姓名
number=num。
//得到学号
math=ma。
//得到数学成绩
cpp=cj。
//得到c++成绩
english=eng。
//得到英语成绩
}
floatTstu:
:
getsum(>//得到总分的函数
{
sum=cpp+english+math。
returnsum。
}
floatTstu:
:
getaver(>//得到平均分的函数
{
average=getsum(>/3。
returnaverage。
}
voidmain(>
{
cout<<"*****************欢迎来到学生成绩查询系统*****************"<cout<<"请选择您需要的操作!
"<//菜单的输出
cout<<"操作:
"<cout<<"(1>数据录入"<cout<<"(2>增加学生"<cout<<"(3>删除学生"<cout<<"(4>修改数据"<cout<<"查询:
"<cout<<"(5>按总成绩查询"<cout<<"(6>按姓名查询"<cout<<"(7>输出所有学生的数据"<cout<<"成绩统计:
"<cout<<"(8>每个学生的平均成绩"<cout<<"(9>各科不及格人数"<cout<<"排名:
"<cout<<"(10>按总分查询排名"<cout<<"(11>退出"<cout<<"选择相关操作请输入相对的括号里的阿拉伯数字及字母!
"<intp=0。
//全局变量,用于选择菜单时的输入
charw。
//全局变量,用于在大项中选择是否继续操作
Tstu*s[100]。
//类定义的指针将所录入的数据按类中的形式分别存储
ofstream*file[100]。
inti=0。
//全局变量,用于做每个录入数据的下标
intj=0。
intchris1=0。
//用于判断do—while语句
do//判断输入是否正确
{
cin>>p。
if((p>=1&&p<=11>>
chris1=1。
else
cout<<"指令错误!
请重新输入:
"<}while(chris1==0>。
do{
switch(p>
{
case1:
//数据的录入
{
charc。
//用于在小项中选择是否继续操作
charname[20]。
intnumber。
floatmath,cpp,english。
do{
cout<<"请输入姓名:
"<cin>>name。
cout<<"请输入学号:
"<cin>>number。
cout<<"请输入数学成绩:
"<cin>>math。
cout<<"请输入C++成绩:
"<cin>>cpp。
cout<<"请输入英语成绩:
"<cin>>english。
fstreamoutfile,infile。
//作一个文本文档在文件夹中用于显示所录入的数据
outfile.open("f1.txt",ios:
:
out|ios:
:
app>。
if(!
file>
{cout<<"f1.txtcannotopen.\n"。
return。
}
outfile<"<"<