学生综合测评系统C设计报告Word文档格式.docx
- 文档编号:21944695
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:40
- 大小:324.45KB
学生综合测评系统C设计报告Word文档格式.docx
《学生综合测评系统C设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生综合测评系统C设计报告Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
//学号
stringname;
//姓名
stringsex;
//性别
stringaddress;
//家庭住址
stringphone;
//联系电话
doubleenglish;
//英语成绩
doublemath;
//数学成绩
doublephysics;
//物理分数
doubleaverage;
//考试成绩
doublegrade1;
//同学互评分
doublegrade2;
//品德成绩
doublegrade3;
//任课教室评分
doublegradesum;
//综合测评成绩
intranking1;
//考试名次
intranking2;
//综合测评名次
};
为了方便外部函数进行操作,以上全为共有变量。
定义一个对象数组Studentstud[100];
方便对Student类中数据进行输入和输出以及排序等等功能。
外部操作函数有:
voidread()//从文件中读取学生信息函数
voidshow()//显示学生信息函数
voidsave()//保存学生信息函数
voidSR()//输入学生信息函数
voidSC()//删除学生信息函数
voidTJ()//添加学生信息函数
voidXG()//修改学生信息函数
voidPM1()//计算考试成绩以及排名函数
voidPM2()//计算综合测评成绩以及排名函数
voidsn()//按学生学号查找学生信息
voidsm()//按学生姓名查找学生信息
voidFire()//学生信息管理界面
voidstatistics()//学生成绩统计管理界面
voidinquiry()//学生查询管理界面
voidabout()//关于系统界面
voidthanks()//退出程序界面
主函数为学生测评系统主界面
3、详细设计
voidread()
charfilename[20];
cout<
<
"
从文件中读取信息!
endl;
请输入文件名:
cin>
>
filename;
请问要读取几名学生信息:
n;
ifstreaminfile;
infile.open(filename,ios:
:
in|ios:
out);
if(!
infile)
{
cerr<
openerror!
exit
(1);
}
inti=0;
do
infile>
stud[i].num>
stud[i].name>
stud[i].sex>
stud[i].address
>
stud[i].phone>
stud[i].english>
stud[i].math
stud[i].physics>
stud[i].grade1
stud[i].grade2>
stud[i].grade3;
i++;
while(!
infile.eof());
infile.close();
读取成功!
以上为读取文件中学生信息的函数,当信息成功读取后才可进行修改或添加或删除,所以在许多外部函数里面都必须要有读取函数的功能为前提。
voidsave()
inti;
将记录保存在文件夹!
;
ofstreamoutfile(filename);
outfile)
//保存时按学号排序,采用冒泡排序法实现数组内的排序
……
for(i=0;
i<
i++)
outfile<
stud[i].num<
"
stud[i].name<
stud[i].sex<
stud[i].address<
<
stud[i].phone<
stud[i].english<
stud[i].math<
stud[i].physics<
<
stud[i].grade1<
stud[i].grade2<
stud[i].grade3<
outfile.close();
保存成功!
}
在每次保存时都先按学号排序,保证信息是按学号从小到大的顺序存入文件。
在输入、修改、添加和删除函数的末端都有保存函数以实现信息的保存。
voidXG()
read();
begin:
stringfind_name;
请输入你要修改的学生名字:
find_name;
if(stud[i].name==find_name)
{……}//输出修改前学生信息
if(stud[i].name!
=find_name)
cout<
can'
tfindthisname"
请重新查找!
gotobegin;
请输入新的信息:
学号:
'
'
cin>
stud[i].num;
修改成功,是否保存?
(y/n)"
press;
switch(press)
case'
y'
:
save();
break;
default:
不保存!
基于数组形式对数据进行修改。
基本上所有函数都是基于数组进行操作,像删除函数是用循环先匹配类中的一个数据,找到之后再以此开始用对象数组后面的替换掉前一个,以实现删除功能。
stringSC_name;
请输入你要删除的学生名字:
inti=0;
cin>
SC_name;
while(stud[i].name!
=SC_name&
&
i<
n)
//查找判断
if(stud[i].name==SC_name)
{
for(intj=i;
j<
n+1;
j++)
{
stud[i].num=stud[i+1].num;
stud[i].name=stud[i+1].name;
}
考试成绩排名和综合测评成绩排名都是采用冒泡排序法实现:
doubletemp[100];
for(inta=0;
a<
a++)//计算考试成绩并赋值给temp
stud[a].average=(stud[a].english+stud[a].math+stud[a].physics)/3;
temp[a]=stud[a].average;
doublet;
for(intj=0;
j++)//temp中的考试成绩按从大到小冒泡排序
{for(intk=0;
k<
n-1-j;
k++)
{f(temp[k]<
temp[k+1])
{t=temp[k];
temp[k]=temp[k+1];
temp[k+1]=t;
}}}
for(intq=0;
q<
q++)//判定考试成绩名次
{for(intp=0;
p<
p++)
{if(stud[p].average==temp[q])
stud[p].ranking1=q+1;
}}
最后各种界面函数通过switch语句进行调用,以实现各种功能来完成此系统:
voidFire()//学生信息管理系统界面
{while(choose!
=0)
{//输出界面样式略。
\t\t请输入0-5之间的任意一数字:
choose;
switch(choose)
{case1:
system("
cls"
);
SR();
case2:
SC();
case3:
TJ();
case4:
XG();
case5:
show();
cout<
\t\t输入错误或返回主界面"
\n'
4、用户使用手册
4.1环境设置
将已创建扩展名为cpp在VC6.0中运行即可,如图所示。
4.2操作步骤
编译每个扩展名为.cpp的文件,如果有编译错误,则根据提示修改,否则编译成功。
最后编译、连接和运行测试程序文件,输入数据并测试程序的各种操作。
如图所示。
在当前的Dos窗口中,输入要执行的功能号码,如输入1,然后单击回车,则显示如图所示。
此为学生信息管理界面,输入要执行的功能号码,如输入1,然后单击回车,则显示如图所示。
按提示输入3个学生信息并保存至文件1.txt中,完成后返回学生信息管理界面,输入要执行的功能号码,如输入5,然后单击回车,然后输入文件名1.txt和要读取几名学生信息,如输入3,则显示如图所示。
如上所示,按照提示内容输入功能号并回车确认就能正确使用本系统。
5、使用的主要技术
文本文件的读写、数组。
6、总结
经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程设计和进一步学习打下了坚实的基础。
在为期一周的的C++课程设计中,我体会颇多,学到了很多东西。
我加强了对C++程序设计这门课程的认识,并且复习了自己以前学过的知识。
这些都使得我对计算机语言的学习有了更深入的认识。
像学生测评系统这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。
而这些问题,并不是只靠课本就可以轻易解决的。
所以,锻炼了我们独立思考和解决问题的能力。
特别是向老师提问时,老师教会了我调试程序的方法,让我更容易发现自己所犯的错误。
在老师和同学的帮助下,通过自己的努力,终于完成了这次学生测评系统的课程设计,虽然还有缺陷,但过程中所摸索到的经验是一笔宝贵的财富。
总而言之,这次课程设计让我收获很大。
附录
#include<
iostream>
fstream>
string>
iomanip>
usingnamespacestd;
charpress;
intchoose=1;
intn;
Studentstud[100];
//————————————————读取学生信息——————————————————
//---------------------------显示学生信息-------------------------------
voidshow()
学号"
姓名"
性别"
家庭地址"
联系方式"
<
英语"
高数"
物理"
同学互评"
品德成绩"
教师评分"
for(inti=0;
cout.width(5);
stud[i].name;
stud[i].sex;
cout.width(8);
stud[i].address;
stud[i].phone;
cout.width(6);
stud[i].english;
stud[i].math;
stud[i].physics;
stud[i].grade1;
stud[i].grade2;
//————————————————保存学生信息——————————————————
//------------保存时按学号排序-----------------
inttemp[100];
a++)
temp[a]=stud[a].num;
intt;
for(intk=0;
if(temp[k]>
t=temp[k];
temp[k]=temp[k+1];
temp[k+1]=t;
}
}
inttempnum;
stringtempname;
stringtempsex;
stringtempaddress;
stringtempphone;
doubletempenglish;
doubletempmath;
doubletempphysics;
doubletempgrade1;
doubletempgrade2;
doubletempgrade3;
q++)
for(intp=0;
if(stud[p].num==temp[q])
tempnum=stud[p].num;
tempname=stud[p].name;
tempsex=stud[p].sex;
tempaddress=stud[p].address;
tempphone=stud[p].phone;
tempenglish=stud[p].english;
tempmath=stud[p].math;
tempphysics=stud[p].physics;
tempgrade1=stud[p].grade1;
tempgrade2=stud[p].grade2;
tempgrade3=stud[p].grade3;
stud[p].num=stud[q].num;
stud[p].name=stud[q].name;
stud[p].sex=stud[q].sex;
stud[p].address=stud[q].address;
stud[p].phone=stud[q].phone;
stud[p].english=stud[q].english;
stud[p].math=stud[q].math;
stud[p].physics=stud[q].physics;
stud[p].grade1=stud[q].grade2;
stud[p].grade2=stud[q].grade2;
stud[p].grade3=stud[q].grade3;
stud[q].num=tempnum;
stud[q].name=tempname;
stud[q].sex=tempsex;
stud[q].address=tempaddress;
stud[q].phone=tempphone;
stud[q].english=tempenglish;
stud[q].math=tempmath;
stud[q].physics=tempphysics;
stud[q].grade1=tempgrade1;
stud[q].grade2=tempgrade2;
stud[q].grade3=tempgrade3;
//————————————————输入学生资料——————————————————
voidSR()
请根据你的需要输入学生的个数:
请输入第"
a+1<
个学生资料:
stud[a].num;
姓名:
stud[a].name;
性别:
stud[a].sex;
家庭住址:
stud[a].address;
联系方式:
stud[a].phone;
英语成绩:
stud[a].english;
物理成绩:
stud[a].physics;
高数成绩:
stud[a].math;
同学互评:
stud[a].grade1;
品德成绩:
stud[a].grade2;
任课教师评分:
stud[a].grade3;
co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 综合 测评 系统 设计 报告