链表操作——职工基本情况管理_第1页
链表操作——职工基本情况管理_第2页
链表操作——职工基本情况管理_第3页
链表操作——职工基本情况管理_第4页
链表操作——职工基本情况管理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXXXXXXXXXXXXX综合性设计性实验报告 班 级:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 学 号:XXXXXXXXXXXXXX 姓 名 :XXXXX 实验项目名称: 链 表 操 作 实验项目性质: 综合性实验 实验所属课程: 高级语言程序设计 实验室(中心): 软件与信息技术实验中心 指 导 教 师 : XXXXXXXXXX 实验完成时间: 2013 年 3 月 10 日 综合实验评分表序号项目标准评分1纪律遵守、群体协作等(30%)按规定时间到实验室完成实验及综合实验,每缺1次实验扣5分,缺4次及以上不得分2系统演示(功能)及问答问题(40%)按要求完成系

2、统功能且界面友好容错能力强(3640)按要求完成系统功能界面一般有较好的容错能力(32-35)基本完成系统功能有一定的容错能力(2831)基本完成系统功能(2427分)未完成系统功能或他人代做或抄袭(023)3课程设计说明书(30%)综合实验报告各项目认真填写,具有清晰的设计思路及软件测试结果分析(2730)综合实验报告各项目认真填写,具有较为清晰的设计思路并对软件测试结果进行了较为清晰的分析(2426)综合实验报告各项目认真填写,设计思路正确(2123)综合实验报告进行为较为认真的填写(1821)综合实验报告有未完成项或各项填写不属实或他人代做或抄袭(0-15)教师签字总分一、实验目的培养学

3、生在程序设计方面知识的综合应用能力及程序设计能力(包括编制能力及程序调试能力)二、实验内容及要求编写处理职工简况程序,包括职工编号(整型)、姓名(字符串)、性别(字符串)、年龄(整型)、工资(双精度型)。要求: 用链表处理实现; 主函数显示并选择菜单; 程序的主要功能模块均用函数实现,包括:数据的输入(插入节点:按职工号升序排列),数据的删除(删除节点)、数据的输出(链表的遍历)、统计平均工资等。三、实验设备及软件计算机、Visual C+6.0四、设计方案 题目链表操作职工基本情况管理 设计的主要思路这个程序使用链表、指针和结构体将每个工人编号、姓名、性别、部门、工资、补贴、奖金、支出和实发

4、等信息进行输入、排序、保存并能使用菜单进行查找,输入、输出、排序、查找等过程均使用单独的函数来实现。 首先需建立链表,其中包括职工的姓名,性别,部门,工资,补贴,奖金,支出和实发等信息。 然后使用菜单的形式写出主函数。 然后写出输入、输出、排序、查找等函数:在输入时使用while循环对每个工人的信息进行输入;在输出时使用if函数、while循环将信息输出;在查询时需使用if,else进行循环和输出,同时需使用指针。 主要功能使用链表、指针和结构体将每个工人编号、姓名、性别、部门、工资、补贴、奖金、支出和实发工资等信息进行输入、排序、保存并能使用菜单进行查找,输入、输出、排序、查找等过程均使用单

5、独的函数来实现。结构体将每个工人的情况进行处理,能将每个工人的情况进行对应的录入,链表将每个工人进行排列以及连续的输入,函数将工资情况进行输入、输出,并且能按部门,职工号,姓名进行查询,同时也具有按部门排序和统计个部门工资的功能。五、主要代码 结构体: struct person char num20; /职工号 char name20; /姓名 char sex20; /性别 char department10;/部门 float salary; /工资 float subsidy; /补贴 float award; /奖金 float pay; /支出 float money; /实发工资

6、 struct person *next;/指向下一个 ; 各函数的申明和定义: person *creat(person*head); void print(person *head); person *sort(person *head); void numfind(person *head); void depfind(person *head); void depoutput(person*head,int k); void namefind(person *head); 主函数: void main() /主函数(使用菜单) int c,k,i; cout<<"

