⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 职工管理系统设计文档.txt

📁 这是一个职工管理系统,包括新增一名职工
💻 TXT
字号:
                                数据结构实习说明文档
1.问题描述:职工管理系统
            职工对象包括姓名,性别,出生年月,工作年月,学历,职务,住址,电话,序号
            (1)新增一名职工:将新增职工插入到职工链表最后
            (2)删除一名职工:删除一名职工
            (3)查询:按名字,职务,学历查找符合相关条件的职工
            (4)修改:按序号锁定某个职工,修改其的职务,名字或电话
            (5)排序:按职工的姓名顺序,出生日期,或职位大小进行排序
            (6)打印:将所有结点按在链表中的顺序打印
2.运行平台:windows 98/2000/xp
  开发工具:visual C++ 6.0
3.概要设计说明:用链表实现,分为职工结点类与职工链表类,链表类有头结点
                结点类的每个结点可以进行编辑,打印,创建,赋值
                链表类可以对链表内的结点锁定,查找某个结点,排序,插入,删除,打印,交换
4.详细设计说明:
             (1)算法设计思路:a.采用了链表的数据结构,用结点类表示每个员工,用链表类将员工
 				  链接,链表有头结点。
				b.在插入时,实习要求按姓名字母顺序插入,但考虑到可以对链表
                                进行以姓名方式的排序,故暂时插入到链表末尾,可以调用排序函数
				  按姓名顺序排序。
                                c.在每个结点里添加序号(no),便于对链表内的结点定位,锁定
             (2)组成介绍:                            
	           职工节点类:public:
				    1.EmployeeNode():构造函数
                                    2.EmployeeNode(int t):   
				    3.CreateEmp():创建节点,输入职工信息
        	                    4.EditNode():编辑职工,调用编辑职工的姓名,电话,职位
                	                         调用EditName(),EditPost(),EditPhone();	   
				    5.Assign(EmployeeNode *p):节点赋值,将一个节点的信息赋予另外一个节点
                                    6.print():打印节点,打印职工的信息					
				private:
				    int no;char *name;Sex sex;Date birthdate;Date workdate;
				    Qualification quali;Post post;char *addr;char phone[8];
				    EmployeeNode *next;
                   职工链表:public:
			            1.Edit():编辑职工结点,用序号确定职工,并调用结点的编辑函数
              	        	    2.Find():查找结点,用姓名,职务,学历3种方式查找,分别调用Find_name(),
                                            Find_post(int t),Find quali(int t),查找采用顺序查找
                       		    3.Insert():插入结点,将结点插入到链表尾部
                       	            4.Remove():删除结点,将选定的职工结点删除
                       		    5.print():按链表顺序打印员工
                                    6.MakeEmpty():将链表置空
 				    7.Find(int i):查找并返回no=i的结点
 				    8.Swap(EmployeeNode *p1,EmployeeNode*p2):交换p1与p2结点,但不交换no.
                                    9.Sort():按姓名,出生年月,职务分别调用SortName(),SortBirth(),SortPost()
                                           用冒泡排序法进行排序
			     private:EmployeeNode *first,*last;
              (3)输入输出的格式:输入menu:Welcome!This is the system to manage employees built by zblhero.
					    1.Create a new employee;
				            2.Delete an employee;
					    3.Find an employee;
					    4.Edit an employee;
					    5.Sort the employees(1.name,2.birthdate,3.post);
 				            6.List all the employees
 					    7.exit
				   输出格式:~ ~ ~ ~ ~ ~ Information~ ~ ~ ~ ~ ~
				             name:zblhero    sex:Male        phone:46248866
					     birthdate:1988-6-23     workdate:2006-9-1       no:1
					     qualification:Master    post:clerk      address:shaanxi
					     ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
	      (4)算法的时空复杂度分析:冒泡排序法复杂度为O(n^),故实践复杂度为O(n^)
5.总结:由于实践仓促,在灵活性,排序的效率还不是太高,没有用散列的数据结构。
       			                                                        
 
                                                                             2007.12.30            

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -