C语言职工信息管理系统课程设计(5)

2019-06-17 19:13

//add()函数中,无节点时,r指向list头,有节点时,r指向末尾节点 void Add(Link l) /* 增加职工 */ {

Node *p,*r,*s; /*实现添加操作的临时的结构体指针变量*/ char num[10]; int flag=0; r=l;

s=l->next; //链表没有节点时,s=null;/链表有节点时,指向第一个职工节点

while(r->next!=NULL) //如果存在后继结点时,r指针后移一个 r=r->next; /*将指针移至于链表最末尾,准备添加记录*/

while(1) {

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

if(strcmp(num,\ //输入'0',跳出while(1),即跳出add()函数 break;

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

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

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

printf(\提示:工号为'%s'的职工已经存在,若要修改请你选择'4 修改'!\\n\flag=1; //break; return ; }

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

p=(Node *)malloc(sizeof(Node)); //生成没赋值的新节点 p

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

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

printf(\请你输入部门:\

scanf(\getchar();

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

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

/* 信息输入已经完成 */

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

r->next=p; /*将新建的结点加入链表尾部中*/ r=p;

saveflag=1; } //while(1) }

void Del(Link l) /* 删除 */ {

int sel;

Node *p,*r; /*实现删除操作的临时的结构体指针变量*/ char findmess[20];

if(!l->next) //当list无后继结点时,提示和结束返回del() {

printf(\提示:没有记录可以删除!\\n\return; }

printf(\按工号删除\\n=====>2按姓名删除\\n\scanf(\

if(sel==1) //按工号删除 {

printf(\请你输入要删除的工号:\scanf(\

p=Locate(l,findmess,\ if(p) { r=l;

//void Add增加结束

while(r->next!=p)

r=r->next; //从第一个结点找起,直到发现r->next=p, 是待删除结点,跳出循环

r->next=p->next; //r r->next(p) p->next free(p);

printf(\提示:该职工已经成功删除!\\n\saveflag=1; } else

Nofind(); //显示一句话 } //if(sel==1)

else if(sel==2) //按姓名删除 {

printf(\请你输入要删除的姓名:\scanf(\

p=Locate(l,findmess,\if(p) { r=l;

while(r->next!=p) r=r->next;

r->next=p->next; //r r->next(p) free(p);

printf(\提示:该职工已经成功删除!\\n\saveflag=1; } else

Nofind(); } //if(sel==2) else

Wrong(); //显示输入错误的话 } //void Del删除结束

void Qur(Link l) //查询功能 {

int sel; //*1:按工号查询,2:按姓名查询,其它:返回主界面(菜单)*/ char findmess[20];

Node *p; //实现查询操作的临时的结构体指针变量

if(!l->next) {

p->next printf(\提示:没有资料可以查询!\\n\return; }

printf(\按工号查找\\n=====>2按姓名查找\\n\scanf(\

if(sel==1)/* 工号 */ {

printf(\请你输入要查找的工号:\scanf(\

p=Locate(l,findmess,\ if(p) {

printf(\查找结果\\n\printstart(); //打印横线 printc(); //打印信息

printc(p); //打印p结点各个数据成员的值 printstart(); //打印横线 } else

Nofind();

} //if(sel==1)

else if(sel==2) /* 姓名 */ {

printf(\请你输入要查找的姓名:\scanf(\

p=Locate(l,findmess,\if(p) {

printf(\查找结果\\n\printstart(); printc(); printc(p); printstart(); } else

Nofind(); } else

Wrong();

} //void Qur查询结束

void Modify(Link l) //修改功能 {

Node *p;

char findmess[20]; if(!l->next) {

printf(\提示:没有资料可以修改!\\n\return; }

printf(\请你输入要修改的职工工号:\scanf(\

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; }


C语言职工信息管理系统课程设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:超霸气的20页军事理论题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: