C语言通讯录3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一系统功能和原始数据

⑴通讯录信息和数据格式

⑵程序功能

二程序总体设计

⑴数据结构

⑵模块划分

三功能块函数设计和调试(1)/*菜单*/

(2)/*添加条目*/

(3)/*输出学生信息*/ (4)/*查找信息1.按姓名*/ (5)/*删除信息*/

(6)/*文件信息输出到链表*/

四输出结果

五归纳总结

(1)开发经验

(2)感想和心得体会

(3)设计中尚存的不足之处

(4)实训中遇到的问题及解决方法

一.系统功能和原始数据

⑴通讯录信息和数据格式

姓名单位地址邮箱电话

⑵程序功能

<1>输入记录<2>显示全部记录<3>查找记录<4>删除记录<5>插入记

录<6>保存文件<>7读入文件<8>按序号显示记录<9>按姓名排序<10>快速查找记录

二.程序总体设计

⑴数据结构

依据给定的通讯录信息和数据格式,链表结点必须用结构实现。结构类型的层次结构:

struct Telephone

{

char number[200];

char name[20];

char off[20];

char addrass[20];

char mail[20];

char telephone[20];

struct Telephone *next;

};⑵模块划分

主函数

main()

TEL *head=NULL;

void Menu(); /*菜单*/

void Crease(); /*添加条目*/

void print(); /*输出条目*/

void Search(); /*查找条目(按姓名)*/

void Delate(); /*删除信息*/ void Save(); /*保存到文件*/

void Open(); /*打开文件*/

void Change(); /*修改信息*/

void Arrange(); /*排序*/

void main()

{

char ch;

Open(); /*打开文件*/

while(1)

{

Menu(); /*显示菜单*/

scanf(" %c",&ch);

switch(ch)

{

case '1':Crease(); /*添加条目*/

break;

case '2':Search(); /*查找条目1.按姓名*/

break;

case '3':Change(); /*修改信息*/

print();

break;

case '4': Delate(); /*删除信息*/

print(); /*输出删除后的结果*/

break;

case '5':print(); /*输出条目*/

break;

case '0':Save(); /*保存并释放内存*/

exit(0); /*退出*/

break;

default:

printf("选择错误!");

break;

}

}

}三.功能块函数设计和调试

(1)/*菜单*/

void Menu()

{

printf("\n*****************通讯录系统*****************\n");

printf("\t1.录入。\n");

printf("\t2.按姓名查询\n");

printf("\t3.修改信息\n");

printf("\t4.删除\n");

printf("\t5.输出\n");

printf("\t0.保存并退出!\n");

printf("*************************************************\n");

printf("\t请选择:");

}

(2)/*添加条目*/

void Crease()

{

TEL *p1=NULL,*p2=NULL;

p1=(TEL *)malloc(sizeof(TEL)); /*申请结点*/

printf("输入编号:");

scanf("%s",p1->number);

printf("输入姓名:"); /*添加信息*/

scanf("%s",p1->name);

printf("输入单位:");

scanf("%s",p1->off);

printf("输入地址:");

scanf("%s",p1->addrass);

printf("输入邮箱:");

scanf("%s",p1->mail);

printf("输入电话:");

scanf("%s",p1->telephone);

p1->next=NULL; /*保存到链表*/

if(head==NULL)

{

head=(TEL *)malloc(sizeof(TEL)); /*申请空间*/

head->next=p1;

}

else

{

for(p2=head;p2->next!=NULL;p2=p2->next); /*找到结点尾*/

p2->next=p1;

}

printf("此信息已添加!");

}

(3)/*输出学生信息*/

void print()

{

TEL *p=NULL;

if(head==NULL)

{

printf("此通讯录中无记录,请输入记录后在使用本功能!\n");

return;

}

printf("**************通讯录系统*********************\n"); /*输出信息*/

printf("编号\t姓名\t单位\t地址\t邮箱\t电话\n");

for(p=head->next;p!=NULL;p=p->next)

printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->off,p->addrass ,p->mail,p->telephone);

}

(4)/*查找信息1.按姓名*/

void Search()

{

TEL *p;

char findname[20];

printf("请输入要查找的姓名:");

scanf("%s",findname);

printf("**************通讯录系统*********************\n");

printf("编号\t姓名\t单位\t地址\t邮箱\t电话\n");

for(p=head;p!=NULL;p=p->next)

{

if(strcmp(p->name,findname)==0)

相关文档
最新文档