肇庆学院C语言联系人程序设计_第1页
肇庆学院C语言联系人程序设计_第2页
肇庆学院C语言联系人程序设计_第3页
肇庆学院C语言联系人程序设计_第4页
肇庆学院C语言联系人程序设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业技能培训报告完成时间:2016年月日第1部分:实践培训主题和要求31.问题32.功能要求33.任务分工4第二部分:设计培训主题功能41.总体设计42.算法设计53.数据结构64.程序代码设计65.测试和调试7第三部分是实训总结附录A程序列表9附录B用户手册18第1部分:实践培训主题和要求1.问题被提出来了设计一个模拟安卓手机的通讯录管理系统,实现手机通讯录的多种管理。2.功能要求(1)新功能可以输入新的数据记录,每个记录包括:姓名、电话分类(可选:移动电话、住宅电话、公司电话等)。),电话号码和其他信息。当地址簿中的记录数量超过一定数量时,可以表明存储空间已满,不能输入新数据;输入的新数据

2、可以按升序自动编号。(2)搜索功能选择此功能时,您可以选择按姓名或电话号码搜索。当搜索成功时,将显示所有记录的数据信息。(3)拨号功能它可以显示通讯录中所有人的名字。当选择某个名字时,通过模拟屏幕上的打字机效果,该人的电话号码中的每个号码都依次显示相应的拨号声音。(4)修改功能当选择一个人的名字时,可以修改该人的相应数据。(5)删除功能当选择一个人的名字时,可以删除该人的相应数据,并自动调整后续条目的序号。(6)其他要求(1)只有c语言可以用于系统设计,源程序应该有适当的注释,使程序易于阅读;至少采用文本菜单界面(最好采用图形菜单界面);手机通讯录可以保存为文件,建议使用结构、链表等数据结构;

3、可以模拟当前流行的安卓手机系统,自动添加新的功能模块,并对通讯录进行全方位管理(可以根据需要增加额外的点数)。3.任务分工独立完成。第二部分设计实训课题的功能1.总体设计输入数据起动加浓系程序模块图保存数据出口系统删除联系人修改联系人触摸拨号查找联系人查看联系人创建新联系人每个功能的主要功能。1.void fileR:访问文件中的数据,读取数据函数并简化代码。2.void fileW:覆盖文件中的数据,编写数据函数,并简化代码。3.void connectnew:创建新联系人。4.void Printf:查看所有联系人。5 .无效搜索:找到联系人并拨号。6 .无效拨号:直接按键拨号。7 .作废

4、变更:修改联系人。8 .作废删除:删除联系人。9.int主机:主机功能。10.作废:铃声功能,简化代码。2.算法设计A.启动程序首先,在进入主功能之前,将存储在指定文件中的数据读入系统。其次,所采用的方法是在Void fileR函数中一次读取新创建的链表中的一个节点。用这种方法把所有数据读入系统。第三:然后选择功能。B.创建新联系人也就是说,直接创建一个新节点,输入它,然后用phead或pend连接它。之后,使用文件w功能覆盖原始文件数据,从而达到文件和程序数据同步的效果。C.查看联系人创建一个T结构指针,并将其赋给phead值,然后使用链表结构逐个打印出每个联系人。D.查找联系人创建一个T结

5、构指针,并将其赋给phead值,然后逐个查找同一项目的联系人。E.按键拨号输入一个字符串并调用bell函数。F.修改联系人创建一个T型结构指针,并将其赋给phead值,逐个查找同一项目的联系人,然后对其进行修改,并将其与fileW数据同步。G.删除联系人创建一个Q和T的结构指针,并将其赋给phead的值。逐个查找同一项目的联系人。Q用于存储T的前一个节点,找到后,将T的*下一个值赋给Q的*下一个,删除该节点。然后使用fileW函数来同步数据。3.数据结构结构m意义主要变量意义Num联系号码Int tnum用于联系号码姓名40联系人姓名结构m *phead链表头指针Phonea20联系电话一号结

