ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:193.89KB ,
资源ID:12145061      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12145061.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通讯录系统课程设计实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通讯录系统课程设计实验报告.docx

1、通讯录系统课程设计实验报告1系统可行性分析21.1软硬件环境21.11软件环境21.12 硬件环境 21.2系统可行性分析分类21.21技术可行性21.22 经济可行性 21.23管理可行性22 需求规格说明书22.1模块要求32.2 设计要求32.3 设计要求功能分析33 设计规格说明书33.1 通讯录总的流程图43.2 创建通讯录的流程图 4 3.3 添加通讯录记录的流程图53.4 查找联系人记录的流程图 54 测试策略与方案64.1测试类型64.2 测试项目7 4.3 测试环境与配置74.4 输入数据设置 74.5 输入功能设置 85 课程设计总结10参考文献10附件:程序源代码111系

2、统可行性分析1.1软硬件环境分析1.11软件环境用户端 windows2000 windows2003 windowsxp win7服务器端 windowsxp及以上的操作系统编程语言:c+1.12硬件环境有高性能的电子计算机,大容量的存储装置,个人电脑及连接起来的网线等,组成信息资源共享的计算机网络等1.2系统可行性分析分类1.21技术可行性 可以用C语言和相应的软硬件环境实现1.22经济可行性 在经济上,用此系统加强了通讯系统信息管理效率,可以省人力资源的开支1.23管理可行性分析 在工作上,获取信息量相对较大,开发了此系统,提高了获取信息的效率,方便信息储存和修改及以后随时查找信息系统分

3、析结论 该系统是一个比较人性化的管理系统2需求规格说明书2.1模块要求:第一个模块主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块Menu()的功能是:显示英文提示选单。 第三个模块Quit()的功能是:退出选单。 第四个模块Create()的功能是:创建新的通讯录。 第五个模块Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中

4、没有此人的信息,并返回选单。 第八个模块Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。 第九个模块List()的功能是:显示通讯录中的所有记录。;2.2设计要求:2.21每条信息至包含 :姓名(NAME )、性别(GENDER)、电话(TEL) 、城市(CITY)邮编(EIP)几项。2.22 作为一个完整的系统,应具有友好的界面和较强的容错能力2.3系统功能需求分析:创建:创建新的通讯录 添加:添加通讯录记录查询:查询通讯录记 修改:修改通讯录记录删除:删除通讯录记录 显示:显示通讯录记录3 设计规格说明书3.1总体设计分析流程图1

5、2 3 4 5 6 7 8break break break break break break break break3.2部分模块设计分析3.21创建:创建新建的通讯录流程图 真 假3.22添加: 添加新的通讯录记录流程图 真 假3.23查找:按姓名查找的流程图 真 假4测试策略与方案4.1 测试类型测试类型测试内容测试目的所用的测试工具和方法功能测试测试创建,添加和查找的功能核实所有功能均已正常实现1.流程检验2.数据精确采用黑盒测试用户界面测试1.导航、链接、页面结构2.友好性、易用性、合理性、一致性、正确性等核实各个窗口风格都与基准版本保持一致,或符合可接受标准,能够保证用户界面的友

6、好性、易操作性,而且符合用户操作习惯4.2 测试项目组装测试:看程序是否按设计的流程运行。确认测试:利用各种类型的数据,测试系统的健壮性。4.3测试环境与配置资源名称/类型配置测试PC(2台)硬盘在250GB,内存2GB应用软件Microsoft Office,VC+6.0功能测试工具界面测试工具4.4 输入数据测试测试目标:增加通讯录成员,输入数据是否合理。测试方法:1.姓名: 2.性别:男女 3.城市:三个汉字20个汉字其他非法字符 4.电话:八个数字十一个数字5.邮编: 4.5功能测试测试目标:检查通讯录系功能是否正确,完善。测试方法:创建新的通讯录 当输入0时退出创建在软件中点击查询,

7、出现查询对话框,输入查询条件,则界面显示符合条件的记录。若输出不存在的电话号码,则结果显示如下:若输入存在的电话号码,则结果显示如下:在软件中点击增加,出现增加对话框,此时输入各个域的内容,再点击对话框中的增加按纽,则在数据库中增加了一个新记录,并在界面中的数据库列表列出增加后的记录。、5课程设计总结虽然做过几个关于数据结构实验报告,但我还是第一次做课程设计,而且第一次参见团队编程。刚开始的时候因为把各个模块分隔开,让我们有点无所适从,后来我们小组认真研究了题目,翻阅了一些资料商量出了主题思路,整个程序才有了支架。接下来就是分配模块,我所分配的三个模块是创建通讯录,添加通讯录和查询通讯录,刚开

