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

上传人:第*** 文档编号:56882583 上传时间:2018-10-16 格式:DOC 页数:24 大小:2.05MB
返回 下载 相关 举报
c语言个人通信录管理系统课程设计报告_第1页
第1页 / 共24页
c语言个人通信录管理系统课程设计报告_第2页
第2页 / 共24页
c语言个人通信录管理系统课程设计报告_第3页
第3页 / 共24页
c语言个人通信录管理系统课程设计报告_第4页
第4页 / 共24页
c语言个人通信录管理系统课程设计报告_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《c语言个人通信录管理系统课程设计报告》由会员分享,可在线阅读,更多相关《c语言个人通信录管理系统课程设计报告(24页珍藏版)》请在金锄头文库上搜索。

1、高级语言程序设计报告高级语言程序设计报告(个人通信录管理系统)(个人通信录管理系统)院院 系:系: 通信与信息工程学院通信与信息工程学院 班班 级:级: 通信工程通信工程 1104 班班 成成 员:员: 杨文刚(杨文刚(1107020420) 李李 岩(岩(1107020421) 王皓升(王皓升(1107020417) 罗罗 洋(洋(1107020418) 沈沈 洋(洋(1107020419) 王志旭(王志旭(1107020422) 时时 间:间: 20122012 年年 7 7 月月 2 2 日日 基于链表的个人通信录管理系统基于链表的个人通信录管理系统课程设计任务书课程设计任务书课程设计名

2、称基于链表的个人通信录管理系统指导教师姓名职称 需学生数6人组长杨文刚课程设计情况成员李岩、王皓升、罗洋、王志旭、沈洋各 成 员 主 要 负 责 内 容杨文刚 负责主体函数框架建立和函数模块整合李 岩 负责程序的添加模块王皓升 负责程序的删除模块王志旭 负责程序的查找模块罗 洋 负责程序的输出模块沈 洋 负责程序的输入模块程序的调试和测试由小组成员共同参与完成课程设计的报告撰写由杨文刚、李岩完成- 1 -目目 录录1.1.设计目的设计目的112.2.总体设计总体设计223.3.详细设计详细设计334.4.程序调试与测试程序调试与测试 555.5.程序清单与执行结果程序清单与执行结果 665.1

3、5.1 程序清单程序清单665.25.2 程序执行结果程序执行结果14146.6.课程设计总结课程设计总结2020- 1 -1.1.设计目的设计目的1.11.1 问题描述问题描述 编写一 C 语言程序,其功能是建立一个基于链表的个人通信录管理系统,个 人通信录进行建立、输出、添加、查找及删除运行结果进行打印等相关操作。 1.21.2 问题分析问题分析首先,选择合适的存储结构构造个人通信录,对该程序可以分为几个模块进行分析,每个模块在该程序中的作用进行了解。最后用设计连接图将各模块之间的联系连接起来,以方便我们更容易理解。然后,该程序需要一个详细的设计流程图来表示各个步骤所完成的先后顺序,(如,

4、对个人通信录进行添加,查找输出打印结果)。最后,按流程图进行编写个人通信录的程序,输出结果,并将打印的结果显示出。 1.31.3 设计分析设计分析 本次实验设计主要是建立个人通信录,要实现个人通信录的建立,个人通信录的查找,个人通信录的添加及个人通信录的删除功能。.设计需求上我们需要掌握以下几点: (1).(1).设计部分设计部分1.写出本次实验的详细设计方案。2.画出该次程序的流程图。3.分析该次程序的程序清单,进行程序测试并输出运行结果。4.对该次程序中个函数的功能分析结果。5.对该次实验完成后有总结。 (2).(2).设计大纲设计大纲1.了解, 分析这次实验的主要问题。2.讨论解决问题的

5、方案。3.分配组员的个人任务。4.进行各部分的整合、修改、完善。5.进行这次实验的总体报告实验总结。- 2 -2.2.总体设计总体设计2.12.1 程序设计组成框图程序设计组成框图图12.22.2 流程图流程图开始菜单选择建立输出添加查找删除信息输入信息删除信息查找信息添加信息输出按身份证号查找结束否否否否否是是是是是个人通信录主函数模块个人通信录 建立模块个人通信录 输出模块个人通信录 添加模块个人通信录 删除模块个人通信录 查找模块- 3 -3.3.详细设计详细设计3.13.1 模块功能说明模块功能说明 3.1.13.1.1 通信录建立模块通信录建立模块创建链表,并返回表头指针创建新节点;

6、while (判断读入编号) 读入联系人信息; 保存到指定的域; 指针指向下一新节点; 3.1.23.1.2通信录输出模块通信录输出模块按指定格式输出通讯录表头信息;if(头指针不为空)按指定格式输出联系人信息;记录联系人数;else通信录为空;3.1.33.1.3 通信录添加模块通信录添加模块新建节点;屏幕提示输入要添加的联系人信息;读入联系人信息;按联系人编号升序排序;- 4 -3.1.43.1.4 通信录删除模块通信录删除模块提示输入要删除的联系人编号;读入编号信息;if(找到)输出找到的联系人信息;询问是否删除该联系人;else提示没有该联系人;3.1.53.1.5 通信录查找模块通信

7、录查找模块提示输入要查找的联系人身份证号;读入身份证号信息;If(找到)显示查找到的联系人信息;else提示没有该联系人;- 5 -4.4.程序调试与测试程序调试与测试参照教材编写完程序的各个模块后,我们将各个模块和主函数整合,运行之后主要存在以下几个问题:1.1. 程序输出信息部分不正确程序输出信息部分不正确运行程序,输入通信录中联系人信息后,程序输出的电话号码和身份证号信息错误,有时还会出现负数。经过查找发现在读入联系人信息时,这两项采用了长整型数据类型,但是长整型最大支持的值仍然小于电话号码和身份证号的值。我们换用字符串类型读入信息后为问题解决。2.2. 结束联系人信息的输入(以数字结束

8、联系人信息的输入(以数字0 0结束)存在问题结束)存在问题运行程序,我们在输入联系人信息完毕后是用数字0结束的,但是当我们输入完信息后,得将下一个联系人的所有信息全部输入为数字0时,程序才会结束输入。针对这个问题我们修改了输入模块的循环体顺序,让程序先判断输入的联系人编号是否为0,是0时结束输入,不是0时继续读入联系人信息。这样在我们结束输入时只需按一次0即可结束输入。3.3. 联系人的查找存在问题联系人的查找存在问题我们在查找(用身份证号)联系人时,当我们输入通信录中存在的联系人的身份证号时,程序能准确查找到该联系人;但当我们输入的身份证号信息在通信录中不存在时,程序会非法结束。为此,我们请

9、教了老师,修改了 if 语句中的判断条件,程序能够在我们输入的身份证号信息不存在时正常提示“通信录中没有该联系人” ,问题解决。因为我们的程序是根据教材中的程序编写的,所以在调试过程中,程序没有出现大的错误,在模块连接上也没有问题,只是有一些输入输出以及一些循环体上的错误。- 6 -5.5.程序清单与执行结果程序清单与执行结果5.1 程序清单程序清单/*主控菜单程序*/#include “stdio.h“#include “stdlib.h“#include “string.h“struct per /*定义结构体类型*/long int num;char name20;char tel12;

10、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(struct per *head); /*声明查找联系人函数*/s

11、truct per *head=NULL;void main() /*主函数*/ int select;int pass1;int pass=123456;printf(“n 欢迎使用个人通信录管理系统,请输入登录密码:“);scanf(“%d“,if(pass=pass1)printf(“n 登录成功!nn“);do- 7 -printf(“nt* 欢迎进入个人通信录管理系统 *n“); /*主控菜单*/printf(“nt - 1: 建 立 通 信 录 2: 输 出 通 信 录 3: 添 加 联 系 人 4: 删 除 联 系 人 5: 查 找 联 系 人 0: 退 出 系 统 num=nu

12、m1; /*存入联系人的信息*/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 域置为空,表示尾节点*/- 9 -if(head=NULL)head=p1; /*第一个新建节点是表头*/elsep2-next=p1; /*原表尾的下一个节点是新节点*/p2=p1; /*新建节点成为表尾*/scanf(“%d“,return head; /*返回表头指针*/*输出通信录

13、函数*/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,p-id,p-mail,p-add,p-mnum);n+;printf(“联系人总数:%dnn“,n);elseprintf(“n 对不起,该通信录中没有任何联系人!nn“);- 10 -/*添加联系人函数*/struct per*tianjia(struct per*head)struct per*p;struct per*p1;struct per*p2;p2=head;p=(struct per*)malloc(sizeof(struct per); /*新建

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号