上海电力学院 《高级程序设计C++》
课程设计
题 目: 学生综合测评系统 院 系: 计算机科学与技术学院 专业年级: 计算机科学与技术 学生姓名: 学号:
指导教师:
2013年1月
目录
1.
需求分析
本系统旨在便于学校管理和查阅学生信息并计算学生的考试成绩和名次以及综合测评成绩和名次。每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、高等数学、物理、英语三门单科成绩、、同学互评分、品德成绩、任课教师评分。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
程序的基本功能:
1.学生信息处理:
(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
(2) 插入(修改)同学信息。 (3) 删除同学信息。 (4) 浏览学生信息。 2.学生数据处理:
(1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3 计算考试成绩,并计算考试名次。
(2) 学生测评数据输入并计算综合测评总分及名次。 (3) 学生数据管理。 (4) 学生数据查询。 3.学生综合信息输出
2.
概要设计
根据需求分析中的描述,知道需要一个帐户类型,由于基本数据类型无法实现将一个用户的信息绑定在一起,所以需要定义一个抽象数据类型帐户,命名为Student,其定义如下: class Student { public:
int num;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<<\读取成功!\ }
以上为读取文件中学生信息的函数,当信息成功读取后才可进行修改或添加或删除,所以在许多外部函数里面都必须要有读取函数的功能为前提。
void save() {
int i;
char filename[20];
cout<<\将记录保存在文件夹!\ cout<<\请输入文件名:\ cin>>filename;
ofstream outfile(filename); if(!outfile)
{ }
um<<\ }
< < (); cout<<\保存成功!\} 在每次保存时都先按学号排序,保证信息是按学号从小到大的顺序存入文件。在输入、修改、添加和删除函数的末端都有保存函数以实现信息的保存。 void XG() { read(); int i; cout<<\请输入你要修改的学生名字:\ cin>>find_name; for(i=0;i cout<<\cout<<\请重新查找!\goto begin; if(stud[i].name==find_name) {……}ame!=find_name) begin:string find_name; } } cout<<\请输入新的信息:\cout<<\学号:\…… cout<<\修改成功,是否保存(y/n)\cin>>press; switch(press) { case 'y' : save();break; default: cout<<\不保存!\} …… 基于数组形式对数据进行修改。基本上所有函数都是基于数组进行操作,像删除函数是用循环先匹配类中的一个数据,找到之后再以此开始用对象数组后面的替换掉前一个,以实现删除功能。 string SC_name; cout<<\请输入你要删除的学生名字:\ int i=0; cin>>SC_name; i++; ame==SC_name) { for(int j=i;j stud[i].num=stud[i+1].num; while(stud[i].name!=SC_name && i stud[i].name=stud[i+1].name; …… …… } } 考试成绩排名和综合测评成绩排名都是采用冒泡排序法实现: double temp[100]; for(int a=0;a for(int j=0;j stud[p].ranking1=q+1;}} temp[a]=stud[a].average; 最后各种界面函数通过switch语句进行调用,以实现各种功能来完成此系统: void Fire()pp 的文件,如果有编译错误,则根据提示修改,否则编译成 功。最后编译、连接和运行测试程序文件,输入数据并测试程序的各种操作。如图所示。 在当前的Dos窗口中,输入要执行的功能号码,如输入1,然后单击回 车,则显示如图所示。 此为学生信息管理界面,输入要执行的功能号码,如输入1,然后单击回车,则显示如图所示。 按提示输入3个学生信息并保存至文件中,完成后返回学生信息管理界面,输入要执行的功能号码,如输入5,然后单击回车,然后输入文件名和要读取几名学生信息,如输入3,则显示如图所示。 如上所示,按照提示内容输入功能号并回车确认就能正确使用本系统。 4、使用的主要技术 文本文件的读写、数组。 5、总结 经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程设计和进一步学习打下了坚实的基础。 在为期一周的的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自己以前学过的知识。这些都使得我对计算机语言的学习有了更深入的认识。像学生测评系统这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题,