手机通讯录实验报告及使用说明(附源代码).doc

上传人:yyf 文档编号:5022652 上传时间:2020-01-29 格式:DOC 页数:33 大小:864KB
返回 下载 相关 举报
手机通讯录实验报告及使用说明(附源代码).doc_第1页
第1页 / 共33页
手机通讯录实验报告及使用说明(附源代码).doc_第2页
第2页 / 共33页
手机通讯录实验报告及使用说明(附源代码).doc_第3页
第3页 / 共33页
手机通讯录实验报告及使用说明(附源代码).doc_第4页
第4页 / 共33页
手机通讯录实验报告及使用说明(附源代码).doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《手机通讯录实验报告及使用说明(附源代码).doc》由会员分享,可在线阅读,更多相关《手机通讯录实验报告及使用说明(附源代码).doc(33页珍藏版)》请在三一文库上搜索。

1、计算机专业教研室实验报告(数据结构)课程设计 手机通讯录小组成员系别班级学号实验日期指导教师实验成绩一、实验内容功能要求:(1)将联系人的信息可以存放在文件中,从文件中也可以读出联系人的信息。(2)可以添加一个新联系人的信息。(3)可以删除一个联系人的信息,删除条件为电话号码或姓名。(4)可以查询一个联系人的信息,查询条件为电话号码或姓名。(5)可以对联系人的信息进行排序,排序条件为联系人的姓名。二、实验过程1、整个程序包含三个文件。手机通讯录.cpp 、delong.h 、menu.h (点击产看代码)手机通讯录.cpp 主程序delong.h 各种函数menu.h菜单目录2、联系人信息包括

2、 编号、姓名、手机号码、家庭住址、E-mail、QQ、类别 信息。其中编号分配4位、姓名10位、手机号码13位、地址14位、E-mail 14位、QQ和类别都为12位。但实际上存储的时候所占位数都要少一位。因为存储的时候是以字符形式存储,读取的时候以字符串形式读取,需要用最后一位填写字符串结束标志 0 。3、函数列表:void AddSpace(int n);/*添加空格*/void Save(FILE *fp,int n,int j);/*将personMAXSIZE中的内容放到通讯录.txt*/j=0; 追加方式写入,适用于增加联系人的情况。j=1; 重新方式写入,适用于修改、删除情况。三

3、、总结:1、还是有小BUG。Eg:删除最后一个联系人的时候再输出全部信息时还是能输出一个联系人。2、代码冗长:Eg:增加操作及存储,得到联系人信息增添空格的时候没有写AddSpace()函数。在修改操作中得到修改后的联系人信息那里才用AddSpace()函数。某些地方重复代码较多。3、函数归编混乱,不利于读看。四、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结1、开始界面2、创建通讯录,若存在则无须再次创建。(默认路径 E:通讯录.txt)创建效果。3、向通讯录中增加联系人信息,增加完后记得要 选择2 操作保存。4、输出功能:可以按照姓名和编号输出、或者全部输出。5、查找操作

4、:可按照姓名和分类查找。6、修改功能:根据姓名修改,修改后记得保存。然后执行输出操作中的输出全部信息。7、删除操作:根据姓名删除,删除后记得保存。然后在输出操作中输出全部信息。8、清屏:执行清除屏幕上信息,显示主菜单。9、退出程序。代码部分:/*delong.h*/#include#include#include#include#include #include menu.htypedef int Status;#define TRUE 1#define FALSE 0#define MAXSIZE 50#define SCREENNUM 80struct personInformationc

5、har num4;char name10; /*姓名*/ char mobile_phone13; /*手机号码*/char addr14; /*家庭住址*/char e_mail14; /*邮箱*/char QQ12; /*QQ聊天软件*/ char category12; /*分类*/;char dir_name20=e:通讯录.txt;FILE *fp;struct personInformation personMAXSIZE;struct personInformation personReadMAXSIZE;/*函数列表*/Status Creat();/*创建一个通讯录并命名,下

6、次如果要打开以前的通讯录话,就在创建的时候输入以前的文件名称*/void Output();/*输出模块*/void Add();/*添加模块*/void Modify();/*修改模块*/void Del();/*删除模块*/void Search();/*查找模块*/Status CheckFlag(char flag);/*检测输入的flag值是否有效*/int GetFlag(char &flag); /*用户输入flag的值*/void Clear();/*清屏*/void MainMenu(int m); /*主菜单*/void SearchMenu();/*查找菜单*/void

