C语言程序设计-职工信息管理系统(链表)_第1页
C语言程序设计-职工信息管理系统(链表)_第2页
C语言程序设计-职工信息管理系统(链表)_第3页
C语言程序设计-职工信息管理系统(链表)_第4页
C语言程序设计-职工信息管理系统(链表)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档飘流炉N嘀/学冬 ZHEJIANG GONGSHANG UNIVERSITY 桁息与电子工程学院C语言课程设计职工信息管理系统设计实验日期和时间:2011年06月27日06月29日实验类别:课程设计实验类型:设计性. 。1欢迎下载精品文档验环境操作系统:windows xp编程工具:Microsoft Visual C+ 6.0开发环境:CP(U Inter(R)Core(TM)2QuadcpuQB2002.33GHz)内存: 2.76GB硬盘: 228.3GB开发地点:现代教育中心201机房A17座IP : 7:、实验目的和要求实验目的:( 1)使学生进一步理解

2、和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作算法。( 2)使学生进一步掌握程序设计、编写、调试能力。( 3)使学生了解软件开发的基本步骤和内容。实验要求:完成一个职工信息管理系统程序,具体内容如下:( 1)在内存中用链表记录,在硬盘上用二进制文件保存。( 2)设计完的程序能够以命令行或者菜单形式增加、删除、更新和查询数据的内容。数据内容能够排序以方便查询。( 3)数据库中应该有至少20 条记录。3 欢迎下载。精品文档3欢迎下载实验内容和结果(1)程序整体功能;1、系统总体框精品文档2、模块设计该程序主要分为 7 个模块,分别是创建与添加模块、显示模块、查找模块、修改模块、删除

3、模块、存档模块、文件统计模块、退出模块( 2)程序组成及各模块/ 函数功能;创建与添加模块 :该模块的功能是输入职工信息。函数为 void Add(Node*woker)原理: 采用尾插法, 先建立链表与头结点, 新增一个结点, 键盘输入职工号、职工姓名、职工性别、职工出生年月、职工学历、职工职位、职工工资,将这些信息存储到新增结点中, 将新增加的节点连到链表的尾端, 如此以往, 将尾结点的指针域置空, 这样就得到了一条存储职工信息的链表, 这样就完成了职工信息的创建与增加。显示模块 :该模块功能是显示职工信息。函数为 void Disp(Node *woker)原理:先新建一个指针 P 指向

4、头结点,判断它的指针域是否为空,若为空,则输出“没有记录可以显示” ;若不为空,则输出它的指针域所指向节点所储存的职工信息, 并将该指针向后移一个结点, 直到 P 指向空, 即输出了所有职工的信息,这样就完成了所有职工信息的显示。查找模块 :该模块功能是查找职工信息。函数为 void Tongji(Node *woker)原理:该模块分为两种查找方法,分别是按职工号查找和按职工姓名查找,因为这两种查找方法雷同, 所以这里将只解释按职工号查找的原理。 先键盘输入一个要查找的职工号并新建一个指针P 指向头结点,判断它的指针域是否为空,若为空,则输出“没有资料可以统计分类” ,若不为空,则判断它的指

5、针域所指向节点所储存的职工信息中的职工号, 若相等, 则输出这个职工的其他所有信息,并将 P 指向下一个结点, 再次进行判断, 直到 P 指向空, 即输出了所有查找到的信息。若不相等,则 P 指向下一个结点,再次进行判断,直到 P 指向空,即输出了所有查找到的信息,这样就完成了职工信息的查找。修改模块 : 该模块功能是修改职工信息。 函数为 void change(Node *woker)原理:根据查找原理,查找到要修改信息的职工,删除这一节点,并新建一个节点, 键盘输入想要修改的内容, 并储存到新的结点中, 将新的节点连接到链表中原先删除结点的位子,这样就完成了职工信息的修改。删除模块 :该

