1、数据结构 程序设计 员工管理系统学 号 数据结构课程设计设计说明书员工管理系统起止日期: 2011年 12月 12 日 至 2011 年 12月16日学生姓名 班级 成绩指导教师(签字) 电子与信息工程系2011年 1 2月16日天津城市建设学院课程设计任务书20102011学年第1学期 电子与信息工程 系 软件工程 专业 班级课程设计名称: 数据结构课程设计 设计题目: 员工管理系统 完成期限:自 2011 年 12 月 12 日至 2011 年 1 2 月 16 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题
2、。二、设计要求 (1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。三、设计内容员工管理系统:1)问题描述每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。2)基本要求(1) 排序:按不同关键字,对所有员工的信
3、息进行排序。(2) 查询:按特定条件查找员工。(3) 更新:按编号对某个员工的某项信息进行修改。(4) 插入:加入新员工的信息。(5) 删除:按编号删除已离职的员工的信息。四、参考文献1王红梅数据结构清华大学出版社2王红梅数据结构学习辅导与实验指导清华大学出版社3严蔚敏,吴伟民数据结构(C语言版)清华大学出版社五.主要内容:(一)需求分析(1)。系统分析:本系统为员工管理系统,要求对员工的各项信息进行操作,其中包括新员工信息的录入,录入后对员工信息的查询,对目前所有员工信息的浏览,查看所有员工信息后对其进行修改,删除目前某个员工的信息。通过以上所有要求我得出了如下结论:首先对一个系统管理应该有
4、个主界面,所以我先设定一个主菜单,其中包括了如下几项:1,员工信息输入。2,员工信息修改。3,员工信息删除。4,员工信息查找。5,退出。这样就需要编写一个主菜单的方法MAIN()方法来实现,第二项是员工信息输入,这项重点内容是要对输入进去的信息进行储存,包括员工的编号,姓名,性别,生日,电话,学历,职务,地址等。所以我引用了以个来完成这个操作,同时定义以个插入方法ADD()来实现数据的录入。接下来是员工信息修改,编写MODIFY()方法。首先要对其进行查询,如果没有其员工编号,则报错,如果有则显示其对应编号的员工信息,同时显示对员工各项的修改项目,修改成功后返回。第四项,员工信息删除,DELE
5、()方法,首先也先是查询,并输出目前所有员工信息,输入要删除的员工编号,删除员工信息,返回主界面。第五项,员工信息查找,FIND()方法,输入员工的编号,找到匹配的员工信息,若有,则返回本条信息,若没有则报错。通过以上分析,我确定了本系统应包含5个主要方法分别是:主菜单调用方法MAIN()方法,员工输入ADD()方法,员工信息修改MODIFY()方法,员工信息删除DELE方法和员工信息查找FIND()方法。并根据其上的方法引用String.h和Fstream等来实现其操作。(2)系统流程图(二).概要设计: 本系统从总体上分一共划分为5个模块,分别menu(),add(),modify(),f
6、ind(),dele()等。1.menu()主菜单。2.add()函数实现对员工基本信息的添加:void add() while(1) /控制信息添加多次的循环 for(int i=0;i.modify()函数实现对员工信息的修改:if(NUM=0) /判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数 for(int i1=0;i1NUM;i1+) /列出现有的员工的详情,方便修改 for(int i=0;i.find()函数实现按编号对员工的查找:void find() if(NUM=0) /判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数 int found=0;
7、/用于检测是否找到该编号员工 for(int i=0;i. dele()函数实现对已离职员工信息的删除:void dele() if(NUM=0) /判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数 for(int i=0;iNUM;i+) (三).详细设计:定义一个Person封装类,每个成员都是该封装类的对象。该封装类中包含员工编号,姓名,性别,出生日期,电话、工资,学历,职务,地址等成员变量。详细代码如下:#include #include #include #include using namespace std;int NUM=0;class Personpublic:
8、Person() void setPerson(char *num1,char *name1,char *sex1,char *birth1,char *tel1,char *degree1,char *position1,char *address1); friend void add(); friend void modify(); friend void dele(); friend void find();private: char num15; char name15; char sex5; char birth15; char tel15; char degree15; char
9、position15; char address15;Person Per200;void Person:setPerson(char *num1,char *name1,char *sex1,char *birth1,char *tel1,char *degree1,char *position1,char *address1) strcpy(num,num1); strcpy(name,name1); strcpy(sex,sex1); strcpy(birth,birth1); strcpy(tel,tel1); strcpy(degree,degree1); strcpy(positi
10、on,position1); strcpy(address,address1);/主菜单void menu() coutnnendl; couttt*endl; couttt tt员工管理系统endl; couttt* - *endl; couttt* tt1. 员工信息输入 tt*endl; couttt* tt2. 员工信息修改 tt*endl; couttt* tt3. 员工信息删除 tt*endl; couttt* tt4. 员工信息查找 tt*endl; couttt* tt0. 退出 ttt*endl; couttt*endl; coutnnt请选择(04):;/1. 员工信息输入
11、void add() char num15; char name15; char sex5; char birth15; char tel15; char degree15; char position15; char address15; system(cls); coutnn输入员工信息:endl; cout编号t姓名t性别t生日t电话t学历t职务t地址numnamesexbirthteldegreepositionaddress; PerNUM.setPerson(num,name,sex,birth,tel,degree,position,address); coutnntt添加数据成
12、功!nendl; saveCtrl=0; NUM+; return;/2. 员工信息修改void modify() system(cls); if(NUM=0) coutnnnnnnttt没有任何员工记录。nnnttt即将返回主菜单; Sleep(2000); return; char num15; cout编号t姓名t性别t生日t电话t学历t职务t地址endl; for(int i1=0;i1NUM;i1+) coutPeri1.numtPeri1.nametPeri1.sextPeri1.birthtPeri1.teltPeri1.degreetPeri1.positiontPeri1.a
13、ddressendl; coutnum; int choice; for(int i=0;iNUM;i+) if( strcmp(Peri.num,num)=0 ) do system(cls); cout编号t姓名t性别t生日t电话t学历t职务t地址endl; coutPeri.numtPeri.nametPeri.sextPeri.birthtPeri.teltPeri.degreetPeri.positiontPeri.addressendl; couttt*endl; couttt* t 员工管理系统 tt*endl; couttt* - *endl; couttt* tt1.修改编号
14、 tt*endl; couttt* tt2.修改姓名 tt* endl; couttt* tt3.修改性别 tt*endl; couttt* tt4.修改生日 tt*endl; couttt* tt5.修改电话 tt*endl; couttt* tt6.修改学历 tt*endl; couttt* tt7.修改职务 tt*endl; couttt* tt8.修改地址 tt*endl; couttt* tt9.返回主菜单 tt*endl; couttt*endl; coutnnt请选择(09):; coutchoice; if(choice9) continue; switch(choice) c
15、ase 1: coutPeri.num; break; case 2: coutPeri.name; break; case 3: coutPeri.sex; break; case 4: coutPeri.birth; break; case 5: coutPeri.tel; break; case 6: coutPeri.degree; break; case 7: coutPeri.position; break; case 8: coutPeri.address; break; case 9: return; while(choice9); /3.删除员工信息void dele() s
16、ystem(cls); if(NUM=0) coutnnnnnnttt没有任何员工记录。nnnttt即将返回主菜单; return; cout编号t姓名t性别t生日t电话t学历t职务t地址endl; for(int i1=0;i1NUM;i1+) if(Peri1.num!=NULL) coutPeri1.numtPeri1.nametPeri1.sextPeri1.birthtPeri1.teltPeri1.positiontPeri1.addressendl; char num15; Person temp; cout请输入要删除的员工的编号num; for(int i=0;iNUM;i+
17、) if( strcmp(Peri.num,num)=0 ) temp=Peri; for(int j=i;jNUM-1;j+) Perj=Perj+1; NUM-; break; coutnnnt删除成功!endl; system(pause);/4. 员工信息查找void find() system(cls); if(NUM=0) coutnnnnnnttt没有任何员工记录。nnnttt即将返回主菜单; Sleep(2000); return; cout编号t姓名t性别t生日t电话t工资t学历t职务t地址endl; for(int i1=0;i1NUM;i1+) coutPeri1.num
18、tPeri1.nametPeri1.sextPeri1.birthtPeri1.teltPeri1.degreetPeri1.positiontPeri1.addressendl; char num15; int found=0; coutnum; for(int i=0;iNUM;i+) if( strcmp(Peri.num,num)=0 ) system(cls); coutnnnt查询结果endl; cout编号t姓名t性别t生日t电话t工资t学历t职务t地址endl; coutPeri.numtPeri.nametPeri.sextPeri.birthtPeri.teltPeri.d
19、egreetPeri.positiontPeri.addressendl; found=1; if(found=0) system(cls); coutnnnnnnttt未找到编号为:num的该员工!nnttt即将返回主菜单!choice; if(choice5) continue; switch(choice) case 1: add(); break; case 2: modify(); break; case 3: dele(); break; case 4: find(); break; default:run=0; break; system(cls); coutnnnnnntt谢谢使用员工管理系统,再见!endl; Sleep(1000); return 0;六调试与测试:调试方法:在C+程序想调试的地方按F9,然后按F5开始调试。测试结果与预想的正确。测试过程中遇到的问题:输入的排序二叉树的输入顺序不对,导致输出结果与预计的不想符。七实验界面截图:(1)管理界面(2)输入界面(3)修改信息界面(4)查询信息界面(5)删除信息界面
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1