数据结构课程设计----运动会数据管理系统_第1页
数据结构课程设计----运动会数据管理系统_第2页
数据结构课程设计----运动会数据管理系统_第3页
数据结构课程设计----运动会数据管理系统_第4页
数据结构课程设计----运动会数据管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计报告设计题目:运动会数据库系统专业软件工程班级软件091班学牛-郑泽奇学号3090921013指导教师周红芳/李兵起止时间2011-7-4至2011-7-82011年春季学期目录一、具体任务4二、软件环境4三、算法设计思想及流程图5四、源代码6五、运行结果32六、收获及体会34七、参考文献34课设任务本次数据结构课程设计的主题是学生利用所学的数据结构知识编写程序。作品为学生本人亲自设计制作,不能由他人代替,严禁抄袭他人作品,一经发现将取消本次教学实习的成绩。作品应附上word文档格式的说明,包括设计理念、作品特点、作品自评及个人小节,并指明所用的工作平台和工具软件。文件名均使用

2、英文名或拼音(小写)。评语(教师填写)、具体任务数据结构课程设计任务书0题目:学生运动会成绩数据库功能:学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。进入系统后可以输入和修改某个项目的结果情况,可以按各系院编号输出总分;按总分排序;按男团体总分排序;按系院编号查询;按项目编号查询;按女团体总分排序。分步实施:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:建立一个文件,包括某个系,5个项目的得分情况,能对文件中的信息进行扩充(追加),修改和删除;3

3、)进一步要求:完成对多个系,多个项目的得分排序,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。键盘输入:系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分)要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。、软件环境MicrosoftVisualC+6.0三、算法设计思想及流程图律动会面据阵索-S-数据排序*查询数据图1系统流程图图2输入流程图修仪:全院:数据改“据修项数图3修改流程图四、源代码/*运动会成绩数据库系统*编写日

4、期:2011/7/4*作者:郑泽奇*/#include<iostream>#include<string.h>usingnamespacestd;/学生typedefstructcharsex;chardepartment10;intscore;Student;/项目排名typedefstructeventRankcharevent10;Studentfirst;Studentsecond;Studentthird;structeventRank*next;EventRankNode,*EventRankLink;/院系排名typedefstructdepartment

5、Rankchardepartment10;intscore;structdepartmentRank*next;DepartmentRankNode,*DepartmentRankLink;/各种子函数voidinitSystem(int&,int&,int&,EventRankLink&,EventRankLink&,DepartmentRankLink&,DepartmentRankLink&,DepartmentRankLink&);intoperateChoose();voiddoChosen(int,FILE*,Even

6、tRankLink,EventRankLink,DepartmentRankLink,int,int,DepartmentRankLink,DepartmentRankLink);voidinput(FILE*,EventRankLink,EventRankLink,int,int);voidmodify(EventRankLink,EventRankLink);voidsearch(DepartmentRankLink,DepartmentRankLink,DepartmentRankLink,EventRankLink,EventRankLink);voidinitManEventLink

7、(int,EventRankLink&);voidinitWomanEventLink(int,EventRankLink&);voidinitDepartmentLink(int,DepartmentRankLink&);voidinputData(EventRankLink,int);voidwriteToFile(FILE*,EventRankLink,EventRankLink);voidreadFromFile(FILE*,EventRankLink,EventRankLink);voidrank(FILE*,EventRankLink,EventRankLi

8、nk,DepartmentRankLink,DepartmentRankLink,DepartmentRankLink);voidrankDepartment(EventRankLink,DepartmentRankLink);voidrankDepartmentAll(EventRankLinkmanEventRankLink,EventRankLinkwomanEventRankLink,DepartmentRankLinkdepartmentRankLink);voidinitUnranked(EventRankLink,DepartmentRankLink);voidshow(Depa

9、rtmentRankLink);voidenterChosen(int,EventRankLink,EventRankLink);voidmodifyEvent(EventRankNode*);voidshowOneEvent(EventRankNode*);voidrelease(EventRankLink,EventRankLink,DepartmentRankLink,DepartmentRankLink,DepartmentRankLink);/程序开始于此intmain()/院系数量/男子项目总数/女子项目总数/选择操作序号/存放排名情况的文件/存放男子项目排名情况/存放女子项目排名

10、情况/系统执行过程中需要的变量intdepartmentAmount=0;intmanEventAmount=0;intwomanEventAmount=0;intoperateOrder=1;FILE*rankFile=NULL;EventRankLinkmanRankLink=NULL;EventRankLinkwomanRankLink=NULL;DepartmentRankLinkdepartmentRankLink=NULL;/存放院系排名情况DepartmentRankLinkdepartmentManRankLink=NULL;/存放男团总分排名DepartmentRankLin

11、kdepartmentWomanRankLink=NULL;/存放女团总分排名cout<<"欢迎来到运动会成绩数据库系统"<<endl;initSystem(departmentAmount,manEventAmount,womanEventAmount,manRankLink,womanRankLink,departmentRankLink,departmentManRankLink,departmentWomanRankLink);while(operateOrder)operateOrder=operateChoose();doChosen(o

12、perateOrder,rankFile,manRankLink,womanRankLink,departmentRankLink,manEventAmount,womanEventAmount,departmentManRankLink,departmentWomanRankLink);system("cls");release(manRankLink,womanRankLink,departmentManRankLink,departmentWomanRankLink,departmentRankLink);cout<<"欢迎使用n"re

13、turn0;/系统初始化voidinitSystem(int&departmentAmount,int&manEventAmount,int&womanEventAmount,EventRankLink&manRankLink,EventRankLink&womanRankLink,DepartmentRankLink&departmentRankLink,DepartmentRankLink&departmentManRankLink,DepartmentRankLink&departmentWomanRankLink)II.c

14、out<<"请输入参加运动会的院系数:cin>>departmentAmount;cout<<"请输入男子项目数:"cin>>manEventAmount;cout<<"请输入女子项目数:"cin>>womanEventAmount;system("cls");initManEventLink(manEventAmount,manRankLink);initWomanEventLink(womanEventAmount,womanRankLink);in

15、itDepartmentLink(departmentAmount,departmentRankLink);initDepartmentLink(departmentAmount,departmentManRankLink);initDepartmentLink(departmentAmount,departmentWomanRankLink);/选择一下功能intoperateChoose()intitem;while(true)/功能菜单cout<<"请在以下功能中选择n"<<"1.输入信息n"<<"2.

16、修改信息n"<<"3.查询信息n"<<"4.信息排序n"<<"5.退出n”;/输入选择的功能cin>>item;switch(item)case 1: system("cls");return1;case 2: system("cls");return2;case 3: system("cls");return3;case 4: system("cls");return4;case 5: system(&qu

17、ot;cls");return0;default:cout<<"输入错误"<<endl;system("pause");/清屏以便重新输入system("cls");/进行所选择的功能voiddoChosen(intoperateOrder,FILE*rankFile,EventRankLinkmanRankLink,EventRankLinkwomanRankLink,DepartmentRankLinkdepartmentRankLink,intmanEventAmount,intwomanEve

18、ntAmount,DepartmentRankLinkdepartmentManRankLink,DepartmentRankLinkdepartmentWomanRankLink)/按选择进入不同功能的函数switch(operateOrder)case 1: input(rankFile,manRankLink,womanRankLink,manEventAmount,womanEventAmount);break;case 2: modify(manRankLink,womanRankLink);break;case 3: search(departmentManRankLink,dep

19、artmentWomanRankLink,departmentRankLink,manRankLink,womanRankLink);break;case 4: rank(rankFile,manRankLink,womanRankLink,departmentRankLink,departmentManRankLink,departmentWomanRankLink);break;default:break;/输入数据voidinput(FILE*inputFile,EventRankLinkmanRankLink,EventRankLinkwomanRankLink,intmanEvent

20、Amount,intwomanEventAmount)inputFile=fopen("rank.bin","ab+");if(inputFile=NULL)cout<<"文件打开错误"<<endl;system("pause");return;)/文件成功打开cout<<"输入男子项目排名"<<endl;inputData(manRankLink,manEventAmount);cout<<"输入女子项目排名"&l

