/******头文件(.h)***********/
#include "stdio.h"
/*I/O函数*/
#include "stdlib.h" /*标准库函数*/
#include "string.h"/*字符串函数*/
#include "ctype.h" /*字符操作函数*/
#include "conio.h" /*若要使用system("cls")应加上命令行“#include"stdlib.h"”*/
#define N 50
/*定义常数表示记录数*/
typedef struct /*定义数据结构*/
{
char num[30];
char name[20];
char tele[10];
}student;
void myprint();
void mycreat(struct student *p,int n);
void mydisplay(struct student *p,int n);
void mysearch();
void mymodify(struct student *p,int n);
void myadd();
void mydelete();
void mysort();
int main()
{
int i=1;
char choose='\0',yes_no='\0';
student record[N]={0};
for(;;)/*无限循环*/
do
{
myprint();
/*显示菜单*/
printf("
");
choose=getch();
switch(choose)
{
case '1': mycreat(record,N);
break;
case '2': mydisplay(record,N);
break;
case '3': mysearch(record,N);
break;
case '4': mymodify(record,N);
break;
case '5': myadd(record,N);
break;
case '6': mydelete(record,N);
break;
case '7': mysort(record,N);
break;
case '0':
break;
default:printf("\n
%c为非法选项!!!\n",choose);
}
if(choose=='0')
break;
printf("\n
要继续选择吗(Y/N)?\n");
do
{
yes_no=getch();
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='Y'&&yes_no=='y');
}
void myprint()
/*显示菜单*/
{
system("cls");
/*调用清屏函数。若在VC++中,应改为system("cls")*/
printf("
|*********************************************************|\n");
printf("
|**************欢迎进入追忆辅助同学通讯录*****************|\n");
printf("
|*****************请输入您要选择的编号:*******************|\n");
printf("
|*********************************************************|\n");
printf("
|
1:创建通讯录
|\n");
printf("
|
2:显示通讯录
|\n");
printf("
|
3:查询通讯录
|\n");
printf("
|
4:修改通讯录
|\n");
printf("
|
5:添加通讯录
|\n");
printf("
|
6:删除通讯录
|\n");
printf("
|
7:排序通讯录
|\n");
printf("
|
0:退出通讯录
|\n");
printf("
|
本系统版权归追忆辅助所有,并保留所有权利
|\n");
printf("
|Copyright@2012,Remembrance Auxiliary,All Rights Reserved |\n");
printf("
|*********************************************************|\n");
}
void mycreat( student *p,int n)
/*创建*/
{
int i=1;
//clrscr();
/*调用清屏函数。若在VC++中,应改为system("cls")*/
while(i<=n)
{
printf("\n");
printf("请输入第%d个记录:\n",i);
printf("学号:");
do
{
gets(p->num);
}while(strcmp(p->num,"")==0);
printf("姓名:");
gets(p->name);
printf("电话号码:");
gets(p->tele);
p++;
i++;
}
}
void mydisplay( student *p,int n)
/*显示*/
{
//clrscr();
/*调用清屏函数。若在VC++中,应改为system("cls")*/
printf("
学号
姓名
电话号码\n");
while(n>0)
{
printf("%23s%15s%15s\n",p->num,p->name,p->tele);
p++;
n--;
}
}
void mymodify( student *p,int n)
/*修改*/
{
int i=0;
char name[10]="";
mydisplay(p,n);
printf("\n请输入要修改记录的姓名:");
gets(name);
for(i=0;i<n;i++,p++)
if(strcmp(name,p->name)==0)
break; /*找到记录结束循环*/
if(i==n)
{
printf("无此人!!!\n");
/*i等于n,说明正常退出循环*/
}
else
{
printf("请输入正确的学号:");
do
{
gets(p->num);
}while(strcmp(p->num,"")==0);
printf("请输入正确的姓名:");
gets(p->name);
printf("请输入正确的电话号码:");
gets(p->tele);
}
}