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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计.docx

1、数据结构课程设计华南师范大学增城学院课程设计报告册2010 2011 学年度 二 学期 计算机 院/系 网络工程 专业 09 年级 1 班课程名称: 数据结构课程设计 姓 名: 郑世煜 学 号: 200906024103 目 录一、 程序设计与实现1、文章编辑(1)需求分析2(2)概要设计2(3)详细设计2(4)调试报告42、散列表实现电话号码查找系统(1)需求分析5(2)概要设计5(3)详细设计6(4)调试报告93、学生成绩管理系统(1)需求分析12(2)概要设计13(3)详细设计14(4)调试报告17二、课程设计总结20三、附录 21四、教师评语及评分 22一、 程序设计与实现1、文章编辑

2、(1)需求分析输入一行文字,程序可以统计出英文字母、数字、空格的个数。要求:1)分别统计出其中英文字母数和数字个数及总字数并输出;2)统计某一字符串出现的次数,并输出该次数;3)删除某一符号,将后面的字符前移,并输出删除后的结果。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标号符号。(2)概要设计在程序中,1)定义一数组,存放输入的内容,每个字符为数组的一个元素。2)统计输入内容的字母,数字,符号,空格的个数。3)定义另一数组,存放要删除的内容,每一个字符未数组的一个元素。(3)详细设计#include main() int

3、 i,j,n=0,m=0,zimu=0,number=0,note=0,space=0; /定义变量并赋初值 char a100; /定义数组范围 char b10; printf(please input a string:); /输入文章内容并存放在数组a 中 for(i=0;i=n;i+) scanf(%c,&ai); if(ai=n) break; n+; /统计输入的个数 printf(nYour string is:); /统计字母、数字、符号、空格的个数 for(i=0;i=65&ai=97&ai=48&ai=0&ai=58&ai=91&ai=123&ai=254) note+;

4、 if(ai=32) space+; printf(nThe statistical results are as follows:n,ai); printf(zimu:%d nnumber:%d nnote:%d nspace:%d n,zimu,number,note,space); /输出zimu,number,note,space个数 printf(The whole number is:%dnn,n); /输出输入的个数 printf(Now delete the note:); /输入删除的内容 for(j=0;j=m;j+) scanf(%c,&bj); if(bj=n) bre

5、ak; m+; for(i=0,j=0;in;i+) if(ai=bj&ai+m-1=bm-1) ai=ai+m+1; if(ai=ai+m+1) break; printf(nThe final rusult is:n); /删除输入的内容 if(i=0&ai+m=32) for(i=i;in;i+) ai=ai+m+1; /删除的单词后的空格也删除; for(i=0;i=n-m-1;i+) printf(%c,ai); else for(i=i;in;i+) ai-1=ai+m; for(i=0;i=n-m-1;i+) printf(%c,ai); printf(n);(4)调试报告1、运

6、行程序,根据提示,首先输入“Today is a good day !”,程序执行,统计出结果;图1.12、输入要删除的单词“good”,显示最后结果“Today is a day !”,程序完成!(如图1.2)图1.22、散列表实现电话号码查找系统(1)需求分析1) 设每个记录有下列数据项:电话号码、用户名、地址;2) 从键盘输入各记录,以用户名为关键字建立散列表;3) 采用一定的方法解决冲突;4) 查找并显示给定用户名的记录。(2)概要设计1)建立散列表,按照散列表建立的要求,包含有以下三个小步骤:a、获得用户的用户名,且计算用户名首字母的ASCII码(用字符减去字符0);b、用ASCII

7、码对散列表的长度求余,则得数组中的储存位置;c、判断储存位置是否还有数据,用线性法查找空位储存;2)元素的查找与元素的插入相对应,其操作则在建立的基础上增加输出的语句。3)用线性探测法解决冲突。(3)详细设计#include #include #include /定义一个散列表结构体! struct hashlist char name20; char number20; int adr; hash35; /调用子程序 void main() int BulidHash(); int SearchHash(); void output(); int choise=0; /设置功能菜单提示 fo

8、r(choise =100;choise != 0;) printf(n Main Menu tn); printf( 1 Build a new record tn); printf( 2 Find out your recordtn); printf( 3 Output all info tn); printf( 0 Exit the program tn); printf(nplease choose the number to continue:); scanf(%d,&choise); printf(Your choise:%dn,choise); /switch语句,选择选中的相应

