你的问题在什么地方,该不会自己懒的做,让论坛的朋友做吧???
我手上有个电话本管理系统,希望对你有借鉴作用,学C语言不能懒#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct telephone
{
char client_name[20];
char client_address[30];
char client_telephone[15];
}message;
void input(); //添加新用户函数
void amend(); //修改用户信息函数
void delete_client(); //删除用户信息函数
void demand_client(); //用户信息查询函数
void collect_telephone(); //用户信息汇总函数
void save_client(); //保存函数
void demand_name(); //按用户名查询
void demand_telephone(); //按电话号码查询
void paixu(); //排序函数
void main()
{
int choice=0;
while(choice!=6)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("\n -1- 添加新用户信息\n");
printf("\n -2- 修改用户信息\n");
printf("\n -3- 删除用户信息\n");
printf("\n -4- 用户信息查询\n");
printf("\n -5- 用户信息汇总\n");
printf("\n -6- 退出\n");
printf("\n================================\n");
printf("\n请选择:");
scanf(" %d",&choice);
getchar();
if(choice>7||choice<1)
{
printf("请选择1-6之间的数\n按回车继续");
getch();
continue;
}
switch(choice)
{
case 1:
input();
break;
case 2:
amend();
break;
case 3:
delete_client();
break;
case 4:
demand_client();
break;
case 5:
collect_telephone();
break;
case 6:
break;
default:
break;
}
}
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("欢迎下次继续使用本系统!\n");
}
void input()//添加新用户函数
{
char choice = 'y';
while(choice == 'Y' || choice == 'y')
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("请输入用户姓名:");
gets(message.client_name);
printf("请输入用户电话:");
gets(message.client_telephone);
printf("请输入用户地址:");
gets(message.client_address);
printf("\n是否保存[y/n]:");
scanf(" %c",&choice);
if(choice=='y'||choice=='Y')
{
save_client();
}
printf("\n是否继续添加[y/n]:");
scanf(" %c", &choice);
getchar();
}
printf("按任意键返回……\n");
getch();
}
void amend()//修改用户信息函数
{
FILE *fp;
char name[20];
char choice = 'y';
char found='y';
while(choice=='y'||choice=='Y')
{
fp=fopen("message.txt","r+w");//打开文件进行读写操作
if(fp!=NULL)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("请输入用户姓名:");
scanf("%s",name);
while((fread(&message,sizeof(struct telephone),1,fp))==1)//将文件数据进行一一读取,如果找到则退出
{
if(strcmp(name,message.client_name)==0)
{
found='y';
break;
}
}
if(found=='y')//如果找到,输出信息,并输入新信息和保存
{
printf("\n原用户信息\n");
printf("用户姓名:%s\n",message.client_name);
printf("用户电话:%s\n",message.client_telephone);
printf("用户地址:%s\n",message.client_address);
printf("\n用户新信息");
printf("\n请输入用户姓名:");
scanf("%s",message.client_name);
printf("\n请输入用户电话:");
scanf("%s",message.client_telephone);
printf("\n请输入用户地址:");
scanf("%s",message.client_address);
printf("\n\n要保存吗?[y/n]:");
scanf(" %c",&choice);
if(choice=='y'||choice=='Y')
{
fseek(fp,-sizeof(struct telephone),1);
fwrite(&message,sizeof(struct telephone),1,fp);
}
}
else
{
printf("没有此用户信息!\n");
}
}
else
{
printf("\n打开文件错误!\n");
}
fclose(fp);
printf("要继续修改吗?[y/n]");
scanf(" %c",&choice);
}
printf("按任意键返回……");
getchar();
}
void delete_client()//删除用户信息函数
{
FILE *fp;
int i=0,j;
struct telephone diff[500],same;
char name[20],found='n',choice='y';
while(choice=='y'||choice=='Y')
{
fp=fopen("message.txt","rb");//打开文件进行读操作
if(fp!=NULL)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("请输入用户姓名:");
scanf("%s",name);
while((fread(&message,sizeof(struct telephone),1,fp))==1)//将文件数据进行一一读取,如果找到则退出
{
if(strcmp(name,message.client_name)==0)
{
same=message;
found='y';
}
else
{
diff[i++]=message;
}
}
}
else
{
printf("\n打开文件错误!\n");
}
fclose(fp);
if(found=='y')//如果找到,输出信息,并重新输入新信息和保存
{
printf("\n要删除的用户信息\n");
printf("用户姓名:%s\n",same.client_name);
printf("用户电话:%s\n",same.client_telephone);
printf("用户地址:%s\n",same.client_address);
printf("\n要删除吗?[y/n]:");
scanf(" %c",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("message.txt","wb");//打开文件进行写操作
if(fp!=0)
{
rewind(fp);
for(j=0;j<i;j++)
{
fwrite(&diff[j],sizeof(struct telephone),1,fp);
}
}
else
{
printf("\n打开文件错误!\n");
}
}
}
else
{
printf("没有此用户的信息!");
}
fclose(fp);
printf("要继续删除吗?[y/n]");
scanf(" %c",&choice);
}
printf("按任意键返回……");
getchar();
}
void demand_client()//用户信息查询函数
{
int choice=0;
while(choice!=3)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("\n -1- 按用户姓名查询\n");
printf("\n -2- 按电话号码查询\n");
printf("\n -3- 返回\n");
printf("\n================================\n");
printf("\n请选择:");
scanf(" %d",&choice);
getchar();
if(choice>3||choice<1)
{
printf("请选择1-2之间的数\n按回车继续");
getchar();
continue;
}
switch(choice)
{
case 1:
demand_name();
break;
case 2:
demand_telephone();
break;
default:
break;
}
}
// getchar();
}
void collect_telephone()//用户信息汇总函数
{
FILE *fp;
int i;
paixu();
fp=fopen("message.txt","rb");//打开文件进行读操作
if (fp!=NULL)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
for(i=0;(fread(&message,sizeof(struct telephone),1,fp))==1;i++)
{
printf("记录%d:\n",i+1);
printf("\t姓名:\t%s\n",message.client_name);
printf("\t电话:\t%s\n",message.client_telephone);
printf("\t地址:\t%s\n",message.client_address);
printf("================================\n");
}
printf("\n\t\t\t\t\t\t\t共%d条记录\n",i);
}
else
{
printf("打开文件时出现错误\n");
}
fclose(fp);
printf("按任意键返回主菜单……");
getchar();
}
void paixu()//排序
{
FILE *fp;
int i,j,k;
struct telephone temp[500],change;
fp=fopen("message.txt","rb");//打开文件进行读操作
if (fp!=NULL)
{
system("cls");
for(i=0;(fread(&message,sizeof(struct telephone),1,fp))==1;i++)
{
temp[i]=message;
}
for(j=1;j<=i-1;j++)
{
for(k=0;k<i-j;k++)
{
if(strcmp(temp[k].client_name,temp[k+1].client_name)>0)
{
change=temp[k];
temp[k]=temp[k+1];
temp[k+1]=change;
}
}
}
}
else
{
return;
}
fclose(fp);
fp=fopen("message.txt","wb");//写方式打开文件进行操作
for(j=0;j<i;j++)
{
fwrite(&temp[j],sizeof(struct telephone),1,fp);//进行写操作
}
fclose(fp);
}
void save_client()//保存函数
{
FILE *fp;
fp=fopen("message.txt","a+b");//追加方式打开文件进行操作
if (fp!=NULL)
{
fwrite(&message,sizeof(struct telephone),1,fp);//进行写操作
}
else
{
return;
}
fclose(fp);
}
void demand_name() //按用户名查询
{
FILE *fp;
char name[20];
char choice = 'y';
int i=0;
while(choice=='y'||choice=='Y')
{
fp=fopen("message.txt","rb");//打开文件进行读写操作
if(fp!=NULL)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("请输入用户姓名:");
scanf("%s",name);
while((fread(&message,sizeof(struct telephone),1,fp))==1)//将文件数据进行一一读取,如果找到则退出
{
if(strcmp(name,message.client_name)==0)
{
i++;
printf("\n用户姓名:%s\n",message.client_name);
printf("用户电话:%s\n",message.client_telephone);
printf("用户地址:%s\n",message.client_address);
}
}
if(i==0)
{
printf("\n没有此用户信息!\n");
}
}
else
{
printf("\n打开文件错误!\n");
}
fclose(fp);
printf("\n要继续按本方式查询吗?[y/n]");
scanf(" %c",&choice);
}
printf("按任意键返回……");
getchar();
}
void demand_telephone() //按电话号码查询
{
FILE *fp;
char number[15];
char choice = 'y';
int i=0;
while(choice=='y'||choice=='Y')
{
fp=fopen("message.txt","rb");//打开文件进行读写操作
if(fp!=NULL)
{
system("cls");
printf("\n 电话号码管理系统 \n");
printf("\n================================\n");
printf("请输入电话号码:");
scanf("%s",number);
while((fread(&message,sizeof(struct telephone),1,fp))==1)//将文件数据进行一一读取,如果找到则退出
{
if(strcmp(number,message.client_telephone)==0)
{
i++;
printf("\n用户姓名:%s\n",message.client_name);
printf("用户电话:%s\n",message.client_telephone);
printf("用户地址:%s\n",message.client_address);
}
}
if(i==0)
{
printf("\n没有此用户信息!\n");
}
}
else
{
printf("\n打开文件错误!\n");
}
fclose(fp);
printf("\n要继续按本方式查询吗?[y/n]");
scanf(" %c",&choice);
}
printf("按任意键返回……");
getchar();
}