ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:336.28KB ,
资源ID:6890316      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6890316.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(员工信息管理系统数据结构复习课程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

员工信息管理系统数据结构复习课程.docx

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

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

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

4、,并实现排序;(6) 按编号删除已离职的员工的信息。1.3 其他需求 程序除需完成基本功能外,程序源代码还应具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。第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+已成为专业程序员进行软件开发的首选工具

5、。 虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于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

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

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

8、为每一结构体数据项输入数据;(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 *Search(Stuff *head);

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

10、是调用以上的子函数,用开关语句进行选择性的调用。大致程序如下: 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 系统主界面5.2 输入数据(1)

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

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

13、har 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(Stuff *head); /查找

14、函数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; printf(-菜单-n); prin

15、tf( 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); /申请结构体空间 if(p=NU

16、LL) 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; /防止后面判断出现

17、随机值 if(head=NULL) head=p; else while(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) printf

18、(输入错误,请重新输入!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-ph

19、one,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-na

20、me )con ,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; /指向表头 f

21、lag=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-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place ); printf(是否需要:1.更改 2.删除 3.继续n); scanf( %c,&sh); if

22、(sh=1) Change(head,p-number); /调用更改函数 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); else while(p!=NULL) if(!strcmp(p-numbe

23、r,n) printf(找到员工,请输入新的信息:n 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 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

24、) Stuff *p,*pr; int flag; flag=0; p=head,pr=head; if(head=NULL) printf(未找到员工信息!n); else while(strcmp(p-number ,n)&p-next !=NULL) pr=p; p=p-next ; if(!strcmp(p-number ,n) if(p=head) head=p-next ; else pr-next=p-next ; free(p); printf(删除成功!n); n-; else printf(未找到员工信息!n); Show(head); return head;/输出函数v

25、oid 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-birthday ,p-degree ,p-business ,p-phone ,p-place); p=p-next ; else printf(信息为空!n); /释放函数void Fre(Stuff *head) Stuff *p; while(head!=NULL) p

26、=head; head=head-next ; free(p); void main() char Index10; Stuff *head=NULL; /链表头指针定义 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); pri

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1