ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.03MB ,
资源ID:23627652      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23627652.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运动会课程设计报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运动会课程设计报告.docx

1、运动会课程设计报告 课程设计报告( 2010- 2011年度第2学期)实验名称:数据结构 题 目: 运动会项目管理 院 系: 控制与计算机工程 班 级: 软件1002班 学 号: 1101250224 学生姓名: 温裕青 指导教师: 林碧英 设计周数: 1周 成 绩: 日期:2011年6月25日一、课程设计的目的与要求1目的: 应用数据结构和算法来设计相应的程序,培养学生问题求解模块的框架设计和详细设计、相关程序实现和调试能力,完成创新能力和实践能力的训练。2要求: 用高级程序设计语言C编码,用VC+开发平台调试。二、设计正文 一)课程设计题目: 运动会项目管理。 二)需求分析: 运动会项目管

2、理程序设计所需要的是整理出不 可以同时举行的项目,然后把他们分到一组。同时把程序运行过程中的信息存储到文件里面方便下次使用。要求可以增减项目和参赛的同学,这过程中得考虑增减项目对学生报名信息的影响。 三)概要设计: 1)先定义一个游戏中要用到的抽象的数据类型。 ADT LIST 数据对象D:D是具有相同特性的数据袁术的集合,每个元素对应学生的一项信息名。 数据关系R:数据元素同属一种类型 基本操作: 从文件读取学生信息;插入,删除学生信息。 ADT; 2)本程序包含的函数有: 1.主函数main();/里面包含了一级菜单。 2.学生报名信息管理的二级菜单menu1(); 3.运动会项目管理的二

3、级菜单menu2(); 4.插入学生信息的函数insertSTU(); 5.删除学生信息的函数deleSTU(char name);/一次只能删除一个,且按姓名删除 6.把项目信息从文件里面导出Pdaochu(); 7.把学生信息从文件里面导出Sdaochu(); 8.给项目赋值一个整数以方便项目安排是的计算fuzhi(char ); 9.插入运动项目Pinsert(); 10.删除运动项目Pdele();/删除运动会项目是需要考虑到删除后对学生信息的各种影响 11.查看某同学所报的项目是否举行LOOK(student ); 12.参看某项目是否存在Plook(char ); 13.项目安排管

4、理函数Program(); 各函数之间的关系: insertSTU Pdaochu deleSTU dispSTU Sdaochu menu1 Main LOOK Pinsert Plook Pdele menu2 Program fuzhi四)详细设计(1)数据类型定义 typedef struct char school10;/院系 char sex4;/性别 char sum20;/学号 char name20;/学生姓名 char item320;/所报项目且每人限报两项,只报一项的则第二项改为不报student;操作:Sdaochu-导出学生信息insertSTU-增加学生信息del

5、eSTUI-按姓名删除学生信息Pdaochu-导出项目信息Pinsert-插入项目信息Pdele-删除项目信息Program-项目安排管理/以上操作完成后都要把信息存入文件里面保存。方便下次使用。五) 调试分析1.开始在执行删除学生信息是每次都是把全部都删除了。通过调试才发现原来从文件导出学生信息时久已经出现了错误。用于导出学生信息的一个变量“i”没有初始化为1,所以一开始就为最后的一个。所以存放信息的数据结构前面都为空了。2.在执行Program函数是发现里面的data变化没有按照预期的进行。通过调试是才发现赋值data的循环不能跳出。所以我加了个限制他的循环条件。3.开始在执行二级菜单时发

6、现一级菜单的东西还留在屏幕上。所以我在每个二级菜单前加了个清屏函数。这样在二级菜单开始前一级菜单的信息都会从屏幕上清除.4.在执行删除项目函数时,发现删除了 一个项目后学生信息里面还有这个项目的信息。所以经过考虑我删除了学生信息里面的不存在的信息,并且如果该学生所报的项目都不存在的话,则删除改学生的所有信息。六)使用说明 开始运行后,显示为下面我们先选择1:我们先看下从文件里面导出的学生信息是否正确,所以选择3 可以看出信息成功的导出了.下面我们退回到一级菜单。选择2:我们先看下项目是否正确了。选择4可以看出项目的导出也成功了。选择3,看下项目安排正确不。 接下来再退回到一级菜单。选择1 再选

7、择1增加一个学生信息。 这里我们选择增加一个学生信息 接下来显示下看学生信息是否插入因为插入了一个学生信息,冲突关系发生了改变,项目安排肯定也相应的发生了改变,我们再执行以下项目安排管理可以看到男子200米和男子1000米被分到了不同组。 下面我们执行下删除学生信息。输入删除的名字:小刚。再显示一遍看看。退回到一级菜单,选择2来到运动会项目管理的二级菜单。由于之前删除了小刚的信息。所以项目安排也会改变下面执行删除运动会项目。选择2 选择删除一个,因为本身数据里面项目就很少删除太多会导致数据不全面。男子3级跳删除后显示一次看看是否删除了。这里可以看出删除成功。接下来看下删除后对学生信息的影响 小

8、谷那里原来是报有男子3级跳的,但是删除了3级跳之后变成了“不报”。项目安排也会发生相应的改变。增加一个运动项目男子铁人 增加了项目当然相应的也有学生报。回到项目安排管理的地方男子铁人出现在了第二组。附录:#include #include #include #include #define max 50typedef struct char school10;/院系 char sex4;/性别 char sum20;/学号 char name20;/学生姓名 char item320;/所报项目且每人限报两项,只报一项的则第二项改为不报student;student STU20;char sl

9、2020;int n,m;void insertSTU();/插入报名学生void deleSTU(char name10);/删除报名学生void Pdaochu();/把项目从文件里导出void Sdaochu();/把学生信息从文件里面导出void Program();/项目安排int fuzhi(char );/给项目附给一个整数方便比较void Pinsert();/插入运动项目void Pdele();/删除运动会项目int LOOK(student );/查看某同学所报项目是否都不举办int Plook(char p20);/查看项目是否存在int Plook(char p20)

10、 int i; for(i=1;i=m;i+) if(strcmp(p,sli)=0) return 1; return 0;int LOOK(student a) int i; for(i=1;i=m;i+) if(strcmp(a.item1,sli)=0|strcmp(a.item2,sli)=0) return 1; return 0;void Pdele() int i,j,k,q; char pro20; printf(输入你要删除项目的个数:n); scanf(%d,&k); printf(输入要删除的项目:n); for(i=1;i=k;i+) scanf(%s,pro); f

11、or(j=1;j=m;j+) if(strcmp(pro,slj)=0) strcpy(slj,slj+1); m-; /把修改后的项目存入文件 FILE *fp,*p1; fp=fopen(项目.txt,w); for(j=1;j=m;j+) fprintf(fp,%st,slj); fclose(fp); /由于删除了项目后部分同学的参报项目也需改变, /如果某同学所报的项目全部没有了就把该同学删掉 q=n; for(i=1;iq;i+) if(LOOK(STUi)=0) strcpy(STUi.school,STUi+1.school); strcpy(STUi.sex,STUi+1.s

12、ex); strcpy(STUi.sum,STUi+1.sum); strcpy(STUi.name,STUi+1.name); strcpy(STUi.item1,STUi+1.item1); strcpy(STUi.item2,STUi+1.item2); n-; if(LOOK(STUi)=0) n-; for(i=1;i=q;i+) if(Plook(STUi.item1)=0) strcpy(STUi.item1,STUi.item2); strcpy(STUi.item2,不报); if(Plook(STUi.item2)=0) strcmp(STUi.item2,不报);/- /