21、t;<endl;inputData(womanRankLink,womanEventAmount);writeToFile(inputFile,manRankLink,womanRankLink);fclose(inputFile);)/男子项目链表初始化voidinitManEventLink(intmanEventAmount,EventRankLink&manRankLink)EventRankNode*s;s=(EventRankNode*)malloc(sizeof(EventRankNode);s->next=manRankLink;manRankLink=s;

22、for(inti=0;i<manEventAmount;i+)s=(EventRankNode*)malloc(sizeof(EventRankNode);/初始化男子项目的所有数据s->first.score=0;s->second.score=0;s->third.score=0;s->first.sex='m's->second.sex='m's->third.sex='m's->next=manRankLink->next;manRankLink->next=s;EventRan

23、kLink/女子项目链表初始化voidinitWomanEventLink(intwomanEventAmount,&womanRankLink)EventRankNode*s;s=(EventRankNode*)malloc(sizeof(EventRankNode);s->next=womanRankLink;womanRankLink=s;for(inti=0;i<womanEventAmount;i+)s=(EventRankNode*)malloc(sizeof(EventRankNode);/初始化女子项目的所有数据s->first.score=0;s-&

24、gt;second.score=0;s->third.score=0;s->first.sex='w's->second.sex='w's->third.sex='w's->next=womanRankLink->next;womanRankLink->next=s;)/院系排名初始化voidinitDepartmentLink(intdepartmentAmount,DepartmentRankLink&departmentRankLink)DepartmentRankNode*s;s=(Dep

25、artmentRankNode*)malloc(sizeof(DepartmentRankNode);s->next=departmentRankLink;departmentRankLink=s;for(inti=0;i<departmentAmount;i+)s=(DepartmentRankNode*)malloc(sizeof(DepartmentRankNode);strcpy(s->department,"xx");/初始化院系总分数s->score=0;s->next=departmentRankLink->next;dep

26、artmentRankLink->next=s;)/输入数据到内存voidinputData(EventRankLinkrankLink,intEventAmount)EventRankNode*s=rankLink->next;for(inti=0;i<EventAmount&&s;i+)cout<<"第"<<i+1<<”个项目n”;cin>>s->event;cout<<"n名次院系"<<endl;cout<<"1&q

27、uot;cin>>s->first.department;cout<<"2"cin>>s->second.department;cout<<"3"cin>>s->third.department;s->first.score=10;s->second.score=5;s->third.score=2;s=s->next;system("cls");/数据写入文件voidwriteToFile(FILE*writeFile,EventR

28、ankLinkmanRankLink,EventRankLinkwomanRankLink)EventRankNode*s=manRankLink->next;while(s)fwrite(s,sizeof(EventRankNode)-sizeof(EventRankNode*),1,writeFile);s=s->next;s=womanRankLink->next;while(s)fwrite(s,sizeof(EventRankNode)-sizeof(EventRankNode*),1,writeFile);s=s->next;)/排序voidrank(FIL

29、E*readFile,EventRankLinkmanRankLink,EventRankLinkwomanRankLink,DepartmentRankLinkdepartmentRankLink,DepartmentRankLinkdepartmentManRankLink,DepartmentRankLinkdepartmentWomanRankLink)readFromFile(readFile,manRankLink,womanRankLink);/分成三项进行排序rankDepartment(manRankLink,departmentManRankLink);rankDepart

30、ment(womanRankLink,departmentWomanRankLink);rankDepartmentAll(manRankLink,womanRankLink,departmentRankLink);cout<<"男子团体排名"<<endl;show(departmentManRankLink);cout<<"n女子团体排名"<<endl;show(departmentWomanRankLink);cout<<"n全院排名"<<endl;show(

31、departmentRankLink);system("pause");/男子项目的排序voidrankDepartment(EventRankLinkmanRankLink,DepartmentRankLinkdepartmentManRankLink)/排序前对男子项目链表初始化initUnranked(manRankLink,departmentManRankLink);DepartmentRankNode*t;DepartmentRankNode*s=departmentManRankLink->next,*max,temp;/开始排序while(s)max=

32、s;t=s;while(t->next)if(t->next->score>t->score)max=t->next;t=t->next;strcpy(temp.department,s->department);strcpy(s->department,max->department);strcpy(max->department,temp.department);temp.score=s->score;s->score=max->score;max->score=temp.score;s=s->

33、next;/全体项目的排序voidrankDepartmentAll(EventRankLinkmanRankLink,EventRankLinkwomanRankLink,DepartmentRankLinkdepartmentRankLink)/排序前对链表初始化initUnranked(manRankLink,departmentRankLink);initUnranked(womanRankLink,departmentRankLink);DepartmentRankNode*t;DepartmentRankNode*s=departmentRankLink->next,*max

34、,temp;/开始排序while(s)max=s;t=s;while(t->next)if(t->next->score>t->score)max=t->next;t=t->next;strcpy(temp.department,s->department);strcpy(s->department,max->department);strcpy(max->department,temp.department);temp.score=s->score;s->score=max->score;max->sc

35、ore=temp.score;s=s->next;/排序前初始化男子或女子项目链表voidinitUnranked(EventRankLinkeventRankLink,DepartmentRankLinkdepartmentRankLink)EventRankNode*es=eventRankLink->next;DepartmentRankNode*ds,*dt=departmentRankLink->next;while(es)/存入第一个人的成绩ds=departmentRankLink->next;while(ds)if(strcmp(es->first

36、.department,ds->department)=0)ds->score+=es->first.score;break;)if(ds->next=NULL)strcpy(dt->department,es->first.department);dt->score+=es->first.score;dt=dt->next;)ds=ds->next;)/存入第二个人的成绩ds=departmentRankLink->next;while(ds)if(strcmp(es->second.department,ds->

37、department)=0)ds->score+=es->second.score;break;if(ds->next=NULL)strcpy(dt->department,es->second.department);dt->score+=es->second.score;dt=dt->next;)ds=ds->next;)/存入第三个人的成绩ds=departmentRankLink->next;while(ds)if(strcmp(es->third.department,ds->department)=0)ds-&

