《员工管理系统》由会员分享,可在线阅读,更多相关《员工管理系统(17页珍藏版)》请在金锄头文库上搜索。
1、程序设计实习实验报告班级:信 A0812学号:25姓名:万明指导老师:周小雄2010-2011 第 1 学期实验 员工管理系统班级:信 A0812 学号: 25姓名:万明指导教师签名: 成绩: 一、问题描述设计一个计算机程序,能够实现简单的员工管理功能。设计要求:1每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电 话、住址等。2系统的功能包括:(1)查询:按特定条件查找员工。(2)修改:按编号对某个员工的某项信息进行修改。(3)插入:加入新员工的信息。(4)删除:按编号删除已离职员工的信息。(5)排序:按特定条件对所有员工的信息进行排序。二、算法说明1算法功能( 1)采用结构体
2、WORKER 来存储员工的相关信息,定义一个由结构体组成的链表来实现对多个员工信息的存储,以及插入、删除、修改等操作。(2)注册新员工信息:采用链表的操作,向链表接点的前一个接点插入信息。(3)查询、修改:采用链表的操作进行信息的查找,找到后可以进行修改覆盖 原来的内容。(4)删除:按链表的操作进行,按关键字找到相应的接点,然后删除此接点的前一个接点即可。(5)排序:按照员工的工号升序排序,采用冒泡排序法,并且交换所有信息。2函数说明Link Create(Link Head);/ 创建链表void Release(L ink Head);/释放链表空间Link Search(L ink He
3、ad);/按条件查找链表节点Link Searchbyw no(L ink Head);/按员工号查找员工信息Link Updata(Link Head);/ 修改员工信息Link Insert(Link Head);/ 插入员工信息Link Del(Link Head);/ 删除退休员工的信息Link rankbywno(Link Head);/ 按员工号将员工排序void Display(Link Head);/ 查找链表所有节点void Display_Node(Link pNode);/ 显示链表节点的信息Link Searchwithoutprint(Link Head);/ 查找链
4、表节点的信息但是不用输出 3数据结构说明struct worker/定义员工结构体链表来存储员工的信息int wnu m; 工号char name15;/姓名char sex4;/ 性别char age12;出生年月char post 6;/学历char job10; 职位un sig ned int telnum;/电话号码char add23;家庭地址struct worker *n ext;定义下一个接点;typedef struct worker Node;typedef Node *Link;/ 定义链表节点三、测试结果第一组测试 :(1) :测试目的:注册新信息并显示出来。(2)
5、:测试输入和结果: X貝X W X啊図貝抵*M事X帕廉X鼻屛*牺*屛貝帕廉X鼻耳*鼻図貝鼻风貝:氈貝鼻X貝啊酬 翩入您所需服务 6犧理九麴臥=所有职工信息 2李四玄1989-08专齊t张三M1*88-05本科XKiMJtJtiMKKiMKJtiMKKiMKJtiMKKiMKJtiMltKMiWMiiMMiMiJtiMKKiMKJtiMKltiMKitiMltltiMKM:口 -I-第二组测试:(1) 测试目的:修改员工信息(2) 测试输入和结果:第三组测试:(1) :测试目的:查找员工信息(2) :测试输入和结果:第四组测试:(1) :测试目的:按照员工号升序排序。(2) :测试输入和结果:翌
6、卿务如畝珈=所看职工信息=2李四玄1989-08专暂莒业员 九江E虹大道5张三舅1990-03硕士建理九江前进路(1) :测试目的:删除员工信息(2) :测试输入和结果:第六组测试:(1)测试目的:安全退出系统(2)测试输入一结果:第五组测试:附录:源代码#includevwindows.h调用系统函数 exit#i ncludevstri ng.h 字符串的赋值#i nclude / 申请空间#i nclude#i nclude struct worker/定义员工结构体链表来存储员工的信息int wnum; char n ame15; char sex4;char age12;char p
7、ost6;char job10;unsigned int telnum;char add23;struct worker *next;typedef struct worker Node;typedef Node *Link;/ 定义链表节点Link Create(Link Head);/ 创建链表void Release(L ink Head);/释放链表空间Link Search(L ink Head);/按条件查找链表节点Link Searchbyw no(L ink Head);/按员工号查找员工信息Link Updata(L ink Head);/ 修改员工信息Link In ser
8、t(L ink Head);/ 插入员工信息Link Del(Link Head);/ 删除退休员工的信息Link ran kbyw no(Li nk Head);/按员工号将员工排序void Display(Link Head);/查找链表所有节点void Display_Node(Li nk pNode);/ 显示链表节点的信息Link Searchwithoutpri nt(Li nk Head);/查找链表节点的信息但是不用输出/函数定义部分Link Create(Li nk Head)/创建一个带头节点的空链表Head=(Link)new Node;if(!Head)cout分配内存
9、失败! next=NULL;return Head;void Release(Link Head) /释放链表Link ptr;while(Head!=NULL)ptr=Head;Head=Head-next;delete ptr;/释放节点资源Link Search(Link Head) /按员工号查找Link ptr;int wnum; ptr=Head-next; coutwnum;coutendl 查询结果 wnum=wnum)Display_Node(ptr);打印满足条件的节点。return Head;ptr=ptr- n ext;/ 查询下一节点。cout无此职工的信息。code
10、;coutendl 查询结果 next)if(ptr-next-wnum=code)Display_Node(ptr);打印满足条件的节点。 return ptr;/返回的查询到的节点的直接前趋节点。ptr-n ext=ptr- n ext- n ext;/ 查询下一节点。return ptr;Link Updata(Link Head)/ 修改员工信息Link ptr; ptr=Searchwithoutprint(Head);int wnum1;char name115;char sex14;char age112;char post16;char job110;unsigned int
11、telnum1;char add123;if(ptr!=NULL)if(ptr-next)vvendl;coutwnum1;coute ndl请输入职工姓名:; cinname1;coute ndl请输入职工性别:;cinsex1;coutendl请输入职工出生年份(2000-01): cinage1;coute ndlvv请输入职工学历:; cinpost1;coute ndlvv请输入职工职位:;cinjob1;coutvvendlvv请输入职工电话号码(数字):; cintelnum1;coutvve ndlvv请输入职工地址:; cinadd1;coutvvendl; ptr-next
12、-wnum=wnum1; strcpy(ptr-name,name1); strcpy(ptr-next-sex,sex1); strcpy(ptr-next-age,age1); strcpy(ptr-next-post,post1); strcpy(ptr-next-job,job1); ptr-next-telnum=telnum1; strcpy(ptr-next-add,add1);elsecoutvv没找到此职工的记录,无法修改。vvendl; return Head;叵HMW1-=VV_PU vvlno。-geAAUo二OOOOCXI)e曲田Hs?vv_pu Vvln8 =x SAAUO-m峯 Hsl-=vv_pu Vvln8= lueuAAUo-媒載 Hs報黙)思呼 Hsfcrvvln8iDPON MeuwuziHM? 訝 0=ppe。 Tlunuo)二 u 一 p uQsun XOIJLqoelp -Llsodelp FTlJgeelp X寸-Lxselp xglJLEeuelp -LlunuM 1。FfeJHlfc注 m Nd-k:un“li、eHnKsf 1(pe H Aun)七 su- /Un-pe H una)