9、功能 switch(choise) case 0: continue; case 1: printf(NOW entering teh BuildHash.nn); BulidHash(); continue; case 2: printf(Entering SearchHash.nn); SearchHash(); continue; case 3: printf(Output all.nn); output(); continue; default: printf(Your input not a numn); break; getch(); /让屏幕暂停,“选择、继续 /散列表建立函数

10、int BulidHash() int hashweight = 0; int hashadr = 0; int i = 0; char name_120; /提示输入用户名以及输出用户名 printf(nPlease input your name:); scanf(%s,name_1); printf(Your Enter name is:%sn,name_1); /输出相关的测试语句 printf(Your name is :%sn,name_1); printf(The first letter of your name:%cn,name_10); /开始构造散列表 hashweigh

11、t = name_10 - 0; /计算首字符权值 hashadr = hashweight % 35; /计算并储存字符串的首地址 printf(hashweight:%d hashadr:%dn,hashweight,hashadr);/输出相关的测试语句 /线性查找判断并记录 for(i = 0;i 5;i+) if(!strcmp(hashhashadr.name,0) strcpy(hashhashadr.name,name_1); printf(Please input the telephone number:); scanf(%s,hashhashadr.number); ha

12、shhashadr.adr = hashadr; printf(name:%s number:%s adr:%d nn,hashhashadr.name,hashhashadr.number,hashhashadr.adr); return 0; hashadr = hashadr + i; /线性查找 printf(out of room!n); return 0; /查找并输出函数 int SearchHash() int hashweight = 0; int hashadr = 0; int i = 0; char name_120; /输入用户名 printf(nPlease inp

13、ut your name:); scanf(%s,name_1); printf(Your Enter name is:%sn,name_1); /输出相关的测试语句 printf(Your name is :%sn,name_1); printf(The first letter of your name:%cn,name_10); hashweight = name_10 - 0; /计算首字符权值 hashadr = hashweight % 35; /计算储存字符串的首地址 printf(hashweight:%d hashadr:%dn,hashweight,hashadr); /输

14、出相关的测试语句 for(i=0;i5;i+) if(!strcmp(hashhashadr+i.name,name_1) printf(Your needing user:%sn,hashhashadr+i.name); printf(His number:%sn,hashhashadr+i.number); return 0; hashadr = hashadr + i; /线性查找 printf(coudnt found!n); return 0; /输出全部函数 void output() int i=0; for(i=0;i35;i+) if(hashi.adr != 0) prin

15、tf(The user %d:%sn,i,hashi.name); printf(His number:%sn,hashi.number); printf(His address:%dn,hashi.adr); printf(n); return; (4)调试报告1、调试运行源程序,出现调试界面,根据提示,开始进行调试。(如图2.1)图2.12、根据提示选择,输入1,建立第一个记录。根据提示输入第一个用户名。(如图2.2)图2.23、输入电话号码,enter,显示用户的名字、号码、地址等资料。(如图2.3)图2.34、继续输入1,建立第二个记录。根据提示输入第二个用户名。(如图2.4)图2.4

16、5、输入电话号码,enter,显示此用户的名字、号码、地址等资料。(如图2.5)图2.56、输入2,选择要查找的用户功能,接着输入要查找的用户名。(如图2.6)图2.67、输入3,选择输出全部用户的信息。(如图2.7)图2.78、输入0,结束、退出算法程序。3、学生成绩管理系统(1)需求分析编写一个简单的学生成绩管理程序,能实现对学生成绩的简单管理。要求:建立一个5个学生的信息登记表,每个学生的信息包括:学号,姓名,3门课的成绩和总分。程序运行时显示一个简单的菜单,例如:1. INPUT(press 1)2. SORT(press 2)3. QUERY(press 3)4. EXIT (pre

17、ss 4)其中:1. INPUT:对5个学生的信息进行输入;2. SORT:对5个学生的总分按降序排序并显示出来;3. QUERY:输入一个学号后,查询显示出该学生的有关信息;4. EXIT:退出。(2)概要设计1、 考虑到要排序,不需要删除操作,采用顺序存储比较方便。2、 每个学生是一个元素,包含3方面的信息,采用结构体定义学生结点。如:strucu stu1int num;char name8;int s3;int score;学生有5个人,则可以定义一个长度为5的结构体数组,如下:struct stu1 student5;程序分析:1. 输入学生成绩:循环输入5个学生各部分信息;2. 排

18、序:可任意选择排序方法,按总分作为关键字排序,结构体数组 支持整个结构体作为一个元素进行赋值;查找:按学号作为关键字查找。(3)详细设计#include /定义学生数据表结构体typedef struct student int num; char name8; int score;student;/字符串输出函数void outputstring(char p) int i = 0; while(pi) printf(%c,pi); i+; /显示菜单1void menu1() printf(nt*Welcome to Student Performance Manager!*tn); pr

19、intf(n Main Menu 1tn); printf( 1 Input tn); printf( 0 Exit tn); printf(nplease choose the number to continue:);/显示菜单2void menu2() printf(nt*Welcome to Student Performance Manager!*tn); printf(n Main Menu 2tn); printf( 1 Input tn); printf( 2 Sort tn); printf( 3 Query tn); printf( 0 Exit tn); printf(n

20、please choose the number to continue:);/功能1:录入5组学生数据void input(student p) int s=0; for(;s5;s+) printf(Please input the No.%d students number:,s+1); scanf(%d,&ps.num); printf(Please input the No.%d students name:,s+1); scanf(%s,ps.name); printf(Please input the No.%d students score:,s+1); scanf(%d,&p

21、s.score); printf(nData recorded!nn); menu2();/定功能2:按降序从高到低排列学生成绩void sort(student a) int i,j; student p5; for(i = 0;i5;i+) pi = ai; for(i = 0;i5;i+) for(j = i+1;j5;j+) if(pi.score)(pj.score) int temp; temp = pi.score; pi.score = pj.score; pj.score = temp; printf(The result from min to max is:); for(

22、i = 0;i5;i+) printf(%d ,pi.score); printf(n); menu2(); /显示菜单2/功能3:查询某一学生数据int query(student p,int a) int i = 0; for(;i5;i+) if(pi.num = a) printf(The result is:nNumbert NamettScoren); printf(%dt ,pi.num); outputstring(pi.name); printf( t); printf(%dn,pi.score); printf(Query succeed!n); menu2(); retu

23、rn 0; return 1;void main() student a5; int select; int exitd = 1; menu1(); /显示菜单1 while(exitd) /判断程序是否退出 scanf(%d,&select); printf(n); /定义执行选项功能模块 switch(select) case 1 :input(a);break; case 2 :sort(a);break; case 3 : int numselect; printf(Please input the students number(Press 0 to return Main Menu

24、:); scanf(%d,&numselect); while(query(a,numselect) printf(nPlease input the next students number:(Press 0 to return Main Menu:); scanf(%d,&numselect); break; case 0:exitd = 0; default:printf(nWrong choice!Please select again!n); menu2(); /显示菜单2 (4)调试报告1、调试运行源程序,出现调试界面,根据提示,开始进行调试。(如图3.1)图3.12、输入1,选择

25、开始录入5个学生的数据。(如图3.2)图3.23、录入完毕,提示Data recorded!,此时进入菜单2,选择想要的功能。(如图3.3)图3.34、输入2,选择降序从高到低输出之前录入的学生的成绩。(如图3.4)图3.45、接着输入3,查找想要的学生的成绩信息。(如图3.5)图3.56、输入0,结束、退出算法程序。二、 课程设计总结通过这次的课程设计,加强了我的动手、思考和解决问题的能力。作业结果很重要,但作业过程更重要,在这次的作业中,我学到了很多的东西,也积累了关于做这样的课程设计的一些经验。通过这一次的课程设计,让我对数据结构以及其课程设计的知识也有了更深的理解和认识。 在此次的课程设计的过程中,遇到了不少难题,主要是由于我们学完数据结构已经差不多有一个学期的关系,有很多编程上的语句不是很熟练,加上现在正在学java语言,使得有些语句有点混乱,所以造成了很多困扰。一开始接触到课题时,一点思路都没有,根本就不知道要选

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2