学生综合测评系统C++设计报告Word下载.docx
- 文档编号:18570004
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:20
- 大小:20.63KB
学生综合测评系统C++设计报告Word下载.docx
《学生综合测评系统C++设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《学生综合测评系统C++设计报告Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
classStudent
{
public:
intnum;
um>
>
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(!
());
();
cout<
<
"
读取成功!
endl;
以上为读取文件中学生信息的函数,当信息成功读取后才可进行修改或添加或删除,所以在许多外部函数里面都必须要有读取函数的功能为前提。
voidsave()
inti;
charfilename[20];
将记录保存在文件夹!
请输入文件名:
;
cin>
filename;
ofstreamoutfile(filename);
if(!
outfile)
{
cerr<
openerror!
um<
"
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<
保存成功!
}
在每次保存时都先按学号排序,保证信息是按学号从小到大的顺序存入文件。
在输入、修改、添加和删除函数的末端都有保存函数以实现信息的保存。
voidXG()
read();
begin:
stringfind_name;
请输入你要修改的学生名字:
find_name;
for(i=0;
i<
n;
i++)
if(stud[i].name==find_name)
{……}ame!
=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)
ame==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++)verage=(stud[a].english+stud[a].math+stud[a].physics)/3;
temp[a]=stud[a].average;
doublet;
for(intj=0;
j++)verage==temp[q])
stud[p].ranking1=q+1;
}}
最后各种界面函数通过switch语句进行调用,以实现各种功能来完成此系统:
voidFire()pp的文件,如果有编译错误,则根据提示修改,否则编译成功。
最后编译、连接和运行测试程序文件,输入数据并测试程序的各种操作。
如图所示。
在当前的Dos窗口中,输入要执行的功能号码,如输入1,然后单击回车,则显示如图所示。
此为学生信息管理界面,输入要执行的功能号码,如输入1,然后单击回车,则显示如图所示。
按提示输入3个学生信息并保存至文件中,完成后返回学生信息管理界面,输入要执行的功能号码,如输入5,然后单击回车,然后输入文件名和要读取几名学生信息,如输入3,则显示如图所示。
如上所示,按照提示内容输入功能号并回车确认就能正确使用本系统。
4、使用的主要技术
文本文件的读写、数组。
5、总结
经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程设计和进一步学习打下了坚实的基础。
在为期一周的的C++课程设计中,我体会颇多,学到了很多东西。
我加强了对C++程序设计这门课程的认识,并且复习了自己以前学过的知识。
这些都使得我对计算机语言的学习有了更深入的认识。
像学生测评系统这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。
而这些问题,并不是只靠课本就可以轻易解决的。
所以,锻炼了我们独立思考和解决问题的能力。
特别是向老师提问时,老师教会了我调试程序的方法,让我更容易发现自己所犯的错误。
在老师和同学的帮助下,通过自己的努力,终于完成了这次学生测评系统的课程设计,虽然还有缺陷,但过程中所摸索到的经验是一笔宝贵的财富。
总而言之,这次课程设计让我收获很大。
附录
#include<
iostream>
fstream>
string>
iomanip>
usingnamespacestd;
charpress;
intchoose=1;
intn;
um;
(5);
stud[i].name;
stud[i].sex;
(8);
stud[i].address;
stud[i].phone;
(6);
stud[i].english;
stud[i].math;
stud[i].physics;
stud[i].grade1;
stud[i].grade2;
intt;
for(intk=0;
k<
n-1-j;
k++)
if(temp[k]>
temp[k+1])
t=temp[k];
temp[k]=temp[k+1];
temp[k+1]=t;
}
}
inttempnum;
stringtempname;
stringtempsex;
stringtempaddress;
stringtempphone;
doubletempenglish;
doubletempmath;
doubletempphysics;
doubletempgrade1;
doubletempgrade2;
doubletempgrade3;
for(intq=0;
q<
q++)
for(intp=0;
p<
p++)
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;
outfile<
stud[i].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;
输入成功,学生资料是否保存(y/n)"
ame!
stud[i].sex=stud[i+1].sex;
stud[i].address=stud[i+1].address;
stud[i].phone=stud[i+1].phone;
stud[i].english=stud[i+1].english;
stud[i].math=stud[i+1].math;
stud[i].physics=stud[i+1].physics;
stud[i].grade1=stud[i+1].grade1;
stud[i].grade2=stud[i+1].grade2;
stud[i].grade3=stud[i+1].grade3;
删除成功!
n=n-1;
save();
elseif(i==n)
cout<
该信息不存在,无法删除!
}
(是否继续操作?
(y/n))"
while(press=='
||press=='
Y'
);
新学生姓名:
stud[n].name;
新学生性别:
stud[n].sex;
新学生家庭地址:
stud[n].address;
新学生的联系方式:
stud[n].phone;
新学生的英语成绩:
stud[n].english;
新学生的高数成绩:
stud[n].math;
新学生的物理成绩"
stud[n].physics;
新学生的同学互评分"
stud[n].grade1;
新学生的品德成绩"
stud[n].grade2;
新学生的任课教师评分"
stud[n].grade3;
n++;
);
添加成功,学生资料是否保存(y/n)"
ame==find_name)
hasbeenfound:
学生的学号:
姓名:
性别:
家庭住址:
联系方式:
英语成绩:
高数成绩:
物理成绩:
同学互评分:
品德成绩:
任课教师评分:
break;
if(stud[i].name!
同学互评分:
verage=(stud[a].english+stud[a].math+stud[a].physics)/3;
j++)verage==temp[q])
学号"
姓名"
考试成绩"
考试成绩排名"
for(intb=0;
b<
b++)
stud[b].num;
(10);
stud[b].name;
stud[b].average;
stud[b].ranking1<
是否要保存到文件中(y/n)"
switch(press)
case'
:
姓名:
stud[i].name
<
考试成绩:
stud[i].average<
考试成绩排名"
stud[i].ranking1<
default:
radesum=((stud[a].english+stud[a].math+stud[a].physics)/3)*+
stud[a].grade1*+stud[a].grade2*+stud[a].grade3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 综合 测评 系统 C+ 设计 报告