中南大学c++程序设计1中南大学本科生课程设计(实践)任务书、设计报告(C++语言程序设计)题目学生姓名指导教师学院专业班级学生学号计算机基础教学实验中心年月日中南大学c++程序设计2目录设计任务书……………………………………………3课程实践报告…………………………………………4一、实践内容…………………………………………………………4二、实践成果…………………………………………………………4三、程序功能…………………………………………………………4四、设计思路…………………………………………………………5五、源程序……………………………………………………………7六、运行情况…………………………………………………………13七、实践心得…………………………………………………………16八、实践收获与不足…………………………………………………18中南大学c++程序设计3C++语言程序设计任务书指导老师:李力课程编号:一、学时与学分学时:40学分:2二、实践目的计算机实践是本科计算机基础教学的一个重要环节。它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。三、实践任务与要求用C++语言编程。编程题目如下:(一)统计一个班(最多有35人)的学生成绩,要求能实现如下功能:(1)输入每个学生的学号和6门课程的成绩。(2)计算每个学生的平均分和总分。(3)按总分从高到低排出名次,并按名次输出每个学生的情况,包括学号、各科成绩、平均分和总分。(4)根据用户要求输出某门课程(从键盘输入课程号)成绩在90分以上(含90分)且总分在前5名的学生情况,包括学号、各科成绩、平均分和总分。(5)根据统计,绘制总成绩五分制百分比饼图。(自学利用C++提供的库函数绘制曲线图)。要求:利用类来实现,学生学号和成绩采用文件输入,排序。数据的组织可采用对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。(二)统计商品销售数据,要求能用菜单实现如下功能:(1)输入每件商品的名称,编号,入库日期,标价,成本。(2)输入每件商品的售价,出售日期。(3)按总销售量从高到低排出每种商品的名称,售出件数,销售额。(4)根据用户要求输出某商品某月(从键盘输入商品名称和月份)的平均售价、售出件数、总利润。(5)根据统计,绘制商品销售利润百分比饼图。(自学利用C++提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织可采用对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。(三)统计足球比赛数据,要求能用菜单实现如下功能:(1)输入每场比赛的主队名称,客队名称,比赛日期,主队得分,客队得分。(2)按总得分从高到低排出每个队的名称,总得分,胜,和,负的次数。(3)根据用户要求输出某队某月(从键盘输入队名和月份)的所有比赛数据。(4)根据用户要求输出某队主场总得分,客场总得分(5)根据用户输入,绘制某队成绩历史趋势图。(自学利用C++提供的库函数绘制曲线图)。要求:利用类实现,数据采中南大学c++程序设计4用文件输入,排序。数据的组织可采用对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。(四)统计稿件管理数据,要求能用菜单实现如下功能:(1)输入每件稿件的第一作者名字,稿件名称,投稿日期,作者的省份。(2)输入每件稿件的发表日期,审稿意见。(3)按作者的省份,从高到低排出每个省的总发表篇数。(4)根据用户要求输出某作者某月(从键盘输入作者名和月份)的所有稿件数据。(5)根据用户输入,绘制稿件按省份的百分比饼图。(自学利用C++提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织可采用对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。(五)统计用电管理数据,要求能用菜单实现如下功能:(1)输入每个电表的用户名,楼栋号,抄表日期,电表读数。(3)按作者的用电量,从高到低排出每个用户的总用电量。(3)根据用户要求输出某用户某月(从键盘输入用户名和月份)的总用电量。(4)统计某楼栋从某月到某月(从键盘输入)的总用电量(5)绘制按的楼栋的用电百分比饼图。(自学利用C++提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。以上五题任选一题。四、实践纪律学生除了要遵守实践期间学院的基本规定外,还要求做到:1.必须在规定的时间、地点,独立完成以上任务;2.不得迟到、早退。尤其不得擅自缺席。五、设计报告要求1.任务书必须作为报告第一页2.报告不得少于3000字:主要总结实践心得、实践成果、程序功能、设计思路(程序流程图)、源程序(加上必要的注释)、运行情况、课程设计的收获与不足等六、时间安排两周时间七、成绩评定规则成绩分为优、良、中、及格、不及格五等。优:程序功能完备,报告有深度,遵守实践纪律。良:程序功能满足要求,报告有内容,遵守实践纪律。中:程序和报告基本满足要求,遵守实践纪律。及格:程序有错误但大体能运行,有报告书,基本遵守实践纪律。不及格:程序完全错误或严重违反实践纪律。中南大学c++程序设计5C++语言程序设计报告一、实践内容统计稿件管理数据,要求能用菜单实现如下功能:(1)输入每件稿件的第一作者名字,稿件名称,投稿日期,作者的省份。(2)输入每件稿件的发表日期,审稿意见。(3)按作者的省份,从高到低排出每个省的总发表篇数。(4)根据用户要求输出某作者某月(从键盘输入作者名和月份)的所有稿件数据。(5)根据用户输入,绘制稿件按省份的百分比饼图。(自学利用C++提供的库函数绘制曲线图)。二、实践成果灵活运用《C++程序设计》课程所学的基础知识,独立设计大型程序的能力;该程序必须用户界面友好、操作简洁方便,大大提高工作效率。此程序先由用户输入数据,并存储。再作各种功能处理。整个程序基本可以实现稿件管理数据系统的统计。三、程序功能a)录入功能:可以写入关于稿件的基本信息,并进行以下几项功能。b)排序功能:用户可按作者的省份,将每个省的总发表篇数进行排序,并输出。c)查询功能:用户可根据作者与月份查出某作者某月的稿件数据,没找到的给予提示。d)绘制饼状图功能:系统根据输入的数据绘制高价男生份的百分比饼图。e)各项退出功能:在每个环节里都设有退出功能。四、设计思路统计稿件管理数据系统程序框图中南大学c++程序设计61输入每一稿件第一作者名字,稿件名称,投稿日期,作者的省份2输入每件稿件的发表日期,审稿意见。3按省份排序4按作者名与月份查找5绘制百分比饼状图NYYYNNNN开始输出菜单及提示信息输入功能数字12345退出AddNew()Sort_by_province()DoFind()Doprint()YYN结束AddNew()中南大学c++程序设计7五、源程序#includewindows.h#includeconio.h#includestdio.h#includestdlib.h#includetchar.h#includemath.h#includecstdlib#includeiostream.h#includestring.hexternCWINBASEAPIHWNDWINAPIGetConsoleWindow();//定义稿件数据类//////////////////////////////////classDocument{public:intflag;charname[20];charperson_name[20];chardate1[20],date2[20];charprovince[20];charsuggest[50];Document(){this-flag=0;}};/////////////////////////////定义稿件省份类//////////////////////////////////classPro_count{public:charprovince[20];doublecount;Pro_count(){this-count=1;}};/////////////////////////////函数声明语句///////////////////////////////////voiddisplay();voidinput();voidinput2();voidqsort();voidoutputDateDoc();voidinspect();voidPrint();////////////////////////////定义主函数///////////////////////////////////////intmain(intargc,char*argv[]){intn;while(1){system(cls);display();cinn;if(n==0)break;system(cls);switch(n){case1:{input();break;}case2:中南大学c++程序设计8{input2();break;}case3:{qsort();break;}case4:{outputDateDoc();break;}case5:{inspect();break;}case6:{Print();break;}default:{cout你输入的方式有误,请重新输入!endl;system(pause);}}}returnEXIT_SUCCESS;inti=1;fread(&doc[0],sizeof(Document),1,fp);//coutDocument1doc[0].person_nameendl;///////////////////////////////while(!feof(fp)){//coutDocumentiendl;/*coutdoc[i-1].person_nameendl;///////////////////////////////coutdoc[i-1].nameendl;///////////////////////////////coutdoc[i-1].date1endl;///////////////////////////////coutdoc[i-1].provinceendlendl;///////////////////////////////*/fread(&doc[i],sizeof(Document),1,fp);i++;}//system(pause);fclose(fp);//coutchengendl;intj,k=-1;for(j=0;ji;j++)if(strcmp(doc[j].name,name)==0){k=j;break;}/*-------------------------------------------*/if(k!=-1){doc[k].flag=1;cout请输入发表日期endl;cindate2;cout请输入审稿意见endl;cinsuggest;strcpy(doc[k].date2,date2);strcpy(doc[k].suggest,suggest);FILE*fp;if((fp=fopen(Mydata.dat,wb))==NULL){cout文件打开失败!endl;system(pause);exit(1);}for(j=0;ji;j++){fwrite(&doc[j],sizeof(Document),1,fp);}中南大学c++程序设计9fclose(fp);}else{cout不存在该稿件名,请确认后在输入!endl;}system(pause);}//////////////////稿件按作者的省份输出以及排序////////////////