C语言职工档案管理系统.docx

上传人:b****0 文档编号:12798819 上传时间:2023-04-22 格式:DOCX 页数:16 大小:25.34KB
下载 相关 举报
C语言职工档案管理系统.docx_第1页
第1页 / 共16页
C语言职工档案管理系统.docx_第2页
第2页 / 共16页
C语言职工档案管理系统.docx_第3页
第3页 / 共16页
C语言职工档案管理系统.docx_第4页
第4页 / 共16页
C语言职工档案管理系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言职工档案管理系统.docx

《C语言职工档案管理系统.docx》由会员分享,可在线阅读,更多相关《C语言职工档案管理系统.docx(16页珍藏版)》请在冰豆网上搜索。

C语言职工档案管理系统.docx

C语言职工档案管理系统

C语言程序设计

课程设计报告

设计题目:

职工档案管理系统设计

 

专业:

电子信息科学与技术

学号:

3080422***

班级:

2008级1班

姓名:

*******

指导教师:

*******

2009年春季学期

 

C语言课程设计任务书4

题目:

职工档案管理系统设计

功能:

职工档案管理系统设计,每个职工是一条记录,包括编号,姓名,性别,出生年月,所在部门,职称,工资级别、电话等。

系统可实现以下功能:

1、输入功能:

输入每一位职工记录,将其信息存入文件中。

2、显示功能:

完成全部职工记录的显示。

3、查找功能:

完成按编号或姓名查找职工的相关记录,并显示。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、建立一个文件,将每位职工的信息写入文件中并能显示于屏幕上。

3、完成上述查找(编号,姓名,性别等)、修改等功能。

4、进一步要求,修改记录设置密码操作。

要求:

1、用C语言实现程序设计;

2、利用结构体数组实现职工信息的数据结构设计;

3、系统的各个功能模块要求用函数的形式实现;

4、界面友好(良好的人机交互),程序加必要的注释。

课程设计实验报告要求:

1、预习报告:

题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。

2、实验总结报告:

流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、

小结等。

总评成绩:

指导教师:

 

附件:

主要源程序代码(职工档案管理系统)

charsex;//性别f为女m为男#include

#include

#include

#include

#defineN100

typedefstructemployee//职工基本情况

{

charnum[6];//编号

charname[8];//姓名

charbirth[8];//出生年月

charworkplace[10];//工作部门

charsalarylevel[8];//工资级别

charposition[8];//职称

chartel[16];//电话

}em[N];

/*主要函数*/

voidinput();//输入职工信息

voiddisplay();//显示职工信息

voidpassWord();//设置密码

voidsave();//保存职工信息

voidchange();//修改职工信息

/*查找函数*/

voidsearch();

voidsearchByname();//按姓名查找

voidsearchBynum();//按编号查找

inttotal=0;//定义total来记数记录数

inti=0;

voidmain()

