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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计.docx

1、数据结构课程设计线性表1、某软件公司大约有30名员工,每名员工有姓名、工号、职务等属性,每年都有员工离职和入职。把所有员工按照顺序存储结构建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且打印最新的员工名单。#include stdafx.h#include stdio.h#include stdlib.h#include malloc.h#define SIZE sizeof(employee)typedef struct employee char name20 ; int number ; char post20 ; employee *next ;employe

2、e ;int n ;employee *s ;void InitComp() printf(start create:n) ; int i = 0 ; employee *p , *q =NULL ; while(i name),20); printf(please enter numbern); scanf_s(%d,&(p-number); printf(please enter postn); scanf_s(%s,&(p-post),20); p-next = NULL ; i+ ; if(i = 1) s = p ; q = p ; else q-next = p ; q = q-n

3、ext ; void EmpInsert() employee *p ,*q = s; while(q-next!=NULL) q = q-next ; p = (employee *)malloc(SIZE) ; printf(please enter namen); scanf_s(%s,&p-name,20); printf(please enter numbern); scanf_s(%d,&p-number); printf(please enter postn); scanf_s(%s,&p-post,20); q-next = p ; p-next = NULL ; n+ ;vo

4、id EmpDelete(int num) employee *p=s,*q=s; int i=0,j = 0; while(jnumber; if(i=num) if(p=s) s = s-next; else q-next = p-next; n-; return ; else q = p; p = p-next; j+; printf(number not foundn) ;void EmpPrint() employee *p = s; printf(the list of employeesn) ; while(p !=NULL) printf(%st%dt%sn,p-name,p-

5、number,p-post) ; p = p-next ; int _tmain(int argc, _TCHAR* argv) int l ,m; printf(create list,please enter the number of the employeen); scanf_s(%d,&n) ; InitComp() ; EmpPrint() ; while(1) printf(enter number to choose action:1 for indert ,2 for deleten) ; scanf_s(%d,&l) ; switch(l) case 1: EmpInser

6、t() ; EmpPrint() ; break ; case 2: printf(please enter the number of the employee you deleten) ; scanf_s(%d,&m) ; EmpDelete(m) ; EmpPrint() ; break ; default: EmpPrint() ; system(pause); return 0;2、约瑟夫(Josephus)环问题:编号为1,2,3,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时

7、停止。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,直到所有人全部出列为止。建立n个人的单循环链表存储结构,运行结束后,输出依次出队的人的序号。#include stdafx.h#include stdio.h#include stdlib.hstruct person int num ; int code ; person *next ; ;person *h ;void CreaCircle() int n ,i ; person *p , *q = NULL, *r = NULL; printf(please enterthr nember

8、of people:n); scanf_s(%d,&n) ; for(i = 1; i num = i ; printf(please enter the code of the %d person:n,i); scanf_s(%d,&p-code) ; p-next = NULL ; if(i =1) h = p ; q = p ; q-next = p ; q = p ; q-next = h ;void RunGame() int m , i; person * r , * t = h; printf(please enter the first code :n) ; scanf_s(%

9、d,&m) ; while(t-next != t) for(i = 1; i next ; r = t-next ; m = r-code ; t-next = r-next ; printf(the %d person is kickedn,r-num); int main() CreaCircle() ; RunGame() ; system(pause); return 0 ;栈和队列3、某商场有一个100个车位的停车场,当车位未满时,等待的车辆可以进入并计时;当车位已满时,必须有车辆离开,等待的车辆才能进入;当车辆离开时计算停留的的时间,并且按照每小时1元收费。汽车的输入信息格式可以

10、是(进入/离开,车牌号,进入/离开时间),要求可以随时显示停车场内的车辆信息以及收费历史记录。#include #include time.h#include stdlib.h#include #include stdio.husing namespace std;#define LIST_INIT_SIZE 10#define PRICE 1typedef struct Car int carnumber; int money; time_t entertime; time_t leavetime;Car;typedef struct ParkList Car *head; int leng

11、th; int listsize;ParkList;typedef struct WaitNode Car WaitCar; WaitNode *next;WaitNode,*WaitList;typedef struct LeaveNode Car LeaveCar; LeaveNode *next;LeaveNode,*LeaveList;int init_LeaveList(LeaveList &L) L = (LeaveList)malloc(sizeof(LeaveNode); L-next = NULL;int init_WaitList(WaitList &WL,Car wc)

12、WL = (WaitList)malloc(sizeof(WaitNode); WL-WaitCar = wc; WL-next = NULL;void Put_LeaveList(LeaveList &L,Car lc) LeaveList p = L; if(p=NULL) return ; while(p-next) p = p-next; LeaveList q = (LeaveList)malloc(sizeof(LeaveNode); q-LeaveCar = lc; p-next = q; q-next = NULL; q-LeaveCar.money = (q-LeaveCar

13、.leavetime-q-LeaveCar.entertime)*PRICE;void Putelem_WaitList(WaitList &WL,Car wc) WaitList p = WL; if(p=NULL) init_WaitList(WL,wc); return ; while(p-next) p = p-next; WaitList q = (WaitList)malloc(sizeof(WaitNode); q-WaitCar = wc; p-next = q; q-next = NULL;void delete_WaitList(WaitList &WL,Car &c) i

14、f(WL=NULL) return ; WaitList p = WL; c = p-WaitCar; if(WL-next=NULL) WL=NULL; else WL = WL-next; free(p);Car CreateCar(int carnum) Car *pc = (Car *)malloc(sizeof(Car); pc-carnumber = carnum; pc-entertime = time(NULL); return *pc; int init_Parklist(ParkList &p) p.head = (Car *)malloc(LIST_INIT_SIZE*s

15、izeof(Car); if(!p.head) return 0; p.length = 0; p.listsize = LIST_INIT_SIZE; return 1; int put_ParkList(ParkList &p,WaitList &WL,Car c) if(p.length=p.listsize) if(WL=NULL) init_WaitList(WL,c); else Putelem_WaitList(WL,c); return 0; Car *pc = p.head; pcp.length = c; p.length += 1; return 1; int inser

16、t_ParkList(ParkList &p,WaitList &WL,int i) Car c; delete_WaitList(WL,c); if(i=p.length) return 0; Car *pc = p.head; for(int j=p.length-1;ji-1;j-) pcj+1=pcj; pci=c; p.length += 1; return 1; int delete_ParkList(ParkList &p,LeaveList &L,int i) if(i=0&ip.length) Car *pc = p.head; pci.leavetime = time(NU

17、LL); Put_LeaveList(L,pci); for(int j=i;jp.length-1;j+) pcj=pcj+1; p.length -= 1; return 1; else return 0; void showParkList(ParkList p) if(p.head!=NULL) Car *pc = p.head; printf(ParkList:n); for(int j=0;jWaitCar.carnumber,ctime(&(p-WaitCar.entertime); p = p-next; void showLeaveList(LeaveList L) Leav

18、eList p = L-next; printf(LeaveList:n); while(p) printf(%d %sn,p-LeaveCar.carnumber, ctime(&(p-LeaveCar.entertime); printf(%s %dn,ctime(&(p-LeaveCar.leavetime),p-LeaveCar.money); p = p-next; int main() ParkList p; LeaveList L; WaitList WL=NULL; init_LeaveList(L); init_Parklist(p); srand(time(NULL); C

19、ar c; int i = 1,n=0; int dic = 0; int index = 0; int time = 0; while(inum = number ; CL-next = NULL ;void PutCL(CostList & CL , int number) CostList p = CL , q; if(CL = NULL) InitCL(CL , number) ; else while(p-next) p = p-next ; q= (CostList)malloc(sizeof(Cost) ; q-num = number ; p-next = q; q-next

20、= NULL ; void PopCL(CostList & CL , int & number) CostList p = CL ; if(CL = NULL) number = 0 ; else number = CL-num ; CL = CL-next ; free( p ) ; void ShowCL(CostList & CL) CostList p = CL ; while(p) printf(%d ,p-num ) ; p = p-next ; printf(n) ;int _tmain(int argc, _TCHAR* argv) int a6 = 0, n , costn

21、um=0 , i = 0 , j = 0 , m; CostList CL1 = NULL ,CL2 = NULL , CL3 = NULL ; while(1) printf(请选择业务种类n1.公积金业务n2.银行卡业务n3.理财卡业务n4.业务办理完成n5.显示当前窗口营业状态n6.显示当前排队情况n) ; scanf_s(%d,&n) ; switch(n) case 1 : i+ ; printf(您的序号为:%dn,i) ; if(CL1 = NULL) InitCL(CL1 , i) ; else PutCL(CL1 , i) ; break ; case 2 : i+ ; pr

22、intf(您的序号为:%dn,i) ; if(CL2 = NULL) InitCL(CL2 , i) ; else PutCL(CL2 , i) ; break ; case 3 : i+ ; printf(您的序号为:%dn,i) ; if(CL3 = NULL) InitCL(CL3 , i) ; else PutCL(CL3 , i) ; break ; case 4 : printf(正在营业的窗口:n) ; for(j = 0 ; j 6 ; j+) if(aj != 0) printf(%d ,j+1) ; printf(n); printf(请选择业务办理完成的窗口号:n) ;

23、scanf_s(%d,&m) ; am-1 = 0; break ; case 5 : printf(窗口营业情况:n) ; for(j = 0 ; j 6 ; j+) if(aj != 0) printf(%d号窗口正在为%d号客户服务n,j+1 ,aj) ; break ; case 6 : printf(办理公积金业务的客户有:n) ; ShowCL(CL1) ; printf(办理银行卡业务的客户有:n) ; ShowCL(CL2) ; printf(办理理财卡业务的客户有:n) ; ShowCL(CL3) ; if(a0 = 0) PopCL(CL1 ,costnum) ; a0 = costnum ; if(a4 = 0) PopCL(CL3 , costnum) ; a4 = costnum ; if(a5 = 0) PopCL(CL3 , costnum) ; a5 = costnum ; if(a1 = 0) if(CL2 != NULL)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1