职工信息管理系统课设报告_第1页
职工信息管理系统课设报告_第2页
职工信息管理系统课设报告_第3页
职工信息管理系统课设报告_第4页
职工信息管理系统课设报告_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、*实践教学*计算机与通信学院20年春季学期C程序设计课程设计精品资料题 目:职工信息管理系统专业班级:姓 名:学 号:指导教师:成 绩:摘要职工信息管理系统是一个工作单位不可缺少的管理工具, 它管理的数据对于公司的决策者和管理者来说都至关重要, 所以职工信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。使用计算机对职工信息进行管理,具有手工管理所无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高职工管理的效率, 也是公司的科学化、 正规化管理和与世界接轨的重要条件。本系统利用 C 语言开发,实现了简单的职工基本信息的录入、追加、

2、修改、查询、删除等操作, 并且能利用文件系统长久地保留原始数据。 通过本系统的开发,我们熟悉了面向过程的程序设计的基本方法和步骤,对于 C 语言有了更深入的理解,并且较好地掌握了 C 语言的编程方法和技术。关键字: C 语言;职工;信息管理系统;函数一、需求分析 1二、总体设计 2三、详细设计 33.1 数据定义 33.2 主函数设计 53.3 算法流程图 6四、编码 10五、测试 125.1 职工管理系统主界面 125.2 进入新增职工信息界面 135.3 进入删除职工信息界面 145.4 进入查询职工信息界面 165.5 进入修改职工信息界面 175.6 进入职工信息排序界面 195.7

