#include<stdio.h>
#include<string.h>/*字符串函数*/
#include<ctype.h>/*字符操作函数*/
#define M 10
/******************
定义数据结构
******************/
struct addresslist
{
char name[20];
int age;
char tel[12];
char street[20];
char city[20];
char province[20];
};
/*****************************************
主函数
*****************************************/
void main()
{
void search(struct addresslist t[],int n);/**按姓名查找**/
void sort(struct addresslist t[],int n);/**按年龄排序**/
int del(struct addresslist t[],int n);/***删除***/
void modify(struct addresslist t[],int n);/***修改***/
int enter(struct addresslist t[],int n);/***添加***/
void list(struct addresslist t[],int n); /*显示记录*/
void info();/**显示该软件的相关信息***/
void exit();/**退出登陆**/
int menu_select(); /*主菜单函数*/
void getch();/***输入任意字符**/
int i=0;
struct addresslist addr[M]={{"zhanghanguo",20,"13763378749","xishajie","panyuzhoushi","guangdong"},{"baichongliang",21,"13763378748","nanshajie","maomingshi","guangdong"},{"zhangshan",18,"13763378747","beishajie","quanzhoushi","fujian"}};/**定义结构体数组**/
for(;;) /*无限循环*/
{
switch(menu_select())
{
case 1: search(addr,i);break;
case 2: sort(addr,i);break;
case 3: del(addr,i);break;
case 4: modify(addr,i);break;
case 5: enter(addr,i);break;
case 6: list(addr,i);break;
case 7: info();break;
case 8: exit();break;
}
}
}
/********************************************
菜单函数,函数返回值为整数,代表所选的菜单项
*********************************************/
int menu_select()
{
int c;
printf(" 欢迎登陆Aguo个人通讯录管理系统 \n");
printf("********************MENU*********************\n");
printf("* 1. 快速查找 *\n");
printf("* 2. 排序记录 *\n");
printf("* 3. 删除记录 *\n");
printf("* 4. 修改记录 *\n");
printf("* 5. 新建记录 *\n");
printf("* 6. 显示记录 *\n");
printf("* 7. 关于本软件 *\n");
printf("* 8. 退出登陆 *\n");
printf("*********************************************\n");
printf(" 版权所有 copyright (C)v1.0 \n");
do
{
printf("\n Enter you choice(1~8):"); /*提示输入选项*/
scanf("%d",&c); /*输入选择项*/
}while(c<0||c>8); /*选择项不在1~7之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
/*************************************
1.快速查找函数
*************************************/
void search(struct addresslist t[],int n)
{
char str[20];
int i;
printf("please input the search name:\n");
scanf("%s",&str);
for(i=0;i<M;i++)
if(strcmp(str,t[i].name)==0)
{
printf("****************************ADDRESS***************************\n");
printf("name:%s\nage:%d\ntel:%s\nstreet:%s\ncity:%s\nprovince:%s\n",t[i].name,t[i].age,t[i].tel,t[i].street,t[i].city,t[i].province);
printf("--------------------------------------------------------------\n");
}
printf("\n");
printf("press any key to continue......");/***提示信息**/
getch();
printf("\n");
}
/************************************
2.排序函数
*************************************/
void sort(struct addresslist t[],int n)
{
int i,j,temp;
struct addresslist str[1];/**定义临时结构体数组**/
for(i=0;i<M;i++)
for(j=i+1;j<M;j++)
if(t[i].age>t[j].age)
{
temp=t[i].age;/***排序年龄***/
t[i].age=t[j].age;
t[j].age=temp;
strcpy(str[0].name,t[i].name);/**调换姓名**/
strcpy(t[i].name,t[j].name);
strcpy(t[j].name,str[0].name);
strcpy(str[0].tel,t[i].tel);/**调换tel***/
strcpy(t[i].tel,t[j].tel);
strcpy(t[j].tel,str[0].tel);
strcpy(str[0].street,t[i].street);/***调换街道**/
strcpy(t[i].street,t[j].street);
strcpy(t[j].street,str[0].street);
strcpy(str[0].city,t[i].city);/**调换城市**/
strcpy(t[i].city,t[j].city);
strcpy(t[j].city,str[0].city);
strcpy(str[0].province,t[i].province);/**调换省份***/
strcpy(t[i].province,t[j].province);
strcpy(t[j].province,str[0].province);
}
printf("sort succeed!\n");
printf("press any key to continue......");/***提示信息**/
getch();
printf("\n");
/***在此加入显示函数***/
}
/************************************
3.删除函数(×)
************************************/
int del(struct addresslist t[],int n)
{
char str[20];
int i,j,temp;
int ch;
printf("please input the deleted name:\n");
scanf("%s",&str);
for(i=0;i<M;i++)
{
if(strcmp(str,t[i].name)!=0)
{
printf("The record is ont existent!\n");/***不存在该信息***/
}
else
{
printf("****************************ADDRESS***************************\n");
printf("name:%s\nage:%d\ntel:%s\nstreet:%s\ncity:%s\nprovince:%s\n",t[i].name,t[i].age,t[i].tel,t[i].street,t[i].city,t[i].province);/**要删除的记录信息**/
printf("--------------------------------------------------------------\n");
printf("Are you sure delete it(1/0)\n");/****确认是否删除***/
scanf("%d",&ch);
if(ch==1)
{
for(j=i+1;j<M;j++)
{
strcpy(t[j-1].name,t[j].name); /*将后一条记录的姓名拷贝到前一条*/
temp=t[j-1].age;/*将后一条记录的年龄拷贝到前一条*/
t[j-1].age=t[j].age;
/***t[j].age=temp***/
strcpy(t[j-1].tel,t[j].tel); /*将后一条记录的电话拷贝到前一条*/
strcpy(t[j-1].street,t[j].street);/*将后一条记录的街道拷贝到前一条*/
strcpy(t[j-1].city,t[j].city);/*将后一条记录的城市拷贝到前一条*/
strcpy(t[j-1].province,t[j].province);/*将后一条记录的省份拷贝到前一条*/
}
printf("delete succeed!\n");
}
else
{
printf("delete fail\n");
}
}
}
printf("press any key to continue......");/***提示信息**/
getch();
printf("\n");
return n;
}
/************************************
4.修改函数
*************************************/
void modify(struct addresslist t[],int n)
{
char str[20];/**要修改的记录姓名**/
char str1[20],str2[10];/**输入要修改的选项**/
int i,b,temp;
printf("Please input the modity name:\n");
scanf("%s",&str);/**输入要修改的记录姓名**/
for(i=0;i<M;i++)
if(strcmp(t[i].name,str)==0)
{
printf("-----------------------------------------------------------\n");
printf("name:%s\nage:%d\ntel:%s\nstreet:%s\ncity:%s\nprovince:%s\n",t[i].name,t[i].age,t[i].tel,t[i].street,t[i].city,t[i].province);/***输出要修改的记录信息**/
printf("-----------------------------------------------------------\n");
printf("please select which to change:\n");/**提示信息**/
scanf("%s",&str2);
{
if(strcmp(str2,"name")!=0&&strcmp(str2,"age")!=0&&strcmp(str2,"tel")!=0&&strcmp(str2,"street")!=0&&strcmp(str2,"city")!=0&&strcmp(str2,"province")!=0)
{
printf("modify fail\n");break;
}
else
{
if(strcmp(str2,"name")==0)
{
printf("please input the newname:\n");
scanf("%s",&str1);
strcpy(t[i].name,str1);
}
if(strcmp(str2,"age")==0)
{
printf("please input the newage:\n");
scanf("%d",&b);
temp=t[i].age;
t[i].age=b;
b=temp;
}
if(strcmp(str2,"tel")==0)
{
printf("please input the newtel:\n");
scanf("%s",&str1);
strcpy(t[i].tel,str1);
}
if(strcmp(str2,"street")==0)
{
printf("please input the newstreet:\n");
scanf("%s",&str1);
strcpy(t[i].street,str1);
}
if(strcmp(str2,"city")==0)
{
printf("please input the newcity:\n");
scanf("%s",&str1);
strcpy(t[i].city,str1);
}
if(strcmp(str2,"province")==0)