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

2025-10-20

3.详细设计

3.1 模块功能说明

3.1.1 通信录建立模块

创建链表,并返回表头指针 {

创建新节点;

while (判断读入编号) {

读入联系人信息; 保存到指定的域; 指针指向下一新节点; } }

3.1.2通信录输出模块

{

按指定格式输出通讯录表头信息; if(头指针不为空) {

按指定格式输出联系人信息;记录联系人数; } else

通信录为空;

3.1.3 通信录添加模块

{

新建节点;

屏幕提示输入要添加的联系人信息;读入联系人信息; 按联系人编号升序排序; }

- 3 -

3.1.4 通信录删除模块

提示输入要删除的联系人编号; 读入编号信息; if(找到)

{输出找到的联系人信息; 询问是否删除该联系人; } else

提示没有该联系人; }

3.1.5 通信录查找模块

提示输入要查找的联系人身份证号;读入身份证号信息; If(找到)

显示查找到的联系人信息; else

提示没有该联系人; }

- 4 -

4.程序调试与测试

参照教材编写完程序的各个模块后,我们将各个模块和主函数整合,运行之后主要存在以下几个问题:

1. 程序输出信息部分不正确

运行程序,输入通信录中联系人信息后,程序输出的电话号码和身份证号信息错误,有时还会出现负数。经过查找发现在读入联系人信息时,这两项采用了长整型数据类型,但是长整型最大支持的值仍然小于电话号码和身份证号的值。我们换用字符串类型读入信息后为问题解决。

2. 结束联系人信息的输入(以数字0结束)存在问题

运行程序,我们在输入联系人信息完毕后是用数字0结束的,但是当我们输入完信息后,得将下一个联系人的所有信息全部输入为数字0时,程序才会结束输入。针对这个问题我们修改了输入模块的循环体顺序,让程序先判断输入的联系人编号是否为0,是0时结束输入,不是0时继续读入联系人信息。这样在我们结束输入时只需按一次0即可结束输入。

3. 联系人的查找存在问题

我们在查找(用身份证号)联系人时,当我们输入通信录中存在的联系人的身份证号时,程序能准确查找到该联系人;但当我们输入的身份证号信息在通信录中不存在时,程序会非法结束。为此,我们请教了老师,修改了if语句中的判断条件,程序能够在我们输入的身份证号信息不存在时正常提示“通信录中没有该联系人”,问题解决。

因为我们的程序是根据教材中的程序编写的,所以在调试过程中,程序没有出现大的错误,在模块连接上也没有问题,只是有一些输入输出以及一些循环体上的错误。

- 5 -

5.程序清单与执行结果

5.1 程序清单

/*主控菜单程序*/ #include \#include \#include \

struct per /*定义结构体类型*/ { };

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

void main() /*主函数*/ {

long int num; char name[20]; char tel[12]; char mail[30]; char add[50]; long int mnum; char id[18]; struct per *next;

int select; int pass1; int pass=123456;

printf(\欢迎使用个人通信录管理系统,请输入登录密码:\scanf(\if(pass==pass1) { do{

- 6 -

printf(\登录成功!\\n\\n\

printf(\欢迎进入个人通信录管理系统 ******************\\n\

/*主控菜单*/

printf(\建 立 通 信 录 <<-----------------\printf(\输 出 通 信 录 <<-----------------\printf(\添 加 联 系 人 <<-----------------\printf(\删 除 联 系 人 <<-----------------\printf(\查 找 联 系 人 <<-----------------\printf(\退 出 系 统 <<-----------------\\n\printf(\

printf(\请选择(0---5):\

scanf(\printf(\

switch(select) /*对应模块函数*/ { case 1:

head=jianli();break;

case 2:

shuchu(head);break;

case 3:

head=tianjia(head);break;

case 4:

head=shanchu(head);break;

case 5:

head=chazhao(head);break;

case 0:

break;

default: }

printf(\您的输入有误,请重新输入(0---5):\\n\

}while(select!=0); } else

printf(\对不起,您输入的密码不正确,请按任意键退出程序!!!\\n\\n\

- 7 -


c语言个人通信录管理系统课程设计报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:九年级数学专题复习 专题一 实数

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219