学生成绩管理系统课程设计报告Word文件下载.docx
- 文档编号:20649670
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:24
- 大小:479.83KB
学生成绩管理系统课程设计报告Word文件下载.docx
《学生成绩管理系统课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
所以,必须建立一个类student,用来记录班级,学号,姓名和成绩。
此外还得建立一个类对象数组s1[80],用来记录多个学生的成绩记录。
模块设计与分析
(1)输入学生资料模块:
主要功能用来对学生的成绩进行收集和输入。
在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。
在准确输入学生资料后,就可以对该学生的各科成绩进行录入。
该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。
(2)输出学生资料模块:
主要功能用来对学生的成绩进行输出。
在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。
具体包括学生的班级,学号,姓名和各科成绩。
在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。
(3)按条件进行排列模块
主要功能是用来对学生的资料进行排序。
在系统保存学生资料,成绩的前提下,
使用此功能可以对学生的资料进行排序,这样就方便查找同一类同学的资料。
(4)添加学生资料模块
主要功能是用来添加学生资料,成绩。
如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。
如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。
(5)按姓名查找,删除该学生资料模块
主要功能是用来删除学生资料。
在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。
由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化
(6)查找并显示学生资料模块
主要功能是用来查找学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息
(7)按姓名查找,修改学生资料模块
主要功能是用来修改学生资料。
在系统保存了某学生资料的前提下,想要查找该学生
资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以
修改该学生的资料,成绩等信息。
(8)把数据保存至文件模块
主要功能是用来把学生数据保存至txt文件。
这样一些资料可以用Word文档,进行编辑故在此模块中增加了导出数据的功能。
这样就方便很多,不用把学生资料一个一个添加至word文档,节省了很多时间精力。
代码编写分析
在main()函数中主要运用do-while循环语句和switch()-case选择判断语句来调用相关功能模块。
系统的运行是在一个永真的循环里进行的,只有在主界面并选择“退出”时,才
会跳出永真循环,并退出程序。
for(;
;
)
{
switch(menu())
{
类中有两个成员函数一个用来输入是调用,一个是在修改的时候调用
voidStudent1(charcla1[],doublenum1,charname1[],doublechinese1,doublemath1,doubleenglish1,doublewuli1)
voidStudent2(doublechinese1,doublemath1,doubleenglish1,doublewuli1)
voidtot()//计算学生成绩的总分
voidave()//计算学生成绩的平均分
doublegetchinese()//将学生的语文成绩取出
doublegetmath()//将学生的数学成绩取出
doublegetenglish()//将学生的英语成绩取出
doublegetwuli()//将学生的物理成绩取出
doublegetnum()//将学生的学号取出
doublegetzongfen()//将学生的总分取出
doublegetaverage()//将学生的平均分取出
char*getname()//将学生的名字取出
char*getcla()//将学生的班级取出
voidpf()//用于学生的成绩输出
ofstreamfout("
d:
\\studentinformation.txt"
ios:
:
out);
//用于打开文件将数据存入
结构图:
运行与测试程序调试:
如图是系统的主界面
如图是输入学生资料的界面
如图是将学生资料保存至文件的界面
如图是将学生成绩输出的界面
如图是按照学号修改学生成绩
如图是按照学号删除学生成绩
如图是计算学生的总分和平均分
如图是按条件查找学生成绩的界面
如图是按照条件对成绩排序
如图是按班级统计各个学科的总分平均分的界面
如图是退出系统的提示界面
三、课程设计总结
这是一个综合性较强,很实际的一个编程实例。
刚学C++时候,感觉类和对象还挺有意思的,刚接触到这个题目时,觉得应该没什么大问题吧,因为,我自认为一些基本知识点都已经掌握了。
可是,真的当我动手编程的时候,才发现并没有想象中的那么简单。
单个知识点是弄清了,但是,将所有的知识点综合起来运用时,就碰到了各种各样的问题了。
有时候,一个错误得找好久,才能发现。
本系统的重点就是要会建立一个学生类student,用来存放一个学生的成绩记录,相当于一个结构体的功能吧。
类里的各个功能的实现。
总的来说,添加,显示,查找,这三个功能比较容易,但是,删除,保存这三个功能就需要花点心思了,可能
是平时用的比较少吧,生疏了。
可见只有通过平时多加练习,才能有助于自己巩固知识点。
最后想说的是,调试程序真的很关键。
调试程序需要较大的耐心。
可能调试程序的时间比自己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员必须了解,也必须接受的事实。
有好几次,几个错误让我很是头疼啊,很想删了,重新来过,可是最后发现,还是得有耐心去调试程序。
通过这个实验的练习,我也学到了很多东西,特别是加深了对类和对象理解和应用方面,也很谢谢老师给我的帮助。
四、源代码
#include<
iostream>
string>
stdio.h>
iomanip>
stdlib.h>
conio.h>
#include<
fstream>
usingnamespacestd;
classStudent
{
private:
charcla[10];
charname[10];
doublenum;
doublechinese;
doublemath;
doubleenglish;
doublewuli;
doublesum;
doubleaverage;
doubletotal;
boolStatus;
public:
voidStudent1(charcla1[],doublenum1,charname1[],doublechinese1,doublemath1,doubleenglish1,doublewuli1)
chinese=chinese1;
math=math1;
english=english1;
wuli=wuli1;
num=num1;
strcpy(name,name1);
strcpy(cla,cla1);
}
voidStudent2(doublechinese1,doublemath1,doubleenglish1,doublewuli1)
voidtot()
total=chinese+math+english+wuli;
voidave()
average=(chinese+math+english+wuli)/4;
doublegetchinese()
returnchinese;
doublegetmath()
returnmath;
doublegetenglish()
returnenglish;
doublegetwuli()
returnwuli;
doublegetnum()
returnnum;
doublegetzongfen()
returntotal;
doublegetaverage()
returnaverage;
char*getname()
returnname;
char*getcla()
returncla;
voidpf()
cout<
<
setw(10)<
cla<
setw(7)<
num<
setw(9)<
name<
setw(6)<
chinese<
math<
english<
wuli<
setw(8)<
average<
total<
endl;
voidpf1()
boolIsEmpty()
returnStatus;
voidSet()
Status=false;
voidClear()
Status=true;
};
intmenu()
charc;
for(;
c<
'
0'
||c>
10'
system("
cls"
);
"
学生成绩管理系统"
============================"
1.输入学生成绩"
2.将学生信息写到文件中"
3.输出学生成绩"
4.修改学生成绩"
5.删除学生成绩"
6.计算每位学生的总分和平均分"
7.按学号或姓名或班级查询学生成绩"
8.成绩排序"
9.按班级统计学科总分、平均分"
0.存储并退出系统"
请选择(1~9,0:
退出):
制作者:
佘天豪"
c=getchar();
return(c-'
}
voidmain()
intt,i=0,j;
intnum;
intk1=0,k2=0;
doublek3=0;
doublechinese,math,english,wuli;
doublesum=0;
doublesum1=0;
doublesum2=0;
doublesum3=0;
doublesum4=0;
doublesum5=0;
intk=0;
Students1[80];
charc1[10][10];
ofstreamfout("
case1:
{
charsign;
intflag;
system("
cout<
setw(15)<
"
输入学生资料"
while(sign!
='
n'
&
sign!
N'
{
cout<
班级:
cin>
>
cla;
学号:
num;
姓名:
name;
do
{
flag=0;
cout<
语文成绩:
cin>
chinese;
if(chinese>
150||chinese<
1)
cout<
对不起,请输入1-150之间的数字!
!
\n"
else
flag=1;
}while(flag==0);
数学成绩:
math;
if(math>
150||math<
英语成绩:
english;
if(english>
150||english<
物理成绩:
wuli;
if(wuli>
150||wuli<
s1[i].Student1(cla,num,name,chinese,math,english,wuli);
==>
提示:
是否继续写入学生成绩?
(y/n)"
sign;
i++;
}
t=i;
}
system("
pause"
break;
case2:
cout<
数据将写入D盘的studentinformation文件,若没有该文件则先建立文件"
fout<
班级"
学号"
姓名"
<
语文"
数学"
英语"
物理"
for(i=0;
i<
t;
i++)
fout<
s1[i].getcla();
fout<
s1[i].getnum()<
s1[i].getname()<
s1[i].getchinese()<
s1[i].getmath()
<
s1[i].getenglish()<
s1[i].getwuli();
fout.close();
case3:
学生成绩如下:
s1[i].pf1();
case4:
请输入你要修改的学号:
cin>
if(s1[i].getnum()==num)
break;
请输入你要修改的成绩:
chinese>
english>
math>
s1[i].Student2(chinese,math,english,wuli);
case5:
请输入你要删除成绩的学号:
for(j=i;
j<
j++)
s1[j]=s1[j+1];
t=t-1;
case6:
计算学生的总分和平均分"
平均分"
总分"
s1[i].tot();
s1[i].ave();
s1[i].pf();
case7:
intnumber;
查找学生"
请输入你要查询学生成绩的方式(1按学号,2按姓名,其余数字均为按班级)"
number;
if(number==1)
请输入你要查询成绩的学号:
cin>
elseif(number==2)
请输入你要查询成绩的姓名:
else
请输入你要查询的成绩的班级:
if((num==s1[i].getnum())||(strcmp(s1[i].getname(),name)==0)||(strcmp(s1[i].getcla(),cla)==0))
case8:
成绩排序"
inta;
Students2;
请输入你要成绩排序的方式(1按总分,2按平均分):
a;
if(a==1)
for(i=0;
for(j=0;
t-i-1;
if(s1[j].getzongfen()<
s1[j+1].getzongfen(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 课程设计 报告