本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker {
char ID[20];
//工号 char name[20];
//姓名 char sex[5];
//性别 char born[20];
//生日 char edu[20];
//学历 char position[20];
//职务 char wage[10];
//工资 char address[100];
//住址 char tel[15];
//电话 }
work[1000];
int n ;
//文件读写模块 void read()//读入数据 {
FILE *fp;
int i = 0;
if( (fp = fopen("d:\date.txt","r")) == NULL ) {
printf("请在D盘根目录下新建一个文本文件,文件名为datennn");
system("pause");
system("cls");
return ;
}
fscanf(fp,"%dn",&n);
while(i < n) {
fscanf(fp,"%sn%sn%sn%sn%sn%sn%sn%sn%sn",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
i ++;
}
fclose(fp);
}
void write()//写入数据 {
FILE *fp;
int i = 0;
if( (fp = fopen("d:\date.txt","w")) == NULL ) {
printf("无法打开文件!n");
return ;
}
fprintf(fp,"%dn",n);
while(i < n) {
fprintf(fp,"%sn%sn%sn%sn%sn%sn%sn%sn%sn",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
i ++;
}
fclose(fp);
}
//输入模块 void input()// 从键盘输入 {
int i;
int flag;
//标记工号是否已存在 char c;
//指令Y?N read();
//输入数据前先将文件中原有的数据读入 do {
flag = 0;
printf("tt请输入职工的工号: ntt");
scanf("%s",work[n].ID);
for(i = 0 ;
i < n ;
i ++) {
if(strcmp(work[i].ID,work[n].ID) == 0) {
flag = 1;
break;
}
}
if(flag) {
printf("该工号已存在!nn");
printf("tt是否继续输入?(Y/N): ");
scanf("%*c%c",&c);
if(c == 'N' || c == 'n') break;
continue;
}
printf("tt请输入职工的姓名: ntt");
scanf("%s",work[n].name);
printf("tt请输入职工的性别: ntt");
scanf("%s",work[n].sex);
printf("tt请输入职工的出生年月: ntt");
scanf("%s",work[n].born);
printf("tt请输入职工的学历: ntt");
scanf("%s",work[n].edu);
printf("tt请输入职工的职务: ntt");
scanf("%s",work[n].position);
printf("tt请输入职工的工资: ntt");
scanf("%s",work[n].wage);
printf("tt请输入职工的住址: ntt");
scanf("%s",work[n].address);
printf("tt请输入职工的电话: ntt");
scanf("%s",work[n].tel);
printf("tt是否继续输入?(Y/N): ");
scanf("%*c%c",&c);
n ++;
}
while( c != 'N' && c != 'n');
write();
printf("nn数据已保存!nn");
}
//显示模块 void output_inf(int id) {
printf("tt 工号: %sn",work[id].ID);
printf("tt 姓名: %sn",work[id].name);
printf("tt 性别: %sn",work[id].sex);
printf("tt出生年月: %sn",work[id].born);
printf("tt 学历: %sn",work[id].edu);
printf("tt 职务: %sn",work[id].position);
printf("tt 工资: %sn",work[id].wage);
printf("tt 住址: %sn",work[id].address);
printf("tt 电话: %sn",work[id].tel);
printf("nnn");
}
void show()//显示所有职工信息 {
int i;
read();
if(n == 0) printf("无记录!nn");
else for(i = 0 ;
i < n ;
i ++) {
output_inf(i);
}
}
//查询模块 void que()//查询信息 {
char num;
int flag,i;
char q_id[20] ;
//查询工号 char q_name[20] ;
//查询姓名 char q_edu[20] ;
//查询学历 char q_position[20] ;
//查询职位 char c;
//指令Y?N read();
//打开程序后,要查询以前的数据,要先读入 while(1) {
system("cls");
printf("tt******************查询********************n");
printf("tt* *n");
printf("tt* 1.按工号查询 *n");
printf("tt* *n");
printf("tt* 2.按姓名查询 *n");
printf("tt* *n");
printf("tt* 3.按学历查询 *n");
printf("tt* *n");
printf("tt* 4.按职务查询 *n");
printf("tt* *n");
printf("tt* 输入其他任意键退出本模块 *n");
printf("tt******************************************n");
printf("tt请输入指令(1-4):");
scanf("%*c%c",&num);
if(num < '1' || num > '4') {
printf("错误指令!nn");
system("pause");
continue;
}
system("cls");
flag = 0;
//用来标记职工信息是否存在 if(num == '1')//按工号查询 {
printf("tt请输入您要查询职工的工号:");
scanf("%s",q_id);
for(i = 0 ;
i < n ;
i ++) {
if( strcmp(work[i].ID,q_id) == 0) {
output_inf(i);
flag = 1;
//标记 break;
}
}
}
else if(num == '2')//按姓名查询 {
printf("tt请输入您要查询职工的姓名:");
scanf("%s",q_name);
for(i = 0 ;
i < n ;
i ++) {
if( strcmp(work[i].name,q_name) == 0) {
output_inf(i);
flag = 1;
//标记 }
}
}
else if(num == '3')//按学历查询 {
printf("tt请输入您要查询职工的学历:");
scanf("%s",q_edu);
for(i = 0 ;
i < n ;
i ++) {
if( strcmp(work[i].edu,q_edu) == 0) {
output_inf(i);
flag = 1;
//标记 }
}
}
else if(num == '4')//按职务查询 {
printf("tt请输入您要查询职工的职务:");
scanf("%s",q_position);
for(i = 0 ;
i < n ;
i ++) {
if( strcmp(work[i].position,q_position) == 0) {
output_inf(i);
flag = 1;
//标记 }
}
}
if(!flag)//判断是否有该职工信息 {
printf("nn无该职工信息!nn");
}
printf("nn是否继续查询(Y/N):");
scanf("%*c%c",&c);
if(c == 'N' || c == 'n') break;
}
}
//修改信息模块 void mod()//修改职工信息 {
char change_ID[20];
//需修改的职工的工号 int number;
//职工信息在数据中的位置 char num;
//指令 char message[100];
//修改的信息 char c;
//指令Y?N int flag;
int i;
read();
while(1) {
flag = 0;
system("cls");
printf("请输入需修改的职工的工号:");
scanf("%s",change_ID);
for(i = 0 ;
i < n ;
i ++) {
if( strcmp(work[i].ID,change_ID) == 0 ) {
number = i;
flag = 1;
break;
}
}
if(!flag) {
printf("nn无此员工信息!!nn");
printf("nn是否继续修改(Y/N):");
scanf("%*c%c",&c);
if(c == 'N' || c == 'n') break;
continue;
}
printf("nntt******************修改********************n");
printf("tt* *n");
printf("tt* 1.修改姓名 *n");
printf("tt* *n");
printf("tt* 2.修改学历 *n");
printf("tt* *n");
printf("tt* 3.修改职务 *n");
printf("tt* *n");
printf("tt* 4.修改工资 *n");
printf("tt* *n");
printf("tt* 5.修改住址 *n");
printf("tt* *n");
printf("tt* 6.修改电话 *n");
printf("tt* *n");
printf("tt* 输入其他任意键退出本模块 *n");
printf("tt******************************************n");
printf("tt请输入指令(1-6):");
scanf("%*c%c",&num);
if(num < '1' || num > '6') {
printf("错误指令!nn");
system("pause");
continue;
}
system("cls");
printf("请输入修改后的信息:");
scanf("%s",message);
switch(num) {
case '1' : strcpy(work[number].name,message);
break;
case '2' : strcpy(work[number].edu,message);
break;
case '3' : strcpy(work[number].position,message);
break;
case '4' : strcpy(work[number].wage,message);
break;
case '5' : strcpy(work[number].address,message);
break;
case '6' : strcpy(work[number].tel,message);
break;
}
system("cls");
printf("nn是否继续修改(Y/N):");
scanf("%*c%c",&c);
if(c == 'N' || c == 'n') break;
}
write();
}
//删除信息模块 void del()//删除职工信息 {
char delete_ID[20];
//删除职工工号 int i,j;
int flag;
//标记是否有该职工信息 char c;
read();
while(1) {
system("cls");
flag = 0;
printf("请输入需删除职工信息的工号:");
scanf("%s",delete_ID);
for(i = 0 ;
i < n ;
i ++) {
if( strcmp(work[i].ID,delete_ID) == 0) {
n --;
flag = 1;
for(j = i ;
j < n ;
j ++) {
work[j] =work[j + 1];
}
break;
}
}
if(!flag) printf("nn无此员工信息!nn");
else printf("nn删除成功!n");
printf("nn是否继续删除(Y/N):");
scanf("%*c%c",&c);
if(c == 'N' || c == 'n') break;
}
write();
}
//菜单模块 void menu()//菜单 {
printf("tt************职工信息管理系统菜单**********n");
printf("tt* *n");
printf("tt* 1.录入职工信息 *n");
printf("tt* *n");
printf("tt* 2.显示职工信息 *n");
printf("tt* *n");
printf("tt* 3.查询职工信息 *n");
printf("tt* *n");
printf("tt* 4.修改职工信息 *n");
printf("tt* *n");
printf("tt* 5.删除职工信息 *n");
printf("tt* *n");
printf("tt* 0.退出 *n");
printf("tt* *n");
printf("tt******************************************n");
printf("tt请输入指令(0-5): ");
}
int main() {
int num;
n = 0;
system("color 0B");
while(1) {
menu();
scanf("%d",&num);
system("cls");
switch(num) {
case 1: input();
break;
case 2: show();
break;
case 3: que();
break;
case 4: mod();
break;
case 5: del();
break;
case 0: printf("谢谢使用!nn");
return 0;
default :printf("n--->无效的指令!nnn");
}
system("pause");
system("cls");
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)
- C语言职工管理系统设计
- C语言学生管理系统源码分享
- C语言编写学生成绩管理系统
- C语言实现图书管理系统
- C语言实现简单学生管理系统
- C语言利用结构体数组实现学生成绩管理系统
- 学生成绩管理系统C语言代码实现
- C语言通讯录管理系统完整版
- C语言学生成绩管理系统源代码