职工信息管理系统设计C语言.docx
- 文档编号:12914431
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:35
- 大小:263.41KB
职工信息管理系统设计C语言.docx
《职工信息管理系统设计C语言.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统设计C语言.docx(35页珍藏版)》请在冰豆网上搜索。
职工信息管理系统设计C语言
程序设计课程设计报告
职工信息管理系统设计
专业
计算机科学与技术
(软件工程(NIIT))
学生姓名
班级
学号
指导教师
完成日期
2011年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("∮1010704422杨婷婷∮\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("∮1010704422杨婷婷∮\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;i if(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;i 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); } 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<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 设计 语言