C程序设计课程设计说明书比赛参赛选手管理系统

上传人:仙*** 文档编号:82427836 上传时间:2022-04-29 格式:DOC 页数:22 大小:137.50KB
收藏 版权申诉 举报 下载
C程序设计课程设计说明书比赛参赛选手管理系统_第1页
第1页 / 共22页
C程序设计课程设计说明书比赛参赛选手管理系统_第2页
第2页 / 共22页
C程序设计课程设计说明书比赛参赛选手管理系统_第3页
第3页 / 共22页
资源描述:

《C程序设计课程设计说明书比赛参赛选手管理系统》由会员分享,可在线阅读,更多相关《C程序设计课程设计说明书比赛参赛选手管理系统(22页珍藏版)》请在装配图网上搜索。

1、内蒙古科技大学C+课程设计说明书 C+程序设计课程设计说明书题 目:比赛参赛选手管理系统 学生姓名: 学 号: 专 业:电子信息工程 班 级:信息092 指导老师: 内蒙古科技大学课程设计任务书课程名称C+语言课程设计设计题目比赛参赛选手管理系统指导教师时间2011.6.132011.6.24一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根据设

2、计内容适当修改题目名称。*比赛参赛选手管理系统定义人员基类,包含选手的基本数据和基本属性;要求至少设计以下各功能模块:v 输入记录v 查询功能v 排序v 显示信息三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同

3、,则所有雷同的所有人均判为不及格。六、建议参考资料1C+面向对象程序设计,吴敏、杨国林 主编,内蒙古大学出版社2C+语言程序设计(第三版),郑莉,清华大学出版社比赛参赛选手管理系统摘要C+语言是目前公认的热门编程语言之一。C+是在C语言基础上发展演变而来的一种面向对象程序设计语言。它既支持面向过程的程序设计方法,也支持面向对象的程序设计方法。当今,C+语言在社会的各个领域发挥着越来越重要的作用。参赛选手系统的设计正是C+用于生活中的一项应用。参赛选手管理系统能方便用户快捷处理选手的信息,得到想要的数据并能将选手的信息以文档方式保存。此系统的主要管理的信息有:选手的姓名,编号和三项赛事的成绩。系

4、统的主要功能有选手信息的添加、修改、显示,能对选手成绩按编号或成绩进行排序,可以根据用户的要求按姓名,编号查询选手的信息,保存信息到文件以及从文件中读取信息等功能。目录摘要2第一章 问题描述2第二章 问题分析2第三章 数据模型2第四章 设计流程图2第五章 程序代码2第六章 运行结果2第七章 设计总结2参考文献2第一章 问题描述建立一套比赛参赛选手管理系统。定义人员基类(competitor),包含选手的基本数据和基本属性,实现以下各功能:v 输入记录:选手信息数据要以文件的形式保存,能实现选手信息数据的维护。此模块包括子模块有:增加选手信息、修改选手信息。v 查询功能:查询时可实现按姓名查询、

5、按编号查询、成绩查询v 排序:能对用户指定的任意项目名,按成绩由低到高排列选手数据并显示排序结果。v显示信息:显示选手的编号、项目、成绩等信息。设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用第二章 问题分析方案说明:参赛选手管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此此系统采用单链表来完成。各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。系统功能模块的划分:在主界面中包括“增加选手 修改选手 查询选手信息 排序 保存信息 读取信

6、息 退出”等全部的功能,之所以设计这么一个主界面,一是因为能使用户对程序操作的流程更加清楚简明,二是保证了用户同时只能对一个文件进行操作的系统要求,保证了系统不会发生打开文件紊乱或者出现致命错误。功能模板的划分显示菜单功能模板1增加选手功能2修改选手功能3查询选手信息4排序功能5保存信息6读取信息7退出第三章 数据模型类的设计定义参赛选手competitor类,包含成员变量:姓名name,编号num,短跑、跳高、跳远成绩x,y,z。class competitor /选手public: competitor *next; public: string name; /姓名 long num; /

