员工信息管理系统(数据结构)共15页文档.doc

上传人:1595****071 文档编号:33976602 上传时间:2022-08-12 格式:DOC 页数:15 大小:184KB
返回 下载 相关 举报
员工信息管理系统(数据结构)共15页文档.doc_第1页
第1页 / 共15页
员工信息管理系统(数据结构)共15页文档.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《员工信息管理系统(数据结构)共15页文档.doc》由会员分享,可在线阅读,更多相关《员工信息管理系统(数据结构)共15页文档.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流员工信息管理系统(数据结构)【精品文档】第 13 页员工信息管理系统课程设计报告系 别: 计算机与信息工程系 班 级: B080501 姓 名: 李海鹏 学 号: B08050128 指导教师: 张红霞 课设时间:2010-6-21到2010-6-25 摘要员工信息管理系统属于信息管理系统。员工信息管理是每个公司不可缺少的。系统用C程序开发,主要在于建立好一个合适的数据结构,并要求程序简洁实用。本系统利用C语言简洁、灵活,数据结构丰富等特点,编写适合公司使用的系统。整个系统使用起来也比较方便,入手简单,操作方便。论文主要介绍了程序设计过程、设计方案以及测

2、试过程,重点讲解了设计过程中的思想,技术解决方案等等。关键字:员工信息管理,C程序,数据结构目录前言3第1章 课设题目4第2章 开发运行环境及相关知识4第3章 程序总体设计53.1 主要功能模块53.2 数据结构6第4章 程序详细设计及实现74.1 输入函数74.2 排序函数74.3 显示函数74.4 查找函数74.5更改函数84.6 删除函数84.7 主函数84.8 其他函数9第5章 系统功能测试95.1 系统主界面95.2 输入数据95.3 显示数据105.4 信息排序105.5 更改信息115.6 删除信息11第6章 课设总结12第7章 程序清单13参考文献22前言本课程设计旨在理论学习

3、和基础实验的基础上,开发规模较大的程序,掌握应用计算机编程解决实际问题的基本方法,熟悉C程序开发的全过程,掌握数据结构的使用方法,熟练应用各种数据结构。本次任务是根据给定的数据和程序,应用单向链表处理一系列公司员工的信息。通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为进一步学习相关专业课程创建较扎实的理论基础和实践基础。报告将分6个章节来详细讲述本次课设题目的开发过程。第1章主要描述课设的题目及要求;第2章来介绍程序开发运行环境;第3章介绍程序主体设计,网络程序概要;第4章是对程序进行详细分析,对各个函数进行详细描述,并阐述程序实现技术等信息;第5章为测试过程,主要用测试

4、过程中的图片来表述最终信息;第6章也是最后一章,为本次实践活动的心得体会。第1章 课设题目1.1课设题目每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。1.2基本要求(1)每条记录内,包括员工的个人信息,有:编号、姓名、性别、出生年月、学历、职务、电话、住址等;(2)按不同关键字(如编号,姓名等),对所有员工的信息进行排序;(3) 按照指定条件查找某员工所有信息;(4) 按编号对某个员工的信息进行修改;(5) 加入新员工的信息,并实现排序;(6) 按编号删除已离职的员工的信息。1.3 其他需求 程序除需完成基本

5、功能外,程序源代码还应具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。第2章 开发运行环境及相关知识2.1 运行环境软件环境:Windows 2000,Windows XP和Windows NT4.0。2.2开发工具微软公司的Microsoft Visual C+ 6.0。2.3开发工具简介Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应

6、用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。 Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。第3章 程序总体设计3.1 主要功能模块依据

7、程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的录入、增加、删除、查找、更改和数据的排序等功能模块。主函数main()输入显示查找排序更改删除退出按编号按姓名按编号按姓名图3-1 程序主体3.2 数据结构依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、职务、电话和住址,外加一个判断关键字。本课程设计根据功能需求,使用线性结构来组织数据,因为数据占据空间比较大,要对表中某项数据进行操作,所以使用链表比较方便。结构体定义:typedef struct Stuff char number10; /编号 char name10; /姓名

8、 char sex8; /性别 char birthday10; /生日 char degree20; /学历 char business20; /职务 char phone15; /电话 char place50; /住址 char con50; /判断关键字 struct Stuff *next; /指针域 Stuff;信息存储:信息存储结构如图3-2Head 指针域数据域 指针域数据域 指针域NULL图 3-2 链式存储结构第4章 程序详细设计及实现4.1 输入函数函数原型:Stuff *App(Stuff *head);函数功能:通过输入各项数据给数据元素,来建立一个数据表。算法要点:

