C++课程设计报告学生成绩管理系统.docx
《C++课程设计报告学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告学生成绩管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
![C++课程设计报告学生成绩管理系统.docx](https://file1.bdocx.com/fileroot1/2022-11/17/30ffee31-ca41-4dd1-8dde-7736af66aff4/30ffee31-ca41-4dd1-8dde-7736af66aff41.gif)
C++课程设计报告学生成绩管理系统
C++课程设计报告(学生成绩管理系统)
学生成绩管理系统
说明:
该课程设计包含两个部分,一个为纯dos系统下的控制台程序,用C++编写;另一个为有界面的MFC项目。
纯dos系统下的控制台程序
1、设计要求...........................................3
2、设计分析...........................................3
3、调试说明...........................................4
4、源代码.............................................8
5、实验总结..........................................21
有界面的MFC项目
1、设计内容...........................................22
2、设计说明..........................................22
3、设计步骤..........................................22
4、运行演示..........................................27
5、实验总结..........................................29
纯dos系统下的控制台程序
1、设计要求
现有学生成绩信息,内容如下:
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
请用C/C++编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:
功能要求:
(1) 信息维护:
要求:
学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:
增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:
查询时可实现按姓名查询、按学号查询
(3) 成绩统计:
要求:
A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。
(4) 排序:
能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)
其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
2、设计分析
(1)需求分析:
该程序要能实现对学生成绩信息的增加、删除、修改,实现对学生按姓名查询,按学号查询显示,对任意一个课程名和分数段的学生人数进行输出并统计人数,最好还要根据用户的需求对学生成绩排序。
(2)系统性能要求:
a.系统安全、可靠;
b.功能齐全;
c.操作方便、界面友好;
d.易于维护和扩充。
(3)系统功能模块:
学生成绩管理系统包括:
增加、删除、修改、显示、信息查询、成绩统计、排序几个部分构成。
(4)模块框架图
3、调试说明
运行程序后,现出来一个简洁的主界面。
若没有学生信息,显示“这是一个新系统,无学生信息,请先输入。
”若已存在学生信息,显示“读取学生信息成功!
”
一秒钟后,自动切入主菜单界面。
首先选择1,增加学生信息。
录入学生信息后选择4,显示学生信息。
选择2,删除学生信息,输入要删除的学生姓名,这里我输入的是王露,显示剩下几位同学的信息。
选择3,修改学生信息,输入要修改的学生姓名,然后输入新的学生信息,这里我修改的是张明明,显示修改后的学生信息。
将张明明和王露的信息重新输入。
输入5,信息查询,出来选择界面,“1、按学生姓名查找”、“2、按学生学号查找”,输入1,运行结果如下:
输入2,运行结果如下:
输入6,排序,显示选择界面,用户可根据需求选择科目和升降序,这里我是按语文成绩降序排序。
输入7,成绩统计,用户自行输入要统计的科目和分数段进行统计。
这里我统计的是英语成绩在60—90的学生。
4、源程序代码
#include
#include
#include
#include
#include
#include
usingnamespacestd;
#defineHEADER1"-----------------------------学生成绩----------------------------\n"
#defineHEADER2"|姓名|学号|数学|语文|英语|总分|\n"
#defineHEADER3"|----------|----------|----------|----------|----------|----------|\n"
classStudent//定义学生类
{
public:
charname[20];
charid[20];
intmath;
intchinese;
intenglish;
intsum;
Student*next;
voidinput();
voidReadFile(istream&in);
voidshow();
};
voidStudent:
:
input()//输入学生信息函数
{
cout<<"\n\t\t请输入:
"<cout<<"\t\t姓名:
";
cin>>name;
cout<<"\t\t学号:
";
cin>>id;
cout<<"\t\t数学成绩:
";
cin>>math;
cout<<"\t\t语文成绩:
";
cin>>chinese;
cout<<"\t\t英语成绩:
";
cin>>english;
sum=math+chinese+english;
}
voidStudent:
:
ReadFile(istream&in)//读取文件
{
in>>name>>id>>math>>chinese>>english>>sum;
}
voidStudent:
:
show()//输出学生信息
{
cout<<"|"<cout<<"|----------|----------|----------|----------|----------|----------|\n";
}
classStudentMassage//定义学生信息类,包含各项处理功能
{
public:
StudentMassage();
~StudentMassage();
voidShowMenu();
voidDisplay();
voidAddItem();
voidFind();
voidsave();
voidModifyItem();
voidRemoveItem();
voidSwap(Student*p1,Student*p2);
voidSort();
intListCount();
intCount();
private:
Student*Head,*End;
ifstreamin;
ofstreamout;
Student*FindItem(char*name);
Student*FindId(char*id);
};
Student*StudentMassage:
:
FindItem(char*name)
{
Student*p;
for(p=Head;p->next!
=End;p=p->next)
if(!
strcmp(p->next->name,name))
returnp;
returnNULL;
}
Student*StudentMassage:
:
FindId(char*id)
{
Student*p;
for(p=Head;p->next!
=End;p=p->next)
if(!
strcmp(p->next->id,id))
returnp;
returnNULL;
}
StudentMassage:
:
StudentMassage()//构造函数
{
Head=newStudent;
Head->next=newStudent;
End=Head->next;
in.open("sort.txt");
if(!
in)
cout<<"\n\t\t这是一个新系统,无学生信息,请先输入。
"<else
{
while(!
in.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')
break;
End->next=newStudent;
End=End->next;
}
in.close();
cout<<"\n\t\t读取学生信息成功!
"<}
}
StudentMassage:
:
~StudentMassage()//析构函数
{
Student*temp;
save();
for(temp;Head->next!
=End;)
{
temp=Head->next;
Head->next=Head->next->next;
deletetemp;
}
deleteHead,End;
}
voidStudentMassage:
:
ShowMenu()//显示菜单
{
cout<<"\n\n\t\t\t\t主菜单"<cout<<"\t\t****************************************"<cout<<"\t\t1、增加学生信息2、删除学生信息"<cout<<"\t\t3、修改学生信息4、显示学生信息"<cout<<"\t\t5、信息查询6、排序"<