数据结构课程设计职工信息管理系统单链表实现程序源代码 联系客服

发布时间 : 星期六 文章数据结构课程设计职工信息管理系统单链表实现程序源代码更新完毕开始阅读b1741451a1116c175f0e7cd184254b35effd1adb

数据结构课程设计_职工信息管理系统_单链表实现程序源代码

p=Locate(l,findmess,\

if(p) {

printf(\请你输入新工号(原来是%s):\ scanf(\

printf(\请你输入新姓名(原来是%s):\ scanf(\ getchar();

printf(\请你输入新性别(原来是%s):\ scanf(\ getchar();

printf(\请你输入新的部门(原来是%s):\ scanf(\

printf(\请你输入新的职称(原来是%s):\ scanf(\ getchar();

printf(\请你输入新的工资(原来是%d):\ scanf(\

printf(\提示:资料修改成功!\\n\

//shoudsave=1; } else

Nofind(); //if(p)结束

} //void Modify(Link l) //修改功能结束

//插入记录:按工号查询到要插入的节点的位置,然后在该工号之后插入一个新节点。

void Insert(Link l) {

Node *s,*r,*p; /*p指向插入位置,p指新插入记录节点*/ char ch,new_num[10],old_num[10];

//old_num[]保存插入点位置之前的工号,new_num[]保存输入的新记录的工号

int flag=0;

9 / 18

数据结构课程设计_职工信息管理系统_单链表实现程序源代码

s=l->next; system(\ Disp(l);

while(1) {

//stringinput(s,10,\Number:\

printf(\请你输入已存在的工号(以'0'返回上一级菜单:)\ scanf(\

if(strcmp(old_num,\输入'0',跳出while(1),即跳出Insert()函数

return;

s=l->next; //作用? 每次从第一个节点开始找 flag=0;

while(s) /*查询该工号是否存在,flag=1表示该工号存在*/ {

if(strcmp(s->data.num,old_num)==0) {

flag=1; break; }

s=s->next; }

if(flag==1)

break; /*若工号存在,则进行插入之前的新记录的输入操作*/ else {

getchar();

printf(\number %s is not existing,try again?(y/n):\

scanf(\ if(ch=='y'||ch=='Y') {continue;}

else

{return;} //回主菜单 }

}//while(1)

10 / 18

数据结构课程设计_职工信息管理系统_单链表实现程序源代码

/*以下新记录的插入新节点,工号不能跟已存在的工号相同,操作与Add()相同*/

printf(\请你输入待插入的工号(以'0'返回上一级菜单:)\ scanf(\

if(strcmp(new_num,\输入'0',跳出while(1),即跳出add()函数

return;

s=l->next; //作用? 每次从第一个节点开始找,看num是否重复。

while(s) //工号重复时,返回主菜单 {

if(strcmp(s->data.num,new_num)==0) {

printf(\提示:工号为'%s'的职工已经存在'!\\n\

flag=1; return ; }

s=s->next; } //while(s)

p=(Node *)malloc(sizeof(Node)); if(!p) {

printf(\如没有申请到,打印提示信息*/

return ; /*返回主界面*/ }

strcpy(p->data.num,new_num); printf(\请你输入姓名:\ scanf(\ getchar();

printf(\请你输入性别:\ scanf(\ getchar();

printf(\请你输入部门:\ scanf(\ getchar();

printf(\请你输入职称:\ scanf(\ getchar();

11 / 18

数据结构课程设计_职工信息管理系统_单链表实现程序源代码

printf(\请你输入工资:\ scanf(\ getchar();

// 信息输入已经完成

p->next=NULL; /*表明这是链表的尾部结点*/

saveflag=1; /*在main()有对该全局变量的判断,若为1,则进行存盘操作*/

/*将指针赋值给r,因为l中的头节点的下一个节点才实际保存着学生的记录*/

r=l->next; while(1) {

if(strcmp(r->data.num,old_num)==0) /*在链表中插入一个节点*/ {

p->next=r->next; r->next=p; break; }

r=r->next;

}// while(1) , r作为查询指针,依次从第一个节点找起,找到后 跳出 while(1)循环

Disp(l);

printf(\ // getchar(); }

void Tongji(Link l) //统计 {

Node *max,*min;/*用于指向工资最高的节点*/ Node *t=l->next; if(!t) {

system(\

printf(\ getchar(); return; }

system(\

12 / 18