1、大连民族大学计算机科学与工程学院实验报告实验题目: 1. 学生信息管理系统的设计与实现 2. 暴力算法在旅行商问题中的应用 课程名称: 信息系统开发案例 实验类型:演示性 验证性 操作性 设计性 综合性专业:软件工程 班级:144 学生姓名:赵耀 学号:2014082430 实验日期:2017 年 3 月 6 日4 月 27 日 实验地点:金石滩校区 I303 机房实验学时:24 学时 实验成绩:指导教师:赵戈 通讯录管理系统的设计与实现摘 要本项目用 C+语言开发了一个简单的通讯录管理系统,该系统能对联系人信息进行“增删改查”。系统的 UI 设计基于 Windows 系统自带的控制台。测试结
2、果表明该通讯录管理系统可以稳定正确运行,具有较高的可靠性。关键词:通讯录管理系统;C+语言;Windows 控制台目 录1.选题的背景和意义 .32.需求分析 .32.1 用例图 .32.2 用例文本 .43.总体设计 .53.1 通讯录管理系统功能模块图 .53.2 主控 main 函数执行流程图 .63.3 执行流程图的解释说明 .63.4 存储结构设计 .84.详细设计 .95 程序运行结果 .96 总结和展望 .107 附录 .10程序源代码: .101.选题的背景和意义当今时代,计算机已经成为人们生活中不可或缺的一部分,它打破了地域时间限制,改变了人们的工作和生活方式。人们之间的联系
3、越来越便捷,这就使得要经常与很多人保持着联系,而单纯依靠人脑已经很难记住所有人的联系方式还有其各做附加信息。通讯录系统能方便用户的需求,满足用户迅速、准确的查找修改或者删除联系人信息,把各个联系人信息以文件保存。本文介绍了 c+编写简易通讯录管理:系统的分析,功能模块的设计,系统的流程图及运行界面。此系统的主要管理的信息由:联系人的姓名、性别、电话号码,加深对 c+语言程序设计的理解,提高算法设计的能力,锻炼编程的能力。用 c语言编程一个通讯录管理系统软件,要求能实现通讯录管理系统中的增加信息,删除信息,显示通讯里的所有信息,按名字查询信息,保存通讯录,退出系统。2.需求分析2.1 用例图通讯
4、录管理系统的用例图如下图所示:图 2.1 用例图2.2 用例文本表 2.1 输入联系人的用例文本用例编号 001用例名称 输入联系人用例描述 首次输入联系人的姓名,电话号码,地址参与者 用户前置条件 无后置条件 联系人信息记录存入内存主事件流 1. 系统显示输入前的通讯录人员表2. 用户输入联系人姓名3. 用户输入联系人电话4. 用户输入联系人地址5. 教师输入学生的英语成绩6. 系统显示输入后的通讯录人员表扩展事件流 无补充说明 无表 2.2 查询联系人的用例文本用例编号 002用例名称 查询联系人用例描述 按姓名查询某位联系人的信息参与者 用户前置条件 无后置条件 无主事件流 1) 用户输
5、入姓名2) 系统返回相应的查询结果扩展事件流 若联系人不存在则系统会给出提示表 2.3 显示联系人的用例文本用例编号 004用例名称 显示联系人用例描述 显示所有联系人的姓名电话地址参与者 用户前置条件 联系人信息已经输入后置条件 无主事件流 在控制台显示所有联系人的电话姓名地址扩展事件流 无补充说明 若尚未录入任何联系人信息则给出提示3.总体设计3.1 通讯录管理系统功能模块图图 3.1 通讯录管理系统的功能模块图通讯录管理系统输入记录 查询记录 更新记录 统计记录 输出记录从文件输入从控制台输入按姓名查询修改记录删除记录插入记录排序记录输出至文件输出至屏幕显示所有联系人的信息3.2 主控
6、main 函数执行流程图图 3.2 主控 main 函数的执行流程3.3 执行流程图的解释说明下面通过一个成绩输入的例子来进一步说明上述程序流程图:Step 1: 程序启动时显示系统主菜单,用户通过输入数字选择菜单项:Step 2: 如果用户输入数字 “1”,手动添加联系人信息或者文件导入 Step 3: 返回主界面后用户输入数字 “4”,则显示所有人联系人信息3.4 存储结构设计本项目利用文本文件作为主要的外存存储结构,内存所用的数据结构是哈希表。1. 联系人信息结构体struct nodestring name;string num;string add;char sign;int cou
7、nt;结构 node 将用于存放联系人的基本信息,它将作为哈希表的数据域,其中各个字段的含义如下所示:string name;保存姓名string num;保存号码string add;保存地址char sign;哈希表标记int count;联系人数量4.详细设计3 程序运行结果图 6.1 给出了程序刚启动时的主菜单界面,用户通过输入 1-9 间的数字来选择菜单操作。图 6.1 程序启动时的主菜单界面1. 总结和展望毋容置疑这次设计的程序是有很多不足的地方的,缺点还是很多。当电话号码重复时依然可以存储,只可以用姓名进行查找,等其他问题,发现自己欠缺的东西还是不少,要学习更多只是来完善自己,充实自己。附录程序源代码:主函数代码