7、编号 int x,y,z; /短跑,跳高,跳远 成员函数:void sadd(); /添加void samend(); /修改void ssearch(); /查询void staxis(); /排序void ssave(); /保存void sload(); /读取void pxh();void psx();void pyw();void pyy();第四章 设计流程图开始读入文件中的数据并输出菜单及提示信息输入选择选择操作子程序保存并退出 图4.1 流程图 第五章 程序代码#include #include #include #include using namespace std; cl

8、ass competitor public: competitor *next; public: string name; /姓名 long num; /编号 float x,y,z; /短跑,跳高,跳远 void play()coutname选手的编号是num,短跑:x,跳高:y,跳远:z next; delete comp; comp=p; comp=0; void sadd(); /添加 void samend(); /修改 void ssearch(); /查询 void staxis(); /排序 void ssave(); /保存 void sload(); /读取 void px

9、h(); void psx(); void pyw(); void pyy(); private: competitor *comp; /头接点 ; void cla:sadd() /添加 competitor *q; string name1; long num1; float x1,y1,z1; system(cls); coutn *增加的选手* nendl; cout请输入选手的(中间用空格间隔) endl; cout姓名 编号 短跑成绩 跳高成绩 跳远成绩name1num1x1y1z1; q=new competitor(name1,num1,x1,y1,z1); q-next=0;

10、 if(comp) competitor *t; t=comp; if(t-num=num1) cout编号已存在,请重新输入next) if(t-num=num1) cout编号已存在,请重新输入next; t-next=q; else comp=q; cout输入完毕endl; void cla:samend() /修改 system(cls); long num1; coutn* 修改选手信息 *n; coutnum1; /查找要修改的结点 competitor *p1,*p2; p1=comp; while(p1) if(p1-num=num1) break; else p2=p1;

11、p1=p1-next; if(p1!=NULL) cout编号是num1的选手的信息:endl; cout姓名 name 短跑x 跳高y 跳远zendl; cout请输入修改后的信息:姓名 短跑成绩 跳高 ;cout成绩 跳远成绩p1-namep1-xp1-yp1-z; cout修改成功endl; else /未找到接点 cout未找到!n; void cla:ssearch() /查询 system(cls); coutn* 查询选手信息 *nendl; cout请输入查询方式:endl; cout1.按编号查询endl; cout2.按姓名查询endl; cout3.返回c; switch

12、 (c) case 1: long num1; cout要查询的编号num1; /查找要查询的结点 competitor *p1,*p2; p1=comp; while(p1) if(p1-num=num1) break; else p2=p1; p1=p1-next; if(p1!=NULL) cout编号是num1的选手的信息endl; cout姓名:name 短跑:x 跳高:y 跳远:zendl; cout查询完毕.; else /未找到接点 cout未找到!n; break; case 2: string name1; cout要查询的选手姓名name1; /查找要查询的结点 comp

13、etitor *p1,*p2; p1=comp; while(p1) if(p1-name=name1) break; else p2=p1; p1=p1-next; if(p1!=NULL) coutname1的选手的信息endl; cout编号:num 短跑:x C+:y 跳远:zendl; cout查询完毕.; else /未找到接点 coutnext) n+; p1=p1-next; cout共有n条信息.endl; int i; p1=comp; for(i=1;inump1-next-num) / 如果头结点大于第二个的 p2=p1-next; p1-next=p1-next-ne

14、xt; p2-next=p1; /头结点交换 comp=p2; p1=comp; while(p1-next-next) /中间的交换 p2=p1; p1=p1-next; if(p1-nump1-next-num) p2-next=p1-next; p1-next=p1-next-next; p2-next-next=p1; p1=p2-next; /交换 p1=comp; do p1-play(); p1=p1-next; while(p1); void cla:psx() /按短跑成绩排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1

15、-next) n+; p1=p1-next; cout共有n条信息.endl; int i; p1=comp; for(i=1;ixp1-next-x) / 如果头结点大于第二个的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /头结点交换 comp=p2; p1=comp; while(p1-next-next) /中间的交换 p2=p1; p1=p1-next; if(p1-xp1-next-x) p2-next=p1-next; p1-next=p1-next-next; p2-next-next=p1; p1=p2-next; /交换 p1