6、模块功能是删除管理职工信息。函数为 void dismiss(Node*woker)根据查找的原理, 查找到要修改信息的职工, 删除这一节点, 并将其前驱结点的指针域指向其后继结点,这样就完成了职工信息的删除。存档模块: 将内存中的信息存储到文件中。函数为 void save(Node *woker)原理:打开文件,新建一个指针 P 指向头结点,判断它的指针域是否为空,若为空,则输出“无记录” ,若不为空,则将这个职工的所有信息输入到文件中,并将 P 指向下一个结点,直到 P 指向空,即输入了的信息,文件统计模块: 打开文件,统计职工数目,并输出。函数为 void load(Node*woke

7、r)退出模块: 该模块功能是退出管理档案。3)重要数据结构,重要模块/ 函数算法;1:创建与添加模块:/ 添加记录/ 先用于输入职工号, 也用于判断是否跳出循void Add(Node *woker)Node *p,*r,*s;char n10;环r=woker;s=woker->next; /while(r->next!=NULL) /点r=r->next;/使 s 为第一个有用的结点这个循环的作用是使r 为最后一个有用的结将指针置于最末尾8 欢迎下载。while(1)提示 : 输入 0 则返回主菜单!n");printf(">>>&g

8、t;>>>>>>printf("n 请你输入职工号:");scanf("%s",n);if(strcmp(n,"0")=0) break;申请空间p=(Node *)malloc(sizeof(Node); /strcpy(p->data.num,n);printf("n 请输入姓名 :");scanf("%s",p->);printf("n 请输入性别 :");scanf("%s",p-&

9、gt;data.sex);printf("n 请输入出生年月 :");scanf("%s",&p->data.birthday);printf("n 请输入学历 :");scanf("%s",&p->data.degree);printf("n请输入职位:");scanf("%s",&p->data.position);printf("n请输入工资:");scanf("%s",&p-&g

10、t;data.salary);printf(">>>>>>>>>>p->next=NULL;r->next=p; /新链表r=p; /提示 : 已经完成一条记录的添加。 n");这一步是必需的 , 将 p 与先前的链表连起来构成一条也是必需的 . 将 r 又重设为新链的最后一个有用结点2:显示模块void Disp(Node *woker)/ 输出职工信息 Node *p; p=woker->next; if(!p) printf("n>>>>>>&g

11、t;>>> 提示 : 没有记录可以显示!n");return; printf("tttt显示结果 n");printf(" 职工号 职工姓名 职工性别 职工生日 职工学历职工职位职工工资 n"); while(p) printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p->,p->data .sex,p->data.birthday,p->data.degree,p->data.positio

12、n,p->data.salary);p=p->next; 3:查找模块void Tongji(Node *woker)/ 查找统计函数 Node *p;int sel;int flag2=0,ha=0;精品文档p=woker->next;char find20;if(!woker->next)/ 若链表为空printf("n>>>>>>>>>> 提示 : 没有资料可以统计分类!n");return;printf(">>>>>>>>&g

13、t;> 提示 :n=>0 退出 n=>1 按职工号统计n=>2 按职工姓名名称统计 n");scanf("%d",&sel);if(sel=1)printf("n 输入你要统计分类的职工号 :");scanf("%s",find);while(p)if(strcmp(p->data.num,find)=0)flag2+;if(flag2=1&&ha!=flag2) printf(" 职工号职工姓名 职工性别 职工生日 职工学历职工职位职工工资 n");

14、printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p->,p->data .sex,p->data.birthday,p->data.degree,p->data.position,p->data.salary);ha=flag2;else if(flag2>ha)printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p->data .name,p->

15、;data.sex,p->data.birthday,p->data.degree,p->data.position,p->data.sala ry);ha=flag2;p=p->next;if(flag2)printf("n*按 设 备 号 %s 统 计 分 类 的 有 %d 条 记录:*nn",find,flag2);11 欢迎下载。else printf("n按职工号 s统计的结果为 0个nn",find); else if(sel=2)输入你要统计分类的职工姓名 :");printf("n。sca

16、nf("%s",find);while(p)if(strcmp(p->,find)=0)flag2+;if(flag2=1&&ha!=flag2)职工性别 职工生日 职工学历职工职位 printf(" 职工号职工姓名职工工资 n");printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p->,p->data .sex,p->data.birthday,p->data.degree,p-&

