数据库大作业2.docx

上传人:b****1 文档编号:678002 上传时间:2023-04-29 格式:DOCX 页数:13 大小:133.50KB
下载 相关 举报
数据库大作业2.docx_第1页
第1页 / 共13页
数据库大作业2.docx_第2页
第2页 / 共13页
数据库大作业2.docx_第3页
第3页 / 共13页
数据库大作业2.docx_第4页
第4页 / 共13页
数据库大作业2.docx_第5页
第5页 / 共13页
数据库大作业2.docx_第6页
第6页 / 共13页
数据库大作业2.docx_第7页
第7页 / 共13页
数据库大作业2.docx_第8页
第8页 / 共13页
数据库大作业2.docx_第9页
第9页 / 共13页
数据库大作业2.docx_第10页
第10页 / 共13页
数据库大作业2.docx_第11页
第11页 / 共13页
数据库大作业2.docx_第12页
第12页 / 共13页
数据库大作业2.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库大作业2.docx

《数据库大作业2.docx》由会员分享,可在线阅读,更多相关《数据库大作业2.docx(13页珍藏版)》请在冰点文库上搜索。

数据库大作业2.docx

数据库大作业2

 

西安建筑科技大学华清学院

 

数据结构与数据库原理大作业

报告书

 

姓名:

胡昌柳

班级:

通信1001

学号:

201006020149

 

摘要

《数据结构》是一门实践性强的课程,其中对算法设计和程序编写的掌握尤其重要。

学生虽然可以通过与课堂教学同步的上机实验完成相关内容的练习,但却往往局限于一些功能简单、彼此之间关系独立的算法和程序。

课程设计是一种综合训练,致力于培养学生全面、灵活的算法设计思想和较高的编程能力,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范,能够为今后从事计算机开发与应用打下基础。

需要学生具有丰富科学知识、独立解决实际问题、有创造能力,这也是该课程设计的最终目的。

通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用C语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

掌握C语言独立的编写、调试应用程序和进行其它相关设计的技能。

此项目主要是考察我们对结构体、数组、文件等具体操作,和joseph环的设计,以及对C语言语法的掌握,所以做成此项目要求比较高的设计要求,对整体有很熟悉的概括,同时调试过程也是很重要的,对程序界面的要求也比较高,要设计的合理同时也要美观一点,能够人性化的描述清楚你的各个功能,一目了然,对其他用户使用本程序简单易懂,这才能成本程序或本系统是成功的。

这个设计能够练习我们的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,学会调试一个比较长的程序的基本方法,同时掌握书写程序设计开发文档的能力。

关键字:

数据结构C语言joseph环结构化程序设计

目录

摘要……………………………………………………………………………1

、程序概要设计……………………………………………………………3

1.1数据类型及全局变量……………………………………………………3

1.1.1数据类型……………………………………………………………3

1.1.2全局变量………………………………………………………………3

1.2程序流程图………………………………………………………………3

、详细设计及源程序………………………………………………………6

、调试分析…………………………………………………………………9

四、总结………………………………………………………………………11

五、参考文献…………………………………………………………………12

 

程序概要设计

1.1数据类型及全局变量定义

1.1.1数据类型

数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。

变量是用来存储值的所在处;它们有名字和数据类型。

变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。

在声明变量时也可指定它的数据类型。

所有变量都具有数据类型,以决定能够存储哪种数据。

1.1.2全局变量

全局变量也称为外部变量,它是在函数外部定义的变量。

它不属于哪一个函数,它属于一个源程序文件。

其作用域是整个源程序。

在函数中使用全局变量,一般应作全局变量说明。

只有在函数内经过说明的全局变量才能使用。

全局变量的说明符为extern。

,但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。

1.2程序流程图

详细设计及源程序

1.joseph环

设计思想:

首先,定义两个结构体,将个人的信息写入其中内容包括个人的顺序号(Num),个人的密码m(随机输入的值)及指针.

第二,再将每个人的信息存储于一个单向循环链表内.

第三,根据题目要求编写程序,开始随机把一个数赋给m,开始报数(查找)则将顺序号为m的人的编号提出列,并将其的密码(随机输入的)赋给m.

最后,m有了新值,再从出列的人的下一个位置开始重复上面第三步,直到所有人的顺序号都被调出,结束程序。

源程序:

#include

#include

typedefstructnode

{intnum;

intm;

structnode*next;

}NODE,*LINK;

typedefstructdata

{intnum;

intm;

}DATA;

DATA*InputData(int*n)

