c语言程序课设通讯录

上传人:第*** 文档编号:34522947 上传时间:2018-02-25 格式:DOC 页数:19 大小:542.50KB
返回 下载 相关 举报
c语言程序课设通讯录_第1页
第1页 / 共19页
c语言程序课设通讯录_第2页
第2页 / 共19页
c语言程序课设通讯录_第3页
第3页 / 共19页
c语言程序课设通讯录_第4页
第4页 / 共19页
c语言程序课设通讯录_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《c语言程序课设通讯录》由会员分享,可在线阅读,更多相关《c语言程序课设通讯录(19页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序课设通讯录1 问题描述 通讯录是人们日常生活中经常要用到的通讯管理工具,它以文件的方式保存用户录入的数据,并提供查询的功能供用户查询和使用通讯录信息。在本节中我们将介绍一个用C语言实现的简易通讯录管理系统,它支持基本的录入、删除、查找、修改和文件读写功能。程序中涉及大量基本块和指针的操作,结构体和共用体数据结构的定义、使用,以及文件的读写、定位等。2 功能分析 通讯录要求实现最基本的功能,包括录入、删除、查找和修改,为此需要首先定义记录项的格式,其基本属性包括姓名、性别、联系电话、电子邮件等。作为简易通讯录,目前仅考虑英文姓名、地址数据输入,不支持中文。功能: 1、录入:操作添加一

2、条新的记录项; 2、删除:删除一条已经存在的记录项; 3、修改:改变记录项的一个或多个属性,并用新的记录项覆盖已经存在的记录项; 4、查找:根据用户输入的属性值查找符合条件的记录项。依据某一属性是否可以唯一地确定一条记录项,可以将属性区分为主属性和非主属性。对非主属性上的查找可能返回多条记录项。为了区分,系统可以在数据录入时为每个记录项自动分配一个记录编号,这样就可以实现所有项的精确查找。通讯录数据以文件形式存储在磁盘上,因此在程序运行中需要对文件进行读取操作。编程人员可以根据实际需要自己定义文件的存储格式,在数据读写时必须精确定位,以免破坏文件的正确性。除此之外,程序中还要不停处理用户的输入

3、,对输入数据的容错性进行检查,可以保证通讯录数据的合法性,避免恶意和非恶意的操作对用户数据的破坏。3 开发工具的介绍本软件采用开发工具为 C 语言。C 语 言 是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,且具 有 强 大 的 功 能 。 许 多著 名 的 系 统 软 件 , 如 DBASE 都 是 由 C 语 言 编 写 的 。 用 C 语 言 加 上 一 些 汇 编 语 言 子程 序 , 就 更 能 显 示 C 语 言 的 优 势 了

4、, 像 PC- DOS 、 WORDSTAR 等 就 是 用 这 种 方 法 编 写的 。归 纳 起 来 C 语 言 具 有 下 列 特 点 :1. C 是 中 级 语 言 。 它 把 高 级 语 言 的 基 本 结 构 和 语 句 与 低 级 语 言 的 实 用 性 结 合 起 来 ,可 以 像 汇 编 语 言 一 样 对 位 、 字 节 和 地 址 进 行 操 作 。2.C 是 结 构 式 语 言 。 结 构 式 语 言 的 显 著 特 点 是 代 码 及 数 据 的 分 隔 化 , 使 程 序 层 次 清 晰 ,便 于 使 用 、 维 护 以 及 调 试 。 C 语 言 是 以 函 数

5、形 式 提 供 给 用 户 的 , 这 些 函 数 可 方 便 的 调用 , 并 具 有 多 种 循 环 、 条 件 语 句 控 制 程 序 流 向 , 从 而 使 程 序 完 全 结 构 化 。3.C 语 言 功 能 齐 全 。 具 有 各 种 各 样 的 数 据 类 型 , 并 引 入 了 指 针 概 念 , 可 使 程 序 效 率 更高 。 另 外 C 语 言 也 具 有 强 大 的 图 形 功 能 , 支 持 多 种 显 示 器 和 驱 动 器 。 而 且 计 算 功 能 、逻 辑 判 断 功 能 也 比 较 强 大 。4. C 语 言 适 用 范 围 大 。 适 合 于 多 种 操

6、作 系 统 , 多 种 机 型 。C 语 言 对 编 写 需 要 硬 件 进 行 操 作 的 场 合 , 明 显 优 于 其 它 解 释 型 高 级 语 言 , 有 一 些 大 型 应用 软 件 也 是 用 C 语 言 编 写 的 。C 语 言 具 有 绘 图 能 力 强 , 可 移 植 性 , 因 此 适 于 编 写 系 统 软 件 , 三 维 , 二 维 图 形 和 动 画 。它 是 数 值 计 算 的 高 级 语 言 。5.C 语 言 文 件 由 数 据 序 列 组 成 , 可 以 构 成 二 进 制 文 件 或 文 本 文 件 。4. 设计4.1 程序总体结构/*请完成小组的设计内容*

7、/Main()4.2界面设计printf(-)(-)(-)(-)(-)n);printf(*_* *_* n);printf(+_+) 联系人 (+_+)n);printf(*_* *_* n);printf(=_=)(=_=)(=_=)(=_=)(=_=)nn);printf(* 1、浏览 *n);printf(* 2、插入 *n);printf(* 3、删除 *n);printf(* 4、修改 *n);printf(* 5、查询 *n);printf(* 0、退出 *nn);Main()Liulan() Add() Del() Change() Chaxun()4.3重要数据的数据结构设计

8、Void add()Void Liulan()YN输入 n=sqlist-len输入 i=0ilen 输出姓名 性别 电话 电子邮箱i+sqlist-len+输入姓名 性别 电话 电子邮箱输出姓名 性别 电话 电子邮箱结束开始开始Void change() NYNYcase1case2 case3 case4开始 输入要修改的联系人姓名输入 i=0ilen 输出 No Found选择要修改的内容1 姓名 2 性别 3 电子邮箱 4 电话号码输入修改后的姓名输入修改后的性别输入修改后的电子邮箱输入修改后的电话号码i+strcmp(sqlist-recordsi.name,name)=0输出修改后

9、的姓名输出修改后的性别输出修改后的电子邮箱输出修改后的电话号码结束Void chaxun()NYNY开始输入查询姓名I=0ilen 输出 No Foundstrcmp(sqlist-recordsi.name,name)=0输出电话i+结束void del()NYNYY开始输入查询姓名I=0ilen 输出 No Foundi+strcmp(sqlist-recordsi.name,name)=0J=iJlensqlist-recordsj=sqlist-recordsj+1sqlist-len-结束4.4. 函数设计(1)函数功能列表函数名 主要作用main()-主函数若正确则显示主菜单,进入

10、下面操作;若错误可选择重新输入或退出。add()-输入函数输入要添加的学生人数,之后可输入对应人数的学生的信息;操作完可返回主菜单。liulan()-输出全部函数可输出全部学生的信息;操作完可返主回菜单。chaxun()-查询函数通过一个菜单可选择输入单个学号以查询一个学生的信息,输入专业名查询一班学生的信息,输入学院名查询一院学生的信息。操作完可返回主菜单。change()-修改函数通过输入一个学生学号以修改其信息;操作完可返回主菜单。del()-删除函数通过输入一个学生学号以删除其信息;操作完可返回主菜单(2)程序运行总体视图5. 源程序#include stdio.h#include s

11、tring.h#define MAXNUM 200#define TRUE 1#define FALSE 0typedef structchar name20;char email20;char gender20;char tel20;TelRecord;typedef structTelRecord recordsMAXNUM;int len;SqTelPad;void Add(SqTelPad* sqlist);void Del(SqTelPad* sqlist);void liulan(SqTelPad* sqlist);void InitSqTelPad(SqTelPad* sqlis

12、t);void Change(SqTelPad* sqlist);void Chaxun(SqTelPad* sqlist);void main()char selectitem5;int refreshflag;SqTelPad mytelpad;refreshflag = FALSE;InitSqTelPad(doprintf(-)(-)(-)(-)(-)n);printf(*_* *_* n);printf(+_+) 联系人 (+_+)n);printf(*_* *_* n);printf(=_=)(=_=)(=_=)(=_=)(=_=)nn);printf(* 1、浏览 *n);pri

13、ntf(* 2、插入 *n);printf(* 3、删除 *n);printf(* 4、修改 *n);printf(* 5、查询 *n);printf(* 0、退出 *nn);scanf(%s,selectitem);while(selectitem0)switch(selectitem0)case 2:Add(refreshflag = TRUE;break;case 3:Del(refreshflag = TRUE;break;case 1:liulan(refreshflag = TRUE;break;case4:Change(refreshflag = TRUE;break;case5

14、:Chaxun(refreshflag = TRUE;break;case 0:return;if(refreshflag=TRUE)refreshflag = FALSE;break;elsescanf(%s,selectitem);while(1);/dovoid Add(SqTelPad *sqlist) int n;sqlist-len+;n=sqlist-len;printf(输入要加入的联系人的信息:姓名 性别 电话号 电子邮箱n);scanf(%s%s%s%s,sqlist-recordsn.name,sqlist-recordsn.gender,sqlist-recordsn.tel,sqlist-recordsn.email);void Del(SqTelPad *sqlist)int i,j;char name20;printf(请输入被删除的联系人的姓名:n);scanf(%s,name);i=j=0;for(i=0;ilen;i+)if(strcmp(sqlist-recordsi.name,name)=0)break;if(isqlist-len)printf(not foundn)

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

当前位置:首页 > 办公文档 > 解决方案

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