1、郑州轻工业学院课 程 设 计 任 务 书题目 员工管理系统 专业、班级 电子商务 082学号 200812030201 姓名 陈超 主要内容、基本要求、主要参考资料等:主要内容:在进行了专业基础课和数据结构课程的基础上,设计一个实际的应用软件,初步软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为毕业设计和以后的工程实践打下良好的基础。基本要求:巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力。培养学生选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计
2、方法。够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。通过课程设计,培养学生严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。主要参考资料:1 严蔚敏,吴伟民. 数据结构:C 语言版. 清华大学出版社,2007.完 成 期 限: 2011 年 7 月 1 日 指 导 教 师 签 名 : 课程负责人签名: 2011年 6月 27日郑州轻工业学院本科数据结构课程设计总结报告设计题目:员工管理系统学生姓名:陈超系 别:国际教育学院专 业:电子商务班 级:08-02学 号:200812030201指导教师:王捷2011 年 6 月 30 日目 录第一章 设计
3、题目 1第二章 运行环境 1第一节 硬件 1第二节 软件 1第三章 算法设计的思想 2第四章 算法的流程图 2第五章 算法设计分析 2第六章 源代码 2第一节 头文件 2第二节 主程序 8第七章 运行结果分析 11第八章 收获及体会 17第九章 参考文献 181第一章 设计题目员工管理系统。每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。(1) 排序:按不同关键字,对所有员工的信息进行排序。(2) 查询:按特定条件查找员工。(3) 更新:按编号对某个员工的某项信息进行修改。(4) 插入:加入新员工的信息。(5)
4、 删除:按编号删除已离职的员工的信息。第二章 运行环境第一节 硬件处理器:Pentium 级处理器;推荐使用 Pentium90 或更高级处理器。内存:Windows 95 或更新版本需 32 兆内存(推荐使用 48 兆) ;Windows NT 4.0 需要 32 兆(推荐使用 48 兆) 。硬盘:VB 典型安装需 116 兆,最大安装需 135 兆;VC 需 302 至 403兆;VFP 需 85 兆至 90 兆;VID 需 81 兆至 98 兆;VJ 需 86 兆至 104 兆;VSS 需 59 兆至 141 兆;IE 需 43 兆至 59 兆;MSDN 需 57 兆至 493 兆;NT
5、 4.0 Option Pack:Win95 需用 20 兆,WinNT 需用 200 兆;SQL(只用于 NT)需 80 兆至 95 兆;SNA(只用于 NT)50 兆至 100 余兆;升级可能需要更多空间。2第二节 软件操作系统:Win9x/NT/2000/XP编译软件:Mrosoft Visual C+6.0/ Mrosoft Visual Studio 6.0第三章 算法设计的思想构造链表存储用户记录。第四章 算法的流程图图 4.1 算法的流程图第五章 算法设计分析(1)构造链表存储用户记录。(2)利用冒泡法对用户名和号码分别进行排序(3)利用直接查找法进行查找操作界面添加 更改 删除
6、查询 排序 显示所有 退出 其他编号 姓名 性别 生日 学历 职务 电话 地址编号 姓名 选择编号编号排序操作完成返回操作界面输入错误3第六章 源代码第一节 头文件/*Linklist.h*/#include“stdio.h“#include“stdlib.h“#include “string.h“#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef struct LNodechar id20;char name10;char sex10;char birth10;char edu1
7、0;char duty10;char phone20;char address30;struct LNode *next;LNode,*Linklist;/定义节点类型int CreatList(Linklist p=(Linklist)malloc(sizeof(LNode);if(!p)return (0);else4printf(“请输入员工编号n“);scanf(“%s“,p-id);printf(“请输入员工姓名n“);scanf(“%s“,p-name);printf(“请输入员工性别n“);scanf(“%s“,p-sex);printf(“请输入员工生日n“);scanf(“%
8、s“,p-birth);printf(“请输入员工学历n“);scanf(“%s“,p-edu);printf(“请输入员工职务n“);scanf(“%s“,p-duty);printf(“请输入员工电话n“);scanf(“%s“,p-phone);printf(“请输入员工地址n“);scanf(“%s“,p-address);p-next=L-next;L-next=p;/头插法生成单链表int Initlist(Linklist if(!L)return (0);L-next=NULL;return OK;/初始化单链表void Display(Linklist for(p=L-nex
9、t;p;p=p-next)printf(“编号 %sn“,p-id);printf(“姓名 %sn“,p-name);5printf(“性别 %sn“,p-sex);printf(“生日 %sn“,p-birth);printf(“学历 %sn“,p-edu);printf(“职务 %sn“,p-duty);printf(“电话 %sn“,p-phone);printf(“地址 %sn“,p-address);printf(“=n“);/显示所有员工信息int SearchID(Linklist p=L;while(p)if(strcmp(p-id,id)=0)printf(“编号 %sn“,
10、p-id);printf(“姓名 %sn“,p-name);printf(“性别 %sn“,p-sex);printf(“生日 %sn“,p-birth);printf(“学历 %sn“,p-edu);printf(“职务 %sn“,p-duty);printf(“电话 %sn“,p-phone);printf(“地址 %sn“,p-address);p=p-next;return OK;/查询 IDint SearchName(Linklist p=L;6while(p)if(strcmp(p-name,name)=0)printf(“编号 %sn“,p-id);printf(“姓名 %sn
11、“,p-name);printf(“性别 %sn“,p-sex);printf(“生日 %sn“,p-birth);printf(“学历 %sn“,p-edu);printf(“职务 %sn“,p-duty);printf(“电话 %sn“,p-phone);printf(“地址 %sn“,p-address);p=p-next;return OK;/查询姓名void Sort(Linklist Linklist p,q,m;La=(Linklist)malloc(sizeof(LNode);La-next =NULL;while(L-next)for(q=L-next ,p=L-next ;
12、p-next ;p=p-next )if(strcmp( p-next-id,q-id )0 )m=p;q=p-next ; 7if(q=L-next)L-next =L-next-next ;elsem-next =q-next ;q-next =La-next ;La-next =q ;L=La;Display(L);/排序int Alter(Linklist p=L;while(p)if(strcmp(p-id,id)=0)printf(“请输入员工编号n“);scanf(“%s“,p-id);printf(“请输入员工姓名n“);scanf(“%s“,p-name);printf(“请
13、输入员工性别n“);scanf(“%s“,p-sex);printf(“请输入员工生日n“);scanf(“%s“,p-birth);printf(“请输入员工学历n“);scanf(“%s“,p-edu);8printf(“请输入员工职务n“);scanf(“%s“,p-duty);printf(“请输入员工电话n“);scanf(“%s“,p-phone);printf(“请输入员工地址n“);scanf(“%s“,p-address);p=p-next;return OK;/更改int Del(Linklist LNode *r;p=L-next;r=L;while(!(strcmp(p
14、-id,id)=0)p=p-next;if(!p)printf(“n 删除位置不合理n“);elser-next=p-next;free(p);printf(“删除成功n“);return OK;/按 ID 删除第二节 主程序#include“Linklist.h“9/主函数void main()Linklist L;int a;char m;char name10;char id20;Initlist(L);int y;int x=1;while(x)printf(“*n“);printf(“欢迎进入陈超的员工管理系统!n“);printf(“*n“);printf(“1-添加员工信息n“)
15、;printf(“2-查询员工信息n“);printf(“3-排序员工信息n“);printf(“4-显示所有员工信息n“);printf(“5-更改员工信息n“);printf(“6-删除员工信息n“);printf(“7-退出n“);printf(“*n“);printf(“请选择操作序号并按回车:“);scanf(“%d“,switch(y)case 1: CreatList(L);doprintf(“是否继续输入?(y/n)“);getchar();scanf(“%c“,if(m=y)CreatList(L);10while(m!=n);break;case 2: printf(“请输
16、入查询方式(1 按编号查询,2 按姓名查找)“);scanf(“%d“,if(a=1)printf(“请输入查询员工编号n“);scanf(“%s“,SearchID(L,id);if(a=2)printf(“请输入查询员工姓名n“);scanf(“%s“,SearchName(L,name);break;case 3:Sort(L);break;case 4: printf(“所有员工信息如下所示n“);Display(L);break;case 5: printf(“请输入更改员工编号“);getchar();scanf(“%s“,Alter(L,id);break;case 6: pri
17、ntf(“请输入删除员工编号“);11getchar();scanf(“%s“,Del(L,id);break;case 7: x=0;break;default:printf(“请输入正确序号!n“);break;第七章 运行结果分析图 7.1 员工管理系统主界面12图 7.2 添加员工信息图 7.3 按编号查询员工信息13图 7.4 按姓名查询员工信息图 7.5 排序员工信息14图 7.6 显示所有员工信息图 7.7 更改员工信息15图 7.8 删除员工信息图 7.9 退出员工管理系统16图 7.10 操作序号输入错误17第八章 收获及体会一周的数据结构课程设计结束了,在考试前组织这次课程
18、设计是非常有必要的也是很有效的,让我把数据结构这门课课堂上学习的知识更实际地运用到生活实践中,加深了对相关知识的理解,现实的来说更有助于考试。在本次课程设计中我的学号 01%8+1=2,所以我的题目是第二题员工管理系统。事实上拿到这个题目的第一感觉就是我想用 ROSE 来做系统,因为在上周刚刚做了系统设计分析的课程设计。在网上搜索了一下这个课题,发现有很多相同题目的报告书和源代码,但是这些系统其中不是有界面不美观的错误就是有漏洞,但是主体思想都是以链表结构来实现管理系统的录入查询等功能,所以只能作为参考自己新设计一套东西,使之人性化一些。相比较 SQL 或 UML 来讲,在我现有的 C 语言知
19、识层面下,我的这个系统与这两种数据库和建模语言有很大差距,而且实现起来不那么方便,没有数据库来得直观。在数据录入时,我不知道哪个函数可以用来检验数据是否溢出,这对于我的系统来讲是个致命的打击,尤其是在溢出后查询时找不到查询项。我不得不把数据项的字符数写大一些,这又造成了内存的冗余,很是纠结。但是总体来讲,对于链表的数据结构思想大致还是熟悉了,这应该算是达到了课程设计的目的吧。以后如果需要用到员工管理系统我还是比较倾向于那两种语言,对于是否能用 C 语言来细化编写和增加人机交互,这取决于自己的能力能否更加提高。在这里感谢王捷老师和王治国老师的悉心指导,为我的系统解决了很多难题,但是能力所限有些人机交互做的还不是很好,希望在日后的编程工作中能够进步。18第九章 参考文献1 严蔚敏,吴伟民. 数据结构:C 语言版. 清华大学出版社,2007.2 教育部考试中心. 全国计算机等级考试二级教程. 高等教育出版社,2007.8.