7、请输入部门数:"cin>>k; for(i=0;i<k;i+) cout<<"请输入第"<<i+1<<"个部门的名称:" cin>>depnamei; person *head=NULL,*sorthead=NULL; while(c!=0) cout<<"n 职工工资处理功能选择" cout<<"n =" cout<<"n 1. 职工工资输入 " cout<<"

8、n 2. 职工工资输出 " cout<<"n 3. 按职工号查询 " cout<<"n 4. 按部门查询 " cout<<"n 5. 按姓名查询 " cout<<"n 6. 部门排序输出 " cout<<"n 7. 部门工资查询 " cout<<"n 0. 退 出 系 统 " cout<<"n =" cout<<"n 输入你的选择:"

9、;cin>>c; switch(c) case 1:head=creat(head);break; case 2:print(head);break; case 3:numfind(head);break; case 4:depfind(head);break; case 5:namefind(head);break; case 6:sorthead=sort(head);print(sorthead);break; case 7:depoutput(head,k);break; case 0:break; default:cout<<"选择错误,重新选择n&

10、quot; 建立链表: person *creat(person *head) /输入职工信息 char ch20="0",num20; person *p1,*p2; head=new person;/动态数组 head->next=NULL; p1=head;p2=head; cout<<"请输入职工号(输0退出):" cin>>num; while(strcmp(num,ch)!=0) char man10="男",woman10="女" p1=new person; if(p1

11、=NULL) cout<<"错误!"<<endl; strcpy(p1->num,num); cout<<"请输入此职工姓名 :"cin>>p1->name; cout<<"请输入性别(男&&女) :"cin>>p1->sex; cout<<"请输入职工所属部门 :"cin>>p1->department; cout<<"请输入职工工资(>=0):&qu

12、ot;cin>>p1->salary;cout<<"请输入职工补贴(>=0):"cin>>p1->subsidy; cout<<"请输入职工奖金(>=0):"cin>>p1->award; cout<<"请输入职工支出(>=0):"cin>>p1->pay;p1->money=p1->salary+p1->subsidy+p1->award-p1->pay; p2->next

13、=p1;p2=p1; p2->next=NULL;cout<<"请输入职工号(输0退出):"cin>>num; return head;输出函数:void print(person *head) person *p1;p1=head;if(head=NULL)cout<<"未建立!"<<endl;return;p1=p1->next;cout<<setw(10)<<"职工号"<<setw(10)<<"姓名"&

14、lt;<setw(10)<<"性别"<<setw(10)<<"部门"<<setw(10)<<"工资"<<setw(10)<<"补贴"<<setw(10)<<"奖金"<<setw(10)<<"支出"<<setw(10)<<"实发工资"<<endl;while(p1!=NULL)cout&

15、lt;<setw(10)<<p1->num<<setw(10)<<p1->name<<setw(10)<<p1->sex<<setw(10)<<p1->department<<setw(10)<<p1->salary<<setw(10)<<p1->subsidy<<setw(10)<<p1->award<<setw(10)<<p1->pay<<setw

16、(10)<<p1->money<<endl;p1=p1->next;按职工号查找函数:void numfind(person *head) char num20;cout<<"请输入职工号:"cin>>num;person*p0;p0=head;if(head=NULL)cout<<"未建立!"<<endl;elsep0=p0->next; if(strcmp(p0->num,num)=0) cout<<setw(10)<<"

17、职工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10) <<"部门"<<setw(10)<<"工资"<<setw(10)<<"补贴"<<setw(10)<<"奖金" <<setw(10)<<"支出"<<setw(10)<<

