/******头文件(.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);
}
}