16、=comp; do p1-play(); p1=p1-next; while(p1); void cla:pyw() /按跳高成绩排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1-next) n+; p1=p1-next; cout共有n条信息.endl; int i; p1=comp; for(i=1;iyp1-next-y) /如果头结点大于第二个的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /头结点交换 comp=p2; p1=comp; while(p1-next-next) /中

17、间的交换 p2=p1; p1=p1-next; if(p1-yp1-next-y) p2-next=p1-next; p1-next=p1-next-next; p2-next-next=p1; p1=p2-next; /交换 p1=comp; do p1-play(); p1=p1-next; while(p1); void cla:pyy() /按跳远成绩排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1-next) n+; p1=p1-next; cout共有n条信息.endl; int i; p1=comp; for(i=1;izp

18、1-next-z) / 如果头结点大于第二个的 p2=p1-next; p1-next=p1-next-next; p2-next=p1; /头结点交换 comp=p2; p1=comp; while(p1-next-next) /中间的交换 p2=p1; p1=p1-next; if(p1-zp1-next-z) p2-next=p1-next; p1-next=p1-next-next; p2-next-next=p1; p1=p2-next; /交换 p1=comp; do p1-play(); p1=p1-next; while(p1); void cla:staxis() /排序 s

19、ystem(cls); char c; cout请选择以何种方式排序:endl; cout1以编号排序endl; cout2以短跑成绩排序endl; cout3以跳高成绩排序endl; cout4以跳远成绩排序endl; cout5返回endl; cout请选择(1-5)c; switch (c) case 1:pxh(); break; case 2:psx(); break; case 3:pyw(); break; case 4:pyy(); break; case 5:return; void cla:ssave() /保存到文件 system(cls); char c; coutc;

20、 if(toupper(c)!=Y) return; ofstream tfile(date.txt,ios_base:binary); competitor *p=comp; while(p) / 写入文件 tfilenametnumtxtytz; tfilenext; tfile.close(); cout保存完毕.next; delete p; p=comp; If stream tfile(date.txt,ios_base:binary); string name1; long num1; float x1,y1,z1; tfilename1num1x1y1z1; while(tfi

21、le.good() /创建选手接点 competitor *s; s=comp; s=new competitor(name1,num1,x1,y1,z1); s-next=0; if(comp) /若已经存在结点 competitor *p2; p2=comp;while(p2-next) /查找尾结点 p2=p2-next; p2-next=s; /连接 else /若不存在结点(表空) comp=s; /连接 tfilename1num1x1y1z1; tfile.close(); coutn欢迎使用选手成绩管理系统n; void main() char c; cla a; do cou

22、t*n; cout 1增加选手 n; cout 2修改选手 n; cout 3查询选手信息 n; cout 4排序 n; cout 5保存信息 n; cout 6读取信息 n; cout 7退出 n; cout*n; coutc; switch(c) case 1: a.sadd();break; case 2: a.samend();break; case 3: a.ssearch();break; case 4: a.staxis();break; case 5: a.ssave();break; case 6: a.sload();break; while(c!=7); 第六章 运行结果

23、图6.1 运行结果主界面第七章 设计总结通过一个学期的C+学习,我对C+语言有了基本认识,但是对有些知识懂得还不够透彻。通过这次为期两周的课程设计,我学到了更多关于C+面向对象的程序设计的内容。这个课题用到了C+语言程序设计的知识,通过这次课程设计,使我对C+设计有了更深的了解,对课本上的知识有了进一步的掌握,同时也使我对自己的专业知识有进一步的巩固加深。在写程序时,要注意类与对象、构造函数、析构函数、成员函数等相结合,尤其是在学好程序后,要运行,有不足之处及时完善。把理论知识与实践相结合,才能将所学知识运用的恰到好处。参考文献1吴敏,杨国林. C+面向对象程序设计M.呼和浩特:内蒙古大学出版社.2006.2郑莉.C+语言程序设计M. 北京:清华大学出版社.2003.3刘开军.C+程序设计M.北京:清华大学出版社.2004.21

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!