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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计.docx

1、数据结构课程设计 课程设计报告册2011 2012 学年度 第 一 学期 计算机 院/系 信息管理与信息系统 专业 09年级 1 班课程名称:数据结构课程设计 1、程序设计与实现(1)学生成绩管理系统31. 需求分析 32. 概要设计 33. 详细设计 44. 调试分析 8(2)文章编辑121. 需求分析 122. 概要设计 12 3. 详细设计 124. 调试分析 19(3)运动会分数统计241. 需求分析 242. 概要设计 243. 详细设计 254. 调试分析 292、课程设计总结 31附录 32教师评语 341、程序设计与实现(1)学生成绩管理系统1. 需求分析用c语言编写一个简单的

2、学生信息管理程序,能实现对学生信息的简单管理。本程序可对5个学生成绩进行管理,可以按降序输出学生总成绩,可以按学号作为关键字查询学生成绩,可以执行退出程序命令。1) INPUT:对5个学生的信息进行输入;2) SORT:对5个学生的总分按降序排序并显示出来;3) QUERY:输入一个学号后,查询显示出该学生的有关信息;4) EXIT:退出。2. 概要设计程序设计流程图:本程序采用数组存储方式存储数据;3. 详细设计#include#includestruct stu1 /*采用结构体定义学生结点*/ int num; char name20; int s3; int score;struct

3、stu1 student5; /*建立一个长度为5的结构体数组*/void input();void sort();void query();main() /*主程序*/ int i=1; while(i!=0) /*菜单界面设置*/ printf(n n * Thanks for using student achievement search system! *n); printf(n -Menu-n n); printf( | 1.input scores |n n); printf( | 2.sort scores |n n); printf( | 3.find scores |n n

4、); printf( | 4.exit |n n ); printf( - n n); printf( Please choose one to continue: ); a1:scanf(%d,&i); if (i4) printf(n Your operation is wrong, please choose again: ); goto a1; /*跳出多重循环并执行a1*/ switch(i) /*菜单选择*/ case 1:input();break; case 2:sort();break; case 3:query();break; case 4:exit(0); /*选择4时

5、退出程序*/ printf(Please press ENTER to exit); getchar(); getchar();void input() /*学生信息输入*/ int k; printf(nnn Please input the students information: nn1.number 2.name 3.mark1 4.mark2 5.mark3n); for(k=0;k5;k+) /*利用for循环输入信息,学生学号默认为15*/ scanf(%d %s %d %d %d,&studentk.num,studentk.name,&studentk.s0,&studen

6、tk.s1,&studentk.s2); studentk.score=studentk.s0+studentk.s1+studentk.s2; void sort() /*学生成绩总分降序排列*/ int tmp1,i,j,tag=1; char tmp28; struct stu1 student25; for(i=0;i5;i+) student2i.num=studenti.num; strcpy(student2i.name,studenti.name); student2i.score=studenti.score; for(i=0;i4&tag=1;i+) for(j=0;j4-

7、i;j+) if (student2j.scorestudent2j+1.score) tmp1=student2j.num; student2j.num=student2j+1.num; student2j+1.num=tmp1; strcpy(tmp2,student2j.name); strcpy(student2j.name,student2j+1.name); strcpy(student2j+1.name,tmp2); tmp1=student2j.score; student2j.score=student2j+1.score; student2j+1.score=tmp1; t

8、ag=1; /*冒泡法,使用双循环把总分相对较高的学生信息向上移动*/ printf(n); printf(numbertnametscoren); for(i=0;i5;i+) /*通过循环把学生信息通过列表的形式显示出来*/ printf(%dt%st%dn,student2i.num,student2i.name,student2i.score); printf(n n Please press ENTER to return Menu !); getchar(); getchar();void query() /*输入学号并查询学生信息*/ int n,t=0; int f; char

