c语言设计职工信息管理系统
1. c语言课程设计——职工信息管理系统
#include<stdio.h>
#include<string.h>
int main()
{
void TestOnLineTeacherManage(); //声明教师信息管理函数
void TestOnLineSelfManage();//声明个人管理函数
int n;
printf(“0教师管理,1个人管理”);
scanf(“%d”,&n);
If (n==0)
TestOnLineTeacherManage();
else
TestOnLineSelfManage();//选择教师管理或者个人信息管理
Return 0;
}
Void TestOnLineTeacherManage() //教师信息管理函数
{
Struct TestOnLineTeacher
{
Int Tnum;
Char Tname[20];
Char Tsex;
Char Ttel[20];
}Teacher[100]; //定义一个结构体
void add(); //定义教师信息添加
void del(); //定义教师信息删除
Void modify(); //定义教师信息修改
int a;
Printf(“1添加2删除3修改”);
Scanf (“%d”,&a);
Switch(a)
{
Case1:add();break;
Case2:del();break;
Case3:modify();break;
Default:break;
}//选择功能
}
Void add() //教师信息添加函数,若添加Teacher[i]
{
printf(“输入工号”);
Scanf(“%d”,&Teacher[i].Tnum);
printf(“输入姓名”);
Scanf(“%s”,&Teacher[i].Tname);
printf(“输入性别f女m男”);
Scanf(“%c”,&Teacher[i].Tsex);
printf(“输入电话”);
Scanf(“%s”,&Teacher[i].Ttel);
}
Void del() //教师信息删除函数,若删除Teacher[i]
{
Teacher[i-1]=Teacher[i+1];
Free(Teacher[i]);
}
Void modify() //教师信息修改函数,若修改Teacher[i]
{
Int t;
Int num;
Char name[20];
Char sex;
Char tel[20];
Printf(“修改选项1工号2姓名3性别4电话”);
Scanf(“%d”,&t);
Switch(t)
{
Case1:scanf(“%d”,&num);Teacher[i].Tnum=num;break;
Case2:scanf(“%s”,&name);strcpy(Teacher[i].Tname,name);break;
Case3:scanf(“%c”,&sex);Teacher[i].Tsex=sex;break;
Case4:scanf(“%s”,&tel);strcpy(Teacher[i].Ttel,tel);break;
Default:break;
}//选择修改项并修改
}
Void TestOnLineSelfManage() //个人信息管理
{
Struct TestOnLineManage
{
Int Mnum;
Char Mname[20];
Char Msex;
Char Mtel[20];
}Manage[1]; //定义一个结构体
Int b;
Int num;
Char name[20];
Char sex;
Char tel[20];
Printf(“修改选项1工号2姓名3性别4电话”);
Scanf(“%d”,&b);
Switch(t)
{
Case1:scanf(“%d”,&num);Manage[1].Mnum=num;break;
Case2:scanf(“%s”,&name);strcpy(Manage[1].Mname,name);break;
Case3:scanf(“%c”,&sex);Manage[1].Msex=sex;break;
Case4:scanf(“%s”,&tel);strcpy(Manage[1].Mtel,tel);break;
Default:break;
}//选择修改项并修改
}
2. 员工信息管理系统,C语言做
以下是我的程序,刚编好的,刚好符合你的要求,看看吧,对你应该有帮助:
呵呵
#include
#include
#include
#include
#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(" ∮08802班 关丽霞∮\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");
}
void main()
{
menu(); /*调用菜单函数*/
int n,flag;
char a;
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)
{
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(a=='y')
{
flag=1;
system("cls"); /*清屏*/
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 (i=0;i<m;i++)
{
printf("职工号: ");
srand((int)time(0));
em[i].num=rand()%10000+20000000;
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 ((fp=fopen("employee_list","wb"))==NULL) /*创建文件并判断是否能打开*/
{
printf ("cannot open file\n");
exit(0);
}
for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/
if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
int load() /*导入函数*/
{
FILE*fp;
int i=0;
if((fp=fopen("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 m=load();
printf("\n 职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话 \n");
for(i=0;i<m;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 m=load();
int i,j,n,t,flag;
char name[20];
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
printf("请输入要删除的职工的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i<m;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<m-1;j++)
{
strcpy(em[j].name,em[j+1].name);
em[j].num=em[j+1].num;
em[j].sex=em[j+1].sex;
em[j].age=em[j+1].age;
strcpy(em[j].xueli,em[j+1].xueli);
em[j].wage=em[j+1].wage;
strcpy(em[j].addr,em[j+1].addr);
em[j].tel=em[j+1].tel;
}
flag=0;
}
}
}
if(!flag)
m=m-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 count=0;
int i;
int m=load();
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
fp=fopen("emploee_list","a");
printf("请输入想增加的职工数:\n");
scanf("%d",&n);
for (i=m;i<(m+n);i++)
{
printf("\n 请输入新增加职工的信息:\n");
printf("请输入职工号: ");
srand((int)time(0));
em[i].num=rand()%10000+20000000;
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");
count=count+1;
printf("已增加的人数:\n");
printf("%d\n",count);
}
printf("\n添加完毕!\n");
m=m+count;
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(t>=1&&t<=4)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!");
}
}
while(flag==0);
while(flag==1)
{
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 m=load();
printf("请输入要查找的职工号(20001111---20009999):\n");
scanf("%d",&num);
for(i=0;i<m;i++)
if(num==em[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(i==m)
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 m=load();
printf("请输入要查找的学历:\n");
scanf("%s",xueli);
for(i=0;i<m;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(i==m)
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 m=load();
printf("请输入要查找的电话号码:\n");
scanf("%ld",&tel);
for(i=0;i<m;i++)
if(tel==em[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(i==m)
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 m=load(); /*导入文件内的信息*/
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
printf("请输入要修改的职工的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i<m;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)
{
printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.性别 4.年龄 5.学历 6.工资 7.住址 8.电话\n");
printf("请输入你想修改的那一项序号:\n");
scanf("%d",&c);
if(c>8||c<1)
printf("\n选择错误,请重新选择!\n");
}
flag=0;
}
}
if(flag==1)
printf("\n对不起,查无此人!\n");
do
{
switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/
{
case 1:printf("职工号改为: ");
scanf("%d",&num);
em[i-1].num=num;
break;
case 2:printf("姓名改为: ");
scanf("%s",name);
strcpy(em[i-1].name,name);
break;
case 3:printf("性别改为: ");
getchar();
scanf("%c",&sex);
em[i-1].sex=sex;
break;
case 4:printf("年龄改为: ");
scanf("%d",&age);
em[i-1].age=age;
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].tel=tel;
break;
}
printf("\n");
printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n");
scanf("%d",&b);
}
while(b==2);
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;
}
}
3. C语言课程设计职工信息管理系统
// 职工信息2.cpp : Defines the entry point for the console application.
//
#include "StdAfx.h"
#include<string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#define N 100
struct people
{
char num[100];
char name[15];
char sex[20];
char age[20];
char xueli[20];
char gong[20];
char address[20];
char telephone[20];
}people[N];
void input(int i);
void enter();
void browse();
void add();
//void no_input(int i,int n) ;
void search();
void modify();
void save(int n);
int load();
int modify_data(int i);
void printf_face();
void printf_back();
void printf_one(int i);
void menu();
void chack_No(int i);
void chack_No(int i)
{
if(i>0)
{
for(int k=0;k<i;k++)
{
if(strcmp(people[k].num,people[i].num)==0)
{
cout<<"您输入的职工号已存在,请更换号码!"<<endl;
cout<<"职工号:";
cin>>people[i].num;
chack_No(i);
break;
}
}
}
}
void input(int i)
{
//no_input(i,i);
printf("职工号:");
scanf("%s",people[i].num);
chack_No(i);
printf("姓名:");
scanf("%s", people[i].name) ;
printf("性别:");
scanf("%s",people[i].sex);
printf("年龄:");
scanf("%s",people[i].age);
printf("学历:");
scanf("%s",people[i].xueli);
printf("工资:");
scanf("%s",people[i].gong);
printf("住址:");
scanf("%s",people[i].address);
printf("电话:");
scanf("%s",people[i].telephone);
}
void enter()
{
int i,n;
printf("请输入人数(0-%d) :",N-1);
scanf("%d",&n);
printf("\n 录入信息\n");
for(i=0;i<n;i++)
{
printf("\n 请输入第%d个人的信息.",i+1);
input(i);
}
if(i!=0)save(n);
printf_back();
}
void browse()
{
int i,n;
n=load();
printf_face();
for(i=0;i<n;i++)
{
if((i!=0)&&(i%10==0))
{
printf("\n\n按任意键继续....");
getch();
puts("\n\n");
}
printf_one(i) ;
}
printf("\t共有%d条记录.\n",n);
printf("\n按任意键继续...");
getch();
menu();
}
void add()
{
int i,n,m,k;
FILE*fp;
n=load();
printf("你想添加的人数为(0-%d):",N-1-n);
scanf("%d",&m);
k=m+n;
for(i=n;i<k;i++)
{
printf("\n输入第%d个人的信息.",i-n+1 );
input(i);
}
if((fp=fopen("Pro.txt","ab"))==NULL)
{
printf("文件打开失败!\n");
}
for(i=n;i<k;i++)
if(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("文件写入失败!\n");
fclose(fp);
printf_back();
}
void search()
{
int i,n,k,w1=1,w2,w3,w4,m,a;
struct people p;
n=load();
do
{
printf("\n选择你要查询的方式 \n\t1).按学历 2).按职工号 [ ]\b\b");
scanf("%d",&m);
switch(m)
{
case 1:
do
{
k=-1;
printf("\n\n请输入你要查询的学历:");
scanf("%s",p.xueli);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.xueli,people[i].xueli)==0)
{
k=i;
printf_one(k);
break;
}
if(k==-1)
{
printf("\n\n你输入的学历不存在!");
printf("\n\n你想继续查询吗?\n\t 1).是 2).否 [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}while(k==-1&&w1==1);
break;
case 2:
do
{
k=-1;
printf("\n\n请输入你要查询的职工号:");
scanf("%s",p.num);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.num,people[i].num)==0)
{
k=i;
printf_one(k);break;
}
if(k==-1)
{
printf("\n\n你输入的职工号不存在!");
printf("\n\n你想继续查询吗?\n\t1).是 2).否 [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}while(k==-1&&w1==1);
break;
}
w4=0;w3=0;
if(k!=-1)
{
printf("\n\n请选择你要进行的操作:\n\t 1).查询 2).修改 3).删除 4).返回主菜单 [ ]\b\b");
scanf("%d",&w2);
switch(w2)
{
case 2:
w3=modify_data(k);
break;
case 3:
printf("\n你确定要删除吗?\n\t 1).是 2).否 [ ]\b\b");
scanf("%d",&w4);
if(w4==1)
for(a=k;a<n;a++)
{
strcpy(people[a].num,people[a+1].num);
strcpy(people[a].name,people[a+1].name);
strcpy(people[a].sex,people[a+1].sex);
strcpy(people[a].age,people[a+1].age);
strcpy(people[a].xueli,people[a+1].xueli);
strcpy(people[a].gong,people[a+1].gong);
strcpy(people[a].address,people[a+1].address);
strcpy(people[a].telephone,people[a+1].telephone);
}
break;
}
if(w3==1||w4==1)
{
save(n);
printf("\n\n操作成功! ^_^ ");
printf("\n\n请输入你要进行的操作: \n\t 1).继续查询 2).返回上一级 [ ]\b\b" );
scanf("%d",&w2);
}
}
}
while(w2==1);
menu();
}
void modify()
{
struct people p;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i<n;i++)
{if((i!=0)&&(i%10==0))
{printf("\n\n请记着你要修改的职工号。按任意键继续 ...");
getch();
puts("\n\n");
}
printf_one(i);
}
do
{printf("\n\n请输入你要修改的职工信息的职工号:");
scanf("%s",p.num);
for(i=0;i<n;i++)
if(strcmp(p.num,people[i].num)==0)
{k=i;
p=people[i];
}
if(k==-1)printf("\n\n你的输入有误,请从新输入");
}while(k==-1);
printf_face();
printf_one(k);
w1=modify_data(k);
if(w1==1)
{printf("\n操作成功! ^_^.\n是否继续修改?\n\n\t 1).是 2).否\t[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{w0=0;
if(w2==1)
people[k]=p;
}
if(w0!=1&&w2==1)
save(n);
}while(w0==1);
menu();
}
void save(int n)
{FILE *fp;
int i;
if((fp=fopen("Pro.txt","wb"))==NULL)
{printf("\n文件打开失败!\n");
//return NULL;
}
for(i=0;i<n;i++)
if(people[i].num!=0)
if(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("文件写入失败!\n");
fclose(fp);
}
int load()
{FILE *fp;
int i;
if((fp=fopen("Pro.txt","rb"))==NULL)
{printf("\n文件打开失败!\n");
return NULL;
}
for(i=0;!feof(fp);i++)
fread(&people[i],sizeof(struct people),1,fp);
fclose(fp);
return(i-1);
}
int modify_data(int i)
{
int c,w1;
do
{
puts("\n请选择你要修改的选项\n\n 1).职工号 2).姓名 3).性别 4).年龄 5).学历 6)工资 7)住址 8)电话 ");
printf("您的选择是:[ ]\b\b");
scanf("%d",&c);
if(c>8||c<1)
{
puts("\n输入错误,请重新输入!");
getchar();
}
}while(c>8||c<1);
do
{
switch(c)
{
case 1:printf("职工号:");scanf("%s",people[i].num);break;
case 2:printf("姓名:");scanf("%s",people[i].name);break;
case 3:printf("性别:");scanf("%s",people[i].sex);break;
case 4:printf("年龄:");scanf("%s",people[i].age);break;
case 5:printf("学历:");scanf("%s",people[i].xueli);break;
case 6:printf("工资:");scanf("%s",people[i].gong);break;
case 7:printf("住址:");scanf("%s",people[i].address);break;
case 8:printf("电话:");scanf("%s",people[i].telephone);break;
}
puts("\n现在信息:\n");
printf_face();
printf_one(i);
printf("\n你确定吗\n\n\t 1).是 2).否 3).返回且不保存 [ ]\b\b");
scanf("%d",&w1);
}while(w1==2);
return w1;
}
/*
void no_input(int i,int n)
{int j,k,w1;
do
{w1=0;
for(j=0;people[i].num[j]!='\0';j++)
if(people[i].num[j]>'9')
{puts("输入错误,请从新输入!\n");
w1=1;break;
}
if(w1!=1)
for(k=0;k<n;k++)
if(k!=i&&strcmp(people[k].num,people[i].num)==0)
{puts("你输入的职工号已经存在了,请从新输入!\n");
}
}
while(w1==1);
}
*/
void printf_face()
{
printf(" 职工号 姓名 性别 年龄 学历 工资 住址 电话 \n");
}
void printf_one(int i)
{
printf("%9s%9s%9s%9s%9s%9s%10s%12s\n",people[i].num,people[i].name,people[i].sex,people[i].age,people
[i].xueli,people[i].gong,people[i].address,people[i].telephone);
}
void printf_back()
{
int w;
printf("\n\t操作成功!.^_^\n\n");
printf("请选择:\n\n\t1).浏览所有信息 \t2).返回 : [ ]\b\b");
scanf("%d",&w);
if(w==1)
browse();
else menu();
}
void menu()
{
int n,w1;
do
{ system("cls");//清屛
printf("\n\t ************************************************\n");
printf("\t *********欢迎进入职工信息管理系统***************\n");
printf("\t ************************************************\n");
printf("\t 1 录入职工信息 \n");
printf("\t 2 修改职工信息 \n");
printf("\t 3 查询职工信息(学历/职工号) \n");
printf("\t 4 浏览信息 \n");
printf("\t 5 添加信息 \n");
printf("\t 6 退出系统 \n");
printf("\t ************************************************\n");
printf("\t请选择(1-6):[ ]\b\b");
scanf("%d",&n);
if(n<1||n>6)
w1=1;
else w1=0;
}
while(w1==1);
switch(n)
{
case 1:enter();break;
case 2:modify();break;
case 3:search();break;
case 4:browse();break;
case 5:add();break;
case 6:exit(0);
}
}
void main()
{
system("color f0");
system("cls");
menu();
}
4. 用c语言编写设计,职工信息管理系统。
我给你个大概提示吧,
首先你要做的是个大体的框架
分三个权限一是管理员权限,人事部门权限以及员工权限。
1.管理员权限实现包括员工基本信息增删改查功能。
2.人事权限包括员工拓展信息,比如工资,奖金等等数据的维护和更新。
3.员工权限包括个人信息查询以及问题反馈。
三个双向链表,节点数据存入以上所有信息。
链表操作不多说了吧。。。
文件读写问题,这里考虑到如果是一般情况的话直接调用readwrite函数就行了
如果内容过多还是连接数据库吧。
系统开始的初始化和更新也很重要。
5. 用C语言设计并实现一个员工信息管理系统
#include<iostream>
#include<cstring>
usingnamespacestd;
typedefstructwage{
charunit[8];
charname[10];
charsex[4];
charbirthdate[12];
chartitle[20];
doublebasewage;
doublesubsidy;
doubletax;
doubleexpenses;
doubleresialwage;
}WAGE;
voidComputerResialwage(WAGEa[],intn){
for(inti=0;i<n;++i)
a[i].resialwage=a[i].basewage+a[i].subsidy-a[i].tax-a[i].expenses;
}
voidPrintTitle(void){
cout<<"单位姓名性别出生年月职称基本工资津贴个税水电费实发工资 ";
for(inti=0;i<79;++i)cout<<"*";cout<<endl;
}
voidRowShow(WAGEa[],inti){
cout<<a[i].unit<<"";
if(strlen(a[i].name)==4){
a[i].name[6]=a[i].name[4];
a[i].name[5]=a[i].name[3];
a[i].name[4]=a[i].name[2];
a[i].name[2]=a[i].name[3]='';
}
cout<<a[i].name<<""<<a[i].sex<<""<<a[i].birthdate;
if(strlen(a[i].title)==4){
a[i].title[6]=a[i].title[4];
a[i].title[5]=a[i].title[3];
a[i].title[4]=a[i].title[2];
a[i].title[2]=a[i].title[3]='';
}
cout<<""<<a[i].title<<"";
cout.precision(2);
cout.width(8);
cout<<fixed<<a[i].basewage<<"";cout.width(6);
cout<<fixed<<a[i].subsidy<<"";
cout.width(8);
cout<<fixed<<a[i].tax<<"";
cout.width(6);
cout<<fixed<<a[i].expenses<<"";
cout.width(8);
cout<<fixed<<a[i].resialwage<<endl;
}
voidShow(WAGEa[],intn){
for(inti=0;i<n;++i)RowShow(a,i);
}
voidSearch1(WAGEa[],intn){
inti,flag=1;
for(i=0;i<n;++i){
if(strcmp(a[i].unit,"理学院")==0&&a[i].basewage>900.00&&
strcmp(a[i].title,"副教授")==0&&strcmp(a[i].sex,"男")==0){
RowShow(a,i);
flag=0;
}
}
if(flag)cout<<"(没找到符合条件者) ";
}
voidSearch2(WAGEa[],intn){
inti,flag=1;
for(i=0;i<n;++i){
if(strcmp(a[i].unit,"理学院")==0&&a[i].basewage<1200.00&&
strcmp(a[i].title,"教授")==0&&strcmp(a[i].sex,"男")==0){
RowShow(a,i);
flag=0;
}
}
if(flag)cout<<"(没找到符合条件者) ";
}
intmain(){
WAGEa[]={
{"理学院","赵志军","男","1957-06-25","教授",1150,411,176.6,90},
{"商学院","于铭","女","1979-10-21","助教",500,471,208.9,91},
{"工学院","许炎锋","女","1954-03-08","教授",1250,630,306.2,96},
{"理学院","王嘉","女","1971-06-06","讲师",850,475,100.3,89},
{"工学院","李新江","男","1962-10-02","教授",950,399,49.5,87},
{"商学院","郭海英","女","1963-02-07","副教授",950,332,77.6,85},
{"工学院","马淑恩","女","1960-06-09","副教授",900,791,60.5,45},
{"理学院","王金科","男","1956-09-10","教授",1050,480,325.6,93},
{"理学院","李东慧","女","1950-08-07","教授",1350,364,52.3,94},
{"工学院","张宁","女","1980-01-01","助教",500,395,78,89},
{"商学院","王孟","男","1966-09-08","讲师",800,463,220.3,98},
{"工学院","马会爽","女","1970-02-09","讲师",800,368,101.1,69},
{"工学院","史晓赟","女","1952-06-06","教授",1200,539,520.3,50},
{"理学院","刘燕凤","女","1959-08-07","教授",1200,892,180.9,86},
{"工学院","齐飞","男","1961-04-05","副教授",1200,626,245.6,74},
{"商学院","张娟","女","1975-09-25","助教",650,374,625.3,86},
{"理学院","潘成文","男","1965-10-09","讲师",950,402,1050,90},
{"工学院","邢易","女","1981-02-25","助教",600,325,300,90},
{"商学院","谢枭豪","女","1950-11-18","教授",1350,516,200,90},
{"工学院","胡洪静","女","1952-06-24","教授",1350,277,100,86},
{"工学院","李云飞","男","1969-05-04","讲师",960,729,56,89},
{"商学院","张奇","女","1970-05-28","讲师",960,331,69,89},
{"理学院","夏小波","女","1968-08-01","讲师",960,482,89,45},
{"工学院","王玮","女","1972-11-05","讲师",960,340,98,79},
{"理学院","张帝","女","1950-03-26","教授",1300,335,124,90},
{"商学院","孙帅","男","1966-05-24","讲师",900,748,326,79},
{"工学院","卜辉娟","女","1960-05-23","教授",960,481,651,78},
{"工学院","李辉玲","女","1978-09-09","助教",630,379,400,77},
{"理学院","刘亚静","男","1969-08-09","副教授",890,377,23,66},
{"工学院","尹娴","女","1958-06-09","教授",1050,955,59,65},
{"商学院","马春英","男","1964-12-06","讲师",850,387,78,69},
{"工学院","孟梦","女","1965-08-09","副教授",850,753,485.6,93},
{"工学院","梁晓萌","女","1975-06-09","助教",650,551,136.5,99},
{"理学院","张然","女","1973-03-03","讲师",800,761,203.1,100},
{"工学院","彭雁南","男","1978-05-09","助教",650,200,200,90}
};
inti,n=sizeof(a)/sizeof(a[0]);
if(n==0)return1;
ComputerResialwage(a,n);
PrintTitle();
for(i=0;i<n;++i)RowShow(a,i);
for(i=0;i<79;++i)cout<<"*";
cout<<endl;cout<<" 理学院,基本工资高于900元的男副教授有: ";
PrintTitle();
Search1(a,n);
for(i=0;i<79;++i)cout<<"*";
cout<<endl;
cout<<" 理学院,基本工资低于1200元的男教授有: ";
PrintTitle();
Search2(a,n);
for(i=0;i<79;++i)cout<<"*";
cout<<endl<<endl;
return0;
}
6. C语言职工信息管理系统设计
以下是我的程序,刚编好的,刚好符合你的要求,看看吧,对你应该有帮助:
呵呵
#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(" ∮08802班 关丽霞∮\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");
}
void main()
{
menu(); /*调用菜单函数*/
int n,flag;
char a;
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)
{
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(a=='y')
{
flag=1;
system("cls"); /*清屏*/
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 (i=0;i<m;i++)
{
printf("职工号: ");
srand((int)time(0));
em[i].num=rand()%10000+20000000;
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 ((fp=fopen("employee_list","wb"))==NULL) /*创建文件并判断是否能打开*/
{
printf ("cannot open file\n");
exit(0);
}
for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/
if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
int load() /*导入函数*/
{
FILE*fp;
int i=0;
if((fp=fopen("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 m=load();
printf("\n 职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话 \n");
for(i=0;i<m;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 m=load();
int i,j,n,t,flag;
char name[20];
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
printf("请输入要删除的职工的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i<m;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<m-1;j++)
{
strcpy(em[j].name,em[j+1].name);
em[j].num=em[j+1].num;
em[j].sex=em[j+1].sex;
em[j].age=em[j+1].age;
strcpy(em[j].xueli,em[j+1].xueli);
em[j].wage=em[j+1].wage;
strcpy(em[j].addr,em[j+1].addr);
em[j].tel=em[j+1].tel;
}
flag=0;
}
}
}
if(!flag)
m=m-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 count=0;
int i;
int m=load();
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
fp=fopen("emploee_list","a");
printf("请输入想增加的职工数:\n");
scanf("%d",&n);
for (i=m;i<(m+n);i++)
{
printf("\n 请输入新增加职工的信息:\n");
printf("请输入职工号: ");
srand((int)time(0));
em[i].num=rand()%10000+20000000;
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");
count=count+1;
printf("已增加的人数:\n");
printf("%d\n",count);
}
printf("\n添加完毕!\n");
m=m+count;
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(t>=1&&t<=4)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!");
}
}
while(flag==0);
while(flag==1)
{
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 m=load();
printf("请输入要查找的职工号(20001111---20009999):\n");
scanf("%d",&num);
for(i=0;i<m;i++)
if(num==em[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(i==m)
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 m=load();
printf("请输入要查找的学历:\n");
scanf("%s",xueli);
for(i=0;i<m;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(i==m)
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 m=load();
printf("请输入要查找的电话号码:\n");
scanf("%ld",&tel);
for(i=0;i<m;i++)
if(tel==em[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(i==m)
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 m=load(); /*导入文件内的信息*/
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
printf("请输入要修改的职工的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i<m;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)
{
printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.性别 4.年龄 5.学历 6.工资 7.住址 8.电话\n");
printf("请输入你想修改的那一项序号:\n");
scanf("%d",&c);
if(c>8||c<1)
printf("\n选择错误,请重新选择!\n");
}
flag=0;
}
}
if(flag==1)
printf("\n对不起,查无此人!\n");
do
{
switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/
{
case 1:printf("职工号改为: ");
scanf("%d",&num);
em[i-1].num=num;
break;
case 2:printf("姓名改为: ");
scanf("%s",name);
strcpy(em[i-1].name,name);
break;
case 3:printf("性别改为: ");
getchar();
scanf("%c",&sex);
em[i-1].sex=sex;
break;
case 4:printf("年龄改为: ");
scanf("%d",&age);
em[i-1].age=age;
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].tel=tel;
break;
}
printf("\n");
printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n");
scanf("%d",&b);
}
while(b==2);
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;
}
}
7. C语言职工信息管理系统设计
就不重发了,参考这个链接:
https://..com/question/177081817850820
8. C语言 职工信息管理系统
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>//system("cls");清屏
#include <string.h>
struct Staff { //员工信息结构体
int Number; //职工号号
char name[20]; //姓名
char sex; // 性别
int age; // 年龄
char ecation[20]; //学历
float wages; //工资
char addr[20]; //住址
char Tel[15]; //电话
};
struct Staff Staffer[100],Staffer1;
//功能函数声明
void menu(); //主菜单
void input(); //输入员工信息
void save(int m); //存储信息
int read(); // 读取信息
void display();//浏览信息
void add() ; //添加
void search(); //查找
void search_name(); //按编号查找
void search_EDU(); //按学历查找
void search_wages(); //按工资查找
void Delete(); //删除操作
void change(); //修改操作
void order(); //排序操作
void order_Num(); //按职工号排序 //浏览信息时按照职工号由小到大顺序排序
void order_name();//按职工姓名排序
void order_age();//按职工年龄排序
//主函数
void main()
{ int n,f;
while(1)
{
do {
menu(); //*调用菜单函数*
printf("请输入你需要操作的序号(1-8): ");
scanf("%d",&n);
if(n>=1&&n<=8) {
f=1;