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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计职工管理系统.docx

1、数据结构课程设计职工管理系统目录第一章 引言1第二章 需求分析2第三章 概要设计33.1 输入功能的实现.33.2 系统基本操作的实现.33.3 输出功能的实现.33.4 系统功能结构.3第四章 详细设计44.1 定义职工节点信息.44.2 主函数设计.44.3 主函数程序流程图.54.4 部分操作的核心代码.5 4.4.1 添加职工信息5 4.4.2 删除职工信息8 4.4.3 修改职工信息9 4.4.4 调换职工部门.9 4.4.5 根据姓名查询职工住址.10第五章 调试与分析125.1 进入主函数.125.2 查询所有职工信息.125.3 添加职工信息.135.4 删除职工信息.135.

2、5 查询职工住宿信息.145.6 修改职工信息.145.7 调换职工部门.155.8 查询全部部门.15第六章 系统使用说明166.1 主界面说明.166.2 新增职工信息界面说明.166.3 其他操作说明.16第七章 总结与体会17参考文献.18相关工具.18附录 程序源代码18第五章 调试与分析5.1、进入主函数:系统里各职工的信息保存在tt.txt中。5.2、查询所有职工信息,系统直接从tt.txt中读出:5.3、添加职工信息,可以选择一次要添加多个人:添加之后,可以在tt.txt中查看,是否已经插入进去:5.4、删除职工信息,通过姓名查找与输入姓名相同的职工,再删除:删除之后,可以再t

3、t.txt中查看是否已经删除成功:5.5、查询职工信息,同过查找与输入姓名相同的职工,查找其住宿信息:5.6、修改职工信息,同过查找与输入姓名相同的职工,可以修改其全部信息:修改之后,可以在tt.txt中查看是否成功修改:5.7、调换部门,先查找出要调换的职工,然后再设置要调换的部门:调换之后,可以再tt.txt中查看是否已经成功调换5.8、查询全部部门:参考文献 (包括书籍、论文、网络资料等)1 秦锋等.数据结构(C语言版).北京:清华大学出版社,2012.1 2 严蔚敏等.数据结构(C语言版).北京:清华大学出版社,2007.4相关工具:Microsoft Visual C+ 6.0附录

4、程序源代码#include #include #include #include #includeusing namespace std;#define maxsize 100 /最多100人typedef struct node /职工结点信息 char name15; /姓名 char sex6; /性别 char birthday15; /生日 char position15; /职务 char department20;/部门 char address15; /住址 char telephone12; /电话 struct node * next; /后继结点DataType,LNod

5、e ,*LinkList; /结点类型,指向LNode类型结点的指针/DataType x;LinkList init(LinkList Head) Head=(LinkList)malloc(sizeof(LNode); Head-next=NULL; return Head;LinkList Insert(LinkList Head,LinkList x)/职工信息的插入姓名并按照升序排列/职工信息保存在x这个结点中,插入x这个结点 LinkList p,q,s=NULL; p=Head-next; q=(LinkList)malloc(sizeof(LNode); if(!q) cout

6、申请空间失败!name,x-name); strcpy(q-sex,x-sex); strcpy(q-birthday,x-birthday); strcpy(q-position,x-position); strcpy(q-department,x-department); strcpy(q-address,x-address); strcpy(q-telephone,x-telephone);/ if(!p)/如果只有Head,则直接将q插在Head后头; Head-next=q; Head-next-next=NULL; else/链表非空 for(;p;p=p-next)/从p开始到最

7、后一个结较点与结点x比,来确定结点x插入的位置 if(p-next!=NULL) if(strcmp(p-name,x-name)next-name,x-name)0)/前小后大 /结点x的首值大于结点p的首值但小于p-next的首值,即结点x插在结点p于结点p-next之间 s=p-next; q-next=s; p-next=q; break; else if(strcmp(p-name,x-name)=0) break; /因为表设计为姓名为主键,所以不能重复,所以姓名相同,则不插入信息 if(strcmp(p-name,x-name)next=NULL) /(p-name)name),