38、gt;score+=es->third.score;break;)if(ds->next=NULL)strcpy(dt->department,es->third.department);dt->score+=es->third.score;dt=dt->next;)ds=ds->next;)es=es->next;/显小院系排名voidshow(DepartmentRankLinkdepartmentRankLink)DepartmentRankNode*s=departmentRankLink->next;inti=1;cout&

39、lt;<"名次院系得分n”;while(s)cout<<""<<i<<""<<s->department<<"t"<<s->score<<endl;i+;s=s->next;)/显小项目排名voidshowEvent(EventRankLinkeventRankLink)EventRankNode*s=eventRankLink->next;inti=1;while(s)cout<<"n第&

40、quot;<<i<<"个项目"<<s->event<<endl;cout<<"名次院系n”;cout<<""<<1<<"t"<<s->first.department<<endl;cout<<""<<2<<"t"<<s->second.department<<endl;cout<<

41、;""<<3<<"t"<<s->third.department<<endl;s=s->next;i+;/修改信息voidmodify(EventRankLinkmanRankLink,EventRankLinkwomanRankLink)EventRankNode*em,*ew;cout<<"选择要修改的记录n"intchoose=1;while(choose)intitem=1;em=manRankLink->next;ew=womanRankLink-

42、>next;while(em)cout<<item<<"."<<"男子"<<em->event<<endl;em=em->next;item+;)while(ew)cout<<item<<"."<<"女子"<<ew->event<<endl;ew=ew->next;item+;)cout<<"0.返回n”;cin>>choose;sy

43、stem("cls");enterChosen(choose,manRankLink,womanRankLink);/查询信息voidsearch(DepartmentRankLinkdepartmentManRankLink,DepartmentRankLinkdepartmentWomanRankLink,DepartmentRankLinkdepartmentRankLink,EventRankLinkeventManRankLink,EventRankLinkeventWomanRankLink)intchoose;while(choose)cout<<

44、"1.查询项目排名情况n"<<"2.查询院系排名情况n”<<"0.返回n"cin>>choose;system("cls");switch(choose)case 1: cout<<"男子项目排名n"showEvent(eventManRankLink);cout<<"女子项目排名n"showEvent(eventWomanRankLink);break;case 2: cout<<"男子团体排名n”;s

45、how(departmentManRankLink);cout<<"女子团体排名n"show(departmentWomanRankLink);cout<<"全院排名n"show(departmentRankLink);break;case0:return;default:cout<<"输入错误n"system("pause");system("cls");)/进入选择的修改项目voidenterChosen(intchoose,EventRankLinkma

46、nRankLink,EventRankLinkwomanRankLink)EventRankNode*em=manRankLink->next;EventRankNode*ew=womanRankLink->next;intseq=1;while(em)if(choose=seq)showOneEvent(em);modifyEvent(em);return;)elseem=em->next;seq+;)while(ew)if(choose=seq)showOneEvent(ew);modifyEvent(ew);return;)elseseq+;ew=ew->next

47、;)/修改某个项目voidmodifyEvent(EventRankNode*oneEvent)cout<<"请填入要修改的信息n"if(oneEvent->first.sex='m')cout<<"男子";elsecout<<"女子";cout<<oneEvent->event<<"n名次院系n"<<"1t"cin>>oneEvent->first.department;cou

48、t<<"2t"cin>>oneEvent->second.department;cout<<"3t"cin>>oneEvent->third.department;cout<<"修改成功n"system("pause");system("cls");)/显示某个项目voidshowOneEvent(EventRankNode*eo)if(eo->first.sex='m')cout<<"男子&

温馨提示

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

最新文档

评论

0/150

提交评论