c++课程设计--c++程序设计语言

c++课程设计--c++程序设计语言

ID:12161735

大小:347.47 KB

页数:0页

时间:2018-07-15

上传者:U-3868
c++课程设计--c++程序设计语言_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《c++课程设计--c++程序设计语言》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

中南大学二○一二~二○一三学年第二学期信息科学与工程学院C++程序设计语言课程设计报告课程名称:C++程序设计语言班级:电气信息类班学号:姓名:指导教师:二0一三年零七月[中南大学]|高级程序设计实践4343/44 目录:1.课程设计目的2.系统描述(需求分析)3.功能模块结构(设计思路)4.主要模块的算法说明5.程序运行结果(主要截图及说明)6.课程设计总结7.参考文献8.附录(程序源代码)[中南大学]|高级程序设计实践4343/44 一.课程设计目的1、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;2、使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力;3、使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。二.系统描述(需求分析)小型学生成绩管理系统1、需要处理的基础数据²学生基本信息:如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。²学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。2、系统的基本功能²数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;²数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;[中南大学]|高级程序设计实践4343/44 ²数据的插入:插入某个学生信息²数据的查询:如按学号查询、按姓名查询等;²数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;²平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;²列出不及格学生清单(学号、姓名、不及格的课程和成绩)。²考虑用文件把数据保存起来(可选)。分析如下:(1)如上所示,该系统要求处理一些学生成绩的基本数据,包括两个方面:学生身份信息和学生成绩信息。(2)该系统不仅要求能录入一些基本数据外,还要能对这些数据进行处理,比如修改,删除,插入,查询等。另外,因为对数据库了解不多,可以考虑用文件保存的形式将数据保存起来。三.功能模块分析(设计思路)考虑到每个学生都是一个对象,而且他们都有一些共性:各种身份信息和成绩信息,于是可以定义一个类:里面包含各种成员信息(为了信息的隐蔽性,可以定义成私有数据)。而对这些数据进行处理的选项,可以用一些函数来实现,每一个函数对应一个功能。在这里,既可以定义成类的成员函数,也可以定义类[中南大学]|高级程序设计实践4343/44 的友元函数,为方便,本程序采用后者:友元函数。具体结构如下:1.Stu类的结构:2.数据成员:数据class[]numname[]mathc_programenglishaverageorder含义班级学号姓名高数C++课程大学英语平均分排名3.功能函数:Input(Stustud[])输入学生信息Statistic(Stustud[])学生信息输出Lookup(Stustud[])查找学生信息[中南大学]|高级程序设计实践4343/44 Modify(Stustud[])修改学生信息Delete(Stustud[])删除学生信息Output(Stustud[])输出全部信息Sort(Stustud[])对学生进行排序Insert(Stustud[])插入学生信息Showfail(Stustud[])查找不及格学生Write(Stustud[])文件写入函数Read(Stustud[])文件读取函数voidmenu()菜单函数,以供选择以上每一个函数的形参都是一个类对象,因为是友元函数,故可以访问类的数据成员。四.主要模块的算法说明1学生信息的保存:由于没有学习数据库的有关知识,故在本程序设计中要用到文件保存和读取:定义一个函数voidWrite(Stustud[],intn)//文件写入函数{fstreammyFile;//定义一个文件输入输出类myFile.open("D:\student.dat",ios::out|ios::binary);//目标文件位置if(!myFile)[中南大学]|高级程序设计实践4343/44 {cout<<"D:\student.datcan'topen!"<>删除学生成绩<<===="<>s;while((stud[i].num-s)!=0&&i提示:对不起,无法找到该学生……"<提示:已成功删除!"<提示:是否继续删除学生信息?(Y/N)";cin>>sign;}[中南大学]|高级程序设计实践4343/44 Write(stud,n);//将未删除的学生数据保存}3.排序的实现:在本程序中,采用冒泡法对学生平均成绩进行排序,即首先将相邻的两个学生的成绩进行比较,若前者小于后者,则将两者的信息全部交换,最后再依次按平均分由高到低输出学生所有信息。具体实现过程如下:voidSort(Stustud[])//学生成绩排序函数{system("cls");//调用系统函数,清除屏幕inti,j,k;floats;chart[20];cout<>降序排序成绩<<===="<[中南大学]|高级程序设计实践4343/44 #include#include#include#includeusingnamespacestd;classStu{//把对类的私有成员的处理函数全部定义为友元函数public:friendvoidInput(Stustud[]);//学生成绩录入函数friendvoidStatistic(Stustud[]);//学生信息输出函数friendvoidLookup(Stustud[]);//学生成绩查找函数friendvoidModify(Stustud[]);//学生成绩修改函数friendvoidDelete(Stustud[]);//学生信息删除函数friendvoidOutput(Stustud[]);//学生全部信息输出函数friendvoidSort(Stustud[]);//学生成绩排序函数friendvoidInsert(Stustud[]);//学生成绩插入函数friendvoidWrite(Stustud[],intn);//学生成绩写入档案函数friendintRead(Stustud[]);//学生成绩信息读取函数friendvoidShowfail(Stustud[]);//查找不及格学生的函数private:charclass_0[20];[中南大学]|高级程序设计实践4343/44 intnum;charname[8];floatmath;floatc_program;floatenglish;floataverage;intorder;};voidWrite(Stustud[],intn)//文件写入函数{fstreammyFile;//定义一个文件输入输出类myFile.open("D:\student.dat",ios::out|ios::binary);if(!myFile){cout<<"D:\student.datcan'topen!"<>count;for(inti=0;i<=count;i++){myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].math>>stud[i].c_program>>stud[i].english>>stud[i].average;}myFile.close();returncount;//函数返回一个查询出来的数值}voidInput(Stustud[])//学生成绩录入函授{system("cls");//调用系统命令cls,清除屏幕inti=0;intflag;charsign;cout<>请输入学生成绩<<===="<>stud[i].class_0;loop:cout<<"学号:";cin>>stud[i].num;intc=0;while(c>stud[i].name;do//学生信息录入循环{flag=0;[中南大学]|高级程序设计实践4343/44 cout<<"高等数学:";cin>>stud[i].math;if(stud[i].math>100||stud[i].math<1)cout<<"对不起,请输入1-100之间的数字!! ";elseflag=1;}while(flag==0);do{flag=0;cout<<"C++程序设计:";cin>>stud[i].c_program;if(stud[i].c_program>100||stud[i].c_program<1)cout<<"对不起,请输入1-100之间的数字!! ";elseflag=1;}while(flag==0);do{flag=0;cout<<"大学英语:";[中南大学]|高级程序设计实践4343/44 cin>>stud[i].english;if(stud[i].english>100||stud[i].english<1)cout<<"对不起,请输入1-100之间的数字!! ";elseflag=1;}while(flag==0);stud[i].average=(stud[i].math+stud[i].c_program+stud[i].english)/3;cout<<"平均分为:"<提示:是否继续写入学生成绩?(Y/N)";cin>>sign;i++;}Write(stud,i);//调用文件写入函数,把信息写入文件}voidStatistic(Stustud[])//学生成绩数据输出函数{system("cls");intn=Read(stud);cout<>输出学生统计数据<<===="<>查找学生成绩<<===="<>s;while((stud[i].num-s)!=0&&i提示:对不起,无法找到该学生的信息!"<>修改学生成绩<<===="<>s;while((stud[i].num-s)!=0&&i提示:对不起,无该学生的成绩……"<>stud[i].class_0;cout<<"学号:"<>stud[i].num;cout<<"姓名:"<>stud[i].name;cout<<"高等数学:"<>stud[i].math;cout<<"C++程序设计:"<>stud[i].c_program;cout<<"大学英语:"<>stud[i].english;stud[i].average=(stud[i].math+stud[i].c_program+stud[i].english)/3;cout<<"平均分为:"<>c;if(c!='n'&&c!='N')Write(stud,n);}}[中南大学]|高级程序设计实践4343/44 voidDelete(Stustud[])//删除学生信息函数{system("cls");ints;intn=Read(stud);inti=0,j;charsign;cout<>删除学生成绩<<===="<>s;while((stud[i].num-s)!=0&&i提示:对不起,无法找到该学生……"<提示:已成功删除!"<提示:是否继续删除学生信息?(Y/N)";cin>>sign;}Write(stud,n);}voidInsert(Stustud[])//学生信息插入函数{[中南大学]|高级程序设计实践4343/44 system("cls");intn=Read(stud);chars;cout<>增加学生成绩<<===="<>stud[n].class_0;cout<<"学号:";cin>>stud[n].num;cout<<"姓名:";cin>>stud[n].name;cout<<"高等数学:";cin>>stud[n].math;cout<<"C++程序设计:";cin>>stud[n].c_program;cout<<"大学英语:";cin>>stud[n].english;stud[n].average=(stud[n].math+stud[n].c_program+stud[n].english)/3;cout<<"平均分"<提示:插入成功!"<>s;}Write(stud,n);}voidSort(Stustud[])//学生成绩排序函数{system("cls");inti,j,k;floats;chart[20];cout<>降序排序成绩<<===="<>显示全部学生成绩<<===="<部分不及格学生信息显示如下<===="<'9');return(c-'0');}[中南大学]|高级程序设计实践4343/44 intmain()//主函数{Stustud[100];for(;;){switch(menu()){case1:Input(stud);break;case2:Statistic(stud);break;case3:Lookup(stud);cout<<"ttt";system("pause");break;case4:Modify(stud);cout<<"ttt";[中南大学]|高级程序设计实践4343/44 system("pause");break;case5:Delete(stud);cout<<"ttt";system("pause");break;case6:Insert(stud);cout<<"ttt";system("pause");break;case7:Sort(stud);cout<<"ttt";system("pause");break;case8:Output(stud);cout<<"ttt";system("pause");[中南大学]|高级程序设计实践4343/44 break;case9:Showfail(stud);cout<<"ttt";system("pause");break;case0:cout<>=========================== "<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