版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课程设计(论文)任务书 软件 学院 软件+交通运输 专业 2013-1 班 一、课程设计(论文)题目班级通讯录 二、课程设计(论文)工作自 2014 年 6 月16日起至 2014 年 6 月 22 日止 三、课程设计(论文) 地点: 创新大楼 四、课程设计(论文)内容要求:1本课程设计的目的(1)熟练掌握C+语言的基本知识和技能; (2)掌握面向对象程序设计的基本思路和方法;(3)了解指针、类的继承、文件的打开和保存、链表应用(4)利用所学的基本知识和技能,解决面向对象程序设计问题(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。 2课程设计的任务及要求1)基本要求:(1)设计
2、一个的菜单将在实现的功能显示出来,并有选择提示(2)能够查询全部成员清单;(3)能够按号码或姓名查询某一个成员的信息(4)能够增加、删除、修改某一个成员的信息(5)要求有错误提示功能,例如性别只能输入F,M,输入错误提示重新输入 2)创新要求: 将通讯录信息保存为文件,能够写入与读出。3)课程设计论文编写要求(1)要按照课程设计模板的规格书写课程设计论文(2)论文包括目录、正文、心得体会、参考文献等(3)课程设计论文用A4纸统一打印,装订按学校的统一要求完成4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:40分; (3)完成调试:20分;(4)回答问题:20分。5)参考
3、文献:(1)谭浩强. C+程序设计. 北京:清华大学出版社,2008 (2)(3)6)课程设计进度安排内容 天数地点构思及收集资料 2图书馆编程设计与调试 5实验室撰写论文 3图书馆、实验室学生签名: 2014年 6月 16 日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(20分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();
4、(6)格式规范性及考勤是否降等级:是()、否()评阅人: 职称: 副教授 2014 年 6 月 22 日目录第1章 系统概要7第2章 设计思路与算法8第3章源程序代码9第4章 运行结果及分析9第5章 心得体会11参考文献11报告正文撰写参考格式(1) 报告内容层次必须用下面的格式示例:下面为报告第1章使用的目录层次和行文格式,其他章节格式雷同。1 xxxx -章-(一级标题:黑体小四、段前后为0.5行、1.25倍行距)1.1 xxxx-节-(二级标题:黑体五号、段前后为0、1.25倍行距) 1.xxxx-节内第1点-(正文:宋体五号、段前后为0、1.25倍行距,程序代码用Times New R
5、oman字体) (1)xxxx-第1点第1小点-(格式同上) xxxx-(格式同上)切记:目录必须是按下面步骤生成的:“插入引用-索引和目录” 。!正文内容需首行缩进2字符。 (2)报告的插图必须使用规范下标,如下面示例:第1章第一个图记为图1-1,第二个图记为图1-2(序号与节无关)第2章第一个图记为图2-1,第二个图记为图2-2图的规范使用按下面的例子进行。【图要有下标】图1-1 计算机声卡(3)参考文献按规范格式引用如下面示例:1 周靖,龙劲松等译.C#高级程序员指南M. 北京:清华大学出版社,2003.2 王海峰,冯义等译.C#.NET WEB开发指南M. 北京:机械工业出版社,200
6、3.3 郭路. XML数据传输的安全加密EB/OL. developerWorks/cn/xml/ xmlb2b/index5.shtml, 2001-06/2001-10-04.第3个参考文献为参考网上的资料的例子。注:M 表示所参考的文献为书 J 表示所参考的文献为论文 EB/OL表示所参考的文献为网络上的资料 第1章 系统概要 时下,无论是社会上某些场合还是校园内,经常举行一些歌手演唱比赛,一般不会再像以前那样用笔记录比赛的情况,歌手比赛系统由此产生。它几乎包含了一切应有的功能,歌手信息的输入,评委打分,成绩排序等功能应有尽有,省去了很多麻烦的环节,完全可以满足一次歌手比赛的需求。开发此
7、系统只为方便一般的歌手比赛。程序设计综合课程设计 功能需求 用C+实现歌手比赛系统。该系统主要有以下功能: 1、 系统以菜单方式工作; 2、 歌手数据录入功能(歌手数据用文件保存)-输入; 3、 歌手成绩(评委打分)录入功能输入:按输入选手的顺序对其分别打分,输入每个评委的评分,对一个选手打完分之后,显示其总分和平均分; 4、 计算总成绩和平均成绩(去掉一个最高分和一个最低分); 5、 歌手成绩排序(按平均分):对选手按平均分进行排序,输出选手的姓名、编号、总分和平均分;
8、160;6、 歌手成绩查询功能算法; 按编号查询:输入编号,如果存在,输出选手的数据,不存在,输出 “信息不存在”。 按姓名查询:输入选手姓名,存在,则输出选手数据,不存在,则输出 “信息不存在”; 7、 追加选手数据(包括歌手姓名和编号):如果添加的选手已经存在,则不能插入,不存在,则输出“成功插入”。 8、 写入数据文件:将输入的信息进行保存,保存到自己所写的文件中。第2章 设计思路与算法输入选手数据 是否继续输入 查询选手数据 追加选手数据 结束 Y
9、 N 成绩排序 成绩输入 开始 图2-1 总体设计用流程图说明整体思路;用文字描述实现的关键算法。第3章源程序代码 #include<iostream> #include<fstream> #include<string> #include<iomanip> using namespace std; #define NULL 0 int n=0;
10、; /链表节点数 bool formExist=false; /原有链表是否存在 struct Singer string name; long num; int sum; int mark10; float average; Singer *next; /创建链表
11、 Singer *create(); /打印信息 void print(Singer *pt); /插入节点 Singer *insert(Singer *head,Singer *sin); /保存到文件void save(Singer *head,char filename); /菜单 void menu(); /评委打分 void grade(Singer *head,i
12、nt mark); /成绩排序 void rank(Singer *&head); /欢迎 void welcome(); /按姓名查询 void inquire(Singer *head,string name); /按编号查询 void inquire(Singer *head,long num); /从文件导入 Singer *import(char filena
13、me,Singer *head); int main() Singer *head=NULL; Singer newsin; string name; void grade(Singer *); ifstream infile; char filename20; long num; char
14、;choose; bool quit=false; char c; welcome(); while(true) menu(); cin>>choose; switch(choose) case '1': if (formExist)
15、160; cout<<"您要创建新的链表,原有链表将丢失,是否继续?(Y/N)" cin>>c; if (!(c='y'|c='Y') continue; else
16、 n=0; head=create(); system("pause"); break; se
17、160; n=0; head=create(); system("pause"); break; else head=create();
18、 system("pause"); break; se n=0; head=create(); system("pause");
19、 break; else head=create(); system("pause"); break; se
20、160; n=0; head=create(); system("pause"); break; else head=create();
21、 system("pause"); break; se n=0; head=create(); system("pause");
22、 break; else head=create(); system("pause"); break; se
23、160; n=0; head=create(); system("pause"); break; else head=create();
24、 system("pause"); break; se n=0; head=create(); system("pause");
25、 break; else head=create(); system("pause"); break; se
26、160; n=0; head=create(); system("pause"); break; else head=create();
27、 system("pause"); break; se n=0; head=create(); system("pause");
28、 break; else head=create(); system("pause"); break; se
29、160; n=0; head=create(); system("pause"); break; else head=create();
30、 system("pause"); break; se n=0; head=create(); system("pause");
31、 break; else head=create(); system("pause"); break; se
32、160; n=0; head=create(); system("pause"); break; else head=create();
33、 system("pause"); break; se n=0; head=create(); system("pause");
34、 break; se n=0; head=create(); system("pause"); break;
35、160; else head=create(); system("pause"); break; se n=0;
36、 head=create(); system("pause"); break; se n=0; head=create();
37、 system("pause"); break; else head=create(); system("pause");
38、160;break; se n=0; head=create(); system("pause"); break; se
39、160; n=0; head=create(); system("pause"); break; else
40、160; head=create(); system("pause"); break; se n=0; head=create(); system("pause&q
41、uot;); break; se n=0; head=create(); system("pause"); br
42、eak; else head=create(); system("pause"); break; se n=0;
43、 head=create(); system("pause"); break; se n=0; head=cre
44、ate(); system("pause"); break; else head=create(); system("pause");
45、160; break; se n=0; head=create(); system("pause"); break; se
46、160; n=0; else head=create(); system("pause"); break; se
47、 n=0; head=create(); system("pause"); break; else head=c
48、reate(); system("pause"); break; se n=0; head=create(); system("pause");
49、0; break; else head=create(); system("pause"); break; else
50、0; head=create(); system("pause"); break; case '2': cout<<"请输入文件名:" cin>>filename
51、; head=import(filename,head); system("pause"); break; case '3': grade(head); system("pause"); break;
52、 case '4': cout<<"成绩排序结果为:"<<endl; rank(head); system("pause"); break; case '5': print(head);
53、 system("pause"); break; case '6': cout<<"请输入姓名:"<<endl; cin>>name; inquire(head,name); system("pause
54、"); break; case '7': cout<<"请输入编号:"<<endl; cin>>num; inquire(head,num); system("pause");
55、break; case '8': cout<<"请输入新增选手的姓名、编号:"<<endl; cin>>; cin>>newsin.num; head=insert(head,&newsin); system(&
56、quot;pause"); break; case 'k': cout<<"请输入文件名:" cin>>filename; save(head,filename); system("pause"); &
57、#160;break; case 'c': system("cls"); welcome(); break; case 'q': quit=true; break; default: &
58、#160; cout<<"输入错误!"<<endl; if (quit) break; /退出时提示保存 cout<<"您想保存这些信息吗? (Y/N)" cin>>c; if (c='y' |
59、c='Y') cout<<"请输入文件名:" cin>>filename; save(head,filename); 程序设计综合课程设计 21 return 0; /欢迎界面 void welcome() cout<<"*"&l
60、t;<endl <<" 欢迎使用歌手比赛管理系统!"<<endl <<"制作人:黄光亮 时间:2010-12-29"<<endl <<"*"<<endl<<endl; /菜单 void me
61、nu() cout<<setiosflags(ios:left); cout<<"nn您要做什么?"<<endl <<setw(20)<<"1.创建选手信息表" <<setw(20)<<"2.从文件导入信息表"<<endl <<setw(20)<<"3
62、.评委打分" <<setw(20)<<"4.成绩排序"<<endl <<setw(20)<<"5.打印所有的信息" <<setw(20)<<"6.按姓名查询"<<endl <<setw(20)<<"7.按编号查询" &l
63、t;<setw(20)<<"8.追加选手数据"<<endl <<setw(20)<<"k.保存信息表到文件" <<setw(20)<<"c.清空屏幕"<<endl <<setw(20)<<"q.退出"<<endl<<endl <<&q
64、uot;输入您的选择:" /创建链表 Singer *create() bool error=false; formExist=true; Singer *p1,*p2,*head; head=NULL; p1=head; while(true) p2=p1; p1=new Sin
65、ger; cout<<"请输入选手的姓名:(输0结束)" cin>>p1->name; if (p1->name="0") break; cout<<"编号:" cin>>p1->num; n+;
66、60; if (n=1) head=p1; p1->next=NULL; else p2->next=p1; p1->next=NULL; cout<
67、;<"输入结束! "<<endl; return head; /输出信息 void print(Singer *head) Singer *p=head; if(p!=NULL) cout<<setw(15)<<"姓名"<<setw(10)<<"编号"&l
68、t;<endl; do cout<<setw(15)<<p->name<<setw(10)<<p->num<<endl; p=p->next; while(p!=NULL); cout<<"合计选手"<<n<<"人。&q
69、uot;<<endl; else cout<<"没有信息!"<<endl; /评委打分 void grade(Singer *head) Singer *p; p=head; if (p!=NULL)
70、60;do int i, max, min; int sum=0; max = -1;程序设计综合课程设计 24 min =101 cout <<"请输入"<<p->nu
71、m<<"号选手"<<p->name<<"的得分nn" for (i=0; i<10; i+) cout <<"第"<<i+1<<"个评委的评分:" cin>>p->ma
72、rki; if(p->marki>max) max=p->marki; if(p->marki<min) min=p->marki; sum+=p->marki;
73、; p->sum=sum; p->average = (p->sum-max-min)/8.0; cout<<"总分"<<p->sum<<"平均分:"<<p->average<< endl; p = p->
74、next; while(p!= NULL); else cout<<"n所有选手的评分输入完毕.n" system("pause"); /按平均分排序数出函数 void rank(Singer *&head) /冒泡法排序/ /p =
75、60;head; int cc; Singer *p,*q,*tail,*h;程序设计综合课程设计 25 if(!head) return; tail=NULL; h = new Singer; h->next = head; /h = head; while
76、(h->next!=tail) p=h; q=p->next; while(q->next!=tail) /swap if (p->next->average < q->next->average)
77、; p->next=q->next; q->next=q->next->next; p->next->next=q; p=p->next; else /next step
78、 q=q->next; p=p->next; /tail is the element bubble out /since we use single link tail=q; 程序设计综合课程设计
79、 26 /* do/求出选手的的人数 p = p->next; n+; while(p->next != NULL); Singer *temp
80、= head->next; Singer *prev = head; for(i=0; i<n-1; i+) if(head->average < temp->average) prev->next = temp->next;
81、 temp->next = head; head = temp; /* for(i=1; i<n; i+)/冒泡法排序 p1 = head;
82、60; p2 = head->next->next; for(j=0; j<n-i; j+)
83、; if(p1->nexti.average <= p2->average)/满足条件交换数据位置 p1->next->next = p2->next;
84、160; p2->next = p1->next; p1->next = p2;
85、; p2 = p2->next; /if p1 = p1->next; p2
86、= p2->next; /for /for */ /输出排序后数据/ head = p->next; p = h->next; cout <<setw(
87、10)<<"编号"<<setw(10)<<"姓名"<<setw(10)<<"总分"<<setw(15)<<"平均分"<<endl; do cout <<setw(10)<<p->num<&l
88、t; setw(10)<<p->name<<setw(10)<<p->sum<<setw(15)<<p->average<<endl; p = p->next; while(p != NULL); system("pause"); /插入信息 Sing
89、er *insert(Singer *head,Singer *sin) Singer *p0,*p1; p1=head; p0=sin; if (head=NULL) head=p0; p0->next=NULL; else while(p1-&
90、gt;next!=NULL) if (p0->num=p1->num) cout<<"编号为"<<p0->num<<"的选手已存在!"<<endl; return head;
91、60; p1=p1->next; p1->next=p0; p0->next=NULL; n+; cout<<"成功插入信息!"<<endl; return head; /保存到文件 void save(Singer *he
92、ad,char filename) Singer *p=head; bool flag=false; if (head=NULL) cout<<"没有可以保存的信息!"<<endl; return; else fstream out
93、file(filename,ios:out); if (!outfile) cout<<"打开数据文件出错!"<<endl; return; do if(flag) outf
94、ile<<endl; outfile<<p->name<<"t"<<p->num<<'t'<<p->mark; flag=true; p=p->next; while(p!=NULL); outfile.close(); cou
95、t<<"保存成功!保存到"<<filename<<endl; /按姓名查询 void inquire(Singer *head,string name) bool flag=true; Singer *p=head; int total=0; if (p=NULL)
96、160;cout<<"信息为空!"<<endl; return; do if(p->name=name) if (flag) cout<<"姓名为"<<name<&
97、lt;"的选手有:"<<endl; cout<<setw(15)<<"姓名"<<setw(10)<<"编号"<<setw(7)<<"成绩"<<endl; flag=false; cout<<setw(1
98、5)<<p->name<<setw(10)<<p->num<<setw(7)<<p->average<<endl; total+; p=p->next; while(p!=NULL); cout<<"已查询到"<<total<<"条记录。"<<endl; /按编号查询 void inquire(Singer *head,long num) bool flag=true; Singer *p=head; if (p=NULL) cout<<"信息为空!"<<endl;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设年产50万吨绿色循环聚酯新材料项目可行性研究报告模板-备案审批
- ESG评级体系中智慧物业权重提升对资本溢价的影响实证
- 2026年上海工商外国语职业学院高职单招笔试英语试题库含答案解析3套试卷
- 2026年三亚航空旅游职业学院高职单招笔试物理试题库含答案解析2套试卷
- 2026山东省教师招聘考试(高等教育综合基础知识)历年参考题库含答案详解
- 2026安徽省教师招聘考试(职业能力测验)历年参考题库含答案详解
- 2026天津市警务辅助人员招聘考试(公安基础知识)历年参考题库含答案详解
- 2026四川对口招生考试(医药卫生一类)历年参考题库含答案详解
- 2026卫生高级职称面审答辩(核医学技术)历年参考题库含答案详解
- 2026卫生专业技术资格考试(护理学-相关专业知识·主管护师)历年参考题库含答案详解
- 普华永道:2026年全球AI就业晴雨表-AI时代就业的两种未来图景(2026年-中文版)
- 2026秋小学西师大版音乐二年级上册(新教材)教学计划含教学进度表
- 2026年计算机专业综合应用题库
- 成都盐道街中学2026初一入学语文分班考试真题含答案
- 阅读理解(专项训练)五升六英语暑假专项提升(人教PEP版)
- 小区绿化养护合同
- 2026年秋季六年级数学上册教学计划(人教版)
- 2025北京市事业单位就业援藏专项招聘21人备考试题含答案
- 成都蜀华2025初一入学英语分班考试真题含答案
- D-二聚体升高诊治与管理专家共识2026
- 2026国网新版SLVA低压开关柜标准解析
评论
0/150
提交评论