- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
兰州大学数据结构课程设计3
《数据结构》课程设计题目
(程序实现采用C语言)
题目1:猴子选王(学时:3)
一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
题目2 :字符逆转(学时:3)
从键盘读入一个字符串,把它存入一个链表(每个结点存储1个字符),并按相反的次序将字符串输出到显示屏。
题目3 :工资核算(学时:3)
设有一个单位的人员工资有如下信息:name、department、 base pay、allowance、total。现从键盘输入一组人员工资数据并将它们存储到名为paydata的文件中;再从paydata取出工资数据并给每个人的base pay增加100元,增加后将工资数据显示于屏幕(每行1人)。
题目4:满足条件的有序表生成(学时:3)
已知三个有序表A、B、C,它们皆由同一类元素构成,现要求对于表A作以下运算而获得有序表D:排出A中所有的既在B中又在C中出现的元素。另外该任务要求具有建立有序表功能以及输出有序表到屏幕的功能。
题目5:一元多项式的减法(学时:6)
设有两个一元多项式A(x),B(x),请完成运算A(x)+B(x)、A(x)-B(x),要求多项式采用链表进行存储。另外该任务要求具有建立多项式链表以及输出多项式到屏幕的功能。
题目6:床位分配(学时:6)
某客店有N个等级的房间,第k级客房有A(k)个,每个房间有B(k)个单人床,以菜单调用方式设计为单身旅客分配床位以及离店时收回床位的程序。要求分配成功时,印出旅客姓名、年龄、性别、到达日期、客房等级、房间号及床位号;分配不成功时,允许更改房间等级,若不更改等级,印出“满客”提示。
题目7:文本文件单词的检索及计数(学时:6)
要求编程建立一个文本文件,每个单词不包括空格及跨行,单词由字符序列构成且区分大小写,完成以下功能:统计给定单词在文本文件中出现的总次数、检索输出某单词在文本文件中首次出现的行号及位置。
#includestdio.h
#includestdlib.h
#includemalloc.h
#includestring.h
#define N 250
typedef struct Cstring //定义结构体(字符长串)
{
char string[N];
}Cstring;
typedef struct File //定义结构体(文件)
{
Cstring filename[N];//文件数组
FILE *in, *out; //文件指针(入/出)
int line[N], filenum ; //行编号,文件编号
}File;
typedef struct Line //结构体(行)
{
int pos[N],counter;//所在行号,计数器
}Line;
int Length(char* a)//函数(判断单词是否结束)返回单词长度
{
int i=0;
while(a[i]!=\0a[i]!=\n)
i++;
return i;
}
int Index(Cstring a,Cstring b,Line* l)//索引(字符总串,单词,要查找的字符总串第几行)
{
int i,k,j,p=1,num=0;
l-counter=0;
Cstring temp;
while(p=a.string[0])//sring[0]用于存字符串大小
{
i=1;
while(a.string[p]!= a.string[p]!=\0a.string[p]!=,a.string[p]!=.)//将字符总串的一个单词放到temp中,并没进行一次,num++
{
temp.string[i]=a.string[p];
i++;
p++;
}
temp.string[i]=\0;
temp.string[0]=Length((temp.string[1]));
num++;
k=1;
j=1;
if(temp.string[0]==b.string[0])
{
while(j=b.string[0])
{
if(temp.string[k]==b.string[j])
{
k++;
j++;
}
else break;
}
您可能关注的文档
最近下载
- 茶具知识介绍.docx
- 软件资格考试信息系统管理工程师(基础知识、应用技术)合卷(中级)试题与参考答案(2024年).docx VIP
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务3学习任务工作页.docx VIP
- 2025年保安员考试必刷题库500道带答案(满分必刷).docx VIP
- 超市劳务合同范本.docx VIP
- 6米路灯基础图.pdf VIP
- 专家咨询服务合同协议.docx VIP
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务5学习任务工作页.docx VIP
- 医疗技术档案管理制度.docx VIP
- 撤销裁判文书上网申请书.docx VIP
文档评论(0)