7、OutputMenu();/*输出菜单*/void AddMenu();/*增加*/void ModifyMenu();/*修改*/void DelMenu();/*删除*/void Save(FILE *fp,int n,int j);/*保存联系人到通讯录,将personMAXSIZE中的内容放到 通讯录.txt*/void Read(FILE *fp);/*把 通讯录.txt 中的内容读出到personMAXESIZE*/void Print(int m);/*打印输出联系人开头信息*/void GetInformation(char str,int j);/*得到联系人信息*/void

8、 AddSpace(int n);Status Creat()/创建通讯录if(fp=fopen(dir_name,r)=NULL)/如果不存在fp=fopen(dir_name,w);/创建fclose(fp);/关闭文件printf(通讯录创建完毕!nc操作执行完毕!nn);return TRUE;/成功else fclose(fp);printf(通讯录已经存在,无须再次创建!nc操作执行完毕!nn);return TRUE;/失败void Output()/输出int k=4,n=0,j=0;char strMAXSIZE;char s_num4;/按编号char s_name10;/

9、按姓名if(fp=fopen(dir_name,r)=NULL) printf(打开通讯录错误!); getchar(); exit(0); while(TRUE)if(k=0 & k=0 & K=0 & k=3)switch(k)case 1:/添加联系人信息printf(输入项之间用空格隔开,若无此项信息,请用一个空格代替,输入完毕则用回车结束!n例如输入:1_2_3_4_5_6n);printf(输入联系人的姓名(8)、手机号码(11)、家庭地址(12)、E-mail(12)、QQ(10)、类别(10):n);gets(store);if(strlen(store)11)printf(您

10、输入的信息有误,联系人联入失败!n);break;/printf(%s,store);personj.num2=(char)space;/编号personj.num1=(char)(j+1)%10)+48);personj.num0=(char)(j+1)/10)+48);/printf(%sn,person0.num);for(i=0;istrlen(store);i+)if(int)storei=32)r+;if(int)storei=32 & r=1) /i=8m=i;for(n=0;n9;n+)/姓名if(nm)personj.namen=storex+n;else personj.n

11、amen=(char)space;x=m;/记录空格的位置/printf(%sn,person0.name);if(int)storei=32 & r=2)/手机号码m=i;for(n=0;n12;n+)if(nm-x-1)personj.mobile_phonen=storex+n+1;else personj.mobile_phonen=(char)space;x=m;/printf(%sn,person0.mobile_phone);if(int)storei=32 & r=3)/地址m=i;for(n=0;n13;n+)if(nm-x-1)personj.addrn=storex+n+

12、1;elsepersonj.addrn=(char)space;x=m;/printf(%sn,person0.addr);if(int)storei=32 & r=4)/E-mailm=i;for(n=0;n13;n+)if(nm-x-1)personj.e_mailn=storex+n+1;elsepersonj.e_mailn=(char)space;x=m;/printf(%sn,person0.e_mail);if(int)storei=32 & r=5)/QQm=i;for(n=0;n11;n+)if(nm-x-1)personj.QQn=storex+n+1;elseperson

13、j.QQn=(char)space;x=m;/printf(%sn,person0.QQ);if(i=(strlen(store)-1)/类别for(n=0;n11;n+)if(n(strlen(store)-x-1)personj.categoryn=storex+n+1;elsepersonj.categoryn=(char)space;/printf(%sn,person0.category); /for(i=0;i=0 & K=0 & k=3)switch(k)case 1:/根据姓名删除char d_name10;n=0;j=0;m=0;printf(n请输入姓名: );gets(d

14、_name);while(!feof(fp)/st=ftell(fp);/跟踪地址fscanf(fp,%s%s%s%s%s%s%sn,personn.num,personn.name, personn.mobile_phone,personn.addr, personn.e_mail, personn.QQ, personn.category);if(!strcmp(d_name,personn.name) j=1; m=n;AddSpace(n);n+; if(j) printf(n该名字已找到,他(她)的记录是:n);Print(1);printf(%-4s%-10s%-13s%-14s%

15、-14s%-12s%-12s,personm.num,personm.name, personm.mobile_phone,personm.addr, personm.e_mail, personm.QQ, personm.category);while(TRUE)printf(确定删除吗?(y/n)请选择:);gets(str);if(strlen(str)!=1)printf(选择有误,请重新选择!n);elsech=str0;if(ch!=y & ch!=n)printf(选择有误,请重新选择!n);elseif(ch=y)i=m;while(i=0 & K=0 & k=0 & k=0 & k=3)switch(k)case 1: /按姓名修改char m_name10;n=0;j=0;m=0;printf(n请

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1