8、始觉的三个模块还蛮好编程的,后来发现自己平时没有掌握好的知识在这次实验中彻底暴露出来,不仅编程过程磕磕绊绊,几度中断;而且编程成品后漏洞百出。经过不断思考,不断查阅资料和上机运行,向同学请教,才终于解决其中大部分问题,使这几个模块逐渐趋于完整,当然还存在一些问题没有解决比如输入数据的格式并没有给予适当的限制,界面也并不是太完美有点凌乱,由于我只知道上课听讲,下课就把课本丢一边没有去深究课本里知识的缘故,导致所有的知识点都是一知半解的。接下来的问题是把三个人的模块合起来的时候,整体构架的一些瑕疵,删删改改又耗费不少时间。尽管程序还有许多漏洞,还有一些遗憾,不过当一个程序运行成功的时候那种喜悦是无

9、法言语的,那种成无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。课程设计的实验报告是比较难写的,没写过这样的报告,老师给出的格式虽然很详细,但是越是详细,越是难以理解。参考文献【1】严蔚敏 吴伟民.数据结构(C语言版).清华大学出版社,2010,33,334.【2】谭浩强 张基温.C语言程序设计教程. 高等教育出版社,1991,1,324.附程序源代码#include #include #include #include #include #define LEN sizeof(struct record) /计算字节/#define NUL

10、L 0int num;/通讯录文件中的联系人计数器struct recordchar name100;char gender100;char tel100;char city100;char eip100;struct record *next;struct record *head;void menu();/显示英文提示选单函数void creat();/创建新的通讯录void add();/将某联系人增加到通讯录中void find();/综合查询某联系人的通讯信息void alter();/修改通讯录中某联系人的信息void deleteb();/删除通讯录中某联系人的信息void li

11、st();/显示通讯录中的所有记录void save();/用于将对通讯录的更新保存到文件中void load();/创建新的通讯录void quit(int *f);/退出选单void shifang();/ 释放内存函数声明void main() int choic; head=NULL; int flag=1; printf(使用说明:在当通讯录中存在信息时每次使用通讯录前应先加载通讯录文件!n); while(flag) menu(); scanf(%d,&choic); switch(choic) case 1: if(head=NULL) creat(); /创建 else shi

12、fang(); creat(); /重新创建 break; case 2: add(); save();/将追加的记录保存到文件中 break; case 3: find(); printf(t); system(pause); /使系统暂停 break; case 4: alter(); save();/将修改后的记录保存到文件中 printf(t); system(pause); break; case 5: deleteb(); printf(t); system(pause); break; case 6:load();break; case 7:quit(&flag);break;

13、case 8: list(); printf(t); system(pause); break; void menu()system(cls);printf( ttn); printf( tt n);printf( tt 欢迎使用通讯录 n); printf( tt n);printf( tt 1.创建新的通讯录 2.增加联系人 n);printf( tt n);printf( tt 3.查询联系人信息 4.修改联系人信息 n);printf( tt n); printf( tt 5.删除某联系人信息 6.加载通讯录文件 n); printf( tt n); printf( tt 7.退出选单

14、 8.显示通讯录中所有记录n); printf( tt n); printf( ttnn); printf(ntt请输入您选择的操作:); void creat() /*函数void creat()创建联系人的个人信息*/ struct record *p1,*p2; char name100;num=0;p1=head=(struct record *)malloc(LEN);p2=p1;system(cls); printf(请输入姓名,性别,电话,城市及邮编(结束操作请按0号键)n); getchar(); printf(输入姓名:); gets(name);if(strcmp(name

15、,0)!=0&name) strcpy(p1-name,name); printf(输入性别(男 or 女):); gets(p1-gender); printf(输入8位电话号码或11位手机号(0-9):); gets(p1-tel); printf(输入所在城市:); gets(p1-city); printf(输入邮编(0-9):); gets(p1-eip); p1-next=NULL; while(1) num=num+1;/通讯录文件中的联系人计数器增1 if(num=1) head=p1; else p2-next=p1; p2=p1; printf(请输入姓名:); gets(

16、name); if(strcmp(name,0)=0)/当输入姓名为0时则表示此次对记录的录入结束 break; else/继续录入 p1=(struct record *)malloc(LEN); strcpy(p1-name,name); printf(输入性别(男 or 女):); gets(p1-gender); printf(输入8位电话号码或11位手机号(0-9):); gets( p1-tel); printf(输入所在城市:); gets(p1-city); printf(输入邮编(0-9):); gets(p1-eip); p1-next=NULL; p2-next=NULL

