C语言数据结构通讯录系统,数据结构课程设计--通讯录管理(C语言写的)

//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);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 
   第二个模块——Menu()的功能是:显示提示选单。 
   第三个模块——Quit()的功能是:退出选单。 
   第四个模块——Create()的功能是:创建新的数据记录。 
   第五个模块——Add()的功能是:增加新的数据记录,并返回选单。 
   第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 
   第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 
   第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 
   第九个模块——List()的功能是:显示所有记录。 一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。建议用“文件”存储数据。 1.通讯录管理系统设计与实现 (1)通讯者信息包括:编号(char num[10])、姓名(char name[10])、性别(char sex[10])、电话(char phone[20]) (2)除了总的模块要求外,还需统计通讯录中男性人数及女性人数,并求出通讯录中的第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 
   第二个模块——Menu()的功能是:显示提示选单。 
   第三个模块——Quit()的功能是:退出选单。 
   第四个模块——Create()的功能是:创建新的数据记录。 
   第五个模块——Add()的功能是:增加新的数据记录,并返回选单。 
   第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 
   第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 
   第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 
   第九个模块——List()的功能是:显示所有记录。 一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。建议用“文件”存储数据。 1.通讯录管理系统设计与实现 (1)通讯者信息包括:编号(char num[10])、姓名(char name[10])、性别(char sex[10])、电话(char phone[20]) (2)除了总的模块要求外,还需统计通讯录中男性人数及女性人数,并求出通讯录中的男女比例。 男女比例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值