8、直接插在p之后 p-next=q; q-next=NULL; break; if(strcmp(p-name,x-name)0) /结点x插在p之前,位于链表头结点之后的位置 p=Head-next; Head-next=q; q-next=p; break; /*不排序,直接插入 q-next=p; Head-next=q; p=q;*/ cout插入成功!next;p!=NULL;p=p-next) coutnametsextbirthdaytpositiontdepartmenttaddressttelephonenext=NULL) cout职工名单为空,无须删除endl; else

9、cout职工名单如下:n姓名t性别t出生年月t职务t部门t住址t 电话next=NULL)/链表为空,不用删除 cout职工名单为空!endl; return ; coutx; for(;s-next!=NULL;s=s-next)/遍历链表,找与输入name一样的,删除。 if(strcmp(s-next-name,x)=0)/找出p的前驱结点s,删除s-next; LinkList tmp=s-next; s-next=s-next-next; free(tmp); cout删除成功!请继续操作!next=NULL) coutnext; if(p=NULL) cout职工名单为空!endl

10、; return ; couts-name; for(;p!=NULL;p=p-next)/在链表中一次查找 if(strcmp(s-name,p-name)=0) cout请依次写入职工的新信息:endl; cout姓名t性别t出生年月t职务t部门t住址t电话p-namep-sexp-birthdayp-positionp-departmentp-addressp-telephone; cout修改成功!endl; break; if(p=NULL) coutnext; if(p=NULL) cout职工名单为空!endl; return ; else couts-name; for(p;p

11、!=NULL;p=p-next) if(strcmp(s-name,p-name)=0)/找到姓名相同的结点 coutp-department;/设置新的部门 break; cout调换部门成功!next; if(Head-next=NULL) cout职工名单中无此职工!endl; return ; couts-name; for(p;p!=NULL;p=p-next) if(strcmp(s-name,p-name)=0)/找到姓名相同的结点 cout住址: addressendl; break; if(p=NULL) cout名单中无此人!endl; return ; void prin

12、tDepartment(LinkList Head)/显示部门信息/ int i; cout所有部门名称为:next;p!=NULL;p=p-next) coutdepartmentnext; while(p) filenametsextbirthdaytpositiontdepartmenttaddressttelephonenext; file.close();LinkList GetDataFromFile()/读取文件 ifstream file(tt.txt,ios:in); LinkList head=NULL; head=new LNode; head-next=NULL; ch

13、ar tmp25;/ bool flag=false; while(1) if(filetmp)/读入文件,只要不是结尾 flag=true; if(flag=true) LinkList tNode=new LNode; strcpy(tNode-name,tmp); filetNode-sex; filetNode-birthday; filetNode-position; filetNode-department; filetNode-address; filetNode-telephone; tNode-next=head-next; head-next=tNode; flag=fal

14、se; else break; file.close(); return head;void main() int num,i; LinkList x;/插入的结点 LinkList Head=NULL; Head=GetDataFromFile(); cout*endl; cout*欢迎进入安徽工程大学职工管理系统*endl; cout*endl; cout 主菜单 nendl; cout 0.结束管理系统 1.新增职工信息 2.删除职工信息 n n n ; cout 3.查询职工住宿信息 4.修改职工信息 5.显示全部职工信息n n n; cout 6.查询所有部门信息 7.调换部门end

15、l; while(1) coutendl; couti; if(i=0) SaveToFile(Head); cout信息已存入硬盘.endl; cout您已经成功退出安徽工程大学职工管理系统,谢谢使用!endl; break; if(i=1) coutnum; cout请输入职工信息:endl; cout姓名t性别t出生年月t职务t部门t家庭住址t电话号码endl; for( i=0;inum;i+) cout请输入第i+1个职工信息:x-namex-sexx-birthdayx-positionx-departmentx-addressx-telephone; Head=Insert(Head,x); else if(i=2) Delete(Head); else if(i=3) Insearch(Head); else if(i=4) Modify(Head); else if(i=5) printLink(Head);/ system(cls);/清屏 else if(i=6) /查询所有部门信息 printDepartment(Head); else if(i=7) /部门调换 changeDepart(Head); else cout输入有误!endl; break;

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

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