//mainf.cpp
#include
#include
#include // malloc()等
#include // INT_MAX等
#include //
EOF(=^Z或F6),NULL
#include // atoi()
#include // eof()
#include //
floor(),ceil(),abs()
#include // exit()
#include //
cout,cin
#include"ABlist.h"
// 函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
// #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此行
typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等
typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE
struct AddressBook *start;
struct AddressBook *last;
Status load(ABList &L);//装载函数,
int menu();//菜单显示函数
void CreatABList(ABList &L);//创建通讯录
void Increase(ABList &L);//在通讯录中增加成员
Status del(ABList &L);//删除通讯录中的一个成员
Status Modify(ABList &L);//修改通讯录中指定成员的信息
Status search(ABList &L);//查找通讯录中指定编号的元素信息
Status display(ABList &L);//显示通讯录中各成员的信息
Status save(ABList &L);//保存输入的信息
void inputs(char *s,int count);//此函数专用于建立函数用的输入操作
void destroy(ABList &L);
AddressBook creat_e();
void main()
{
ABList L;
printf("\n\n\t\tWelcom to the information
management system!\n\t\t\t Copyright. Huang Wenbo,2010.\n");
InitList_AB(L);
load(L);
system("color 18");
int flag=1;
while(flag)
{
switch(menu())
{
case
1:CreatABList(L);break;
case 2:Increase(L);break;
case 3:del(L);break;
case 4:Modify(L);break;
case 5:search(L);break;
case 6:save(L);break;
case 7:destroy(L);break;
case
8:system("cls");break;
case 9:flag =
0;printf("\t\t\t欢迎下次使用! \n\t\tCopyright.Huang
Wenbo,2010.\n");
}
}
}
Status load(ABList &L)
{
FILE *fp,*fq;
int i,j;
if( ((fq =
fopen("amout.txt","rb")) == NULL)||((fp= fopen("info.txt","rb"))==
NULL) )
{
printf("file read error,maybe
you have not creat a file to save the information!\n");
return ERROR;
}
fread(&i,sizeof(int),1,fq);
for (j=0;j
{
fread(&L.elem[j],sizeof(struct
AddressBook),1,fp); L.length++;
}
printf("\nfile read succeed!!\n");
fclose(fp);
return OK;
}
int menu()
{
int a;
printf("\t\t┏━━━━━━━━操作目录━━━━━━━┑\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 1. 建立通讯录 2.增加 3.删除 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 4.修改 5.查询 6.保存 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 7.销毁 8.清屏 9.退出 ┃\n");
printf("\t\t┗━━━━━━━━━━━━━━━━━━━┛\n");
printf("\n\n\t\t\t 请选择操作:");
scanf("%d",&a);
getchar();
printf("\n");
return
a; }
void CreatABList(ABList &L)
{
char c[2];
int j = 0;
if(InitList_AB(L) == 1)
{
printf("建立通讯录分配空间成功,现在您可以开始输入数据建立不超过100个人的信息!\n");
printf("您是否想从现在开始建立?Y/N.\n");
gets(c);
while((((c[0]=='y')||(c[0]=='Y')))&&(j<100))
{
printf("请输入第%d位同学的编号:",j+1);
scanf("%d",&L.elem[j].ID);
getchar();
printf("第%d位同学的姓名:
",j+1);
inputs(L.elem[j].name,10);
printf("第%d位同学的性别:
",j+1);