职工信息管理系统设计C语言样本.docx
《职工信息管理系统设计C语言样本.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统设计C语言样本.docx(30页珍藏版)》请在冰豆网上搜索。
职工信息管理系统设计C语言样本
程序设计课程设计报告
职工信息管理系统设计
专业
计算机科学与技术
(软件工程(NIIT))
学生姓名
班级
学号
指引教师
完毕日期
7月
职工信息管理系统设计
1课程设计目
1.加深对《C语言程序设计》课程知识理解,掌握C语言应用程序开发办法和环节;
2.进一步掌握和运用C语言进行程序设计能力;
3.进一步理解和运用构造化程序设计思想和办法;
4.初步掌握开发一种小型实用系统基本办法;
5.学会跳是一种较长程序基本办法;
6.学会运用流程图火N-S图表达算法;
7.掌握书写长须设计开发文档能力(书写课程设计报告)
2课程设计内容
设计职工信息管理系统,规定职工心想涉及职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
设计一职工信息管理系统,使之能提供如下功能:
(6)系统以菜单方式工作
(7)职工信息录入功能(职工信息用文献保存)--输入
(8)职工信息浏览功能--输出
(9)查询和排序功能(至少一种查询方式)--算法
(10)按工资查询
(11)按学历查询等
(12)职工信息删除、修改功能(任选项)
3设计流程图
(1)菜单函数
voidmenu()/*菜单函数*/
{
printf("☆☆☆计算机科学与技术软件技术☆☆☆\n");
printf("\n");
printf("∮杨婷婷∮\n");
printf("\n");
printf("******************职工信息管理****************\n");
printf("1.录入职工信息");
printf("2.浏览职工信息\n");
printf("3.查询职工信息");
printf("4.删除职工信息\n");
printf("5.添加职工信息");
printf("6.修改职工信息\n");
printf("7.退出\n");
printf("********************谢谢使用******************\n");
printf("\n");
printf("\n");
}
(2)录入职工信息
voidappend()
{
if((fp=fopen("worker.xls","a"))==NULL)
{
printf("\n不能打开该文献!
");
exit();
}
printf("\n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)\n");
scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
fclose(fp);
}
(3) 查询职工信息 数据查找共分为职工号、姓名等方式查找
voidsearch()
{
intl;
printf("\t\t\t\t*姓名查找按:
1*\n");
printf("\t\t\t\t*学历查找按:
2*\n");
printf("\t\t\t\t*职工号查按:
3*\n");
scanf("%d",&l);
if(l>0&&l<4)
{switch(l)
{
case1:
nameway();
break;
case2:
xueliway();
break;
case3:
numway();
break;
}
printf("\n\n操作完毕!
!
!
");
}
elseprintf("\t\t\t\t输入有误!
!
!
");
}
voidnameway()
{
intk=0;
charnam[8];
printf("\n请输入您要查找职工姓名:
");
scanf("%s",nam);
if((fp=fopen("worker.xls","rb"))==NULL)
{
printf("\n不能打开文献!
");
exit();
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(strcmp(nam,one.name)==0)
{
printf("\n\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
k=1;
}
}
if(k==0)
printf("\n\n对不起,查无此人!
。
");
fclose(fp);
}
voidxueliway()
{intj=0;
charxueli[10];
printf("\t\t\t\t输入你要查询学历\n");
scanf("%s",xueli);
if((fp=fopen("worker.xls","rb"))==NULL)
{
printf("\n不能打开文献!
");
exit();
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(strcmp(xueli,one.record)==0)
{
printf("\n\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
j=1;
}
}
if(j==0)
printf("\n\n对不起,查无此人!
。
");
fclose(fp);
}
voidnumway()
{
inti=0;
charnumb[10];
printf("\t\t\t\t输入你要查询职工号\n");
scanf("%s",numb);
if((fp=fopen("worker.xls","rb"))==NULL)
{
printf("\n不能打开文献!
");
exit();
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(!
strcmp(numb,one.num))
{
printf("\n\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
i=1;
}
}
if(!
i)
printf("\n\n对不起,查无此人!
。
");
fclose(fp);
}
(4)修改职工信息
voidmodify()
{
intm,k=0;
longa;
charnamekey[8];
printf("\n请输入您要修改职工姓名:
");
scanf("%s",namekey);
if((fp=fopen("worker.xls","r+"))==NULL)
{
printf("\n不能打开该文献!
");
exit();
}
while(!
feof(fp))
{
a=ftell(fp);
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(!
strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
printf("\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
printf("\n请输入信息(按照姓名、工号、性别、年龄、学历、职位、工资、电话、地址顺序输入):
");
scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
fseek(fp,a,0);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
}
else
printf("\n对不起,查无此人,无法进行修改。
");
fclose(fp);
}
(5)删除职工信息
voiddelete()
{
intm,k=0;
longa,b;
charnamekey[8],valid[4];
printf("\n请输入您要删除职工姓名:
");
scanf("%s",namekey);
if((fp=fopen("worker.xls","r+"))==NULL)
{
printf("\n不能打开该文献!
");
exit();
}
while(!
feof(fp))
{
a=ftell(fp);
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(strcmp(namekey,one.name)==0)
{
k=1;
break;
}
}
if(k==1)
{
printf("\n已查到,记录为");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
printf("\n的确要删除,按1;不删除,按0:
");
scanf("%d",&m);
if(m==1)
{
fseek(fp,a,0);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n""","","","","","","","","");
}
}
else
printf("\n对不起,查无此人。
");
fclose(fp);
}
(6)数据输出
voidoutput()
{
if((fp=fopen("worker.xls","r"))==NULL)
{
printf("\n不能打开该文献!
");
exit();
}
printf("\n\n%20s\n","职工信息管理系统");
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
}
fclose(fp);
}
4源程序清单
#include
#include
#include
#include
#defineN100
structemployee
{
intnum;
charname[10];
charsex;
intage;
charxueli[30];
intwage;
charaddr[30];
longinttel;
}em[100];/*定义一种构造体*/
voidmenu();
voidinput();
voidsave(int);
voiddisplay();
voiddel();
voidadd();
voidsearch();
voidsearch_num();
voidsearch_xueli();
voidsearch_tel();
voidmodify();/*定义各函数*/
voidmenu()/*菜单函数*/
{
printf("☆☆☆计算机科学与技术软件技术☆☆☆\n");
printf("\n");
printf("∮杨婷婷∮\n");
printf("\n");
printf("******************职工信息管理****************\n");
printf("1.录入职工信息");
printf("2.浏览职工信息\n");
printf("3.查询职工信息");
printf("4.删除职工信息\n");
printf("5.添加职工信息");
printf("6.修改职工信息\n");
printf("7.退出\n");
printf("********************谢谢使用******************\n");
printf("\n");
printf("\n");
}
voidmain()
{
menu();/*调用菜单函数*/
intn,flag;
chara;
do
{
printf("请选取你需要操作环节(1--7):
\n");
scanf("%d",&n);
if(n>=1&&n<=7)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选取!
");
}
}
while(flag==0);
while(flag==1)
{
switch(n)
{
case1:
printf("◆◆◆输入职工信息◆◆◆\n");printf("\n");input();break;
case2:
printf("◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;
case3:
printf("◆◆◆按职工号查询职工信息◆◆◆\n");printf("\n");search();break;
case4:
printf("◆◆◆删除职工信息◆◆◆\n");printf("\n");del();break;
case5:
printf("◆◆◆添加职工信息◆◆◆\n");printf("\n");add();break;
case6:
printf("◆◆◆修改职工信息◆◆◆\n");printf("\n");modify();break;
case7:
exit(0);break;
default:
break;
}
getchar();
printf("\n");
printf("与否继续进行(yorn):
\n");
scanf("%c",&a);
if(a=='y')
{
flag=1;
menu();/*调用菜单函数*/
printf("请再次选取你需要操作环节(1--6):
\n");
scanf("%d",&n);
printf("\n");
}
else
exit(0);
}
}
voidinput()/*录入函数*/
{
inti,m;
printf("请输入需要创立信息职工人数(1--100):
\n");
scanf("%d",&m);
for(i=0;i{
printf("职工号:
");
if(em[i].num!
=em[i-1].num)
printf("%8d",em[i].num);
printf("\n");
printf("请输入姓名:
");
scanf("%s",em[i].name);
getchar();
printf("请输入性别(f--女m--男):
");
scanf("%c",&em[i].sex);
printf("请输入年龄:
");
scanf("%d",&em[i].age);
printf("请输入学历:
");
scanf("%s",em[i].xueli);
printf("请输入工资:
");
scanf("%d",&em[i].wage);
printf("请输入住址:
");
scanf("%s",em[i].addr);
printf("请输入电话:
");
scanf("%d",&em[i].tel);
printf("\n");
}
printf("\n创立完毕!
\n");
save(m);
}
voidsave(intm)/*保存文献函数*/
{
inti;
FILE*fp;
if((fp=fopen("employee_list","wb"))==NULL)/*创立文献并判断与否能打开*/
{
printf("cannotopenfile\n");
exit(0);
}
for(i=0;iif(fwrite(&em[i],sizeof(structemployee),1,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);
}
intload()/*导入函数*/
{
FILE*fp;
inti=0;
if((fp=fopen("employee_list","rb"))==NULL)
{
printf("cannotopenfile\n");
exit(0);
}
else
{
do
{
fread(&em[i],sizeof(structemployee),1,fp);
i++;
}
while(feof(fp)==0);
}
fclose(fp);
return(i-1);
}
voiddisplay()/*浏览函数*/
{
inti;
intm=load();
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
for(i=0;iprintf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
}
voiddel()/*删除函数*/
{
intm=load();
inti,j,n,t,flag;
charname[20];
printf("\n本来职工信息:
\n");
display();/*调用浏览函数*/
printf("\n");
printf("请输入要删除职工姓名:
\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i{
if(strcmp(em[i].name,name)==0)
{
printf("\n已找到此人,原始记录为:
\n");
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
printf("\n的确要删除此人信息请按1,不删除请按0\n");
scanf("%d",&n);
if(n==1)/*如果删除,则其她信息都往上移一行*/
{
for(j=i;j{
strcpy(em[j].name,em[j+1].nam