版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学c+程序设计中南大学本科生课程设计(实践)任务书、设计报告(C+语言程序设计)题 目统计稿件管理数据程序设计学生姓名指导教师学 院专业班级学生学号1208100620计算机基础教学实验中心2011年 6 月 30日目 录设计任务书3课程实践报告4一、实践内容4二、实践成果4 三、程序功能4四、设计思路5五、源程序7六、运行情况13七、实践心得16八、实践收获与不足18C+语言程序设计任务书 指导老师: 课程编号:一、学时与学分学时:40 学分:2二、实践目的计算机实践是本科计算机基础教学的一个重要环节。它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重
2、要意义。三、实践任务与要求用C+语言编程。编程题目如下:(一)统计一个班(最多有35人)的学生成绩,要求能实现如下功能:(1)输入每个学生的学号和6门课程的成绩。(2)计算每个学生的平均分和总分。(3)按总分从高到低排出名次,并按名次输出每个学生的情况,包括学号、各科成绩、平均分和总分。(4)根据用户要求输出某门课程(从键盘输入课程号)成绩在90分以上(含90分)且总分在前5名的学生情况,包括学号、各科成绩、平均分和总分。(5)根据统计,绘制总成绩五分制百分比饼图。(自学利用C+提供的库函数绘制曲线图)。要求:利用类来实现,学生学号和成绩采用文件输入,排序。数据的组织可采用对象数组 。查阅相关
3、资料并写出系统设计说明书。写出实践报告。(二)统计商品销售数据,要求能用菜单实现如下功能:(1)输入每件商品的名称,编号,入库日期,标价,成本。(2)输入每件商品的售价,出售日期。(3)按总销售量从高到低排出每种商品的名称,售出件数,销售额。(4)根据用户要求输出某商品某月(从键盘输入商品名称和月份)的平均售价、售出件数、总利润。(5)根据统计,绘制商品销售利润百分比饼图。(自学利用C+提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。(三)统计足球比赛数据,要求能用菜单实现如下功能:(1)输入每场比
4、赛的主队名称,客队名称,比赛日期,主队得分,客队得分。(2)按总得分从高到低排出每个队的名称,总得分,胜,和,负的次数。(3)根据用户要求输出某队某月(从键盘输入队名和月份)的所有比赛数据。(4)根据用户要求输出某队主场总得分,客场总得分(5) 根据用户输入,绘制某队成绩历史趋势图。(自学利用C+提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。(四)统计稿件管理数据,要求能用菜单实现如下功能:(1)输入每件稿件的第一作者名字,稿件名称,投稿日期,作者的省份。(2)输入每件稿件的发表日期,审稿意见。(
5、3)按作者的省份,从高到低排出每个省的总发表篇数。(4)根据用户要求输出某作者某月(从键盘输入作者名和月份)的所有稿件数据。 (5) 根据用户输入,绘制稿件按省份的百分比饼图。(自学利用C+提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织可采用对象数组 。查阅相关资料并写出系统设计说明书。写出实践报告。(五)统计用电管理数据,要求能用菜单实现如下功能:(1)输入每个电表的用户名,楼栋号,抄表日期,电表读数。(3)按作者的用电量,从高到低排出每个用户的总用电量。(3)根据用户要求输出某用户某月(从键盘输入用户名和月份)的总用电量。(4)统计某楼栋从某月到某月(从键盘
6、输入)的总用电量 (5) 绘制按的楼栋的用电百分比饼图。(自学利用C+提供的库函数绘制曲线图)。要求:利用类实现,数据采用文件输入,排序。数据的组织对象数组。查阅相关资料并写出系统设计说明书。写出实践报告。以上五题任选一题。四、实践纪律学生除了要遵守实践期间学院的基本规定外,还要求做到:1必须在规定的时间、地点,独立完成以上任务;2不得迟到、早退。尤其不得擅自缺席。五、设计报告要求1 任务书必须作为报告第一页2 报告不得少于3000字:主要总结实践心得、实践成果 、程序功能、设计思路(程序流程图)、源程序(加上必要的注释)、运行情况、课程设计的收获与不足等六、时间安排两周时间七、成绩评定规则
7、成绩分为优、良、中、及格、不及格五等。优:程序功能完备,报告有深度, 遵守实践纪律。良:程序功能满足要求,报告有内容, 遵守实践纪律。中:程序和报告基本满足要求, 遵守实践纪律。及格:程序有错误但大体能运行,有报告书, 基本遵守实践纪律。不及格:程序完全错误或严重违反实践纪律。C+语言程序设计报告一、 实践内容统计稿件管理数据,要求能用菜单实现如下功能:(1)输入每件稿件的第一作者名字,稿件名称,投稿日期,作者的省份。(2)输入每件稿件的发表日期,审稿意见。(3)按作者的省份,从高到低排出每个省的总发表篇数。(4)根据用户要求输出某作者某月(从键盘输入作者名和月份)的所有稿件数据。 (5) 根
8、据用户输入,绘制稿件按省份的百分比饼图。(自学利用C+提供的库函数绘制曲线图)。二、实践成果灵活运用C+程序设计课程所学的基础知识,独立设计大型程序的能力;该程序必须用户界面友好、操作简洁方便,大大提高工作效率。此程序先由用户输入数据,并存储。再作各种功能处理。整个程序基本可以实现稿件管理数据系统的统计。三、 程序功能a) 录入功能:可以写入关于稿件的基本信息,并进行以下几项功能。b) 排序功能:用户可按作者的省份,将每个省的总发表篇数进行排序,并输出。c) 查询功能:用户可根据作者与月份查出某作者某月的稿件数据,没找到的给予提示。d) 绘制饼状图功能:系统根据输入的数据绘制高价男生份的百分比
9、饼图。e) 各项退出功能:在每个环节里都设有退出功能。四、设计思路统计稿件管理数据系统程序框图开始输出菜单及提示信息1输入每一稿件第一作者名字,稿件名称,投稿日期,作者的省份2输入每件稿件的发表日期,审稿意见。 3按省份排序输入功能数字 4按作者名与月份查找 5绘制百分比饼状图1N 2YN 3AddNew()YN 4NNYAddNew()Y 5 退出Sort_by_province()YN DoFind()Do print()结束 五、源程序#include #include #include #include #include #include #include #include #incl
10、ude extern C WINBASEAPI HWND WINAPI GetConsoleWindow ();/定义稿件数据类/class Document public: int flag; char name20; char person_name20; char date120,date220; char province20; char suggest50; Document() this-flag=0;/定义稿件省份类/class Pro_count public: char province20; double count; Pro_count() this-count=1;/函
11、数声明语句/void display(); void input();void input2();void qsort();void outputDateDoc();void inspect();void Print();/定义主函数/int main(int argc, char *argv) int n; while(1) system(cls); display(); cinn; if(n=0)break; system(cls); switch(n) case 1: input();break; case 2: input2();break; case 3: qsort();break
12、; case 4: outputDateDoc();break; case 5: inspect();break; case 6: Print();break; default: cout你输入的方式有误,请重新输入!endl;system(pause); return EXIT_SUCCESS;/显示主菜单/void display()cout 欢迎进入稿件管理系统 endl;cout endl;cout 菜单 endl;cout * endl;cout 请选择: 6.饼图: endl;cout 1.录入: 2.发表: 3.排序: endl;cout 4.输出: 5.显示: 0.退出: en
13、dl;cout endl;/稿件投稿数据录入/ void input() Document p; cout请输入作者名字:p.person_name; cout请输入稿件名称: ; cout请输入投稿日期:p.date1; cout请输入作者的省份:vince; FILE *fp; if(fp=fopen(Mydata.dat,ab)=NULL) cout文件打开失败!endl; system(pause); exit(1); fseek(fp,0L,SEEK_END); fwrite(&p,sizeof(Document),1,fp); fclose(fp ); sys
14、tem(pause);/稿件发表数据录入/ void input2() char name20,date220,suggest20; cout请输入要发表的稿件名称: name; Document doc50; FILE *fp; if(fp=fopen(Mydata.dat,rb)=NULL) cout文件打开失败!endl; system(pause); exit(1); int i=1; fread(&doc0,sizeof(Document),1,fp); /coutDocument1 doc0.person_nameendl;/ while(!feof(fp) /coutDocume
15、nti endl; /* coutdoci-1.person_nameendl;/ endl;/ coutdoci-1.date1endl;/ vinceendlendl;/ */ fread(&doci,sizeof(Document),1,fp); i+; /system(pause); fclose(fp); /coutchengendl; int j,k=-1; for(j=0;ji;j+) if(strcmp(,name)=0) k=j;break; /*-*/ if(k!=-1) dock.flag=1;
16、cout请输入发表日期date2; cout请输入审稿意见suggest; strcpy(dock.date2,date2); strcpy(dock.suggest,suggest); FILE *fp; if(fp=fopen(Mydata.dat,wb)=NULL) cout文件打开失败!endl; system(pause); exit(1); for(j=0;ji;j+) fwrite(&docj,sizeof(Document),1,fp); fclose(fp); else cout不存在该稿件名,请确认后在输入!endl; system(pause);/稿件按作者的省份输出以及
17、排序/ void qsort() Document doc50; FILE *fp; if(fp=fopen(Mydata.dat,rb)=NULL) cout文件打开失败!endl; system(pause); exit(1); int i=1; fread(&doc0,sizeof(Document),1,fp); while(!feof(fp) /coutdoci-1.person_nameendl;/ /endl;/ /coutdoci-1.date1endl;/ /vinceendl;/ fread(&doci,sizeof
18、(Document),1,fp); i+; fclose(fp);/system(pause); int n=i-1,j,k=1; /if()是空的话要返回 Pro_count pro50; /if(doc0.flag!=0) /vinceendl; strcpy(vince,vince); /coutnendl; /vinceendl;system(pause);/ for(i=1;in;i+) int flag=0; for(j=0;jk;j+) if(strcmp(vince,
19、vince)=0) proj.count+;flag=1;break; if(flag=0) strcpy(vince,vince); k+; /*coutkendl;cout-endl;for(i=0;ik-1;i+) vince proi.countendl;cout-endl;system(pause);*/ /排序 int max; n=k-1; char temp20,num; for(i=0;in;i+) max=i; for(j=i+1;jn;j+) if(promax.countproj.count) max=j; if(
20、max!=i) strcpy(temp,vince); strcpy(vince,vince); strcpy(vince,temp); num=proi.count; proi.count=promax.count; promax.count=num; /打印出来 cout*endl; cout序号 省份 发表数量endl; cout*endl; for(i=0;i=n;i+) couti+1: vince proi.countendl; system(pause);void outputDateDoc(
21、) Document doc50; FILE *fp; if(fp=fopen(Mydata.dat,rb)=NULL) cout文件打开失败!endl; system(pause); exit(1); int i=1; fread(&doc0,sizeof(Document),1,fp); /coutDocument1 doc0.person_nameendl;/ while(!feof(fp) /coutDocumenti endl; /* coutdoci-1.person_nameendl;/ endl;/ coutdoci-1.date1endl;/ c
22、vinceendlendl;/ */ fread(&doci,sizeof(Document),1,fp); i+; /system(pause); fclose(fp); char name20,date15; cout请输入作者名字:name; cout请输入投稿日期的月份(如八月-08):date1; /coutiendl; int j; for(j=0;ji-1;j+) /endl; if(strcmp(docj.person_name,name)=0) coutnameendl; if(docj.date14=date10&doc
23、j.date15=date11) cout*endl; cout*endl; cout作者名字: ; coutdocj.person_nameendl; cout稿件名称: ; endl; cout投稿日期: ; coutdocj.date1endl; cout作者的省份: ; vinceendl; if(docj.flag!=0) cout发表日期: ; coutdocj.date2endl; cout审稿意见: endl; coutdocj.suggestendl; system(pause);/读文件void inspect()Docum
24、ent doc50; FILE *fp; if(fp=fopen(Mydata.dat,rb)=NULL) cout文件打开失败!endl; system(pause); exit(1); int i=1; fread(&doc0,sizeof(Document),1,fp); while(!feof(fp) cout*endl; cout*endl; cout作者名字: ; coutdoci-1.person_nameendl; cout稿件名称: ; endl; cout投稿日期: ; coutdoci-1.date1endl; cout作者的省份: ; co
25、vinceendl; if(doci-1.flag!=0) cout发表日期: ; coutdoci-1.date2endl; cout审稿意见: endl; coutdoci-1.suggestendl; fread(&doci,sizeof(Document),1,fp); i+; system(pause); fclose(fp);void Print() Document doc50; FILE *fp; if(fp=fopen(Mydata.dat,rb)=NULL) cout文件打开失败!endl; system(pause); exit(1); int i
26、=1; fread(&doc0,sizeof(Document),1,fp); while(!feof(fp) /coutdoci-1.person_nameendl;/ /endl;/ /coutdoci-1.date1endl;/ /vinceendl;/ fread(&doci,sizeof(Document),1,fp); i+; fclose(fp);/system(pause); int n=i-1,j,k=1; /if()是空的话要返回 Pro_count pro50; /if(doc0.flag!=0) /coutpro
27、0.provinceendl; strcpy(vince,vince); /coutnendl; /vinceendl;system(pause);/ for(i=1;in;i+) int flag=0; for(j=0;jk;j+) if(strcmp(vince,vince)=0) proj.count+;flag=1;break; if(flag=0) strcpy(vince,vince); k+; /*coutkendl;cout-endl;for(i=0;ik-1
28、;i+) vince proi.countendl;cout-endl;system(pause);*/ /排序 int max; n=k-1; char temp20,num; for(i=0;in;i+) max=i; for(j=i+1;jn;j+) if(promax.countproj.count) max=j; if(max!=i) strcpy(temp,vince); strcpy(vince,vince); strcpy(vince,temp); num=proi.count; p
29、roi.count=promax.count; promax.count=num; double a,b,c,d; a=3.14*2*pro0.count/(pro0.count+pro1.count+pro2.count+pro3.count+pro4.count); b=3.14*2*(pro0.count+pro1.count)/(pro0.count+pro1.count+pro2.count+pro3.count+pro4.count); c=3.14*2*(pro0.count+pro1.count+pro2.count)/(pro0.count+pro1.count+pro2.c
30、ount+pro3.count+pro4.count); d=3.14*2*(pro0.count+pro1.count+pro2.count+pro3.count)/(pro0.count+pro1.count+pro2.count+pro3.count+pro4.count);HWND hwnd; HDC hdc;system(color 3d);hwnd = GetConsoleWindow();hdc = GetDC(hwnd);HDC hDC=GetDC(hwnd);HPEN hPen, hOldPen; hPen=CreatePen(PS_SOLID, 2, 0x00ffff);h
31、OldPen=(HPEN)SelectObject(hDC, hPen);int e=0;for(; e100; +e) Arc(hDC,200+e, 200+e,200-e,200-e,200,100,(200-100*sin(a),(200-100*cos(a);HPEN hPen1, hOldPen1; hPen1=CreatePen(PS_SOLID, 2, 0x0000ff);hOldPen1=(HPEN)SelectObject(hDC, hPen1);for(e=0; e100; +e) Arc(hDC,200+e, 200+e,200-e,200-e,(200-100*sin(
32、a),(200-100*cos(a),(200-100*sin(b),(200-100*cos(b);HPEN hPen2, hOldPen2; hPen2=CreatePen(PS_SOLID, 2, 0xff00ff);hOldPen2=(HPEN)SelectObject(hDC, hPen2);for(e=0; e100; +e) Arc(hDC,200+e, 200+e,200-e,200-e,(200-100*sin(b),(200-100*cos(b),(200-100*sin(c),(200-100*cos(c);HPEN hPen3, hOldPen3; hPen3=Crea
33、tePen(PS_SOLID, 2, 0xff0000);hOldPen3=(HPEN)SelectObject(hDC, hPen3);for(e=0; e100; +e) Arc(hDC,200+e, 200+e,200-e,200-e,(200-100*sin(c),(200-100*cos(c),(200-100*sin(d),(200-100*cos(d);HPEN hPen4, hOldPen4; hPen4=CreatePen(PS_SOLID, 2, 0xffffff);hOldPen4=(HPEN)SelectObject(hDC, hPen4);for(e=0; e100; +e) Arc(hDC,200+e, 200+e,200-e,200-e,(200-100*sin(d),(200-100*cos(d),200,100);HPEN hPen5, hOldPen5; hPen5=CreatePen(PS_SOLID, 2, 0x000000);hOldPen5=(HPEN)SelectObject(hDC, hPen5);TextOut(hDC,300,300,_TEXT(稿件数量前五名的省份(百分比),28);TextOut(hDC,300,320,_TEXT(vince),5);char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南现代职业技术学院单招职业倾向性测试题库含答案详解(综合题)
- 2026年云南国防工业职业技术学院单招职业技能考试题库带答案详解(轻巧夺冠)
- 2026年上海电力大学单招职业倾向性考试题库及答案详解(夺冠系列)
- 2026年上饶卫生健康职业学院单招职业倾向性测试题库及完整答案详解1套
- 2026年临汾职业技术学院单招职业适应性考试题库及答案详解(各地真题)
- 2026年云南理工职业学院单招职业倾向性测试题库附答案详解(模拟题)
- 2026年九江理工职业学院单招职业适应性考试题库带答案详解(考试直接用)
- 2026年三门峡社会管理职业学院单招职业倾向性考试题库及完整答案详解一套
- 2026年九江职业大学单招职业倾向性测试题库含答案详解(达标题)
- 2026年云南能源职业技术学院单招职业技能考试题库带答案详解
- 胎儿疾病预后评估方案
- 2025-2026学年外研版(三起)(新教材)小学英语三年级下册教学计划附进度表
- 2026春节后建筑施工复工复产开工第一课
- 2025年律师事务所党支部书记年终述职报告
- 围术期精准管理:个体化麻醉与镇痛
- 泉州市2026届选优生选拔引进70人考试题库及答案1套
- 2025年中国家装行业白皮书(一起装)
- 2026年湖南理工职业技术学院单招职业倾向性考试题库附答案详解
- 生产计划转正述职报告
- 硫酸镁使用方法
- 《无人机组装与调试》课程标准 -
评论
0/150
提交评论