重庆科技学院
《数据结构》课程设计
专业班级: 计科2012级3班
学 号: 2012442084
姓 名: 赵弈胰
成 绩:
摘要
设计一些简单的程序,来实现屏幕输出,约瑟夫问题,单词的拼写检查,非递减有序集合合并,括号匹配,排队优化,快速排序等功能。我们首先应该想到设计需要的
知识点
高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载
,比如:链表、数组等方法,赋值运算、逻辑运算、括号运算等运算,还有循环等。
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
关键字:数据结构、数组、链表、算法
目录
摘要 I
目录 II
1需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
1
1.1功能需求 1
1.2系统运行环境 2
2开发环境 2
2.1 QT简介 2
2.2开发环境搭建 3
2.1.1安装g++ 3
2.1.2安装QT5.0 3
3总体设计 4
3.1简要说明 4
3.2总体程序框图 4
4详细设计 5
4.1界面设计 5
4.2函数代码实现 5
5功能测试 8
5.1下一张 8
5.2上一张 9
5.3放大 9
5.4缩小 10
6
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
11
7参考文献 12
附录 13
1需求分析
1.1功能需求
1)编写一个程序,从键盘输入整数n, 在屏幕上输出1~n之间的所有整数,每个数字之间保留3个空格。
2)有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。
3)现在有一些英语单词需要做拼写检查,你的工具是一本词典。需要检查的单词,有的是词典中的单词,有的与词典中的单词相似,你的任务是发现这两种情况。单词A与单词B相似的情况有三种:
A、删除单词A的一个字母后得到单词B;
B、用任意一个字母替换单词A的一个字母后得到单词B;
C、在单词A的任意位置增加一个字母后得到单词B。
你的任务是发现词典中与给定单词相同或相似的单词。
4)已知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。
5)假设表达式中只包含三种括号:圆括号、方括号和花括号,它们可相互嵌套,如([{}])或({[][()]})等均为正确的格式,而{[]})}或{[()]或([]}均为不正确的格式.
输入一串括号
如果输入的右括号多余,输出:Extra right brackets
如果输入的左括号多余, 输出:Extra left brackets
如果输入的括号不匹配,输出:Brackets not match
如果输入的括号匹配,输出:Brackets match
6)设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍---即当A窗口处理完2个顾客时,B窗口处理完一个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。
7)排序是我们学习编程需要掌握的一个最基本的操作。这个世界上有很多种排序的方法,比如插入排序、选择排序、冒泡排序,但是他们都不够快。后来聪明的C. A. R. Hoare想出了一种很快的排序方法,由于它的确很快,于是我们就叫它快速排序。快速排序的原理其实很简单。假设我们需要将一些待排序的数从小到大排序。首先,我们从这些数中随便找一个数(key),然后把比它小的放到它的左边,比它大的放到它的右边,这样它左边的任意一个数都比右边的任意一个数小,我们把这个操作叫做“划分”。这时候我们再递归调用快排函数,将key的左边、右边都排好,整个集合的数字就有序了。
1.2环境需求
1).VC++6.0编辑器
2)PC机一台
2详细设计
2.1屏幕输出题
1)程序说明:这个程序主要就是运用循环来输出数字
2)主要代码:
scanf("%d",&n);
for(int i=1; i<=n; i++) {
printf("%d ",i);
}
3)程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图,
i<=n Y N 程序结束
图2.1
2.2约瑟夫问题
1)程序说明:这个程序主要用的到知识是数组,循环和判断。首先让全部猴子初始化为1,是在圈内的状态,0代表退出圈外;然后用一个循环去遍历,每当喊道固定数字时,该猴子退出圈外,状态变为0;用一个K代表被叫出去的人数,每次加1;喊道最后一个时,接着第一个数数,如此循环,直到还剩一个时结果输出。
2)主要代码:
for(i=1; i<=n; i++)
{
a[i]=1;
}
for(i=1; i<=n; i++)
{
if(a[i]==1)
{
j = j + a[i];
//printf("%d\n",j);
if(j==m)
{
//printf("%d\n",i);
j=0;
a[i] = 0;
k++;
}
if(k==n)
{
printf("%d\n",i);
break;
}
}
3)程序流程图:
循环遍历 j!=m j=m 跳出一个,k+1
I=n
图2.2
2.3单词检查
1)程序说明:这个程序用到循环,数组,判断。首先用一个循环来输入词库里面的单词,以#结束,用一个一维数组去接收每个单词的长度(strlen);然后输入需要检查的单词,用一个循环去遍历词库里面的单词,如果有和需要检查的单词相同的(调用strcmp(a,b)),输出:x is correct,X代表需要检查的单词,直到把词库单词遍历完;然后再重新遍历一次,比较两个单词的长度,词库单词比需要检查的单词多一位时:去遍历两个单词的每一个字符,如果词库单词前面每一个字符都和X的每一个字符相等,则输出X:X1 X2 X3…;词库单词比需要检查的单词少一位时:去遍历两个单词的每一个字符,如果X前面每一个字符都和词库单词的每一个字符相等,则输出X:X1 X2 X3…;词库单词和X的字符个数相同时:去遍历两个单词的每一个字符,如果词库单词前面每一个字符都和X的每一个字符相等,则输出X:X1 X2 X3…;每个单词以空格隔开;如果没有以上几种情况,则直接输出X:即可。
2)主要代码:
while(a[k][0]!='#')
{
//strlen是一个计数器,到字符串末尾结束,判断从开始计数到末尾的字符个数
ac[k]=strlen(a[k]);
scanf("%s",&a[++k][0]);
}
scanf("%s",&b[0]);
while(b[0]!='#')
{
len=strlen(b);//输入单词的长度
//scanf("%s",&b);
//cout<
本文档为【重庆科技学院-linus期末大作业】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。