{DATA*d,*p,*s;

inti;

printf("Howmanypeoplethereare?

\n");

printf("PleaseInputlength:

");

scanf("%d",n);

d=(DATA*)malloc(*n*sizeof(DATA));

p=d;

for(i=1;i<=*n;i++)

{printf("Number%d----inputm:

(mmeansthesecretofthem!

):

êo",i);

scanf("%d",&p->m);

p->num=i;

p++;

}

return(d);

}

LINKCreateLinklist(DATA*d,intn)

{NODE*l,*p,*s;

inti;

p=l=(NODE*)malloc(sizeof(NODE));

p->num=d->num;

p->m=d->m;

d++;

for(i=1;i

{s=(NODE*)malloc(sizeof(NODE));

s->num=d->num;

s->m=d->m;

p->next=s;

p=s;

d++;

}

s->next=l;

return(l);

}

voidJoseph(LINKl,intn,intm)

{LINKp,q,s;

inti,j;

p=l;

printf("\n");

for(i=0;i

{for(j=1;j

{q=p;

p=p->next;

}

printf("%d\t",p->num);

m=p->m;

q->next=p->next;

p=p->next;

}

}

main()

{intn,m;

DATA*d;

LINKl;

d=InputData(&n);

l=CreateLinklist(d,n);

printf("************************************\nPleaseInputtheinitialvalueofm:

\n************************************");

scanf("%d",&m);

Joseph(l,n,m);

2.以学生成绩为数据元素建立一个一维数组

#include

typedefstructstude

{

intnum;

charname[4];

floatscore[3];

}stu[10];

 

intmain()

{

inti,j;

stustud[10]={

{101,"AAA",71,85,90},{102,"BBB",72,87,61},{103,"CCC",72,82,92},{104,"DDD",73,83,73},{105,"EEE",94,84,94},{106,"FFF",75,45,95},{107,"GGG",75,76,77},{108,"HHH",76,86,96},{109,"JJJ",79,89,99},{110,"KKK",82,80,60}

};

floatave[10],ave2[10],s[10],t;

for(i=0;i<10;i++)

s[i]=0;

for(i=0;i<10;i++)

{

for(j=0;j<3;j++)

s[i]+=stud[i]->score[j];

ave[i]=s[i]/3;

}

printf("everystudents'ave_scoreis:

\n");

for(i=0;i<10;i++)

{

printf("%-5d",stud[i]->num);

printf("%f\n",ave[i]);

}

printf("\nthemostnumberis:

\n\n");

for(i=0;i<10;i++)

ave2[i]=ave[i];

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if(ave[i]<=ave[j])

{

t=ave[j];

ave[j]=ave[i];

ave[i]=t;

}

for(i=0;i<10;i++)

{

for(j=0;j<10;j++)

if(ave[i]==ave2[j])

printf("%-5d",stud[j]->num);

printf("%f\n",ave[i]);

}

}

调试分析

1.测试数据:

n=7,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

2.每位同学3门课程的平均成绩;并按平均成绩高低进行冒泡排序并显示结果。

总结

通过这次课程设计,我学到了很多,我能较熟练地掌握C语言的基本内容及程序设计的基本方法与编程技巧。

同时我也懂得了实践是检验真理的唯一标准。

这次课程设计我学会了设计了Joseph环和建立一维数组,对于数据结构这门学科来说这可能只是一个小的程序,但是对于我还是有些吃力。

开始的时候就遇到了困难,因为需求分析是整个设计的纲领,只有搞好了这个纲领下面才有思路往下继续。

课程设计过程中,刚开始做的时候,不知道该从哪里下手,甚至害怕看见执行后显示的错误的个数,但最后还是通过查找相关书籍、相关资料、和同学研究,一点一点的减少程序的错误,问题被一点点的解决,我学到的知识也在一点点的增加。

通过这次的设计我学到了很多原来并不了解的专业知识,也让我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,因为实践是检验真理的唯一标准,只有把所学的理论知识与实践相结合起来,才能够算是真正的了解。

而且通过实际的操作,也提高了自己的实际动手能力和独立思考的能力。

课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。

从这次课设我充分认识到自己相关知识的缺乏,对我来说,此次的课程设计就像一次自我学习和反省的过程。

我很庆幸能有这样一次机会。

 

参考文献

[1]、王昆仑《数据结构与算法》。

北京:

中国铁道出版社。

2007

[2]、谭浩强《C程序设计》(第三版)。

北京:

清华大学出版社。

2005

[3]、谭浩强《C程序设计指导》。

北京:

清华大学出版社2005

[4]严蔚敏等.数据结构[M],北京:

清华大学出版社

[5]李春褒.数据结构教程[M],第二版.北京:

清华大学出版社,2009.3:

22-46

[6]赵国玲.C语言与数据结构[M],北京:

电子工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

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

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