职员信息管理系统--程序设计

做的不是很好,当个反例吧,嘻嘻嘻~~~~

#include<bits/stdc++.h>
using namespace std;
int bianhao;
int d=0,i,j,dd=0;
FILE *op,*fp;				//定义一个指向文件的指针变量fp
struct node {
	char zhigonghao[100];//职工号
	char xingming[100];//姓名
	char nianling[100];//年龄
	char xueli[100];//学历
	char gongzi[100];//工资
	char zhuzhi[1000];//住址
	char dianhua[110];//电话
	char xingbie[100];//性别
} ren[100];

bool cmp1(node a,node b) { //进行部分排序
	return strcmp(a.nianling ,b.nianling)>0;
}
bool cmp2(node a,node b) {
	return strcmp(a.gongzi , b.gongzi)>0;
}

bool cmp3(node a,node b) {
	return strcmp(a.xingbie,b.xingbie)>0;
}

void luru();//6个主要函数;
void liulan();
void chaxun();
void xiugai();
void paixu();
void shanchu();
void save();

/***************************
//功能:录入函数。
//参数:无
//返回值: 无
//主要思路:用cin输入选择项
*********************/

void luru() {//录入也可以添加函数
	if(dd==0)
		fprintf(op,"职工号\t 姓名\t 性别\t 年龄\t 学历\t 工资\t 住址\t 电话\t\n");
	printf("请输入创建信息的职工人数(1-100)\n");
	scanf("%d",&d);
	d=dd+d;
	for(i=dd; i<d; i++) {
		int y=1;
		while(y) {
			printf("请输入第%d位职工的职工号\n",i+1);
			scanf("%s",ren[i].zhigonghao);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].zhigonghao,ren[j].zhigonghao)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		y=1;
		while(y) {
			printf("请输入第%d位职工的姓名\n",i+1);
			scanf("%s",ren[i].xingming);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].xingming,ren[j].xingming)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		y=1;
		while(y) {
			printf("请输入第%d位职工的性别\n",i+1);
		scanf("%s",ren[i].xingbie);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].xingbie,ren[j].xingbie)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
	y=1;
		while(y) {
				printf("请输入第%d位职工的年龄\n",i+1);
		scanf("%s",ren[i].nianling);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].nianling,ren[j].nianling)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		y=1;
		while(y) {
			printf("请输入第%d位职工的学历\n",i+1);
		scanf("%s",ren[i].xueli);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].xueli,ren[j].xueli)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		 y=1;
		while(y) {
			printf("请输入第%d位职工的工资\n",i+1);
			scanf("%s",ren[i].gongzi);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].gongzi,ren[j].gongzi)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		y=1;
		while(y) {
			printf("请输入第%d位职工的住址\n",i+1);
		scanf("%s",ren[i].zhuzhi);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].zhuzhi,ren[j].zhuzhi)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		 y=1;
		while(y) {
			printf("请输入第%d位职工的电话\n",i+1);
		scanf("%s",ren[i].dianhua);
			y=0;
			for(j=0; j<i; j++)
				if(!strcmp(ren[i].dianhua,ren[j].dianhua)) {
					cout<<"已存在,请重新输入!"<<endl;
					y=1;
					break;
				}
		}
		dd++;
		fprintf(op,"%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
	}
	dd=d;
	cout<<"录入完成\n";
}