17、gt;data.position,p->data.salary);ha=flag2;else if(flag2>ha)printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p->data .name,p->data.sex,p->data.birthday,p->data.degree,p->data.position,p->data.sala ry);ha=flag2;p=p->next; if(flag2)按 设 备 名 称 %s 统 计 的 有 %d

18、 条 记printf("n*录:*else printf("n*nn",find,flag2);按职工姓名s统计分类的结果为0个nn"find);else if(sel=0) return;/ 修改职工信息函数4:修改模块void change(Node *woker) Node *p;char find20;if(!woker->next)printf("n>>>>>>>>>> 提示 : 没有资料可以修改 !n");return;printf(" 请输入要修

19、改的职工号:");scanf("%s",find);p=woker->next;while(p!=NULL)如果找到的话返回的是符合要求 if(strcmp(p->data.num,find)=0) / break;p=p->next; if(p)int x;while(1) printf(" 完成修改请输入 scanf("%d",&x);if(x=0)break;printf("请输入新职工号scanf("%s",p->data.num);printf("请输入

20、新职工姓名scanf("%s",p->);printf("请输入新职工性别scanf("%s",p->data.sex);printf("请输入新出生年月scanf("%s",p->data.birthday);printf("请输入新职工学历scanf("%s",p->data.degree);printf("请输入新职工职位scanf("%s",p->data.position); printf(&quo

21、t;请输入新职工工资scanf("%s",p->data.salary); printf("n>>>>>>>>>>else printf("n>>>>>>>>>>5:删除模块void dismiss(Node *woker)Node *p,*r,*s;char find10;if(!woker->next)printf("n>>>>>>>>>>提示 : 没

22、有资料可以显示0 否则输入任意数再进行修改:");( 原来是 %s ):",p->data.num);( 原来是%s ):",p->);( 原来是%s ):",p->data.sex);( 原来是%s ):",p->data.birthday);( 原来是%s ):",p->data.degree);( 原来是%s ):",p->data.position);( 原来是%s ):",p->data.salary);提示 : 该项记录资料已经成功修改!n&q

23、uot;);: 你要修改的信息不存在!n");/ 删除职工信息函数!n");return;printf("n>>>>>>>>>> 提示 : 请输入您要删除的职工号!n");scanf("%s",find);精品文档p=woker->next;while(p!=NULL)if(strcmp(p->data.num,find)=0)/ 如果找到的话返回的是符合要求break;p=p->next;if(!p)printf("n>>>&g

24、t;>>>>>> 提示 : 找不到您想删除的职工号!n");elser=woker;while(r->next!=p)r=r->next;s=r->next;r->next=r->next->next;6:存档模块void save(Node *woker)/ 将职工信息保存到文件int n;Node *p;FILE *fp;/ 指向文件的指针printf(" 需要保存吗?(1- 保存 0- 不保存) ");scanf("%d",&n);if(n)if(woker-

25、>next=NULL)printf(" 无记录 ");else p=woker->next;if(fp = fopen(" 职工管理系统.dat", "wb") = NULL) / 打开文件,并判断打开是否正常printf("can not open filen");/ 打开文件出错while(p!=NULL)fprintf(fp,"%s %s %s %s %s %s %s",&p->data.num,&p->,&p->da

26、ta.sex,&p->d ata.birthday,&p->data.degree,&p->data.position,&p->data.salary);p=p->next;fclose(fp);/ 关闭文件7:文件统计模块void load(Node *woker)Node *p,*q;/ 指向文件的指针/ 统计记录数/ 打开文件/ 不能打开FILE *fp;int recordNum;if(fp = fopen(" 职工管理系统.dat", "rb") = NULL)printf(&quo

27、t;can not open filen");p=woker;recordNum = 0;while(!feof(fp)q=(Node*)malloc(sizeof(Node);fscanf(fp,"%s %s %s %s %s %s %s",p->data.num,p->,p->data.sex,p->data.birthday,p- >data.degree,p->data.position,p->data.salary);/*从文件读入记录*/p->next=q;q->next=NULL

28、;p=q;recordNum+;fclose(fp);printf("文件里共有 d条记录:n",recordNum);8:主函数模块 void main()Node *woker;FILE *fp;int flag;Node *p,*q;printf("tttt职工信息管理系统n");woker=(Node*)malloc(sizeof(Node);woker->next=NULL;p=woker;while(1)printf(”*");printf("n1添加记录n");printf("n2修改记录n&q

29、uot;);printf("n3浏览记录n");14 欢迎下载。精品文档printf("n4printf("n5printf("n6分类查找记录n");删除记录n");从文件读取记录n");printf("请输入你要操作的序号:");printf("n0*-EXIT-*n");21欢迎下载scanf("%d",&flag); switch(flag)case 0:printf("n>>>>>>>&

30、gt;>>提示:已经退出系统,ByeBye!n");breacase 1:Add(woker);save(woker);break;/增加记录case 2:change(woker); break;修改记录case 3:Disp(woker); break;/显示记录信息case 4:Tongji(woker); break;/查找记录case 5:dismiss(woker);break;/删除记录case 6:load(woker);break;/读取记录default:printf("n>>>>>>>>>

31、;>提示:输入错误!n"); break;(4)程序的运行和测试结果主界面:,从文件读取记录3浏览记录4分类皆找记录0W-EXIT-请输入你要操作的序号创建与增加模块:输入职工信息为:职工姓职工性职工出生年职工学职,职职工工职,号名月历别位资1Af11aaa10002Bm22bbb20003Cf33ccc30004Dm44ddd4000输入第一次时:输入第二次时:输入第三次时:输入第四次时:显示模块:输入四次后显示的结果为:请输入你要操作的序号二3显示结果 职工生日职工号职工姓名职工性别职工学历职J职位职LL资1af11aaa10002bm22bbb2萌日3cf33ccc300

32、04dn441<_2ddd4000存档模块:»»»»»:已经完成一条记录的添加. »>>»>>提示嗡人0则返回主菜单?输入职工号要保存吗?(】若存.二|职工管理至统记事本文件聚壕E)格式(0)意奇明奇助(H)0 0 0 0 o o o O o o o O 12 3 4 abed abed abed 12 3 4 12 3 4 f mf m a b c d 1 2 3 k文件统计模块:查找模块:输入查找职工号为 3的职工信息:输入你要统计您的职工号门耳二工U 即工姓名 汨工性¥1职工生日

33、 配工学厅 职二职卫 职工二帝3cf 33ccc3000宇:殳备号3 统计分举的有 1 条 j 己录"注 * * * * * *!< *输入查找职工姓名为 c的职工信息:常人你要统计分卷的职工姓希。快工号职工起茗 职工性别职工生日 职工学历职工职校职工工资!c£33ccc3000 MMM JtM 具 1<1<<1<1<<>1*其>11<寸安"音名 利由 g 充 if)-的有-1 集3 己修改模块:修改职工号为3的职工信息为:该项记住项修改!:日»>»»»>

34、;'e裔人口涯隼学职工 患输工工工生工工工 署请职职土职职职 你要改®入入人入入入 .Lj- -¥!.7U-:,- Fi¥K -.4-.¥-4-.¥ E.',-|-.¥.4-.¥-|-.¥.4-.¥-|-.号.4-.¥-|-.号i:看7E来¥米¥米夫 原原原原原原3 日若雷¥¥¥7e: 3 C> c f 3 c C5 e5 e efx >>的职暗嶂靠乐家资请请请请请清,>职工信息变成:职工姓职工性职工出生年

35、职工学职,职职工工职工号名月历别位资5Ef55eee5000删除模块:删除职工号为5的职工信息:请输入你要操作的序号A提示:请输入您要删除的职工号?5删除后的结果为:业小二口木职工号 职工姓名 职工性别 职工生日 职工学历 职工职位 职,资1aF11aaa10002bm22bbb2QQ04d1144ddd40WU退出模块:贮 -E:stu dykJXtyjtrykyiJO, 口已 bug'tyjtrykyucLexe"5删除记录6从文件读取记录0-EXIT-*请输入你要操作的序号泅>>>>>>>>>提示:已经退出系统,By

36、eBye,四、实验中的问题及心得此次实践课编写的是一个应用程序, 相对于以前我们见到的程序,它 要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而 且各模块也出现了一些小问题,在老师和同学的帮助下,我很有耐心的一 次又一次的进行修改,最后运行的结果基本上达到了预期的目的。本次C语言的实习课让我对C语言的学习又有了更深入的了解,也 让我更深刻地领悟到了 “实践出真理”这个道理,在上机实践过程中学到 的知识远远超过了在课堂上十几周学到的,这次程序设计课让我增添了许 多程序设计经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题, 也曾想过要放弃,但

37、 看到那些同学都在那认真的写程序,给了我继续的信心。在同学和老师 的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得 的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。(4)程序清单#include "stdio.h" #include "stdlib.h" #include "string.h"struct wokers/定义一个woker的结构体char num10;char name15;char sex15;/职工号 职工姓名 职工性别精品文档31 欢迎下载。char birthday15;/职工出生年月ch

38、ar degree10;/职工学历char position10;/职工职位char salary10;/职工工资;typedef struct node struct wokers data; struct node *next;Node;/ 建立一个链表。void Add(Node *woker) Node *p,*r,*s;char n10;/r=woker; s=woker->next; / while(r->next!=NULL) / r=r->next;/while(1)/ 添加记录先用于输入职工号, 也用于判断是否跳出循环使 s 为第一个有用的结点这个循环的作用

39、是使r 为最后一个有用的结点将指针置于最末尾printf(">>>>>>>>>> 提示 : 输入 0 则返回主菜单 !n");printf("n 请你输入职工号 :");scanf("%s",n);if(strcmp(n,"0")=0) break;p=(Node *)malloc(sizeof(Node); / strcpy(p->data.num,n);printf("n 请输入姓名 :");申请空间scanf("%

40、s",p->);printf("n 请输入性别:");scanf("%s",p->data.sex);printf("n 请输入出生年月 :");scanf("%s",&p->data.birthday);printf("n请输入学历:");scanf("%s",&p->data.degree);printf("n请输入职位:");scanf("%s",&p-&

41、gt;data.position);printf("n 请输入工资:");scanf("%s",&p->data.salary);printf(">>>>>>>>>> 提示 : 已经完成一条记录的添加。 n");p->next=NULL;r->next=p; /这一步是必需的,将p与先前的链表连起来构成一条新链表r=p;/也是必需的 . 将 r 又重设为新链的最后一个有用结点void change(Node *woker)/ 修改职工信息函数Node

42、 *p;char find20;if(!woker->next)printf("n>>>>>>>>>> 提示 : 没有资料可以修改 !n"); return; printf(" 请输入要修改的职工号:");scanf("%s",find);p=woker->next;while(p!=NULL)if(strcmp(p->data.num,find)=0) /如果找到的话返回的是符合要求break; p=p->next; if(p) int x;0 否则

43、输入任意数再进行修改while(1) printf(" 完成修改请输入 scanf("%d",&x); if(x=0) break;printf("请输入新职工号scanf("%s",p->data.num); printf("请输入新职工姓名scanf("%s",p->);printf("请输入新职工性别scanf("%s",p->data.sex); printf("请输入新出生年月scanf("%s&quo

44、t;,p->data.birthday);printf("请输入新职工学历scanf("%s",p->data.degree); printf("请输入新职工职位scanf("%s",p->data.position);:");( 原来是 %s ):",p->data.num);( 原来是%s):",p->);( 原来是%s):",p->data.sex);( 原来是%s):",p->data.birthday)( 原来是%s

45、):",p->data.degree);( 原来是%s):",p->data.position);printf("请输入新职工工资( 原来是 %s ):",p->data.salary);scanf("%s",p->data.salary);printf("n>>>>>>>>>>提示 : 该项记录资料已经成功修改!n"); else printf("n>>>>>>>>>

46、>提示 : 你要修改的信息不存在!n"); void Disp(Node *woker)/ 输出职工信息 Node *p; p=woker->next; if(!p) printf("n>>>>>>>>>> 提示 : 没有记录可以显示!n");return;printf("tttt显示结果 n");printf(" 职工号 职工姓名 职工性别 职工生日 职工学历职工职位职工工资 n");while(p) printf("n%-13s%-11s%

47、-7s%-10s%-13s%-10s%-5sn",p->data.num,p->,p-> data.sex,p->data.birthday,p->data.degree,p->data.position,p->data.salary);p=p->next; void Tongji(Node *woker)/ 查找统计函数 Node *p;int sel;int flag2=0,ha=0;p=woker->next;char find20;if(!woker->next)/ 若链表为空printf(&quo

48、t;n>>>>>>>>>> 提示 : 没有资料可以统计分类!n");return; printf(">>>>>>>>>> 提示 :n=>0 退出 n=>1 按职工号统计n=>2 按职工姓名名称统计 n");scanf("%d",&sel); if(sel=1)printf("n 输入你要统计分类的职工号 :");scanf("%s",find);while(p)

49、if(strcmp(p->data.num,find)=0)flag2+;if(flag2=1&&ha!=flag2)职工性别 职工生日 职工学历职工职位 printf(" 职工号 职工姓名职工工资 n");printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p->,p-> data.sex,p->data.birthday,p->data.degree,p->data.position,p->data.sala

50、ry);ha=flag2;elseif(flag2>ha)printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p-> ,p->data.sex,p->data.birthday,p->data.degree,p->data.position,p->d ata.salary);ha=flag2;p=p->next; if(flag2)printf("n*按设备号s统计分类的有d条记录:*nn",find,flag2);els

51、e printf("n按职工号 s统计的结果为 0个nn",find); else if(sel=2)printf("n 输入你要统计分类的职工姓名 :");scanf("%s",find);while(p)if(strcmp(p->,find)=0)flag2+;if(flag2=1&&ha!=flag2) printf(" 职工号 职工姓名 职工性别 职工生日 职工学历职工职位职工工资 n");printf("n%-13s%-11s%-7s%-10s%-13s%

52、-10s%-5sn",p->data.num,p->,p->data.sex,p->data.birthday,p->data.degree,p->data.position,p->data.salary);ha=flag2; elseif(flag2>ha)printf("n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn",p->data.num,p-> ,p->data.sex,p->data.birthday,p->data

53、.degree,p->data.position,p->d ata.salary);ha=flag2;p=p->next;if(flag2)printf("n*按设备名称$统计的有d条记录:*nn",find,flag2);else printf("n按职工姓名 s统计分类的结果为0个nn"find);else if(sel=0) return;void load(Node *woker) Node *p,*q;FILE *fp;/ 指向文件的指针int recordNum;/ 统计记录数if(fp = fopen(" 职工管

54、理系统.dat", "rb") = NULL)/ 打开文件printf("can not open filen");/ 不能打开 p=woker; recordNum = 0; while(!feof(fp) q=(Node*)malloc(sizeof(Node);fscanf(fp,"%s %s %s %s %s %s %s",p->data.num,p->,p->data.sex,p->data.birthda y,p->data.degree,p->data.po

55、sition,p->data.salary);/*从文件读入记录 */p->next=q; q->next=NULL; p=q; recordNum+; fclose(fp);printf("文件里共有 d条记录:n",recordNum); void save(Node *woker)int n;Node *p;FILE *fp;printf(" 需要保存吗?(1-保存 0-scanf("%d",&n);if(n)if(woker->next=NULL)printf(" 无记录 ");els

56、e p=woker->next;if(fp = fopen(" 职工管理系统否正常不保存) ");.dat", "wb") = NULL) / 将职工信息保存到文件/ 指向文件的指针打开文件,并判断打开是printf("can not open filen"); while(p!=NULL)/ 打开文件出错fprintf(fp,"%s %s %s %s %s %s %s",&p->data.num,&p->,&p->data.sex,&am

57、p;p->d ata.birthday,&p->data.degree,&p->data.position,&p->data.salary);p=p->next;fclose(fp);/关闭文件void dismiss(Node *woker) Node *p,*r,*s;char find10;if(!woker->next)/删除职工信息函数printf("n>>>>>>>>>> return;printf("n>>>>>>>>>> scanf("%s",find);

温馨提示

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

评论

0/150

提交评论