资源描述:
《兰州大学数据结构课程设计3》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《数据结构》课程设计题目程序实现采用C语言)题目1:猴子选王(学时:3)一堆猴子都有编号,编号是1,2,这群猴子(m个)按照1-山的顺序围坐一圈,从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈屮只剩下最后一只猴子,则该猴子为大王。要求:m及n要求从键盘输入,存储方式采用向量及链表两种方式实现该问题求解。题目2:字符逆转(学时:3)从键盘读入一个字符串,把它存入一个链表(每个结点存储1个字符),并按相反的次序将字符吊输出到显示屏。题目3:工资核算(学时:3)设冇一个单位的人员工资有如下信息:name、de
2、partment、basepayal1owance、totalo现从键盘输入一组人员工资数据并将它们存储到名为paydata的文件中;再从paydata取出工资数据并给每个人的basepay增加100元,增加后将工资数据显示于屏幕(每行1人)。题目4:满足条件的有序表生成(学时:3)已知三个有序表A、B、C,它们皆由同一类元素构成,现要求对于表A作以下运算而获得有序表D:排出A中所冇的既在B中又在C中出现的元索。另外该任务要求具有建立有序表功能以及输出有序表到屏幕的功能。题目5:—元多项式的减法(学时:6)设有两个一元多项式
3、A(x),B(x),请完成运算A(x)+B(x)、A(x)-B(x),要求多项式采用链表进行存储。另外该任务耍求具冇建立多项式链表以及输岀多项式到屏幕的功能。题目6:床位分配(学时:6)某客店有N个等级的房间,第k级客房有A(k)个,每个房间有B(k)个单人床,以菜单调用方式设计为单身旅客分配床位以及离店时收冋床位的程序。要求分配成功时,印出旅客姓名、年龄、性别、到达日期、客房等级、房间号及床位号;分配不成功时,允许更改房间等级,若不更改等级,印出“满客”提示。题目7:文本文件单词的检索及计数(学时:6)要求编程建立一个文木
4、文件,每个单词不包括空格及跨行,单词由字符序列构成口区分大小写,完成以下功能:统计给定单词在文本文件中出现的总次数、检索输出某单词在文本文件屮首次出现的行号及位置。#include#include#include#inckidc#defineN250typedefstructCstring〃定义结构体(字符长串){charstringfN];[Cstring;typedefstructFile〃定义结构体(文件){Cstringfilename[N
5、];//文件数组FILE*in,*out;〃文件指针(入川I)intline[N],filenum;〃行编号,文件编号}File;typedefstructLine〃结构体(行){intpos[N_
6、,counter;//所在行号,计数器}Line;intLcngth(char*a)//函数(判断单词是否结束)返回单词氏度{inti=0;while(a[i]!=, ,&&a[i]!=*')i++;returni;intIndex(Cstringa,Cstringb,Line*1)//索引(字符总串,单词,要查找的字符总
7、串第几行)inti,k,j,p=l,num=O;l->counter=();Cstringtemp;while(p<=a.string[O])//sring[O]用于存字符串大小{i=l;while(a.string[p]!='&&a.string[p]!=、0&&a.string[p]!=','&&a.string[p]!='.')〃将字符总串的一个单词放到temp中,并没进行一次,num++{temp.string[i]=a.string[p];i++;P++;}tcmp.string[i]='O,;temp.stri
8、ng[O]=Length(&(temp.string[l]));num++;k=l;j=l;if(temp.string[O]==b.string[O]){while(j<=b.string[OJ){if(temp.string[k]==b.string[j]){k++;j++;}elsebreak;}}if(j>b.string[01)//说明2个单词相同{l->pos[l->counter]=num;//该行第l->counter的单词所在位ifi(即该单词为该行第儿个单词)l->counter++;//ft计数器加1P
9、++;return1;intEqual(Cstringa,Cstringb)//是否相同,相同返回1inti=1,j=1;if(a.string[O]!=b.string[O])return0;while(i<=a.string[OJ&&jv二b.string[0_
10、){if(a.stri