职工信息管理C语言课程设计Word文档格式.docx

上传人:b****5 文档编号:21203596 上传时间:2023-01-28 格式:DOCX 页数:13 大小:18.08KB
下载 相关 举报
职工信息管理C语言课程设计Word文档格式.docx_第1页
第1页 / 共13页
职工信息管理C语言课程设计Word文档格式.docx_第2页
第2页 / 共13页
职工信息管理C语言课程设计Word文档格式.docx_第3页
第3页 / 共13页
职工信息管理C语言课程设计Word文档格式.docx_第4页
第4页 / 共13页
职工信息管理C语言课程设计Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

职工信息管理C语言课程设计Word文档格式.docx

《职工信息管理C语言课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《职工信息管理C语言课程设计Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

职工信息管理C语言课程设计Word文档格式.docx

voidexit0();

/*退出*/

intmenu_select();

/*主菜单*/

/*链表操作所用结构体指针*/

structworker*head=NULL,*p1,*p2,*p3;

/*定义结构体指针head为头指针p1为输入数据缓存空间指针p2为尾指针*/

/*职工记录保存标志全局变量*/

intwriteinfo_flag=0;

/*主函数*/

intmain()

{loadRec();

for(;

;

{switch(menu_select())

{case1:

system("

cls"

);

createRec();

break;

case2:

searchRec();

case3:

modifyRec();

case4:

insertRec();

case5:

deleteRec();

case6:

listRec();

case7:

writeInfo();

case0:

exit0();

return0;

default:

{getchar();

printf("

\n选择错误,请正确输入你的选择(0~5),:

\n"

\n按任意键返回......\n"

getchar();

system("

/*清屏*/

}

}

}

return0;

}

/*主菜单*/

intmenu_select()

{intc;

printf("

\t\t**************菜单**************\n"

\t\t\t1.新建职工记录\n"

\t\t\t2.查询职工记录\n"

\t\t\t3.修改职工记录\n"

\t\t\t4.插入职工记录\n"

\t\t\t5.删除职工记录\n"

\t\t\t6.显示所有信息\n"

\t\t\t7.保存职工记录\n"

\t\t\t0.退出(任何情况下按Ctrl+C退出程序)\n"

\n输入你的选择(0~7):

scanf("

%d"

&

c);

returnc;

/*从磁盘文件导入职工信息到内存*/

voidloadRec()

{FILE*fp;

intn=0;

if((fp=fopen("

f:

\\zx\\info.dat"

"

r"

))==NULL)/*打开文件*/

{printf("

文件不存在或无法打开!

return;

}

head=p1=(structworker*)malloc(LEN);

/*开辟一个新单元*/

p1->

next=NULL;

while(!

feof(fp))

{n++;

fscanf(fp,"

%s%lf%s"

p1->

id,&

p1->

basepay,p1->

name);

if(p1->

id[0]<

'

0'

||p1->

id[0]>

9'

){n--;

p2=(structworker*)malloc(LEN);

/*开辟一个新单元*/

p1->

next=p2;

p3=p1;

p1=p2;

free(p2);

p3->

next=NULL;

\n%d项信息输入完毕,按任意键返回......\n"

n);

getchar();

/*清屏*/

writeinfo_flag=0;

/*设置保存记录标志*/

if(fclose(fp))/*关闭文件*/

{

printf("

Cannotclosethefile!

);

exit(0);

/*新建职工记录*/

voidcreateRec()

{intn,i;

if(head!

=0){p3=head;

while(p3->

next!

=NULL)

p3=p3->

next;

getchar();

printf("

\n职工信息数据库已存在,新建职工信息将接续在信息库的后面,按任意键继续......:

system("

p3->

next=p1=(structworker*)malloc(LEN);

}

elsehead=p1=(structworker*)malloc(LEN);

\n\n请输入希望建立的职工基本信息条数n(n<

1&

&

n<

10):

do{scanf("

n);

if(n<

1||n>

10)printf("

\n\n输入范围有误,请重新输入希望建立的职工基本信息条数n(n<

}while(n<

10);

/*开始建立n条职工基本信息记录*/

\n\n请每行按职工号(id<

=18位)职工工资职工姓名(name<

=10汉字)的形式输入%d条职工记录:

for(i=0;

i<

n;

i++)

{

scanf("

writeinfo_flag=1;

/*清除保存记录标志*/

/*查询职工记录*/

voidsearchRec()

{

charid[19];

p1=head;

if(p1==NULL)

\n\n职工信息数据库为空!

!

\n"

printf("

getch();

system("

/*清屏*/

return;

}

\n\n请输入职工号以便查证:

%s"

id);

while(p1!

{if(strcmp(p1->

id,id)==0)

{printf("

\t该职工信息如下:

\n\t职工号:

"

printf("

%s\n"

p1->

id);

\t职工工资:

%.0f\n"

basepay);

\t职工姓名:

name);

break;

else{p1=p1->

next;

if(p1==NULL)printf("

\n\n找不到该职工信息!

getch();

/*修改指定职工号的记录*/

voidmodifyRec()

{

if(head==NULL)

{getchar();

\n职工信息数据库为空,不能修改,按任意键将返回:

getchar();

\n\n请输入要修改记录的职工号:

while(strcmp(id,p1->

id)!

=NULL&

p1=p1->

if(strcmp(id,p1->

id)==NULL)

{strcpy(p1->

id,id);

\n\n请输入该职工号的工资:

%lf"

basepay);

\n\n请输入该职工号的姓名:

\n1项信息修改完毕,"

else

\n\n找不到该职工号信息!

按任意键将返回:

return;

/*插入职工记录*/

voidinsertRec()

{intn=0,m,i;

if(head==NULL){/*空数据库插入在第一个位置*/

\n职工信息数据库为空,只能插入第一个位置,按任意键将继续。

:

\n\n请按职工号(id<

=10汉字)的形式输入1条职工记录:

head=(structworker*)malloc(LEN);

head->

scanf("

head->

head->

basepay,head->

\n1项信息输入完毕,按任意键返回......\n"

writeinfo_flag=1;

return;

/*数据库不为空时,分插入第一个位置,中间位置,最后一个位置三种情况*/

do{n++;

}while(p1!

=0);

职工信息数据库中共有%d条记录,请输入插入的位置n:

m);

if(m<

1||m>

n+1)printf("

\n\n输入范围有误,请重新输入希望插入的正确位置(n>

=1&

=%d):

n+1);

}while(m<

n+1);

if(m==1){/*插入在数据库的第一个位置*/

p1=head;

next=p1;

if(m==n+1){/*插入在数据库的最后一个位置*/

while(p1->

p1=p1->

p2=(structworker*)malloc(LEN);

p2->

p2->

basepay,p2->

p2->

p1->

/*插入在数据库的中间第n个位置*/

for(i=1;

m;

{p2=p1;

p3=(structworker*)malloc(LEN);

p3->

p3->

basepay,p3->

next=p1;

p2->

next=p3;

}

/*删除指定职工号的记录*/

voiddeleteRec()

\n职工信息数据库为空,不能删除,按任意键将返回:

\n\n请输入要删除的职工号:

=0&

id)==0)

{if(head->

next==NULL)

{free(head);

head=NULL;

elseif(head==p1)

{head=p1->

free(p1);

}

else{p2->

next=p1->

free(p1);

\n删除完毕;

按任意键返回:

/*显示所有信息*/

voidlistRec()

if(head==NULL){printf("

\n数据库中没有职工信息,按任意键返回。

\n全部职工信息如下:

\n职工号职工工资职工姓名\n"

%s\t%.2lf\t%s\n"

id,p1->

\n按任意键返回!

......\n"

/*清屏*/

/*保存职工记录*/

voidwriteInfo()

/*定义文件指针*/

if(writeinfo_flag==0){printf("

\n数据库中职工信息已保存过,按任意键返回。

w"

\n数据库中职工信息无法保存,按任意键返回。

}

fprintf(fp,"

\t%s\t%.2lf\t%s\n"

fclose(fp);

\n数据库中职工信息保存完毕,按任意键返回。

/*设置保存记录标志*/

/*退出*/

voidexit0()

{if(writeinfo_flag==1)/*修改过记录时,先保存,再退出*/

writeInfo();

while(p1!

{p2=p1->

free(p1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

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

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