9、 j; printf(n Please input the num you want to find:); a1:scanf(%d,&n); for(f=0;f5;f+) if(n=studentf.num) printf(num name mark1 mark2 mark3 scoren); printf( %d %s %d %d %d %d,studentf.num,studentf.name,studentf.s0,studentf.s1,studentf.s2,studentf.score); t=1; break; else t=0; if(t=0) printf(n It is t

10、he wrong number,please input again:); goto a1; printf(nn Do you want to continue? Y or N ); scanf(%c,&j); j=getchar(); getchar(); if (j=y|j=Y) printf(n Please input the num you want to find:); goto a1; printf(n Please press ENTER to return Menu!); getchar();4. 调试分析1) 调试过程所遇到的问题:输入学号时,带有字母,运行出现死循环;解决

11、方案:输入学号时,输入的必须是数字。2) 测试数据和测试结果:测试数据1:NumberNameMark1Mark2Mark31Momo8583902Kaka7680853Nono9077804Lily6689905Jojo507888测试数据2:NumberNameMark1Mark2Mark31Tina9580772Anna6783903Yoga8069884Mini9065925Papa786056测试结果:测试结果1: 测试结果2:(2)文章编辑1. 需求分析用C+设计一个程序,输入一行文字(可以输入大写、小写的英文字母,任何数字及标点符号),程序可以统计出文字、数字、空格的个数。1)

12、分别统计出其中英文字母数和空格数及总字数;2) 统计某一字符串出现的次数,并输出该次数;3) 删除某一符号,并将后面的字符前移。2. 概要设计While循环主菜单,进入程序后,用gets(str)录入字符串,程序利用isalpha(),isdigit(),strlen()等函数实现对一字符串的字符统计;再进入主功能菜单,分别有四个功能,统计字符数(子程序利用isalpha()和strlen()函数实现统计)、计算字符重复次数、删除还有退出。其中除了退出功能外,其余三种功能都有各自的子程序完成其任务算法。3. 详细分析#include #include #include #define MAX

13、500 void main() char strMAX; int a=1; int b,c,d; /clrscr(); printf(nPlease input string:n ); gets(str); while(a=1 &a=4) printf(n- Main Menu -); /*主菜单界面设置*/ printf(n 1.statistical inputs string of the character number(Letter,Figure,Space,Punctuation).); printf(n 2.count the string repetitions number.

14、); printf(n 3.delete the character.); printf(n 4.exit.); printf(n-n); printf(n Please choose one to continue: ); scanf(%d,&a); if(a4) printf(n Your operation is wrong!Please choose again! ); scanf(%d,&a); /*!a*/ if(a=1) c=func1(str); if(c=1) continue; /*a=1*/ if(a=2) c=func2(str); if(c=1) continue;

15、/*a=2*/ if(a=3) func3(str); /*a=3*/ if(a=4) printf(nDo you really want to quit?Continue to press 1,exit please press 0.); scanf(%d,&b); printf(n Thank you for your use!); break; /*a=4*/ /*while*/ /*main*/ int func1(char strMAX) /*调用func1函数*/ int i=1,j; int e,d,a,c,sp,sy; while(i=1 &i=6) e=0; d=0; sp