3、退出系统 20六、设计总结 21致谢 23参考文献 24附录 25、需求分析1.1 问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。1.2 要求职工对象包括姓名(字符串)、性别(字符)、出生年月(数字)、工作年月 (数字)、学历(字符串)、职务(字符串)、住址(字符串)、电话(字符串)等 信息。(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2)删除一名职工:从职工管理文件中删除一名职工对象。(3)查询:从职工管理文件中查询符合某些条件的职工。(4)修改:检索某个职工对象,对其某些属性进行修改。(5)排序:按某种需要对职工对象文件进行排序。1.3 实现功能(

4、1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内 存。(2)对职工对象中的“姓名”按字典顺序进行排序。(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。1二、总体设计根据需求分析,为了实现系统功能,我确定职工信息管理系统总体模块如图1所示。职工管理系统排序职工信息修改职工信息一删除职工信息新增职工信息查询职工信息对姓名进行排序对出生年月进行排序对工作年月进行排序对性别进行排序对电话进行查询对住址进行查询对职务进行查询对工作年月进行查询对学历进行查询对出生年月进行查询对姓名进行查询精品资料图1工资管理系统功能模块图三、详细设计3.1 数据定义3.1.1 定义表结点(ty

5、pedef struct Node )ypedef struct Nodelong int born_time,work_time,tele_num;charsex,nameALLMAX,degreeALLMAX,jobALLMAX,addressALLMAX;struct Node *next;SLNode;3.1.2 定义职工信息(typedef struct Datatype )typedef structlong int born_time,work_time,tele_num;charnameALLMAX,sex,degreeALLMAX,jobALLMAX,addressALLMA

6、X;DataType;3.1.3 初始化链表(ListInitiate(SLNode *head)void ListInitiate(SLNode *head)/ 链表初始化if(*head=(SLNode *)malloc(sizeof(SLNode)=NULL) exit(1);/ 动态分配存储空间(*head)-next=NULL;3.2 主函数设计根据详细设计要求,可以得到主函数代码及其对应的程序流程图。在主函数中, 实现了友好的界面设计。 系统需要输入职工的基本信息: 姓名、性别、出生年月、工作年月、学历、职务、住址、电话等。这个系统还利用键盘输入提供的主菜单服务,在主菜单中,有七种

7、操作的调用:新增职工信息:SLNode *ListInsert(SLNode *head,DataType x)查询职工信息:Listfind(SLNode head)删除职工信息:ListDelete(SLNode *head)修改职工信息:ListModify(SLNode *head)职工信息排序:Listpaixu(SLNode *head)保存职工信息:put(SLNode *head,FILE *fp)显示职工信息:print(SLNode *head)3.3算法流程图3.3.1保存函数Save()的算法流程图如图2所示。图2保存函数Save()的算法流程图3.3.2主函数程序流程

8、图如图3所示。精品资料新增职 工信息结束系统删除职 工信息选1选择操作IU 4 除述字外操 选上数之的选2图3主函数程序流程图选5职工信息排序修改职工信息3.3.3按姓名查找的算法流程图如图4所示。精品资料选择除上述数字之外的操作图4按姓名查找的算法流程图3.3.4排序算法流程图如图5所示。排序算法流程图精品资料四、编码4.1总体框架0,退出职工管理系统;1,提示依次输入职工信息,录入完毕自动返回主界面;2,提示输入删除的姓名,成功正确返回,错误有提示无此员工信息;3,会提示查询方式:0.退出查询系统,回到主菜单 1.对姓名进行查询2.对出生年月进行查询3.对学历进行查询4.对工作年月进行查询

9、,输入相应编号进行查询;4,提示输入修改职工姓名,然后进行依次修改职工所有信息;5,提示:0.退出排序系统,回到主菜单1.对性别进行排序2.对出生年月进行排序3.对工作年月进行排序4.对姓名进行排序,输入号码进行查询。(详细见附录)4.2模块设计模块函数或数据结构功能typedef struct Node定义链表结点链表数据类型typedef struct Datatype定义职工信息ListInitiate(SLNode *head)初始化链表SLNode *ListInsert(SLNode *head,DataType x)插入职工信息系统处理模块ListDelete(SLNode *h

10、ead)删除职工信息ListModify(SLNode *head)修改职工信息put(SLNode *head,FILE *fp)保存职工信息Listfind(SLNode head)查询职工信息Listpaixu(SLNode *head)职工信息排序输出模块print(SLNode *head)显本职工信息精品资料五、测试5.1 职工管理系统主界面在Visual C+ 6.0中运行本系统,可以得到图5所示的录入职工人数界面。图7主菜单界面在图5中输入0,进入图6所示的系统主菜单界面求迎使用职工管理系统请输入要录入的职工人数新增职工职二1 职工1图6系统主菜单界面5.2 进入新增职工信息界

11、面在图6中输入1,进入图7所示的新增职工界面以职工请输入您要因孽的操作:清麟普工窜盥 职务、住址、电话I 二 I 回 lilj、学历、职务、住址、电话无兰州 1015090112州 101&09S11290SBQB0 19001106(9 本科无六*主菜单q .性别,出生年月、工作年月 喳立超?9P)H00S0 lf09S0An 本科工.新增职工信息充六六六A 请输入您要选3的操作:.犯.图7新增职工信息界面5.3 进入删除职工信息界面在图7中输入2,进入图8所示的删除职工信息界面 D:M icrasoft Visual Stud iaMyPrcjects11JX BDebu g*fJXE.e

12、xe *菜主息自|=且l=d息 双根-1一一口 增询工 番职自,.系唐理工工窗职职束寓K .名看爵的工择职选除一要删您要入入超成 .息息序改k 兰号 Ar加 工工息必 统息息 六 58 - 型工工 , 加 六作 直 的 Nyg 2 4 hT-#“丸8 删除职工信息界面精品资料5.4 进入查询职工信息界面在图8中输入3,进入图9所示的查询职工信息界面dD;Microsoft Visual Etudict: MyPr句eels里程Debug*箱程XB,exc精品资料t .修改职工请输入您魏直猛铲尸 8.除晟功!请继续操作!*主菜单*一KMXM-KMX.信息盘序”鬻上15.职工信息;丈火火火火火火火

13、进进进进话 姓于普 -111 &Ti Li 又又又rx13 5?回查查统进进查火 系月月行大. 询年金* t os大 作退对花这火火火火火火火火火要、图9查询职工信息界面在图9中输入1,进入图10所示的对姓名查询界面f-*D;Microsoft Visual StudiotMyProject式.娟程XBTDmbijg、编程XB.bxb111人入 SR火火火火火火火火要名o.2,4,fr.屋日 大选:,任备火 统进进查文 系月月行火1 询年窿火- 查生重大作 出出工住火操超*信 火工 头职到询询回查杳火息火查大作大操火询亍一丁一 丁一. 1 广 4ZIk 进进进进日 名话 姓学?裂 rx rx又

14、又上询询询3查查杳未Um、性别.出生年月、工作年月-学历、职务、住址、电话本科先=ft| 1915098112曹天招 ?如丽丽0 19060000 查询成功!继续操作!h 1615098112火火火火火火火火要、退井花即统进进查火 系月月行大 询年上大t os大 作回查查13 5?进进进进话 姓于普丈火火火火火火火图10对姓名进行查询5.5进入修改职工信息界面在图10中先输入0返回图5所示的主菜单,再输入4,进入11图所示的修改职工信息界面li WMT a-ws(1.增职工信息A2.4.J1职工信息食六六六翁人六六六戏六/*食我 要选择的操F,请输入要修改的职二姓名,kn 里立超,性别、出生年

15、月、工作年月、学历职务、住址、电话修改成功!请继续操作!*主菜单*1.* 4.,工信息11 修改职工信息系统界面5.6进入职工信息排序界面在图11中输入5,进入图12所示的职工信息排序界面。rHD; ,Microsoft Visual Studio,MyPrujectwl里程为BDebug期程JXB,ex此职工不存在,无法修改其信息!*王菜单*机结束宣理系统 2,删除职工 4.all5,职工六/六六六*六六六六金/人食六六 请输入您要选择的操作,5职工信息排序操作jkx itu- iz w m rw ru at w v tv nr at m ru ru ru1 at v cu jw0 1 2

16、3 4 世年事_出性比工姓 rnp -J-T1J-T- 韭ix * rx又口心、工左层L 1口 11y- -1=尾 I 口图12职工信息排序界面5.7退出系统在图12中先输入0返回图5所示的主菜单,再输入0退出职工管理系统图13退出职工管理系统六、设计总结本次课程设计是围绕数据结构进行。 根据问题描述可知, 需要解决问题并不复杂, 整个问题只需要实现一个职工管理系统功能, 那就是在这个系统中实现对职工信息的插入、删除、查询、排序、修改以及保存。但是,为了实现该功能,却需要优秀的算法和数据结构以保证实现的时间和空间效率。 把职工信息存储在一个单链表中,利用指针实现对职工信息的各项基本操作。虽然设

17、计的程序完成了题目描述所需要实现的功能, 但是仍然存在不如人意的地方。 那就是可以排序上面多设计几个算法。 实现多角度排序。 在这个系统中没有职工序号的信息, 所以允许职工姓名相同,在很大程度上面,可能是的职工信息重复。经过这次数据结构课程设计, 我们不仅及时巩固的了数据结构、算法、以及软件工程的知识, 并明白数据结构和算法对于程序时间和空间性能的影响, 及软件工程提供的开发流程和工具对于实现特定功能程序的重要意义。当我们面对一个实际问题, 应该迅速根据问题性质和特点抽象成特定的数据结构, 当然每个问题都有可能能够抽象成多种数据结构, 每种数据结构适应于不同的算法。 因此应该综合考虑这样的数据

18、结构、 算法以及它们的空间和时间效率,然后从中选择一个作为实现程序的基础。此外,对程序的测试应该要仔细,根据模块的特点和测试阶段,采用各种软件测试方法对程序进行测试, 确保各个模块的正确性和完整性, 最后集成起来测试其是否正确和完整地实现了问题描述中要求的功能。致谢通过一周的努力, 我们顺利完成这一次的课程设计。在这里,首先感谢指导老师 x 老师在知识和技术上的指导和帮助。 在 x 老师的帮助下, 我们克服了许多技术上的难题,顺利地完成这次课程设计。 同时, 也要感谢与我同做一个课题的xxx 同学。在我们两人的共同努力下,终于顺利地完成了这次课程设计。参考文献1 姜灵芝,余健. C 语言课程设

19、计案例精编.北京 :清华大学出版社,20082 王新,孙雷 . C 语言课程设计.北京 :清华大学出版社,20093 游洪跃、彭骏、谭斌.C 语言程序设计实验与课程设计教程.北京 :清华大学出版社 ,20114 .王连相.C/C+程序设计上机指导与测试.北京:中国铁道出版社,20065 C 语言函数手册,机械工业出版社, 1999附录#include #include #include #include #define ALLMAX 100 / 总共统计的职工的人数typedef struct Nodelong int born_date,work_date,tele_num;char sex

20、,nameALLMAX,degreeALLMAX,jobALLMAX,addressALLMAX; struct Node *next;SLNode;typedef structlong int born_date,work_date,tele_num;char nameALLMAX,sex,degreeALLMAX,jobALLMAX,addressALLMAX; DataType;void ListInitiate(SLNode *head)/ 链表初始化if(*head=(SLNode *)malloc(sizeof(SLNode)=NULL) exit(1);/ 动态分配存储空间 (*

21、head)-next=NULL;SLNode *ListInsert(SLNode *head,DataType x)/ 职工信息的插入姓名并按照升序排列SLNode *p,*q,*s;p=head-next;if(q=(SLNode *)malloc(sizeof(SLNode)=NULL) exit(1);/ 动态分配存储空间q-born_date=x.born_date;q-work_date=x.work_date;q-tele_num=x.tele_num;strcpy(q-name,);q-sex=x.sex;strcpy(q-degree,x.degree);strc

22、py(q-job,x.job);strcpy(q-address,x.address);if(head-next=NULL)/ 如果只有链表的头结点,没有其他的结点,直接插入在头结点后面head-next=q;head-next-next=NULL;else/ 链表非空for(;p;p=p-next)if(p-next!=NULL)if(strcmp(p-name,)next-name,)0)/ 位于两个结点之间s=p-next;p-next=q;q-next=s;break;/else if(strcmp(p-name,)=0)break;/如果姓名相同则

23、不插入信息else if(strcmp(p-name,)next=NULL)/ 链表非空,并且在排序中是最后一个p-next=q;q-next=NULL;break;if(strcmp(p-name,)0)/ 位于链表头结点之后的位置s=head-next;head-next=q;q-next=s;break;return head;void ListDelete(SLNode *head)/ 职工信息的删除 SLNode *p,*s;char x20;s=head;p=head-next;if(head-next=NULL)/ 链表为空,输出:名单中无职工信息,无须删

24、除!printf(名单中无此职工信息,无须删除!n);return;printf( 请输入要删除职工的姓名: n); / 输入要删除的人的姓名scanf(%s,x);for(p;p;p=p-next)/ 在链表中从头到尾查找输入的人的姓名if(strcmp(p-name,x)=0)/如果存在,则删除,否则输出:名单中无职工信息,无须删除!s-next=p-next;free(p);printf( 删除成功!请继续操作! n);break;s=p;if(p=NULL)/ 链表本身为空printf(名单中无此职工信息,无须删除!n);void ListModify(SLNode *head)/ 职

25、工信息的修改DataType x;SLNode *p;p=head-next;if(p=NULL)/ 链表本身为空printf(职工名单无职工信息,无须修改!n);return;printf( 请输入要修改的职工姓名: n);scanf(%s,);for(;p;p=p-next)if(strcmp(,p-name)=0)/ 查找到了该职工的信息printf( 依次写入该职工的新信息: n);printf( 请输入职工信息: n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);scanf(%s %c %d %d %s %s %s %d,p-name,&p-s

26、ex,&p-born_date,&p-work_date,p-degree,p-job,p-address,&p-te le_num);printf( 修改成功!请继续操作! n);break;if(p=NULL)/ 如果链表为空printf(此职工不存在,无法修改其信息! n);void put(SLNode *head,FILE *fp)/ 职工信息的保存SLNode *p;if(fp=fopen(Employee.txt,w)=NULL)/printf(无法打开Employee.txt!n);exit(0);for(p=head-next;p;p=p-next)fprintf(fp,%s

27、 %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele _num);if(fclose(fp)printf( 无法关闭 Employee.txt!n); exit(0);void Listfind(SLNode head)/ 职工信息的查找int i,j;SLNode *p;DataType x;if(head.next=NULL)/ 链表为空printf(名单中无职工信息,查询失败! n);return;/返回主菜单printf(n);printf(t*n);pri

28、ntf(t 职工信息查询操作n);printf(t n);printf(t 0.退出查询系统,回到主菜单 tt学历进行查询t nt 4. 对工作年月进行查询1.对姓名进行查询 t nt 2.对出生年月进行查询tt 3.对tt 5. 对职务进行查询 t nt 6. 对住址进行查询tt 7.对电话进行查询t n);printf(t*n);while(1)printf(请输入您要选择的操作:);scanf(%d,&i);if(i=0)/ 输入 0 ,退出查询系统,回到主菜单break;else if(i=1)/ 输入 1 ,对姓名进行查询p=head.next;printf( 请输入姓名: );sc

29、anf(%s,);j=0;for(p;p;p=p-next)if(strcmp(p-name,)=0)/如果存在这个人,那么 j 自加+j;printf(n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中不存在此人!n);else printf( 查询成功!继续操作! n);els

30、e if(i=2)/ 输入 2 ,对出生年月进行查询p=head.next;printf( 请输入出生年月: );scanf(%d,&x.born_date);j=0;for(p;p;p=p-next)if(p-born_date=x.born_date)/ 输入的出生年月在链表中存在+j;/如果存在这个人,那么j自加printf(n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele

31、_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中没有这个时间出生的!n);else printf( 查询成功!请继续操作! n);else if(i=4)/ 输入4 ,对工作年月进行查询p=head.next;printf( 请输入工作年月: );scanf(%d,&x.work_date);j=0;for(p;p;p=p-next)if(p-work_date=x.work_date)+j;/如果存在这个人,那么j自加printf(n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p

32、-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中没有这个时间工作的!n);else printf( 查询成功!请继续操作! n);else if(i=3)/ 输入3 ,对学历进行查询p=head.next;printf( 请输入学历: );scanf(%s,x.degree);j=0;for(p;p;p=p-next)if(strcmp(p-degree,x.degree)=0)+j;/如果存在这个人,那么j自加printf(n 姓

33、名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中没有这种学历的!n);else printf( 查询成功!请继续操作! n);else if(i=5)/ 输入5 ,对职务进行查询p=head.next;printf( 请输入职务: );scanf(%s,x.job);j=0;for(p;p;p=p-next)

34、if(strcmp(p-job,x.job)=0)+j;/如果存在这个人,那么j自加printf(n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中没有这种职务的!n);else printf( 查询成功!请继续操作! n);else if(i=6)/ 输入 6 ,对住址进行查询p=head.next;p

35、rintf( 请输入住址: );scanf(%s,x.address);j=0;for(p;p;p=p-next)if(strcmp(p-address,x.address)=0)+j;/如果存在这个人,那么j自加printf(n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中没有住这的!n);else

36、printf( 查询成功!请继续操作!n);else if(i=7)/ 输入 7 ,对电话号码进行查询p=head.next;printf( 请输入电话: );scanf(%d,&x.tele_num);j=0;for(p;p;p=p-next)if(p-tele_num=x.tele_num)+j;/如果存在这个人,那么j自加printf(n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);printf(%s %c %d %d %s %s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p

37、-tele_n um);if(j=0)/ 表示没有找到输入的信息printf(职工名单中没人用这个号码!n);else printf( 查询成功!请继续操作! n);else if(i!=0 & i!=1 & i!=2 & i!=3 & i!=4 & i!=5 & i!=6 & i!=7)/ 输入任意不是上述数字的,那么久显示输入错误n);printf( 输入出错!请再次输入!printf(n);printf(t*n);printf(t职工信息查询系统n);printf(tn);printf(t0. 退出查询系统,回到主菜单回到主菜单tt1.对姓名进行查询t nt 2.对出生年月进行查询tt3

38、. 对学历进行查询tnt 4. 对工作年月进行查询tt5.对职务进行查询 t nt 6.对住址进行查询tt7. 对电话进行查询t n);printf(t *n);/printf(0. 退出查询系统,回到主菜单 n1. 对姓名进行查询 n2. 对出生年月进行查询n3. 对工作年月进行查询n4. 对学历进行查询n5.对职务进行查询n6.对住址进行查询n7.对电话号码进行查询n); void print(SLNode *head)/ 职工信息的显示SLNode *p;for(p=head-next;p!=NULL;p=p-next)/ 输出所有职工的信息printf(%s %c %d %d %s %

39、s %s %dn,p-name,p-sex,p-born_date,p-work_date,p-degree,p-job,p-address,p-tele_n um); void printLink(SLNode *head)/ 职工信息的显示printf( 职工名单: n 姓名、性别、出生年月、工作年月、学历、职务、住址、电话 n);print(head);void Listpaixu(SLNode *head)/ 职工信息的排序 (int i,n=0,m,flag=1;SLNode *p,*q,*s;if(head-next=NULL)/ 职工链表为空printf(名单中无职工信息,无法排

40、序! nn);return;)/printf(输入出错!请再次输入!nn);printf(tt.n);printf(tt.职工信息排序操作.n);printf(tt.n);printf(tt.t0.退 出排序 系统,回到 主菜单.ntt.t1.对 性 别 进 行排序.ntt.t2.对出生年月进行排序.ntt.t3.对工作年月进行排序.ntt.t4.对姓名进行排序.n);printf(tt.n);while(1) printf(请输入您要选择的操作:);scanf(%d,&i);if(i=0)/输入0,退出排序系统,回到主菜单break;else if(i=1)/输入1,对性别进行排序n=0,m

41、,flag=1;for(p=head;NULL!=p;p=p-next)/统计职工人数n+;for(m=1;flag&mnext,p=head,s=p;q;s=p,p=q,q=q-next) if(p-sexq-sex)/p为当前节点,p的性别p的后继节点的性别if(head=p)/p 为头结点head-next=q-next;head=q;q-next=p;/交换节点信息q=head-next;p=head;elsep-next=q-next;q-next=p;s-next=q;p=q;q=p-next;flag=1;printf( 排好序的信息如下: n);printLink(head);

42、/ 输出所有节点的信息return;else if(i=2)/ 输入 2 ,对出生年月进行排序n=0,m,flag=1;for(p=head;NULL!=p;p=p-next)/ 统计职工人数n+;for(m=1;flag&mnext,p=head,s=p;q;s=p,p=q,q=q-next)if(p-born_dateq-born_date)/ 对出生年月进行排序if(head=p)head-next=q-next;head=q;q-next=p;q=head-next;p=head;elsep-next=q-next;q-next=p;s-next=q;p=q;q=p-next;flag

43、=1;printf( 排好序的信息如下: n);printLink(head);return;else if(i=3)/ 输入 3 ,按工作时间进行排序n=0,m,flag=1;for(p=head;NULL!=p;p=p-next)n+;for(m=1;flag&mnext,p=head,s=p;q;s=p,p=q,q=q-next)if(p-work_dateq-work_date)if(head=p)head-next=q-next;head=q;q-next=p;q=head-next;p=head;elsep-next=q-next;q-next=p;s-next=q;p=q;q=p

44、-next;flag=1;printf( 排好序的信息如下: n);printLink(head);return;else if(i=4) ( n=0,m,flag=1; for(p=head;NULL!=p;p=p-next) n+;for(m=1;flag&mnext,p=head,s=p;q;s=p,p=q,q=q-next) if(p-name0q-name0)if(head=p)head-next=q-next;head=q;q-next=p;q=head-next; p=head; else p-next=q-next; q-next=p; s-next=q; p=q;q=p-ne

45、xt; flag=1; printf(排好序的信息如下:n); printLink(head);return; else if(i!=0&i!=1&i!=2&i!=3&i!=4) printf(输入出错!请再次输入!nn);printf(tt.n); printf(tt.职工信息排序系统.n);printf(tt.n);printf(tt.t0.退出排序系统,回到 主菜单.ntt.t1.对性别进行排序.ntt.t2.对出生年月进行排序.ntt.t3.对工作年月进行排序.ntt.t4.显示全部职工信息.n);printf(tt.n);/printf(0.退出排序系统,回到主菜单n1.对性别进行排序n2.

温馨提示

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

评论

0/150

提交评论