郑州网站建设喝彩,网站定制开发 广州,域名网站计划怎么写,可以不进网站开发app吗一、设计功能(文章仅供参考)
职工信息包括#xff1a;工号#xff0c;姓名#xff0c;性别#xff0c;出生年月#xff0c;婚姻状况#xff0c;职称#xff0c;家庭地址#xff0c;电话#xff0c;E-mail等。 设计一个职工信息管理系统#xff0c;使之能提供以下功能…
一、设计功能(文章仅供参考)
职工信息包括工号姓名性别出生年月婚姻状况职称家庭地址电话E-mail等。 设计一个职工信息管理系统使之能提供以下功能 1职工信息录入功能学生信息用文件保存—输入 2职工信息浏览功能—输出 3按工号查询 4按姓名查询 5按职称查询 7退出系统 6职工信息的删除与修改
二、功能展示 三、思维导图 四、程序源码
#include stdio.h
#include windows.h
#include time.h
#include string.h
#define N 100
struct employee
{
int num;
char name[10];
char sex;
int age;
char xueli[30];
int wage;
char addr[30];
long int tel;
}em[100]; /*定义一个结构体*/
void menu();
void input();
void save(int);
void display();
void del();
void add();
void search();
void search_num();
void search_xueli();
void search_tel();
void modify(); /*定义各函数*/
void menu() /*菜单函数*/
{
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);
}
int main()
{
menu(); /*调用菜单函数*/
int n,flag;
char a;
do
{
printf(请选择你需要操作的步骤(1--7):\n);
scanf(%d,n);
if(n1n7)
{
flag1;
break;
}
else
{
flag0;
printf(您输入有误请重新选择!);
}
}
while(flag0);
while(flag1)
{
switch(n)
{
case 1:printf( ◆◆◆输入职工信息◆◆◆\n);printf(\n);input();break;
case 2:printf( ◆◆◆浏览职工信息◆◆◆\n);printf(\n);display();break;
case 3:printf( ◆◆◆按职工号查询职工信息◆◆◆\n);printf(\n);search();break;
case 4:printf( ◆◆◆删除职工信息◆◆◆\n);printf(\n);del();break;
case 5:printf( ◆◆◆添加职工信息◆◆◆\n);printf(\n);add();break;
case 6:printf( ◆◆◆修改职工信息◆◆◆\n);printf(\n);modify();break;
case 7:exit(0);break;
default :break;
}
getchar();
printf(\n);
printf(是否继续进行(y or n):\n);
scanf(%c,a);
if(ay)
{
flag1;
menu(); /*调用菜单函数*/
printf(请再次选择你需要操作的步骤(1--6):\n);
scanf(%d,n);
printf(\n);
}
else
exit(0);
}
}
void input() /*录入函数*/
{
int i,m;
printf(请输入需要创建信息的职工人数(1--100):\n);
scanf(%d,m);
for (i0;im;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);
}
void save(int m) /*保存文件函数*/
{
int i;
FILE*fp;
if ((fpfopen(employee_list,wb))NULL) /*创建文件并判断是否能打开*/
{
printf (cannot open file\n);
exit(0);
}
for (i0;im;i) /*将内存中职工的信息输出到磁盘文件中去*/
if (fwrite(em[i],sizeof(struct employee),1,fp)!1)
printf(file write error\n);
fclose(fp);
}
int load() /*导入函数*/
{
FILE*fp;
int i0;
if((fpfopen(employee_list,rb))NULL)
{
printf (cannot open file\n);
exit(0);
}
else
{
do
{
fread(em[i],sizeof(struct employee),1,fp);
i;
}
while(feof(fp)0);
}
fclose(fp);
return(i-1);
}
void display() /*浏览函数*/
{
int i;
int mload();
printf(\n 职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话 \n);
for(i0;im;i) /*m为输入部分的职工人数*/
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);
}
void del() /*删除函数*/
{
int mload();
int i,j,n,t,flag;
char name[20];
printf(\n 原来的职工信息:\n);
display(); /* 调用浏览函数*/
printf(\n);
printf(请输入要删除的职工的姓名:\n);
scanf(%s,name);
for(flag1,i0;flagim;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(n1) /*如果删除则其他的信息都往上移一行*/
{
for(ji;jm-1;j)
{
strcpy(em[j].name,em[j1].name);
em[j].numem[j1].num;
em[j].sexem[j1].sex;
em[j].ageem[j1].age;
strcpy(em[j].xueli,em[j1].xueli);
em[j].wageem[j1].wage;
strcpy(em[j].addr,em[j1].addr);
em[j].telem[j1].tel;
}
flag0;
}
}
}
if(!flag)
mm-1;
else
printf(\n对不起查无此人!\n);
printf(\n 浏览删除后的所有职工信息:\n);
save(m); /*调用保存函数*/
display(); /*调用浏览函数*/
printf(\n继续删除请按1不再删除请按0\n);
scanf(%d,t);
switch(t)
{
case 1:del();break;
case 0:break;
default :break;
}
}
void add()/*添加函数*/
{
FILE*fp;
int n;
int count0;
int i;
int mload();
printf(\n 原来的职工信息:\n);
display(); /* 调用浏览函数*/
printf(\n);
fpfopen(emploee_list,a);
printf(请输入想增加的职工数:\n); scanf(%d,n);
for (im;i(mn);i)
{
printf(\n 请输入新增加职工的信息:\n); 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);
countcount1;
printf(已增加的人数:\n);
printf(%d\n,count);
}
printf(\n添加完毕!\n);
mmcount;
printf(\n浏览增加后的所有职工信息:\n); printf(\n);
save(m);
display();
fclose(fp);
}
void search()/*查询函数*/
{
int t,flag;
do
{
printf(\n按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按3,进入主函数按4\n);
scanf(%d,t);
if(t1t4)
{
flag1;
break;
}
else
{
flag0;
printf(您输入有误请重新选择!);
}
}
while(flag0);
while(flag1)
{
switch(t)
{
case 1:printf(按职工号查询\n);search_num();break;
case 2:printf(按学历查询\n);search_xueli();break;
case 3:printf(按电话号码查询\n);search_tel();break;
case 4:main();break;
default:break;
}
}
}
void search_num()
{
int num;
int i,t;
int mload();
printf(请输入要查找的职工号(20001111---20009999):\n);
scanf(%d,num);
for(i0;im;i)
if(numem[i].num)
{
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);
break;
}
if(im)
printf(\n对不起查无此人\n);
printf(\n);
printf(返回查询函数请按1,继续查询职工号请按2\n);
scanf(%d,t);
switch(t)
{
case 1:search();break;
case 2: break;
default:break;
}
}
void search_xueli()
{
char xueli[30];
int i,t;
int mload();
printf(请输入要查找的学历:\n);
scanf(%s,xueli);
for(i0;im;i)
if(strcmp(em[i].xueli,xueli)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);
}
if(im)
printf(\n对不起查无此人\n);
printf(\n);
printf(返回查询函数请按1,继续查询学历请按2\n);
scanf(%d,t);
switch(t)
{
case 1:search();break;
case 2:break;
default :break;
}
}
void search_tel()
{
long int tel;
int i, t;
int mload();
printf(请输入要查找的电话号码:\n);
scanf(%ld,tel);
for(i0;im;i)
if(telem[i].tel)
{
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);
break;
}
if(im)
printf(\n对不起查无此人\n);
printf(\n);
printf(返回查询函数请按1,继续查询电话号码请按2\n);
scanf(%d,t);
switch(t)
{
case 1:search();break;
case 2:break;
default :break;
}
}
void modify() /*修改函数*/
{
int num;
char name[10];
char sex;
int age;
char xueli[30];
int wage;
char addr[30];
long int tel;
int b,c,i,n,t,flag;
int mload(); /*导入文件内的信息*/
printf(\n 原来的职工信息:\n);
display(); /* 调用浏览函数*/
printf(\n);
printf(请输入要修改的职工的姓名:\n);
scanf(%s,name);
for(flag1,i0;flagim;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(n1)
{
printf(\n需要进行修改的选项\n 1.职工号 2.姓名 3.性别 4.年龄 5.学历 6.工资7.住址 8.电话\n);
printf(请输入你想修改的那一项序号:\n);
scanf(%d,c);
if(c8||c1)
printf(\n选择错误请重新选择!\n);
}
flag0;
}
}
if(flag1)
printf(\n对不起查无此人!\n);
do
{
switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/
{
case 1:printf(职工号改为: );
scanf(%d,num);
em[i-1].numnum;
break;
case 2:printf(姓名改为: );
scanf(%s,name);
strcpy(em[i-1].name,name);
break;
case 3:printf(性别改为: );
getchar();
scanf(%c,sex);
em[i-1].sexsex;
break;
case 4:printf(年龄改为: );
scanf(%d,age);
em[i-1].ageage;
break;
case 5:printf(学历改为: );
scanf(%s,xueli);
strcpy(em[i-1].xueli,xueli);
break;
case 6:printf(工资改为: );
scanf(%d,wage);
break;
case 7:printf(住址改为: );
scanf(%s,addr);
strcpy(em[i-1].addr,addr);
break;
case 8:printf(电话改为: );
scanf(%ld,tel);
em[i-1].teltel;
break;
}
printf(\n);
printf(\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n); scanf(%d,b);
}
while(b2);
printf(\n浏览修改后的所有职工信息:\n);
printf(\n);
save(m);
display();
printf(\n继续修改请按1不再修改请按0\n);
scanf(%d,t);
switch(t)
{
case 1:modify();break;
case 0:break;
default :break;
}
}大家可以点个关注后续会持续更新0.0在此先谢过各位了