收藏 分销(赏)

c语言个人通信录标准管理系统专业课程设计方案报告.doc

上传人:a199****6536 文档编号:2496562 上传时间:2024-05-30 格式:DOC 页数:26 大小:2.03MB
下载 相关 举报
c语言个人通信录标准管理系统专业课程设计方案报告.doc_第1页
第1页 / 共26页
c语言个人通信录标准管理系统专业课程设计方案报告.doc_第2页
第2页 / 共26页
c语言个人通信录标准管理系统专业课程设计方案报告.doc_第3页
第3页 / 共26页
c语言个人通信录标准管理系统专业课程设计方案报告.doc_第4页
第4页 / 共26页
c语言个人通信录标准管理系统专业课程设计方案报告.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、高级语言程序设计汇报(个人通信录管理系统)院 系: 通信和信息工程学院 班 级: 通信工程1104班 成 员: 杨文刚() 李 岩() 王皓升() 罗 洋() 沈 洋() 王志旭() 时 间: 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. 对该次程序中个函数功效分析结果。5. 对该次试验完成后有总结。(2).设计纲领1. 了解, 分析这次试验关键问题。2. 讨论处理问题方案。3. 分配组员个人任务。4. 进行各部分整合、修改、完善。

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 string.hstruct per /*定义结构体类型*/long i

8、nt 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); /*申明删除联络人函数*/struct per *chazhao(str

9、uct 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);doprintf(nt* 欢迎进入个人通信录管理系统 *n); /*主控菜单*/printf(nt - 1: 建 立 通 信 录 2: 输 出 通 信 录 3: 添 加 联 系 人 4: 删 除 联 系 人 5: 查 找 联

10、 系 人 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; /*第一个新建节点是表头*/elsep2-next=p1; /*原表尾下一个节点是新节点*/p2=p1; /*新建节点成为表尾*/scanf(%d,&num1);return head

11、; /*返回表头指针*/*输出通信录函数*/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) /*假如抵达尾节点退出循环,不然继续*/printf(%-5d%-12s%-12s%-19s%-17s%-9s%-7dn,p-num,p-name,p-tel,

12、p-id,p-mail,p-add,p-mnum);n+;printf(联络人总数:%dnn,n);elseprintf(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); /*新建节点p*/printf(请输入要添加联络人编号、姓名、电话、身份证号、邮箱、地址、邮编:n);scanf(%d %s %s %s %s %s %d,&p

13、-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;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)

14、;/*删除联络人函数*/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);p2=head;while(num1 != p2- num & p2-next !=NULL)p1=p2;p2=p2-next;if(num1=p2-num)printf(n成功查询到该联络人!n);printf(n%-5

15、s%-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(%d,&n);switch(n)case 1:if(p2=head)head=p2-next;elsep1-next=p2-next;free(p2);printf(n成功删除编号为%ld联络人!nn,num1);break;case 0:p

16、rintf(n您取消了删除任务,联络人未被删除!n);break;elseprintf(n对不起,该通信录中没有任何联络人!nn);return(head);/*查找函数*/struct per *chazhao(struct per *head) struct per*p2;char id120;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

17、(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-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 添加

18、联络人5.2.7 添加后输出通信录5.2.8 成功查找联络人5.2.9 找不到联络人时界面5.2.10 删除问询界面5.2.11 确定后成功删除联络人6.课程设计总结 经过这次课程设计使我们充足了解了个人通信录建立、输出、添加、删除、查找基础原理,并能够编写出其程序。即使说程序不是很完美,不过总体上完成了老师要求,当然这只能相对于我们这些初学者来说。除了书本上仅有知识外,我们还借用了部分其它书上比很好算法思想,以至于让我们课程设计愈加完美。在这次课程设计中,让我们深知仅仅掌握书本上知识是远远不够。在刚开始编程时,让我们感觉到自己不知道应该从哪里下手。在操作时,常常会碰到部分棘手问题难以处理,但

19、经过我们组员不停思索、共同努力,尝试着去更改出现问题程序,直至程序能够正常运行输出。开始很困难,但在老师和同学们帮助下,我们了解了很多操作,使后面变得更轻易操作。 程序设计过程中,小组中各组员快速行动,主动配合,分工合作,在完成了各自函数模块程序编写后,有主动参与程序调试和测试,并快速发觉和处理了问题,过程中碰到了查找模块问题,我们请教了老师,在老师帮助下,我们处理了查找模块问题。至此,我们程序能够确保成功而且正确运行。参考文件C程序设计(第二版) 谭浩强 清华大学出版社 C语言程序设计 田祥松 西安电子科技大学出版社C语言课程设计 黄明等 电子工业出版社C语言时尚编程百例 网冠科技 机械工业出版社标准C机能百练 焦 华 中国铁道出版社

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服