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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c语言个人通信录管理系统课程设计报告概述.docx

1、c语言个人通信录管理系统课程设计报告概述高级语言程序设计报告(个人通信录管理系统)院 系: 通信与信息工程学院 班 级: 通信工程1104班 成 员: 杨文刚(1107020420) 李 岩(1107020421) 王皓升(1107020417) 罗 洋(1107020418) 沈 洋(1107020419) 王志旭(1107020422) 时 间: 2012年7月2日 基于链表的个人通信录管理系统课程设计任务书课程设计情况课程设计名称基于链表的个人通信录管理系统指导教师姓名职称 需学生数6人组长杨文刚成员李岩、王皓升、罗洋、王志旭、沈洋各成员主要负责内容杨文刚 负责主体函数框架建立和函数模块

2、整合李 岩 负责程序的添加模块王皓升 负责程序的删除模块王志旭 负责程序的查找模块罗 洋 负责程序的输出模块沈 洋 负责程序的输入模块程序的调试和测试由小组成员共同参与完成课程设计的报告撰写由杨文刚、李岩完成1.设计目的12.总体设计23.详细设计34.程序调试与测试 55.程序清单与执行结果 6 5.1 程序清单6 5.2 程序执行结果146.课程设计总结201.设计目的1.1 问题描述编写一C语言程序,其功能是建立一个基于链表的个人通信录管理系统,个 人通信录进行建立、输出、添加、查找及删除运行结果进行打印等相关操作。1.2 问题分析首先,选择合适的存储结构构造个人通信录,对该程序可以分为

3、几个模块进行分析,每个模块在该程序中的作用进行了解。最后用设计连接图将各模块之间的联系连接起来,以方便我们更容易理解。然后,该程序需要一个详细的设计流程图来表示各个步骤所完成的先后顺序,(如,对个人通信录进行添加,查找输出打印结果)。最后,按流程图进行编写个人通信录的程序,输出结果,并将打印的结果显示出。1.3 设计分析 本次实验设计主要是建立个人通信录,要实现个人通信录的建立,个人通信录的查找,个人通信录的添加及个人通信录的删除功能。.设计需求上我们需要掌握以下几点:(1).设计部分1. 写出本次实验的详细设计方案。2. 画出该次程序的流程图。3. 分析该次程序的程序清单,进行程序测试并输出

4、运行结果。4. 对该次程序中个函数的功能分析结果。5. 对该次实验完成后有总结。(2).设计大纲1. 了解, 分析这次实验的主要问题。2. 讨论解决问题的方案。3. 分配组员的个人任务。4. 进行各部分的整合、修改、完善。5. 进行这次实验的总体报告实验总结。2.总体设计2.1 程序设计组成框图 图12.2 流程图3.详细设计3.1 模块功能说明3.1.1 通信录建立模块创建链表,并返回表头指针 创建新节点; while (判断读入编号)读入联系人信息;保存到指定的域;指针指向下一新节点;3.1.2通信录输出模块 按指定格式输出通讯录表头信息;if(头指针不为空) 按指定格式输出联系人信息;记

5、录联系人数;else通信录为空;3.1.3 通信录添加模块 新建节点;屏幕提示输入要添加的联系人信息;读入联系人信息;按联系人编号升序排序;3.1.4 通信录删除模块提示输入要删除的联系人编号;读入编号信息;if(找到)输出找到的联系人信息;询问是否删除该联系人;else提示没有该联系人;3.1.5 通信录查找模块提示输入要查找的联系人身份证号;读入身份证号信息;If(找到)显示查找到的联系人信息;else 提示没有该联系人;4.程序调试与测试参照教材编写完程序的各个模块后,我们将各个模块和主函数整合,运行之后主要存在以下几个问题:1. 程序输出信息部分不正确运行程序,输入通信录中联系人信息后

6、,程序输出的电话号码和身份证号信息错误,有时还会出现负数。经过查找发现在读入联系人信息时,这两项采用了长整型数据类型,但是长整型最大支持的值仍然小于电话号码和身份证号的值。我们换用字符串类型读入信息后为问题解决。2. 结束联系人信息的输入(以数字0结束)存在问题运行程序,我们在输入联系人信息完毕后是用数字0结束的,但是当我们输入完信息后,得将下一个联系人的所有信息全部输入为数字0时,程序才会结束输入。针对这个问题我们修改了输入模块的循环体顺序,让程序先判断输入的联系人编号是否为0,是0时结束输入,不是0时继续读入联系人信息。这样在我们结束输入时只需按一次0即可结束输入。3. 联系人的查找存在问

7、题我们在查找(用身份证号)联系人时,当我们输入通信录中存在的联系人的身份证号时,程序能准确查找到该联系人;但当我们输入的身份证号信息在通信录中不存在时,程序会非法结束。为此,我们请教了老师,修改了if语句中的判断条件,程序能够在我们输入的身份证号信息不存在时正常提示“通信录中没有该联系人”,问题解决。因为我们的程序是根据教材中的程序编写的,所以在调试过程中,程序没有出现大的错误,在模块连接上也没有问题,只是有一些输入输出以及一些循环体上的错误。5.程序清单与执行结果5.1 程序清单/*主控菜单程序*/#include stdio.h#include stdlib.h#include strin