6、构m *pend链表的结束指针Phoneb20二号联系人文件*fp文件指针Phonec20三号联系人结构m *pnew,*t,*q临时链表节点指针*下一步指向下一个节点Int i功能选项的选择4.程序代码设计1功能界面在主功能下。使用开关进行功能选择,并连接到每个功能。2个文件服务器的功能如下:void FieR()结构m * pnewfp=fopen(x.txt , r );pnew=(struct m *)malloc(sizeof(struct m);而(fscanf(fp),%d%s%s%s%s ,pnew-num,pnew-name,pnew-phonea,pnew-phoneb,p

7、new-phonec)!=EOF)tnumpnew-num=tnum;pnew-next=空;if(tnum=1)pend=phead=pnew否则pend-next=pnew;pend=pnew。pnew=(struct m *)malloc(sizeof(struct m);免费(pnew);f close(FP);3 void fileW()打开文件,并逐个节点将其写入fprintf中。4 void connectnew为信息存储创建新的节点pnew。下面是连接节点操作。if(phead=NULL)phead=pend=pnewpend-next=空;否则pnew-next=空;pend

8、-next=pnew;pend=pnew。5 void Printf相对简单,可以直接打印节点数据。6 void Search定义一个字符串s40,建立*t以给出头节点地址,然后逐个搜索。7空号拨号相对简单,输入一个空字符串,并执行振铃功能和拨号。8无效更改修改联系人无效搜索类似。9 void Delete首先使用搜索类似的代码来查找,但使用*p来保留前一个节点,然后连接它们,如下所示:if(t=phead)phead=phead-下一个;其他q-next=t-next;完整程序见附录a5.测试和调试这个最好拍个截图!测试数据等等,其实最好是双面打印!表1测试案例测试数据类型测试数据预期结果测

9、量结果法律数据Asdf名称asdf符合1234579电话1234579符合非法数据a(菜单选择)等同于选项1违法的不不不第三部分是实训总结在这次培训中,我觉得我的C语言有了很大的提高,我有信心使整个系统。老实说,我可以自己做这样一个系统。我认为它非常英俊有趣。虽然在这个过程中我遇到了一点困难,但在我室友的指导下,我学会了如何将文件输入链表,这是一个重要的知识点。另外,我精通链表的许多操作,这是一个真正意想不到的收获。当然,有几个错误或想法需要仔细写下来,以避免再次发生:1.已经确定它是一个全局变量。如果需要使用它,不要将函数的局部变量设置为相同的标识符,否则不会收到结果。2.简化代码并创建更多

10、函数,这样您就不必键入太多代码并节省时间。3.作为一个系统,界面的美非常重要,有一点音乐,一点颜色,一点整洁和舒适。4.因为时间紧迫,代码风格有点糟糕,代码也有点混乱。5.有时候,操作起来很困难,结果是100度。它非常简单,你只需要再输入两行代码,比如程序背景,调用声音等等。6.也是因为时间短(有准备考试),许多想法和功能没有得到改善,这是一个很大的遗憾。目标最后,我要感谢我的室友指出了一些陷阱。虽然我开始做的时候觉得很失败,但是当我慢慢地完成后,我觉得很有成就感。最后,我可以说我会编程,能够编译一个程序已经是一个小小的成功。英俊。上面。附录a程序列表#包括#包括#包括#包括空丁()嘟嘟声(6

11、59,500);嘟嘟声(659,500);嘟嘟声(698,500);嘟嘟声(784,500);嘟嘟声(784,500);嘟嘟声(698,500);嘟嘟声(659,500);嘟嘟声(587,500);嘟嘟声(522,500);嘟嘟声(522,500);嘟嘟声(587,500);嘟嘟声(659,500);嘟嘟声(587,700);嘟嘟声(522,250);嘟嘟声(522,250);结构mint numchar name40,phonea20,phoneb20,phone c20;结构m *下一步;int nummax=10000,tnum=0;结构m *phead=NULL,* pend=NULL

12、文件*fp。void FieR()结构m * pnewfp=fopen(x.txt , r );pnew=(struct m *)malloc(sizeof(struct m);而(fscanf(fp),%d%s%s%s%s ,pnew-num,pnew-name,pnew-phonea,pnew-phone(pnew-phone)(pnew-phone(pnew-phone)。=eof)tnumpnew-num=tnum;pnew-next=null;if(tnum=1)pend=phead=pnew其他pend-next=pnew;pend=pnewpnew=(struct m *)mal

13、loc(sizeof(struct m);自由(pnew);f close(FP);请参阅文件w()结构m * pnewif(fp=fopen(x.txt , w )=null)打印文件(! n ;pnew=(struct m *)malloc(sizeof(struct m);pnew=ph EAD同时(pnew!=空)fprinff(FP,%d %s %s %s %sn)、pnew-num、pnew-name、pnew-phone、pnew背景音乐,pnew-电话;pnew=pnew-下一步;f close(FP);自由(pnew);请参阅connectnew()结构m * pnewpne

14、w=(struct m *)malloc(sizeof(struct m);printf( n n n t t请输入名称3330 );if(tnum=nummax)printf( t t原来是王佳芝,你是说.我的天);其他tnumpnew-num=tnum;scanf(% s,pnew名称”;printf( t t请输入电话号码a : );scanf(% s ,pnew-phone);printf( t t请输入电话号码b : );scanf(% s ,pnew-phone b);printf( t t请输入电话号码c 3330 );scanf(% s ,pnew-phone);if(ph EAD=null)phead=pend=pnewpend-next=null;其他pnew-next=null;pend-next=pnew;pend=pnewfilew();请参见Printf()结构m * t=nullt=ph EA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论