版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计报告(个人通信录管理系统)基于链表的个人通信录管理系统课程设计任务书院系:.通信与信息工程学院班级:通信工程1104班成员:时间:2012年7月2日课程设计情况课程设计名称基丁链表的个人通信录管理系统指导教师姓名职称需学生数6人组长杨文刚成员李岩、王皓升、罗洋、王志旭、沈洋各成员主要负责内容杨文刚负责主体函数框架建立和函数模块整合李岩负责程序的添加模块王皓升负责程序的删除模块王志旭负责程序的查找模块罗洋负责程序的输出模块沈洋负责程序的输入模块程序的调试和测试由小组成员共同参与完成课程设计的报告撰写由杨文刚、李岩完成1. 设计目的12. 总体设计23. 详细设计34. 程序调试与
2、测试55. 程序清单与执行结果6程序活单6程序执行结果146. 课程设计总结201. 设计目的1.1问题描述编写一C语言程序,其功能是建立一个基丁链表的个人通信录管理系统,个人通信录进行建立、输出、添加、查找及删除运行结果进行打印等相关操作。1.2问题分析首先,选择合适的存储结构构造个人通信录,对该程序可以分为几个模块进行分析,每个模块在该程序中的作用进行了解。最后用设计连接图将各模块之间的联系连接起来,以方便我们更容易理解。然后,该程序需要一个详细的设计流程图来表示各个步骤所完成的先后顺序,(如,对个人通信录进行添加,查找输出打印结果)。最后,按流程图进行编写个人通信录的程序,输出结果,并将
3、打印的结果显示出。1.3设计分析本次实验设计主要是建立个人通信录,要实现个人通信录的建立,个人通信录的查找,个人通信录的添加及个人通信录的删除功能。.设计需求上我们需要掌握以下几点:(1) .设计部分写出本次实验的详细设计方案。1. 画出该次程序的流程图。2. 分析该次程序的程序活单,进行程序测试并输出运行结果。3. 对该次程序中个函数的功能分析结果。4. 对该次实验完成后有总结。(2) .设计大纲了解,分析这次实验的主要问题。1. 讨论解决问题的方案。2. 分配组员的个人任务。3. 进行各部分的整合、修改、完善。4. 进行这次实验的总体报告实验总结。2. 总体设计2.1程序设计组成框图2.2
4、流程图个人通信录主函数模块个人通信录建立模块个人通信录输出模块个人通信录添加噂1个人通信录删除模块个人通信录查找模块详细设计3.1模块功能说明3.1.1通信录建立模块创建链表,并返回表头指针(创建新节点;while(判断读入编号)读入联系人信息;保存到指定的域;指针指向下一新节点;(按指定格式输出通讯录表头信息;if(头指针不为空)按指定格式输出联系人信息;记录联系人数;else通信录为空;3.1.3通信录添加模块(新建节点;屏幕提示输入要添加的联系人信息;读入联系人信息;按联系人编号升序排序;3.1.4通信录删除模块提示输入要删除的联系人编号;读入编号信息;if(找到)输出找到的联系人信息;
5、询问是否删除该联系人;else提示没有该联系人;3.1.5通信录查找模块提示输入要查找的联系人身份证号;读入身份证号信息;If(找到)显示查找到的联系人信息;else提示没有该联系人;程序调试与测试参照教材编写完程序的各个模块后,我们将各个模块和主函数整合,运行之后主要存在以下几个问题:1. 程序输出信息部分不正确运行程序,输入通信录中联系人信息后,程序输出的电话号码和身份证号信息错误,有时还会出现负数。经过查找发现在读入联系人信息时,这两项采用了长整型数据类型,但是长整型最大支持的值仍然小于电话号码和身份证号的值。我们换用字符申类型读入信息后为问题解决。2. 结束联系人信息的输入(以数字0结
6、束)存在问题运行程序,我们在输入联系人信息完毕后是用数字0结束的,但是当我们输入完信息后,得将下一个联系人的所有信息全部输入为数字0时,程序才会结束输入。针对这个问题我们修改了输入模块的循环体顺序,让程序先判断输入的联系人编号是否为0,是0时结束输入,不是0时继续读入联系人信息。这样在我们结束输入时只需按一次0即可结束输入。3. 联系人的查找存在问题我们在查找(用身份证号)联系人时,当我们输入通信录中存在的联系人的身份证号时,程序能准确查找到该联系人;但当我们输入的身份证号信息在通信录中不存在时,程序会非法结束。为此,我们请教了老师,修改了if语句中的判断条件,程序能够在我们输入的身份证号信息
7、不存在时正常提示“通信录中没有该联系人”,问题解决。因为我们的程序是根据教材中的程序编写的,所以在调试过程中,程序没有出现大的错误,在模块连接上也没有问题,只是有一些输入输出以及一些循环体上的错误。3. 程序清单与执行结果5.1程序清单/*主控菜单程序*/#includestdio.h#includestdlib.h#includestring.hstructper/*定义结构体类型*/(longintnum;charname20;chartel12;charmail30;charadd50;longintmnum;charid18;structper*next;声明建立通信录函数*/声明输出
8、通信录函数*/声明添加联系人函数*/声明删除联系人函数*/声明建立通信录函数*/声明输出通信录函数*/声明添加联系人函数*/声明删除联系人函数*/声明查找联系人函数*/structper*jianli();/*voidshuchu(structper*head);/*structper*tianjia(structper*head);/*structper*shanchu(structper*head);/*structper*chazhao(structper*head);/*structper*head=NULL;voidmain()/*主函数*/intselect;intpass1;in
9、tpass=123456;printf(n欢迎使用个人通信录管理系统,请输入登录密码:,scanf(%d”,&pass1);if(pass=pass1)(printf(n登录成功!nn);do(printf(nt*printf(nt*printf(nt*欢迎进入个人通信录管理系统*W;/*主控菜单*/printf(nt1:建立通信录2:输出通信录3:添加联系人4:删除联系人5:查找联系人0:退出系统:num=num1;p1-num=num1;p1-num=num1;/*存入联系人的信息*/strcpy(p1-name,name1);strcpy(p1-tel,tel1);strcpy(p1-i
10、d,id1);strcpy(p1-mail,mail1);strcpy(p1-add,add1);p1-mnum=mnum1;p1-next=NULL;p1-next=NULL;/*将next域置为空,表示尾节点*/if(head=NULL)head=p1;head=p1;head=p1;/*第一个新建节点是表头*/elsep2-next=p1;p2-next=p1;p2-next=p1;/*原表尾的下一个节点是新节点*/p2=p1;/*新建节点成为表尾*/scanf(%d,&num1);returnhead;/*返回表头指针*/*输出通信录函数*/voidshuchu(structper*h
11、ead)(structper*p;统计节点数,即联系人数*/intn=0;/*printf(nt*通*信*n);printf(n%-5s%-12s%-12s%-19s%-17s%-9s%-7sn”,编号”,姓名”,电话号码”,”身份证号,邮箱,地址,邮编);if(head!=NULL)(for(p=head;p!=NULL;p=p-next)/*如果到达尾节点退出循环,否则继续*/(printf(%-5d%-12s%-12s%-19s%-17s%-9s%-7dn”,p-num,p-name,p-tel,p-id,p-mail,p-add,p-mnum);n+;printf(联系人总数:%dnn
12、,n);elseprintf(n对不起,该通信录中没有任何联系人!nn);/*添加联系人函数*/structper*tianjia(structper*head)(structper*p;structper*p1;structper*p2;/*新建节点p*/p2=head;p=(structper*)malloc(sizeof(structper);printf(请输入要添加的联系人的编号、姓名、电话、身份证号、邮箱、地址、邮编:n);scanf(%d%s%s%s%s%s%d”,&p-num,p-name,p-tel,p-id,p-mail,p-add,&p-mnum);printf(成功添加
13、联系人%s!n,p-name);if(head=NULL)head=p;p-next=NULL;elsewhile(p-nump2-num)&(p2-next!=NULL)/*查找添加位置*/p1=p2;p2=p2-next;if(p-numnum)/*从小到大排列,添加至表内*/if(p2=head)head=p;p-next=p2;elsep1-next=p;p-next=p2;else/*添加至表尾*/p2-next=p;p-next=NULL;return(head);/*删除联系人函数*/structper*shanchu(structperson*head)(structper*p
14、2;structper*p1;intnum1,n;printf(-请输入要删除的联系人编号:);/*根据输入信息查找联系人*/scanf(%d”,&num1);if(head=NULL)(printf(n通讯录为空nn);return(head);p2=head;while(num1!=p2-num&p2-next!=NULL)(p1=p2;p2=p2-next;if(num1=p2-num)(printf(n成功查询到该联系人!n);printf(n%-5s%-12s%-12s%-19s%-17s%-9s%-7sn”,编号,姓名,电话号码”,”身份证号”,邮箱,地址,邮编);printf(%
15、-5d%-12s%-12s%-19s%-17s%-9s%-7d”,p2-num,p2-name,p2-tel,p2-id,p2-mail,p2-add,p2-mnum);printf(-n确定删除?1确定0取消);scanf(%d,&n);switch(n)(case1:(if(p2=head)head=p2-next;elsep1-next=p2-next;free(p2);printf(n成功删除编号为%ld的联系人!nn”,num1);break;case0:printf(n您取消了删除任务,联系人未被删除!n);break;elseprintf(n对不起,该通信录中没有任何联系人!nn
16、);return(head);/*查找函数*/structper*chazhao(structper*head)(structper*p2;charid120;printf(请输入要查找的联系人身份证号:n);scanf(%s”,id1);if(head=NULL)(printf(n通讯录为空nn);return(head);p2=head;while(p2)(if(strcmp(p2-id,id1)=0)(printf(n成功查询到该联系人!n);printf(n%-5s%-12s%-12s%-19s%-17s%-9s%-7sn”,编号,姓名,电话号码”,身份证号”,邮箱”,地址”,邮编);
17、printf(%-5d%-12s%-12s%-19s%-17s%-9s%-7dn”,p2-num,p2-name,p2-tel,p2-id,p2-mail,p2-add,p2-mnum);break;p2=p2-next;if(!p2)printf(n对不起,该通信录没有该联系人!nn);return(head);5.2程序执行结果5.2.1密码登录界面5.2.2密码输入错误界面5.2.3成功登录主界面5.2.4建立通信录5.2.5车刖出通信录5.2.6添加联系人5.2.7添加后输出通信录5.2.8成功查找联系人5.2.9找小到联系人时界面4. 课程设计总结通过这次的课程设计使我们充分了解了个人通信录的建立、输出、添加、删除、查找的基本原理,并可以编写出其程序。虽然说程序不是很完美的,但是总体上完成了老师的要求,当然这只能相对丁我们这些初学者来说。除了课本上仅有的知识外,我们还借用了一些其他书上比较好的算法思想,以至丁让我们的课程设计更加完美。在这次课程设计中,让我们深知仅仅掌握课本上的知识是远远不够的。在刚开始编程时,让我们感觉到自己不知道应该从哪里下手。在操作时,常常会遇到一些棘手的问题难以解决,但经过我们组员的不断思考、共同努力,尝试着去更改出现问题的程序,直至程序可以正常运行输出。开始很困难
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 顺德职业技术学院《汽车专业英语》2024-2025学年第二学期期末试卷
- 护工操作知识竞赛考核试卷含答案
- 单漂流送工安全培训效果模拟考核试卷含答案
- 会展场馆管理师安全理论测试考核试卷含答案
- 圆机操作工创新方法竞赛考核试卷含答案
- 电机检修工岗前规划考核试卷含答案
- 高空外墙清洗员7S执行考核试卷含答案
- 缩聚磷酸盐生产工安全文化竞赛考核试卷含答案
- 瓦楞纸板制作工班组管理评优考核试卷含答案
- 船舶机工班组协作能力考核试卷含答案
- 信息安全及保密意识培训课件
- 新能源材料与器件制备技术 课件全套 张云 第1-13章 概述-环境污染与治理
- 索尼黑卡5说明书
- 2025至2030中国氟化铝行业发展研究与产业战略规划分析评估报告
- 加油站反恐应急预案(3篇)
- 煤矿全员培训机电课件
- 三电保护管理办法
- 2025年四川省自贡市初中学业水平考试中考物理真题试卷(中考真题+答案)
- 道路监理服务方案模板
- 重症肺炎患者护理常规
- 硬度计操作指导书
评论
0/150
提交评论