{intchoice;

do

{

printf("~~~~~~~~~~~~~~~~~~~~~~~\n");//系统欢迎界面

printf("欢迎进入职工管理系统\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("~~~Coyote2009年6月~~~~\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("请您选择操作类型:

\n");

printf("========================\n");

printf("1.输入职工信息\n");//用户选择

printf("2.显示职工信息\n");

printf("3.查找职工信息\n");

printf("4.修改职工信息\n");

printf("0.退出系统\n");

printf("========================\n");

scanf("%d",&choice);

switch(choice)

{

case1:

input();break;

case2:

display();break;

case3:

search();break;

case4:

change();break;

case0:

{

printf("谢谢使用!

再见!

");

exit(0);//退出系统

}

default:

{printf("输入有错误请重新输入:

");

return;

}

}

}while

(1);//当为真值时执行do循环

}

voidinput()

{

charj='\0';//初始化j值为空

do

{

total++;

i++;

printf("第%d个职工:

\n",i);

printf("请您输入编号:

");//输入编号

scanf("%s",em[i].num);

printf("请您输入姓名:

");//输入姓名

scanf("%s",em[i].name);

printf("请您输入性别以(m男f女):

");//输入性别

getchar();

scanf("%c",&em[i].sex);

printf("请您输入出生年月(格式如:

1990.03):

");//输入出生年月

scanf("%s",em[i].birth);

printf("请您输入工作部门:

");//输入工作部门

scanf("%s",em[i].workplace);

printf("请您输入职位:

");//输入职位

scanf("%s",em[i].position);

printf("请您输入工资级别:

");//输入工资级别

scanf("%s",em[i].salarylevel);

printf("请您输入联系电话:

");//输入联系电话

scanf("%s",em[i].tel);

printf("是否继续输入?

(y/n):

");

getchar();

j=getchar();

while(j!

='y'&&j!

='n')

{

printf("输入不合法!

\n是否继续输入?

(y/n):

");

getchar();

j=getchar();

}

}while(j=='y');

save();//保存职工记录

printf("输入完毕,请按任意键返回\n");

getch();//conio库函数里的,结收键盘输入任意~~~

return;

}

voidsave()

{

FILE*fp;

inti=0;

if((fp=fopen("employee.txt","ab"))==NULL)

{

printf("cannotopenfile\n");

return;

}

for(i=1;i<=total;i++)

if(fwrite(&em[i],sizeof(structemployee),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

voiddisplay()//显示所有职工信息

{

FILE*fp;

inti;

if((fp=fopen("employee.txt","rb"))==NULL)

{

printf("文件打开失败或未创建文件!

\n");

return;

}

printf("所有职工信息如下:

\n");//输出所有职工信息

printf("\n===========================================================================\n");

printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");

printf("===========================================================================\n");

for(i=1;fread(&em[i],sizeof(structemployee),1,fp)!

=0;i++)//读完所有数据

printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);

printf("完毕,请按任意键返回\n");

getch();

fclose(fp);

return;

}

voidsearch()

{intchoice;

printf("请您选择查找方式:

\n");

printf("1.按编号查找\n2.按姓名查找\n");

scanf("%d",&choice);

switch(choice)

{

case1:

searchBynum();break;

case2:

searchByname();break;

default:

printf("输入有误,请重输入:

\n");

}

}

voidsearchBynum()

{

FILE*fp;

inti;

charnumb[6];

if((fp=fopen("employee.txt","r"))==NULL)

{

printf("不能够打开这个文件,请按任意键返回");

return;

}

printf("请您输入要查找的人的编号:

");

scanf("%s",numb);

for(i=0;i

if(strcmp(em[i].num,numb)==0)//找到并显示该职工记录

{

printf("以下是您要查询的人的信息:

\n");printf("\n===========================================================================\n");

printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");

printf("===========================================================================\n");

printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);

printf("查找完毕,请按任意键返回\n");

getch();

fclose(fp);

return;

}

printf("没有这样的人,请按任意键返回\n");

getch();

fclose(fp);

return;

}

voidsearchByname()

{

FILE*fp;

inti=0;

charnam[8];

if((fp=fopen("employee.txt","rb"))==NULL)

{

printf("不能够打开这个文件,请按任意键返回\n");

return;

}

printf("请您输入要查找的人的姓名:

");

scanf("%s",nam);

for(i=0;i

if(strcmp(em[i].name,nam)==0)//找到并显示该职工记录

{

printf("以下是您要查询的人的信息:

\n");printf("\n===========================================================================\n");

printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");printf("===========================================================================\n");printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);

fclose(fp);

printf("查找完毕,请按任意键返回\n");

getch();

return;

}

printf("没有这样的人,请按任意键返回\n");

getch();

fclose(fp);

return;

}

voidpassWord()

{

charpassWord[8]="123456";//起始密码

chars[8];

intflag=0;

intn=3;//密码输入次数

do

{

scanf("%s",s);

if(strcmp(passWord,s)==0)//若密码正确

{

printf("密码正确,祝您操作愉快!

\n");

flag=1;

break;

}

else

{

printf("密码错误,您还有%d次机会:

",n-1);

n--;//次数记数

}

}while(n>0);

if(flag!

=1)

{

printf("您的输入次数已到!

再见!

\n");

main();//返回主函数(主菜单)

}

}

voidchange()

{

FILE*fp;

inti;

charnewnum[6];//新编号

charnewname[8];//新名字

charnewsex;//新性别

charnewbirth[8];//新出生年月

charnewworkplace[10];//新工作部门

charnewposition[8];//新职称

charnewsalarylevel[8];//新工资水平

charnewtel[16];//新电话号码

charnam[8];

intchoice;

printf("请您输入密码:

");

passWord();//调用密码函数

printf("请您输入要修改的人的姓名:

");

scanf("%s",&nam);

if((fp=fopen("employee.txt","w+"))==NULL)

{

printf("不能够打开这个文件");

return;

}

for(i=1;i<=N;i++)

if(strcmp(nam,em[i].name)==0)

{

printf("这是您要修改的人的信息:

\n");printf("\n===========================================================================\n");

printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");

printf("===========================================================================\n");

printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);

printf("-----------------------\n");

printf("请您选择要修改的部分:

\n");

printf("=======================\n");

printf("1.修改编号\n");

printf("2.修改姓名\n");

printf("3.修改性别\n");

printf("4.修改出生年月\n");

printf("5.修改所在部门\n");

printf("6.修改职位\n");

printf("7.修改工资级别\n");

printf("8.修改联系电话\n");

printf("0.返回主菜单\n");

printf("========================\n");

scanf("%d",&choice);

switch(choice)

{

case1:

printf("请您输入新的编号:

");

scanf("%s",newnum);

strcpy(em[i].num,newnum);

break;

case2:

printf("请您输入新的姓名:

");

scanf("%s",newname);

strcpy(em[i].name,newname);

break;

case3:

printf("请您输入新的性别:

");

getchar();

scanf("%c",&newsex);

em[i].sex=newsex;

break;

case4:

printf("请您输入新的出生年月:

");

scanf("%s",newbirth);

strcpy(em[i].birth,newbirth);

break;

case5:

printf("请您输入新的工作部门:

");

scanf("%s",newworkplace);

strcpy(em[i].workplace,newworkplace);

break;

case6:

printf("请您输入新的职位:

");

scanf("%s",newposition);

strcpy(em[i].position,newposition);

break;

case7:

printf("请您输入新的工资级别:

");

scanf("%s",newsalarylevel);

strcpy(em[i].salarylevel,newsalarylevel);

break;

case8:

printf("请您输入新的联系电话:

");

scanf("%s",newtel);

strcpy(em[i].tel,newtel);

break;

case0:

{

printf("返回主菜单");

main();//返回

}

default:

printf("输入有错误!

请重新输入!

");return;

}

printf("\n===========================================================================\n");

printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");

printf("===========================================================================\n");

printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);

save();//保存修改信息

break;

}

elseif(i==N)

{

printf("没有这个职工,为了安全,请再次输入密码!

\n");

change();

}

printf("\n===================\n");

printf("1.继续修改\n2.返回主菜单\n");

printf("===================\n");

printf("\n请您选择:

");

scanf("%d",&choice);

switch(choice)

{

case1:

change();break;

case2:

main();break;

default:

printf("输入不合法!

返回\n");main();

}

}

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

当前位置:首页 > 高等教育 > 军事

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

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