员工信息管理系统(数据结构)_第1页
员工信息管理系统(数据结构)_第2页
员工信息管理系统(数据结构)_第3页
员工信息管理系统(数据结构)_第4页
员工信息管理系统(数据结构)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流员工信息管理系统(数据结构).精品文档.员工信息管理系统课程设计报告系 别: 计算机与信息工程系 班 级: 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

12、 系统主界面图 5-1 系统主界面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 "

14、;windows.h " /清屏函数头文件#include "string.h"typedef 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(St

15、uff *head); /添加函数void Sort(Stuff *head); /排序函数Stuff *Search(Stuff *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);

16、 /释放函数int n=1; /定义全局变量,实现人数统计/菜单函数char Menu(void)int ch; printf("-菜单-n"); printf(" 1.添加员工信息n"); printf(" 2.员工信息排序n"); printf(" 3.查找员工信息n"); printf(" 4.输出员工信息n"); printf(" 5.更改员工信息n"); printf(" 6.删除员工信息n"); printf(" 0.退出n"

17、;);printf("-n");printf(“请选择你的操作:”); scanf(" %d",&ch); return ch;/添加成员函数Stuff *App(Stuff *head)Stuff *p=NULL,*q=head; while(n)p=(Stuff *)malloc(sizeof(Stuff); /申请结构体空间 if(p=NULL)printf("空间不足,自动退出系统!n"); exit(0); p->next =NULL; /指针域为空 printf("请输入第%d名员工:n"

18、,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=&

19、#39;0' /防止后面判断出现随机值 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");get

20、char(); scanf("%c",&ch); if(ch='0') break; if(ch<'1'|ch>'2')printf("输入错误,请重新输入!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->num

21、ber); 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,p->phone); Scpy(r->place,p->place); p=p->next; Show(head); /输出/交换函数void Scpy(char *p,char *q)char c50;

22、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 )<0|strcmp(q->con ,p->number )=0 ; case '2': return strcmp(q->name ,p->name )<0|strcmp(q->con ,p->name )=0 ; def

23、ault : 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(ch<'1'|ch>'2')printf("输入错误,请重新输入!n");continu

24、e;getchar();printf("请输入:"); gets(q->con);p=head; /指向表头flag=0;while(p!=NULL)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->nam

25、e ,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->number); /调用更改函数else if(sh='2')head=Del(head,p->number); /调用删除函数flag=1;break;p=p->next ;if(

26、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 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 n");scanf("%s

27、%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 f

28、lag;flag=0;p=head,pr=head;if(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("员工信息如下:n"); while(p!=NULL)printf("%d. %s %s %s %s %s %s %s %sn",i+,p->number ,p->name ,p->sex ,p-&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论