1、 高 级 语言课 程 设计 任务书及说明书 设计题目 电 话簿 管 理 系 统 学 院 计算机与通 信 学院 专业、 年级 通信工 程1 班 学 生 杨智刚 学 号 _ 1416530101_ 指导教 师 时 间 2015 年 春季 学期 目 录 1 摘 要 3 2 前 言 4 3 正 文 5 3.1 系 统分 析 3.2 系 统总 体设 计 3.3 详 细设 计 3.4 系 统测 试 4 参 考 文献 16 5 总 结 17 附录: 程序 源代 码 1 摘要 本次课程设计采用语言, 开发了一个基本的电话簿管理系统, 该系统具备 了按联系人姓名查找并输出联系人 信息, 按联系人姓名查找并删除数
2、据, 输出全 部联系人信息数据,对联系人 的管理也可以更加方 便快捷。 关 键词 : 语言;课程 设计;电话簿 管理系统 2 前言 随着交际能力的广泛性的提高, 朋友的数量逐渐增多, 但是在联系人 管理方 面总是出现联系人 姓名 、 年龄等出现错误的诸多问题。 本文针对上述问题, 采用 软件工程的开发原理, 根据软件流程过程规范, 按照需求分析、 概要设计、 详细 设计、 程序编码、 测试 、 软件应用、 软件维护 等过程开发了一个电话簿 管理系统。 采用c 语言 作为开发工具, 设计了这个电话簿管理系统, 解决了联系人 信息管理 中存在的数据安全性、数据一致性等问题。 3、正文 3.1 系
3、统分 析 3.3.1. 设计 要求 该设计要求以方便查找和管理联系人 为背景, 设计、 开发一套 “ 电话 簿 管理 系统”软件。 通过该题目的设计过程, 可以培养学生 结构化程序设计的思想, 加深对高级 语言基本 语言要 素和控 制结构的 理解, 针对 c 语言中 的重点 和难点 内容进行训 练, 独立完成有一定工作量的程序设计任务, 同时强调好的程序设计风格。 得到 软件工程的综合训练,提高解决实际问题的能力。 3.3.2 设计 任务 1、以电话簿管理 业务为背景,通过调研、分析现有的管理模式和已有的管 理软件,建立系统模型; 2、完成软件结构设计和算法设计; 3、完成系统的软件开发和测试
4、工作 联系人信 息 包 括 : 姓 名 , 年 龄 , 性 别 , 电话等 。 设 计 “ 电话簿管 理 系 统 ” , 使之能提供以下功能: 1. 系统以菜单方式工作 ; 2. 联系人信息录入功能 ; 3. 联系人信息浏览功能 ; 4. 查询功能: 按姓名查询; 5. 联系人信息的删除与修改 。 3.2 系 统 总体 设计 一流 程图 二. 总 体数据结构 本系统采用结构体为主要 数据结构, 将联系人 信息, 包括: 姓名, 年 龄, 性 别, 电话以结构体的形式存储在计算机 中,并建立结构体数组。 /*手机通讯录结构定义*/ struct friends_list char name10;
5、 /* 姓名 */ int age; /* 年龄 */ char sex5; /* 性别 */ char telephone13; /* 联系电话 */ ; int Count = 0; /* 全局变量记录当前联系人总数 */ main 欢迎界 面 选项 2 联 系 人 信 息 修 改 1 联 系 人 信 息 录 入 3 联 系 人 信 息 查 询 4 联 系 人 信 息 删 除 5 联 系 人 信 息 显 示 0 退 出 3.3 详 细设 计 (1) 函 数 及参 数说 明 函数名 new_friend 函数原型 insert() 函数功能 函数原型添加一组新数据并返回欢迎界面查看选项 参数
6、说明: 无参数要求 函数名 search_friend 函数原型 search_name() 函数功能 按姓名查找并 返回欢迎界面查看选项 参数说明: 无参数要求 函数名 update_friend 函数原型 update_number() 函数功能 修改联系人信息并 返回欢迎界面查看选项 参数说明: 无参数要求 函数名 delete_friend 函数原型 delete() 函数功能 按姓名 查找并删除数据并返回欢迎界面查看选项 参数说明: 无参数要求 函数名 show_friend 函数功能 显示 所有联系人并返回欢迎界面查看选项 参数说明: 无参数要求 (2 ) 模 块 说明 模块一 v
7、oid new_friend(struct friends_list friends ) struct friends_list f ; if(Count = 50) printf(“ 通讯录已满!n“); return; printf(“请输入新联系人的姓名:“); scanf(“%s“, f.name); printf(“请输入新联系人的年龄:“); scanf(“%d“, printf(“请输入新联系人的性别:“); scanf(“%s“, f.sex); printf(“请输入新联系人的联系电话:“); scanf(“%s“, f.telephone); printf(“n“); fr
8、iendsCount = f; Count+; 模块二 void search_friend(struct friends_list friends , char *name) int i, flag = 0; if(Count = 0) printf(“ 通讯录是空的!n“); return; for(i = 0; i #include /* 手机通讯录结构定义*/ struct friends_list char name10; /* 姓名 */ int age; /* 年龄 */ char sex5; /* 性别 */ char telephone13; /* 联系电话 */ ; int
9、 Count = 0; /* 全局变量记录当前联系人总数 */ void new_friend(struct friends_list friends ); void search_friend(struct friends_list friends , char *name); void update_friend(struct friends_list friends , char *name); void delete_friend(struct friends_list friends , char *name); void show_friend(struct friends_lis
10、t friends , char *name); int main(void) int choice; char name10; struct friends_list friends50; /* 包含50 个人的通讯录 */ do printf(“ *n“); printf(“ 欢迎使用手机通讯录n“); printf(“ *n“); printf(“ 1- 新建(Insert) 4- 删除 (Delete)nn“); printf(“ 2- 查 询(Search) 5- 显示 (Show)nn“); printf(“ 3- 修改(Update) 0- 退出 (Exit)nn“); prin
11、tf(“* 请 选 择 功 能 *“); scanf(“%d“, printf(“n“); switch(choice) case 1: new_friend(friends); break; case 2: printf(“请输入要查找的联系人名:“); scanf(“%s“, name); search_friend(friends, name); break; case 3: printf(“请输入要修改的联系人名:“); scanf(“%s“, name); update_friend(friends, name); break; case 4: printf(“请输入要删除的联系人名
12、:“); scanf(“%s“, name); delete_friend(friends, name); break; case 5: printf(“ 通 讯 录 联 系 好友:n“); printf(“n“); show_friend(friends,name); break; case 0: break; while(choice != 0); printf(“ 谢谢使用通讯录功能!n“); return 0; /* 新建联系人*/ void new_friend(struct friends_list friends ) struct friends_list f ; if(Coun
13、t = 50) printf(“通讯录已满!n“); return; printf(“ 请输入新联系人的姓名:“); scanf(“%s“, f.name); printf(“ 请输入新联系人的年龄:“); scanf(“%d“, printf(“ 请输入新联系人的性别:“); scanf(“%s“, f.sex); printf(“ 请输入新联系人的联系电话:“); scanf(“%s“, f.telephone); printf(“n“); friendsCount = f; Count+; /* 查询联系人*/ void search_friend(struct friends_list
14、 friends , char *name) int i, flag = 0; if(Count = 0) printf(“ 通讯录是空的!n“); return; for(i = 0; i Count; i+) if(strcmp(name, friendsi.name) = 0) /* 找到联系人*/ flag=1; break; if(flag) printf(“姓名: %st“, friendsi.name); printf(“年龄: %dt“, friendsi.age); printf(“性别: %st“, friendsi.sex); printf(“电话: %sn“, frie
15、ndsi.telephone); else printf(“无此联系人!n“); printf(“n“); /* 修改联系人*/ void update_friend(struct friends_list friends , char *name) int i, flag = 0; if(Count = 0) printf(“ 没有查询到!n“); return; for(i = 0; i Count; i+) if(strcmp(name, friendsi.name) = 0) /* 找到联系人*/ flag=1; break; if(flag) printf(“请输入年龄: “); s
16、canf(“%d“, printf(“请输入新联系人的性别:“); scanf(“%s“, friendsi.sex); printf(“请输入电话号码: “); scanf(“%s“,friendsi.telephone); else printf(“无此联系人!n“); printf(“n“); /* 删除联系人*/ void delete_friend(struct friends_list friends , char *name) int i,j,flag = 0; if(Count = 0) printf(“ 没有查询到!n“); return; for(i = 0; i Coun
17、t; i+) if(strcmp(name, friendsi.name) = 0) /* 找到联系人*/ flag=1; break; if(flag) for(j=i;jCount-1;j+) friendsj=friendsj+1; flag=0; Count-; else printf(“无此联系人!n“); printf(“n“); /* 显示联系人*/ void show_friend(struct friends_list friends , char *name) int i; printf(“ 姓 名 年 龄 性 别 电 话 号 码 n“); for(i=0;iCount;i
18、+) printf(“n“); printf(“%23s“,friendsi.name); printf(“%6d“,friendsi.age); printf(“%11s“,friendsi.sex); printf(“%22sn“,friendsi.telephone); 书 中横 卧着 整个 过去的 灵魂 卡莱 尔 人 的影 响短 暂而 微弱, 书的 影响 则广 泛而深 远 普 希金 人 离开 了书 ,如 同离开 空气 一样 不能 生活 科 洛廖 夫 书不 仅是 生活 ,而 且 是现 在、 过去 和未 来 文化 生活 的源 泉 库 法耶夫 书 籍 把 我 们 引 入 最 美 好 的 社 会 , 使 我 们 认 识 各 个 时 代 的 伟 大 智 者 史美 尔斯 书 籍便 是这 种改 造灵魂 的工 具 。 人 类 所需要 的 , 是 富有 启 发性的 养 料。而 阅读 ,则 正是 这种养 料 雨果