17、; save(); return; else return; void list()/用于输出通讯录中的所有联系人信息的函数 struct record *p;if(head!=NULL)/通讯录非空时,列出所有联系人信息 system(cls); p=head; printf(本通讯录现在共有%d人:n,num); printf(-姓名-性别-手机-城市-邮编n); while(p!=NULL) printf(= %s,p-name); printf( ); printf(%s,p -gender); printf( ); printf(%s,p-tel); printf( ); print

18、f(%s,p-city); printf( ); printf(%s,p-eip); printf( n); p=p-next; printf(=n);else /当通讯录为空时,给出提示信息 printf(通讯录为空,无法输出!);void add()/增加记录函数 struct record *p0,*p1,*p2;system(cls);/进行系统清屏char name100,ch;p1=head;printf(请输入所要增加的联系人的各项信息:n);getchar();/吸收回车符或空格printf(请输入姓名:); gets(name);if(strcmp(name,0)=0)&na

19、me) printf(姓名不能为0,增加失败!n); return;else p0=(struct record *)malloc(LEN); strcpy(p0-name,name); printf(输入性别(男 or 女):); gets(p0-gender); printf(输入8位电话号码或11位手机号(0-9):); gets(p0-tel); printf(输入所在城市:); gets(p0-city); printf(输入邮编(0-9):); gets(p0-eip); num=num+1; if(head=NULL) head=p0; p0-next=NULL; return;

20、 else while(strcmp(p0-name,p1-name)0&(p1-next!=NULL)/查找结点所应添加的相应位置 p2=p1; p1=p1-next; if(strcmp(p0-name,p1-name)name,p1-name)=0)/把结点有序地增加到链表中 if(head=p1) head=p0;/把结点添加到表头 else p2-next=p0; p0-next=p1; else /把结点添加到表尾 p1-next=p0; p0-next=NULL; printf(n是否继续添加?(Y/N):); ch=getchar(); if(ch=y)|(ch=Y) add(

21、); return; void deleteb() /删除记录 system(cls); struct record *p,*q; char sname100,ch; p=head;if(head=NULL) printf(通讯录为空!无法删除!n); return; printf(请输入欲删除记录的姓名:); scanf(%s,sname); while(strcmp(p-name,sname)!=0 & p-next!=NULL) /查找节点并删除该节点 q=p; p=p-next; if(strcmp(p-name,sname)=0) printf(%s的通讯内容如下:n,sname);

22、 printf(-姓名-性别-手机-城市-邮编n); printf(=n); printf(= %s,p-name);printf( ); printf(%s,p-gender);printf( ); printf(%s,p-tel);printf( ); printf(%s,p-city);printf( ); printf(%s,p-eip); printf( n); printf(=n); getchar();/吸收回车键和空格 printf(您确认要删除此人的通讯记录吗?(Y/N):); ch=getchar(); if(ch=Y)|(ch=y) if(p=head) /当通讯录中只有

23、一条记录时 head=p-next; else q-next=p-next; num=num-1;/通讯录文件中的联系人计数器减1 printf(删除成功!n); save();/保存到文件中 else if(ch=N)|(ch=n) return; else printf(通讯录中无此人信息!n); return; void quit(int *f)/退出选单 *f=0 ; printf(谢谢您本次的使用!n); void save()/将通讯录写入文件的函数 FILE *fp;struct record *p1;char tong100;if(head=NULL) fp=fopen(ton

24、gxun.txt,w); fp=NULL;/将通讯录文件清空 return;getchar();/吸收回车键和空格printf(请输入要保存通讯录的文件名:);gets(tong);fp=fopen(tongxun.txt,w);if(fp=NULL) printf(打开通讯录文件失败!n); return;p1=head;fprintf(fp,姓名 性别 手机 城市 邮编n);for(;p1!=NULL;) fprintf(fp,%s %s %s %s %sn,p1-name,p1-gender,p1-tel,p1-city,p1-eip); p1=p1-next;printf(保存完毕!n);fclose(fp);void load()/文件加载函数 FILE *fp;char tong100;struct record *p1,*p2;system(cls);getchar();printf(正在加载通讯录文件!n);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1