8、g.hstruct per /*定义结构体类型*/ long int num; char name20; char tel12; char mail30; char add50; long int mnum; char id18; struct per *next;struct per *jianli(); /*声明建立通信录函数*/void shuchu(struct per *head); /*声明输出通信录函数*/struct per *tianjia(struct per *head); /*声明添加联系人函数*/struct per *shanchu(struct per *head

9、); /*声明删除联系人函数*/struct per *chazhao(struct per *head); /*声明查找联系人函数*/struct per *head=NULL;void main() /*主函数*/ int select; int pass1; int pass=123456; printf(n欢迎使用个人通信录管理系统,请输入登录密码:); scanf(%d,&pass1); if(pass=pass1) printf(n登录成功!nn); do printf(nt* 欢迎进入个人通信录管理系统 *n); /*主控菜单*/ printf(nt - 1: 建 立 通 信 录

10、 2: 输 出 通 信 录 3: 添 加 联 系 人 4: 删 除 联 系 人 5: 查 找 联 系 人 0: 退 出 系 统 num=num1; /*存入联系人的信息*/ strcpy(p1-name,name1); strcpy(p1-tel,tel1); strcpy(p1-id,id1); strcpy(p1-mail,mail1); strcpy(p1-add,add1); p1-mnum=mnum1; p1-next=NULL; /*将next域置为空,表示尾节点*/ if(head=NULL) head=p1; /*第一个新建节点是表头*/ else p2-next=p1; /*

11、原表尾的下一个节点是新节点*/ p2=p1; /*新建节点成为表尾*/ scanf(%d,&num1); return head; /*返回表头指针*/*输出通信录函数*/void shuchu(struct per *head) struct per *p; int n=0; /*统计节点数,即联系人数*/ printf(nt*通*信*录*n); printf(n%-5s%-12s%-12s%-19s%-17s%-9s%-7sn,编号,姓名,电话号码,身份证号,邮箱,地址,邮编); if(head!=NULL) for(p=head;p!=NULL;p=p-next) /*如果到达尾节点退出

12、循环,否则继续*/ 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,n); else printf(n对不起,该通信录中没有任何联系人!nn);/*添加联系人函数*/struct per*tianjia(struct per*head) struct per*p; struct per*p1; struct per*p2; p2=head; p=(struct per*)malloc(sizeof(struct per); /

13、*新建节点p*/ 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(成功添加联系人%s !n,p-name); if(head=NULL) head=p; p-next=NULL; else while(p-nump2-num)&(p2-next!=NULL) /*查找添加位置*/ p1=p2; p2=p2-next; if(p-numnum) /*从小到大排列,添加至表内*/ if(p2=h

14、ead) head=p; p-next=p2; else p1-next=p; p-next=p2; else /*添加至表尾*/ p2-next=p; p-next=NULL; return(head);/*删除联系人函数*/struct per * shanchu(struct person*head) struct per *p2; struct per *p1; int num1,n; printf(请输入要删除的联系人编号:); /*根据输入信息查找联系人*/ scanf(%d,&num1); if(head=NULL) printf(n通讯录为空nn); return(head);

15、 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(%-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(

16、%d,&n); switch(n) case 1: if(p2=head) head=p2-next; else p1-next=p2-next; free(p2); printf(n成功删除编号为%ld的联系人!nn,num1);break; case 0: printf(n您取消了删除任务,联系人未被删除!n); break; else printf(n对不起,该通信录中没有任何联系人!nn); return(head);/*查找函数*/struct per *chazhao(struct per *head) struct per*p2; char id120; printf( 请输入要

17、查找的联系人身份证号: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,编号,姓名,电话号码,身份证号,邮箱,地址,邮编); printf(%-5d%-12s%-12s%-19s%-17s%-9s%-7dn,p2-num,p2-name,p2-tel,p2-id,p2-mail,p2-add,p2-mn

18、um); 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 找不到联系人时界面5.2.10 删除询问界面5.2.11 确认后成功删除联系人6.课程设计总结 通过这次的课程设计使我们充分了解了个人通信录的建立、输出、添加、删除、查找的基本原理,并可以编写出其程序。虽然说程序不是很完美

19、的,但是总体上完成了老师的要求,当然这只能相对于我们这些初学者来说。除了课本上仅有的知识外,我们还借用了一些其他书上比较好的算法思想,以至于让我们的课程设计更加完美。在这次课程设计中,让我们深知仅仅掌握课本上的知识是远远不够的。在刚开始编程时,让我们感觉到自己不知道应该从哪里下手。在操作时,常常会遇到一些棘手的问题难以解决,但经过我们组员的不断思考、共同努力,尝试着去更改出现问题的程序,直至程序可以正常运行输出。开始很困难,但在老师和同学们的帮助下,我们了解了很多操作,使后面变得更容易操作。 程序设计过程中,小组中的各成员快速行动,积极配合,分工合作,在完成了各自的函数模块程序的编写后,有积极参与程序的调试与测试,并快速的发现和解决了问题,过程中遇到了查找模块的问题,我们请教了老师,在老师的帮助下,我们解决了查找模块的问题。至此,我们的程序能够保证成功并且正确的运行。参考文献C程序设计(第二版) 谭浩强 清华大学出版社 C语言程序设计 田祥松 西安电子科技大学出版社C语言课程设计 黄明等 电子工业出版社C语言时尚编程百例 网冠科技 机械工业出版社标准C机能百练 焦 华 中国铁道出版社

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2