13、把学生信息存入文件 p1=fopen(学生报名信息,w); for(i=1;i=n;i+) fprintf(p1,%st%st%st%st%st%sn,STUi.school,STUi.sex,STUi.sum,STUi.name,STUi.item1,STUi.item2); fclose(p1);void Sdaochu() int i=1; FILE *p1; if(p1=fopen(学生报名信息,r)=NULL) printf(文件文件读入失败!n); exit(0); while(!feof(p1) fscanf(p1,%s%s%s%s%s%s,STUi.school,STUi.se

14、x,STUi.sum,STUi.name,STUi.item1,STUi.item2); /如果只报一项,则第二个输入“不报” i+; n=i-2; fclose(p1);void Pinsert() FILE *fp; int k,i; char b20; fp=fopen(项目.txt,at); printf(输入增加的项目的个数n); scanf(%d,&k); printf(输入增加项目名称-n); for(i=1;i=k;i+) scanf(%s,b); fprintf(fp,%st,b); strcpy(slm+i,b); fclose(fp); m=m+k;void Pdaoch

15、u() int i=1; FILE *fp; fp=fopen(项目.txt,r); while(!feof(fp) fscanf(fp,%s,sli+); fclose(fp); m=i-1;void insertSTU() int k,i; FILE *fp; fp=fopen(学生报名信息,at); printf(输入增加学生的个数n); scanf(%d,&k); printf(输入增加的学生的信息-n); for(i=1;i=k;i+) scanf(%s%s%s%s%s%s,STUn+i.school,STUn+i.sex,STUn+i.sum,STUn+i.name,STUn+i.

16、item1,STUn+i.item2); fprintf(fp,%st%st%st%st%st%sn,STUn+i.school,STUn+i.sex,STUn+i.sum,STUn+i.name,STUn+i.item1,STUn+i.item2); fclose(fp); n=n+k;void deleSTU(char name10) FILE *p1; int i=1,k; for(i=1;i=n;i+) if(strcmp(name,STUi.name)=0) k=i; /把学生信息存入文件 p1=fopen(学生报名信息,w); for(i=1;i=n;i+) if(i!=k) fp

17、rintf(p1,%st%st%st%st%st%sn,STUi.school,STUi.sex,STUi.sum,STUi.name,STUi.item1,STUi.item2); fclose(p1); for(i=k;in;i+) strcpy(STUi.school,STUi+1.school); strcpy(STUi.sex,STUi+1.sex); strcpy(STUi.sum,STUi+1.sum); strcpy(STUi.name,STUi+1.name); strcpy(STUi.item1,STUi+1.item1); strcpy(STUi.item2,STUi+1

18、.item2); n-;int fuzhi(char s10) int j=1; while(slj) if(strcmp(slj,s)=0) return j; else j+; return j;void Program() int i=1,j=1,k=1,l=1,data20,q,num=0; for(;i=m;i+) datai=l;/开始把代表运动项目安排的次序全部置为1 l+; while(j!=num) num=j; for(i=1;i=n;i+) if(datafuzhi(STUi.item1)=l-1&datafuzhi(STUi.item2)=l-1) datafuzhi(

19、STUi.item2)=l; j+; l+; q=l-2; i=1; FILE *fporder; fporder=fopen(分组信息.txt,w); while(i=q) printf(n第%d组n,i); fprintf(fporder,第%d组n,i); /把分组的信息读出来和存进文件里面 for(j=1;j=m;j+) if(dataj=i&strcmp(slj,不报)!=0) printf(%st,slj); fprintf(fporder,%st,slj); i+; fclose(fporder);void Sdisp() int i=1; printf(院系t性别t学号t姓名t

20、第一个项目t第二个项目n); while(i=n) printf(%st%st%st%st%st%sn,STUi.school,STUi.sex,STUi.sum,STUi.name,STUi.item1,STUi.item2); i+; int menu1() char name20; while(1) int k; printf(-n); printf( 学生报名信息管理 n); printf( -n); printf( 1-增加学生报名信息 n); printf( 2-按姓名删除学生报名信息 n); printf( 3-显示学生报名信息 n); printf( 0-退出 n); prin

21、tf(*n); printf(请输入你要进行的操作); scanf(%d,&k); switch(k) case 1: insertSTU(); printf(n按任意键继续n); getch(); break; case 2: printf(输入要删除的学生的名字:n); scanf(%s,name); deleSTU(name); printf(n按任意键继续n); getch(); break; case 3: Sdisp(); printf(n按任意键继续n); getch(); break; case 0: return 0; default : printf(错误操作指令,请重新输

22、入); printf(n按任意键继续n); getch(); break; system(cls);/清屏函数 int menu2() while(1) int k,i; printf(-n); printf( 运动会项目管理 n); printf( -n); printf( 1-增加运动会项目 n); printf( 2-减少运动会项目 n); printf( 3-运动会项目安排管理 n); printf( 4-显示比赛项目 n); printf( 0-退出 n); printf(*n); printf(请输入你要进行的操作); scanf(%d,&k); switch(k) case 1:

23、 Pinsert(); printf(n按任意键继续n); getch(); break; case 2: Pdele(); printf(n按任意键继续n); getch(); break; case 3: Program(); printf(n按任意键继续n); getch(); break; case 4: for(i=1;i=m;i+) printf(%st,sli); printf(n按任意键继续n); getch(); break; case 0: return 0; default : printf(错误操作指令,请重新输入); printf(n按任意键继续n); getch()

24、; break; system(cls); void main() int i=1; Pdaochu(); Sdaochu(); while(1) int k; /菜单-菜单 printf(-n); printf( 运动会项目管理系统 n); printf( -n); printf( 1-学生报名信息管理 n); printf( 2-运动会项目管理 n); printf( 0-退出 n); printf(*n); printf(请输入你要进行的操作); scanf(%d,&k); switch(k) case 0: exit(0); case 1: system(cls);/清屏函数 menu1(); printf(n按任意键继续n); getch(); break; case 2: system(cls);/清屏函数 menu2(); printf(n按任意键继续n); getch(); break; system(cls);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1