9、(1) 用循环控制输入记录;(2) 为每一结构体数据项输入数据;(3) 返回输入记录数。4.2 排序函数函数原型:void Sort(Stuff *head);void Scpy(char *p,char *q);int Sel(char ch,Stuff *p,Stuff *q);函数功能:按照指定关键字对员工信息进行排序。算法要点:(1)比较法对信息进行排序; (2)使用交换函数,对每项信息进行交换。4.3 显示函数函数原型:void Show(Stuff *head);函数功能:输出表中所有节点的信息。算法要点:使用循环输出所有信息。程序清单:4.4 查找函数函数原型:Stuff *Se

10、arch(Stuff *head);函数功能:按照指定关键字,对相应员工信息进行查找。算法要点:(1) 输入字段和信息相应字段的比较;(2) 函数中调用删除和更改函数。4.5更改函数函数原型:Stuff *Change(Stuff *head,char n10);函数功能:输入员工编号,查找到员工信息,对其信息进行更新。算法要点:(1) 信息查找;(2) 信息重新录入及保存。4.6 删除函数函数原型:Stuff *Del(Stuff *head,char n10);函数功能:查找到要删除员工的相应信息,并将其从表中永久的删除。算法要点:(1) 按关键字查找信息;(2) 链表中删除节点信息,并释