void save() { //以最后修改成的形式保存。
	int n;
	printf("是否保存到文件?( 1-----保存!,0-----不保存! )");
	scanf("%d", &n);
	if (n == 1) {
		fp = fopen("  职工信息管理系统.txt ", " wb ");
		fprintf(fp,"职工号\t 姓名\t 性别\t 年龄\t 学历\t 工资\t 住址\t 电话\t\n");
		for(i=0; i<d; i++) {
			fprintf(fp,"%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
		}
		fclose(fp);
	}

}

void liulan() {//浏览函数
	for(i=0; i<d; i++)
		printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
}
void chaxun() {//查询函数
	printf("请输入您要查询的信息:\n1,职工号查询\n2,姓名查询\n");
	int t;
	printf("请输入您要查询的类型:\n");
	cin>>t;
	if(t==1) {
		char zhigonghao1[100];
		cout<<"请输入您要查询的职工号:"<<endl;
		scanf("%s",&zhigonghao1);
		int f=0;
		for(i=0; i<d; i++) {
			if(!strcmp(zhigonghao1,ren[i].zhigonghao)) {
				printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
				f=1;
				break;
			}
		}
		if(f==0) cout<<"未找到您要找的职员\n";
	} else if(t==2) {
		char xingming1[100];
		cout<<"请输入您要查询的姓名:\n";
		scanf("%s",xingming1);
		int f=0;
		for(i=0; i<d; i++) {
			if(!strcmp(xingming1,ren[i].xingming)) {
				printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
				f=1;
				break;
			}
		}
		if(f) cout<<"未找到您要找的职员\n";
	}

}

void xiugai() {//修改函数
	char t[100];
	fp=fopen("file1.txt","w+");
	cout<<"请输入您要修改职工的职工号:\n";
	scanf("%s",t);
	int p=-1;
	for(i=0; i<d; i++) {
		if(!strcmp(t,ren[i].zhigonghao))
			p=i;
	}
	int l;
	if(p!=-1) {
		cout<<"您可以修改以下信息:\n1,职工号\n2,姓名\n3,性别\n4,年龄\n5,学历\n6,工资\n7,住址\n8,电话\n";
		cout<<"请输入您要修改成的信息的编号:\n";
		scanf("%d",&l);
		if(l==1) {
			printf("请输入职工的职工号\n");
			scanf("%s",ren[p].zhigonghao);
			fprintf(op,"%s",ren[p].zhigonghao);
		} else if(l==2) {
			printf("请输入职工的姓名\n");
			scanf("%s",ren[p].xingming);
		} else if(l==3) {
			printf("请输入职工的性别\n");
			cin>>ren[p].xingbie;
		} else if(l==4) {
			printf("请输入职工的年龄\n");
			cin>>ren[p].nianling;
		} else if(l==5) {
			printf("请输入职工的学历\n");
			cin>>ren[p].xueli;
		} else if(l==6) {
			printf("请输入职工的工资\n");
			cin>>ren[p].gongzi;
		} else if(l==7) {
			printf("请输入职工的住址\n");
			cin>>ren[p].zhuzhi;
		} else if(l==8) {
			printf("请输入职工的电话\n");
			cin>>ren[p].dianhua;
		}
		cout<<"修改完成"<<endl;
	} else cout<<"对不起没找到您要找的职工号\n";
}

void paixu() {//排序函数
	int t;
	cout<<"请输入您要按哪种类型排序:\n1,年龄\n2,工资\n3,性别\n";
	cin>>t;
	char h[10];
	if(t==2) {
		sort(ren,ren+d,cmp2);
		cout<<"是否查看:\n";
		cout<<"请输入yes查看或者输入no退出\n";
		cin>>h;
		if(!strcmp(h,"yes"))
			for(i=0; i<d; i++)
				printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
	} else if(t==1) { //字符串排序;
		sort(ren,ren+d,cmp1);
		cout<<"是否查看:\n";
		cout<<"请输入yes查看;或者输入no退出\n";
		cin>>h;
		if(!strcmp(h,"yes"))
			for(i=0; i<d; i++)
				printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n",ren[i].zhigonghao,ren[i].xingming,ren[i].xingbie,ren[i].nianling,ren[i].xueli,ren[i].gongzi,ren[i].zhuzhi,ren[i].dianhua);
	} else if(t==3) {
		sort(ren,ren+d,cmp3);
		cout<<"是否查看:\n";
		cout<<"请输入yes查看;或者输入no退出\n";
		cin>>h;
		if(!strcmp(h,"yes"))
			for(i=0; i<d; i++)
				cout<<ren[i].zhigonghao<<"    "<<ren[i].xingming<<"    "<<ren[i].nianling<<"    "<<ren[i].xueli<<"    "<<ren[i].gongzi<<"    "<<ren[i].zhuzhi<<"    "<<ren[i].dianhua<<endl;
	}

}

void shanchu() {//删除函数
	int t;
	cout<<"请,输入您要按什么删除谁的信息;\n1,职工号\n2,姓名\n";
	cin>>t;
	if(t==1) {
		char tt[100];
		cout<<"请输入您要删除职工的职工号:\n";
		scanf("%s",tt);
		int ll=0;
		for(i=0; i<d; i++)
			if(!strcmp(ren[i].zhigonghao,tt)) {
				for(j=i; j<d; j++) {//删除即后面的都向前进一位;strcpy是复制函数,就是将后面字符串复制到到前面
					strcpy(ren[j].dianhua,ren[j+1].dianhua);
					strcpy(ren[j].gongzi,ren[j+1].gongzi);
					strcpy(ren[j].nianling,ren[j+1].nianling);
					strcpy(ren[j].xingbie,ren[j+1].xingbie);
					strcpy(ren[j].xingming,ren[j+1].xingming);
					strcpy(ren[j].xueli,ren[j+1].xueli);
					strcpy(ren[j].zhigonghao,ren[j+1].zhigonghao);
					strcpy(ren[j].zhuzhi,ren[j+1].zhuzhi);
				}
				dd--;
				ll=1;
				break;
			}
		if(ll==0) cout<<"未找到您要的信息!"<<endl;
	} else if(t==2) {
		char u[100];
		cout<<"请输入您要删除职工的姓名:\n";
		cin>>u;
		int lp=0;
		for(i=0; i<d; i++)
			if(!strcmp(u,ren[i].xingming)) {
				for(j=i; j<d; j++) {
					strcpy(ren[j].dianhua,ren[j+1].dianhua);
					strcpy(ren[j].gongzi,ren[j+1].gongzi);
					strcpy(ren[j].nianling,ren[j+1].nianling);
					strcpy(ren[j].xingbie,ren[j+1].xingbie);
					strcpy(ren[j].xingming,ren[j+1].xingming);
					strcpy(ren[j].xueli,ren[j+1].xueli);
					strcpy(ren[j].zhigonghao,ren[j+1].zhigonghao);
					strcpy(ren[j].zhuzhi,ren[j+1].zhuzhi);
				}
				d--;
				lp=1;
				break;
			}
		if(lp==0) cout<<"未找到您要的信息!"<<endl;
	}
}
int main() {
	system("color 1f");
	int x=1;
	cout<<"***********欢迎来到本系统*************\n\n\n\n";
	while(x) {
		printf("********您可以进行以下功能:\n********1,录入功能********\n********2,浏览功能********\n********3,查询功能********\n********4,修改功能********\n********5,排序功能********\n********6,删除功能********\n********7,存档信息********\n********8,退出    ********\n");
		printf("请输入您要进行的编号:\n");
		scanf("%d",&bianhao);
		op=fopen("file1.txt","wb");
		if(bianhao==1)//可以用if 当然也可以用switch case 语句;
			luru();
		else if(bianhao==2)
			liulan();
		else if(bianhao==3)
			chaxun();
		else if(bianhao==4)
			xiugai();
		else if(bianhao==5)
			paixu();
		else if(bianhao==6)
			shanchu();
		else if(bianhao==8) {
			printf("提示:退出!!!\n");
			fclose(op);
			break;
		} else if(bianhao==7)
			save();
		else printf("输入信息有误\n请重新输入\n");
		char ll[10];
		cout<<"是否清屏?(yes/no)";
		cin>>ll;
		if(!strcmp(ll,"yes")) system("cls");
	}
	cout<<"再见\n"<<endl;
	return 0;
}


猜你喜欢

转载自blog.csdn.net/weixin_45911397/article/details/106453566