#include \"stdio.h\" #include \"string.h\" #define N 20 struct mem { char name[20];
char tel[20];
char wu[20];
char dz[20]; }mem[N]; void sorttel(struct mem tel[]) {
struct mem temp;
int i,j;
FILE *fp; if((fp=fopen(\"c: elephone.txt\",\"rb\"))==NULL) {
printf(\"不能打开文件\\n\"); } for(i=0;i
for(j=0;j
if(strcmp(mem[j+1].tel,mem[j].tel)
{
temp=mem[j];
mem[j]=mem[j+1];
mem[j+1]=temp;
} for(i=0;i
void sortname(struct mem tel[]) {
struct mem temp;
int i,j;
FILE *fp; if((fp=fopen(\"c: elephone.txt\",\"rb\"))==NULL) {
printf(\"不能打开文件\\n\"); } for(i=0;i
for(j=i+1;j
if(strcmp(mem[j].name,mem[i].name)
{
temp=mem[i];
mem[i]=mem[j];
mem[j]=temp;
} for(i=0;i
void sor() {int k;
do{printf (\"--------------------排序菜单-------------------\\n\");
printf(\"------------------------\\n\");
printf(\"
1:按号码排序\\n\");
printf(\"
2:按姓名排序\\n\");
printf(\"
0:退出\\n\");
printf(\"------------------------\\n\");
printf(\"请输入0-2选择功能\\n\");
scanf(\"%d\",&k);getchar();
switch(k)
{
case 1:sorttel(mem);break;
case 2:sortname(mem);break;
case 0:return;
}
}while(1); }
void add() { char name[10]; char tel[10];
char wu[10];
char dz[10]; FILE *fp; if((fp=fopen(\"c: elephone.txt\",\"a\"))==NULL) {
printf(\"不能打开文件\\n\");
exit(0); }
printf(\"请输入姓名\");
gets(name);
printf(\"请输入电话号码\");
gets(tel);
printf(\"请输入工作单位\");
gets(wu);
printf(\"请输入地址\");
gets(dz);printf(\"\\n\");
fprintf(fp,\"%s %s %s %s\\n\",name,tel,wu,dz);
fclose(fp); } void del() {
FILE *fp;
int i=0,n;
char name[10];
printf(\"请输入删除名字\");
gets(name);
if((fp=fopen(\"c: elephone.txt\",\"r\"))==NULL) {
printf(\"不能打开文件\\n\");
exit(0); }
while(!feof(fp))
{
fscanf(fp,\"%s%s%s%s\",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);
if(strcmp(name,mem[i].name)!=0) i++;
}
fclose(fp); if((fp=fopen(\"c: elephone.txt\",\"w\"))==NULL) {
printf(\"不能打开文件\\n\");
exit(0); } for(n=0;n
fprintf(fp,\"%s %s %s %s\",mem[n].name,mem[n].tel,mem[n].wu,mem[n].dz); fclose(fp); } void dis() { FILE * fp; int i=0,n; printf(\"
姓名
电话号码
工作单位
地址\\n\");
if((fp=fopen(\"c: elephone.txt\",\"r\"))==NULL) {
printf(\"不能打开文件\\n\");
exit(0); }
while(!feof(fp))
{fscanf(fp,\"%s%s%s%s\",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);i++;}
fclose(fp);
n=i;
for(i=0;i
printf(\"%-8s%11s%13s%24s\\n\",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz); } void mod() { FILE * fp; int i=0,n; char name[10]; char nn[10];char nt[10]; char nwu[10];char ndz[10];
printf(\"请输入要修改的姓名\"); gets(name); printf(\"请输入修改后的姓名\"); gets(nn); printf(\"请输入修改后的电话号码\"); gets(nt); printf(\"请输入修改后的工作单位\"); gets(nwu); printf(\"请输入修改后的地址\"); gets(ndz);printf(\"\\n\"); if((fp=fopen(\"c: elephone.txt\",\"r\"))==NULL) {
printf(\"不能打开文件\\n\");
exit(0); }
while(!feof(fp))
{
fscanf(fp,\"%s%s%s%s\",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);
if(strcmp(name,mem[i].name)==0)
{strcpy(mem[i].name,nn);strcpy(mem[i].tel,nt);strcpy(mem[i].wu,nwu);strcpy(mem[i].dz,ndz);}
i++;
}
fclose(fp); if((fp=fopen(\"c: elephone.txt\",\"w\"))==NULL) {
printf(\"不能打开文件\\n\");
exit(0); }
n=i;
for(i=0;i
fprintf(fp,\"%s %s %s %s\\n\",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);
fclose(fp); } void main() {
int choose;
while(1)
{
printf (\"--------------------电话簿管理系统--------------------\\n\");
printf(\"------------------------\\n\");
printf(\"
1:添加一个新号码\\n\");
printf(\"
2:删除一个号码\\n\");
printf(\"
3:显示所有保存的号码\\n\");
printf(\"
4:修改号码\\n\");
printf(\"
5:排序\\n\");
printf(\"
6:查询\\n\");
printf(\"
0:退出\\n\");
printf(\"------------------------\\n\");
printf(\"请输入0-6选择功能\\n\");
scanf(\"%d\",&choose);getchar();
if(choose!=0)
switch(choose)
{
case 1:add();break;
case 2:del();break;
case 3:dis();break;
case 4:mod();break;
case 5:sor();break;
case 6:/*que();break*/;
}
else exit(0);
} }