16、=0; sy=0; a=0; printf(nn 1.Letter); printf(n 2.Figure); printf(n 3.Space); printf(n 4.Punctuation); printf(n 5.All characters); printf(n 6.Return); printf(n Please choose one to continue: ); scanf(%d,&i); if(i6) printf(nYour operation is wrong!Please choose again!(Please press any key to return!); s

17、canf(%d,&i); continue; /*!i*/ if(i=1) for(j=0;jstrlen(str);j+) if(isalpha(strj)!=0) e=e+1; /*e*/ /*for*/ printf(n); puts(str); printf(The number of Letters: %d,e); /*统计文章里字母的个数*/ /*i=1*/ if(i=2) for(j=0;jstrlen(str);j+) if(isdigit(strj)!=0) d=d+1; /*d*/ /*for*/ printf(n); puts(str); printf(nThe numb

18、er of Figures: %d,d); /*统计文章里数字的个数*/ /*i=2*/ if(i=3) for(j=0;jstrlen(str);j+) if(strj= ) sp=sp+1; /*sp*/ /*for*/ printf(n); puts(str); printf(The number of Spaces: %d,sp); /*统计文章里空格键的个数*/ /*i=3*/ if(i=4) for(j=0;jstrlen(str);j+) if(isdigit(strj)!=0) d=d+1; /*d*/ if(isalpha(strj)!=0) e=e+1; /*e*/ if(

19、strj= ) sp=sp+1; /*sp*/ /*for*/ sy=strlen(str)-sp-e-d; printf(n); puts(str); printf(The number of Punctuations: %d,sy); /*统计文章里标点符号的个数*/ /*i=4*/ if(i=5) a=strlen(str); /*把长度赋值给a*/ printf(n); puts(str); printf(Total character number: %d,a); /*统计文章里全部字符的个数*/ /*i=5*/ if(i=6) c=1; return(c); /*i=6*/ /*w

20、hile*/ c=1; return(c); /*func1*/ int func2(char strMAX) /*调用func2函数*/ int c,b=1; int lstr,lchi; int i,j,count; char chi30; while(b=1) count=0; printf(nThe string you want to count:); /*输入要查询的字符串*/ scanf(%s,chi); lstr=strlen(str); lchi=strlen(chi); if(lstr=lchi) printf(%d,count); printf(Beyond the in

21、put range,input again please press 1,return please press 0!); scanf(%d,&b); /*lstr=lchi*/ for(i=0;ilstr;i+) if(stri=chi0) for(j=0;jlchi;j+) if(stri+j!=chij) break; /*跳出循环*/ /*if*/ /*for*/ if(j=lchi) count+; /*j=lchi*/ /*if*/ /*for*/ printf(n); puts(str); printf(nThis string repeated %d. ,count); pri

22、ntf(nContinue to count please press 1,return please press 0! ); scanf(%d,&b); /*while*/ c=1; return(c); /*func2*/ int func3(char strMAX) /*调用func3函数*/ int c,b=1; int i,j,e,t=0; char d1; while(b=1) t=0; printf(nPlease input the character you want to delete:);/*输入要删除的字符*/ scanf(%s,&d0); for(i=0;istrle

23、n(str);i+) if(d0=stri) t=t+1; e=i; for(j=i;jstrlen(str)-1;j+) strj=strj+1; /*for*/ strj=0; i=e-1; /*if*/ /*for*/ if(t=0) printf(nIt can not be found in the string %sn,d); /*t*/ puts(str); printf(nIf you want to delete again please press 1,return please press 0! ); scanf(%d,&b); /*while*/ c=1; return

24、(c); /*func3*/4. 调试分析1) 调试过程所遇到的问题:在执行删除命令时,输入删除的字符时输入两个字母,结果只能删除一个,达不到删除的和输入的字符一致;解决方案:输入所要删除的字符时,只能输入一个才能达到删除的和输入的结果一致,如果要删除多个,可分多次删除。2) 测试数据和测试结果:测试结果1:测试结果2:(3)运动会分数统计1. 需求分析任务:参加运动会有n个学校,学校编号为1n。比赛分成m个项目,项目编号为男子1m。项目取前五名积分;积分分别为:7、5、3、2、1;(m=20,n=20)用C+编写一个运动会分数统计程序,此程序的功能要求:1) 可以输入各个项目的前五名的学校编号;2) 能统计各学校总分;3) 可以按学校编号输出、学校总分排序输出,输出内容包括学校编号,总分和名次;4) 可以按学校编号查询学校各个项目的情况。2. 概要设计1) 该程序包括两个结构体分别为:struct node1 项目信息;struct node2 学校信息;2) 程序分为5个模块:初始化学校及项目的信息,依次输入每个学校的信息,根据每个学校的成绩计算对应的得分,生成运动会分数排名表,并输出放在数组2中,再进入查询功能。3. 详细设计#includestruct node1 int array; int num; int score20; int total; int ranki

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

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