18、;"实发工资"<<endl; cout<<setw(10)<<p0->num<<setw(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department <<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award <<

19、setw(10)<<p0->pay<<setw(10)<<p0->money<<endl; elsewhile(p0->next!=NULL&&strcmp(p0->num,num)!=0)p0=p0->next; if(strcmp(p0->num,num)=0) cout<<setw(10)<<"职工号"<<setw(10)<<"姓名"<<setw(10)<<"性别&qu

20、ot;<<setw(10) <<"部门"<<setw(10)<<"工资"<<setw(10)<<"补贴"<<setw(10)<<"奖金" <<setw(10)<<"支出"<<setw(10)<<"实发工资"<<endl; cout<<setw(10)<<p0->num<<setw(

21、10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department<<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award<<setw(10)<<p0->pay<<setw(10)<<p0->money<<endl;elsecout&

22、lt;<"无此职工号信息!"<<endl;按职工姓名查找函数:void namefind(person *head) /按职工姓名查找函数char name20;cout<<"请输入姓名:"cin>>name;person*p0;p0=head;if(head=NULL)cout<<"未建立"<<endl;elsep0=p0->next;if(strcmp(p0->name,name)=0) cout<<setw(10)<<"

23、;职工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10) <<"部门"<<setw(10)<<"工资"<<setw(10)<<"补贴"<<setw(10)<<"奖金" <<setw(10)<<"支出"<<setw(10)<&l

24、t;"实发工资"<<endl; cout<<setw(10)<<p0->num<<setw(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department<<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award<<s

25、etw(10)<<p0->pay<<setw(10)<<p0->money<<endl; elsewhile(p0->next!=NULL&&strcmp(p0->name,name)!=0)p0=p0->next;if(strcmp(p0->name,name)=0) cout<<setw(10)<<"职工号"<<setw(10)<<"姓名"<<setw(10)<<"性别&

26、quot;<<setw(10) <<"部门"<<setw(10)<<"工资"<<setw(10)<<"补贴"<<setw(10)<<"奖金" <<setw(10)<<"支出"<<setw(10)<<"实发工资"<<endl; cout<<setw(10)<<p0->num<<set

27、w(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department<<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award<<setw(10)<<p0->pay<<setw(10)<<p0->money<<endl; elseco

28、ut<<"未找到此职工信息!"<<endl;按部门查找函数void depfind(person *head) /char num20;cout<<"请输入部门:"cin>>num;person*p0;p0=head;cout<<setw(10)<<"职工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<&quo

29、t;部门"<<setw(10)<<"工资"<<setw(10)<<"补贴"<<setw(10)<<"奖金"<<setw(10)<<"支出"<<setw(10)<<"实发工资"<<endl;if(head=NULL)cout<<"未建立"<<endl;elsep0=p0->next;while(p0!=NUL

30、L)if(strcmp(p0->department,num)=0) cout<<setw(10)<<p0->num<<setw(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department <<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award &

31、lt;<setw(10)<<p0->pay<<setw(10)<<p0->money<<endl;p0=p0->next;按部门排序的函数:person *sort(person *head) char depname10;cout<<"按哪个部门排序?"cin>>depname;person*p0,*p1,*p2,*p3,*sorthead,*sorthead0;p0=head->next;sorthead0=new person;/动态数组p2=new person;p

32、1=sorthead0; while(p0!=NULL)if(strcmp(p0->department,depname)=0) strcpy(p2->name,p0->name);/复制 strcpy(p2->num,p0->num);strcpy(p2->sex,p0->sex); strcpy(p2->department,p0->department); p2->salary=p0->salary; p2->pay=p0->pay; p2->subsidy=p0->subsidy; p2->

33、money=p0->money; p2->award=p0->award;p1->next=p2;p2->next=NULL;p1=p2;p2=new person; p0=p0->next;p2->next=NULL;p0=NULL;p1=NULL;p2=NULL;p3=NULL; sorthead=new person;if(sorthead=NULL) cout<<"错误!"<<endl; sorthead->next=NULL;p2=sorthead;p3=sorthead;p1=sorthea

34、d0->next;while(p1!=NULL)p2=new person;if(p2=NULL) cout<<"错误!"<<endl; strcpy(p2->name,p1->name);strcpy(p2->num,p1->num);strcpy(p2->sex,p1->sex);strcpy(p2->department,p1->department);p2->salary=p1->salary;p2->pay=p1->pay;p2->subsidy=p1->subsidy;p2->money=p1->money;p2->award=p1->award;p3->next=p2;p3=p3->next;p2->next=NULL;p1=p1->next; p2=sorthead->next;p3=sorthead->next;while(p2->next!=NULL)while(p3->next!=NULL)p3=p3->next; if(p3->salary>p2-&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论