1、程序设计语言课程设计报告 1 1 课程设计目的和要求课程设计目的和要求 1.1 设计要求设计要求: 基本功能: a) 添加个人信息 b) 查询个人信息 c) 删除个人信息 d) 修改个人信息 e) 信息排序 f) 输出全部信息 拓展功能: 采用文件形式对通讯录进行操作,包括: g) 写入文件 h) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 1.2 设计要求具体说明设计要求具体说明 通讯录至少应该有以下数据项:姓名,家庭住址,手机号码,邮编,E-mail。 输入信息时要检查数据项手机、邮编、E-mail 的合法性,手机号码:11 位数字;邮编: 6 位数字;E-mail:包含
2、字符,且两边都非空。 对通讯录应该包含有以下操作(包括基本功能和拓展功能): a) 向通讯录中添加信息; b) 在通讯录中按姓名或手机号查找个人信息; c) 删除通讯录中的个人信息; d) 修改通讯录中的个人信息,并保存入文件; e) 按不同数据项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量 没有限制。 f) 将通讯录中的数据写入文件和从文件读入数据。 通讯录 1. 添加 2. 查询 3. 删除 4. 修改 5. 排序 6. 输出全部信息 7. 写入文件 8. 读取文件 0. 退出 程序的主界面程序的主界面 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;写入文件时有 两种
3、方式,一为覆盖所有原有的内容; 二为只将本次操作所修改的个人信息写入 文件 g) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示退出程序。 1.3 设计提示设计提示 定义合适的结构体类型,使用链表或数组的方式组织数据。 2 2 通讯录概述通讯录概述 通讯录包括能够实现添加、查询、删除、修改、排序、输出全部信息以及写入文件、读 取文件。 这里的学生通讯记录为姓名、家庭地址、手机号码、邮箱、邮编。 2.1 程序的基本功能程序的基本功能 a) 添加个人信息 b) 查询个人信息 c) 删除个人信息 d) 修改个人信息 e) 信息排序 f) 输出全部信息 2.2 拓展功能:拓展功能: g) 写
4、入文件 h) 读取文件 3 3 通讯录的分析通讯录的分析 通讯录程序分析如结构图所示。 主程序 主界面 1.显示 2.查询 3.删除 4.插入 5.排序 6.保存 7.退出 1) 按手机 号码 2) 按姓名 7)按全部 6)按邮编 5)按邮箱 4)按序号 3)按地址 2) 按手机号 码 1)按姓名 5)按邮编 4)按邮箱 3)按地址 2) 按手机号 码 1)按姓名 修改 5)按邮编 4)按邮箱 3)按地址 2) 按手机号 码 1)按姓名 修改 5)按邮编 4)按邮箱 3)按地址 2) 按手机号 码 1)按姓名 输入学生信 息 3.1 主程序主程序 定义结构体数组,使用循环,让程序能够通过选择进
5、行各种操作。 3.2(主界面)输入学生信息(主界面)输入学生信息 输入学生的姓名、手机号码、家庭地址、邮箱、邮编。每次输入学生信息时判断其合法 性。 根据要求进入主菜单,并选择其相应的选项(1、显示 2、查询 3、删除 4、插入 5、 排序 6、保存 7、退出)进行运行 3.3 写入文件写入文件 将所输入的信息以二进制方式存入文件,需输入所选择的文件所在全路径。 3.4 读取文件读取文件 读取文件并在屏幕上打印文件所储存的信息,需输入所选择的文件所在全路径。 3.5 退出退出 退出系统。 4 4 通讯录详细设计通讯录详细设计 通讯录设计分为两个部分:一、主函数;二、功能函数。 此次设计使用结构
6、体数组的方式编写,定义结构体数组,链表,全局变量,主函数,功 能函数。 #include #include/主要有 malloc,calloc,free,realloc 函数时 #include/在运用字符串处理函数时 #include /定义结构体 typedef struct student/用 typedef 制定类型名 FILE char phonenum15,name20,add35,email10,postcode35; elemtype;/定义结点 或 指定新类型名为 elemtype struct node elemtype data; node * next; ;/定义整体变量 char PRINT=0,DESE=0,SEARCH=0,C; /PRINT=Y表示显示所有时的标志,作为控制空格之用 /SEARCH=N表示在通讯录中没找到相应的信息 /DESE=D表示使用删除功能时要输出的提示语 /DESE=S表示使用查询功能时要输出的提示语 /子函数 voi