做的不是很好,当个反例吧,嘻嘻嘻~~~~
#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;
}