11、放节点空间。4.7 主函数主函数主要是调用以上的子函数,用开关语句进行选择性的调用。大致程序如下: switch(Menu()case 1: 调用函数语句; break; case 2: 调用函数语句; break; case 0: 退出程序语句;default: printf(输入错误,请重新输入!n);4.8 其他函数其他函数主要起到辅助功能,如菜单函数,主要起到引导作用;释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。菜单函数原型:char Menu();释放函数原型:void Fre(Stuff *head);第5章 系统功能测试5.1 系统主界面图 5-1

12、系统主界面5.2 输入数据(1)输入操作字符1;(2)输入员工信息;(3)输入“#”字符结束输入。图 5-2 输入操作5.3 显示数据图 5-3 显示信息5.4 信息排序图 5-4信息排序5.5 更改信息图 5-5 更正信息5.6 删除信息图 5-6删除信息第6章 课设总结如何才能真正的去掌握编程的方法,如何才能真正的去理解书上的理论信息,理论知识用于实践才是最终的目的。通过本次数据结构课程设计,我对数据结构的理论知识有了更为直接的认识,从实际中获得了很多宝贵的经验,这些对我以后做程序开发将是一笔很宝贵的财富。我有以下两点感触:(1)没有解决不了的问题。这个程序在课设前一周就开始着手编写,中间

13、遇到了不少的问题,由于以前写过类似的程序,所以对其中的一些错误很是敏感,也通过不少的途径来解决了问题。比如,通过和网上的一些程序代码的对比,解决了自己程序中输出乱码的问题。(2)注重团队协作。虽然此次课设是完全个人完成的,但是我还是要强调团队的重要性,因为我们以后走项的程序开发的道路上,没有单枪匹马的,都是一个团队协作完成的,所以今后的程序开发过程中,尽可能的和他人合作。万事开头难,学好编程,我还有很长的路要走。 第7章 程序清单#include stdio.h#include stdlib.h#include windows.h /清屏函数头文件#include string.htypede

14、f struct Stuff char number10; /编号 char name10; /姓名 char sex8; /性别 char birthday10; /生日 char degree20; /学历 char business20; /职务 char phone15; /电话 char place50; /住址 char con50; /判断关键字 struct Stuff *next; Stuff;char Menu(); /菜单函数Stuff *App(Stuff *head); /添加函数void Sort(Stuff *head); /排序函数Stuff *Search(S

15、tuff *head); /查找函数Stuff *Change(Stuff *head,char n10); /更改函数void Scpy(char *p,char *q); /排序中用于交换员工信息Stuff *Del(Stuff *head,char n10); /删除函数int Sel(char ch,Stuff *p,Stuff *q); /判断排序及关键字专用函数void Show(Stuff *head); /输出函数void Fre(Stuff *head); /释放函数int n=1; /定义全局变量,实现人数统计/菜单函数char Menu(void)int ch; prin

16、tf(-菜单-n); printf( 1.添加员工信息n); printf( 2.员工信息排序n); printf( 3.查找员工信息n); printf( 4.输出员工信息n); printf( 5.更改员工信息n); printf( 6.删除员工信息n); printf( 0.退出n);printf(-n);printf(“请选择你的操作:”); scanf( %d,&ch); return ch;/添加成员函数Stuff *App(Stuff *head)Stuff *p=NULL,*q=head; while(n)p=(Stuff *)malloc(sizeof(Stuff); /申请

17、结构体空间 if(p=NULL)printf(空间不足,自动退出系统!n); exit(0); p-next =NULL; /指针域为空 printf(请输入第%d名员工:n,n); printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :n); getchar(); scanf(%s,p-number ); if(strcmp(p-number,#)+n;scanf(%s%s%s%s%s%s%s,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place ); p-con0=0;

18、 /防止后面判断出现随机值 if(head=NULL)head=p; elsewhile(q-next !=NULL) q=q-next ; q-next =p; q=p; /尾插法if(!strcmp(p-number ,#)free(p); /完成添加,释放多余空间 break; return head;/排序函数void Sort(Stuff *head)char ch; Stuff *p,*q,*r; while(1)printf(请选择排序条件:1.编号|2.姓名|0.退出n);getchar(); scanf(%c,&ch); if(ch=0) break; if(ch2)prin

19、tf(输入错误,请重新输入!n); continue; p=head; while(p-next!=NULL) /选择排序q=p-next; r=p; while(q!=NULL)if(Sel(ch,r,q) /调用判断函数r=q; q=q-next; if(r!=p) /交换信息Scpy(r-number,p-number); Scpy(r-name,p-name); Scpy(r-sex,p-sex);Scpy(r-birthday,p-birthday); Scpy(r-degree,p-degree); Scpy(r-business,p-business); Scpy(r-phone

20、,p-phone); Scpy(r-place,p-place); p=p-next; Show(head); /输出/交换函数void Scpy(char *p,char *q)char c50; strcpy(c,p); strcpy(p,q); strcpy(q,c);/判断函数int Sel(char ch,Stuff *p,Stuff *q)switch(ch) /实现各个关键字查找case 1:return strcmp(q-number ,p-number )con ,p-number )=0 ; case 2: return strcmp(q-name ,p-name )con

21、 ,p-name )=0 ; default : exit(0);/查找函数Stuff *Search(Stuff *head)Stuff *p=NULL,*q; int flag; /查找判断 char ch,sh; /两个控制变量 q=&a; while(1)printf(请输入要查找的条件:1.编号2.姓名0.退出n); scanf( %c,&ch); if(ch=0) break; if(ch2)printf(输入错误,请重新输入!n);continue;getchar();printf(请输入:); gets(q-con);p=head; /指向表头flag=0;while(p!=N

22、ULL)if(strcmp(q-con,p-number)=0|strcmp(q-con,p-name)=0)printf(员工信息如下:n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 n%s t%s t%s t%s t%s t%s t%s t%sn,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place );printf(是否需要:1.更改 2.删除 3.继续n);scanf( %c,&sh);if(sh=1)Change(head,p-num

23、ber); /调用更改函数else if(sh=2)head=Del(head,p-number); /调用删除函数flag=1;break;p=p-next ;if(flag=0)printf(没有找到该员工信息!n);return head;/更改函数Stuff *Change(Stuff *head,char n10)Stuff *p=head;int flag=0;if(head=NULL)printf(信息表为空,请先建立信息表!n);elsewhile(p!=NULL)if(!strcmp(p-number,n)printf(找到员工,请输入新的信息:n 编号 | 姓名 | 性别

24、| 出生年月 | 学历 | 职务 | 电话 | 住址 n);scanf(%s%s%s%s%s%s%s%s,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place );printf(员工信息如下:n);flag=1;p=p-next;if(flag=0)printf(未找到该员工信息!n);Show(head); return head;/删除函数Stuff *Del(Stuff *head,char n10)Stuff *p,*pr;int flag;flag=0;p=head,pr=head;if

25、(head=NULL)printf(未找到员工信息!n);elsewhile(strcmp(p-number ,n)&p-next !=NULL)pr=p;p=p-next ;if(!strcmp(p-number ,n)if(p=head)head=p-next ;elsepr-next=p-next ;free(p);printf(删除成功!n);n-;elseprintf(未找到员工信息!n);Show(head); return head;/输出函数void Show(Stuff *head)Stuff *p=head;int i=1;if(head!=NULL)printf(员工信息

26、如下:n); while(p!=NULL)printf(%d. %s %s %s %s %s %s %s %sn,i+,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place); p=p-next ;elseprintf(信息为空!n);/释放函数void Fre(Stuff *head)Stuff *p;while(head!=NULL)p=head;head=head-next ;free(p);void main()char Index10; Stuff *head=NULL; /链表头指针定

27、义 printf(-欢迎使用员工信息管理系统-n); Sleep(1000); while(1)switch(Menu()case 1:printf(请输入员工信息,直接输入#结束n); head=App(head); break; case 2: Sort(head); break; case 3: head=Search(head); break; case 4: Show(head); break; case 5: printf(请输入员工编号:); scanf(%s,Index); Change(head,Index); break; case 6: printf(请输入员工编号:); scanf(%s,n); head=Del(head,Index); break; case 0: printf(-欢迎下次光临!-n);Sleep(2000); exit(0);break; default: printf(输入错误,请重新输入!n); printf(按Enter键继续); getchar();getchar(); system(cls); /清屏效果 Fre(head); /结束参考文献1. 耿国华.数据结构C语言描述.高等教育出版社.2005/067511.2. 谭浩强.C程序设计.清华大学出版社.2007/014674.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