电话簿管理系统修改的程序设计报告(参考)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
题目电话薄管理系统
——分组模块及其附属功能
课程名称结构化程序设计课程设计院部名称信息技术学院
专业计算机科学与技术
班级
学生姓名
学号
课程设计地点工科楼A101、1318 课程设计学时20学时
指导教师
金陵科技学院教务处制成绩
电话簿管理系统修改的程序设计报告
——分组模块及其附属功能(一)课程设计目的与要求
1.目的
1)了解并掌握C语言的基本知识和技能;
2)基本掌握面向对象程序设计的基本思路和方法;
3)提高综合运用所学的理论知识与方法分析和解决问题的能力;
4)掌握C语言中的结构体、函数、文件操作等知识。
2.要求
1)要求在设计的过程中,建立清晰的层次;
2)在程序中要定义清楚,区分好类别,每个类别要有各自的属性和方法;
(二)课程设计的主要内容
1.项目名称:电话薄管理系统——分组模块及其附属功能
2.实验设备及环境
1)实验设备:教室机房
2)硬件环境:具备C++、TC的计算机
3)软件环境:C语言、C++
3.系统功能介绍及结构设计
软件各个模块功能:
(1)、开场模块:首先是一个游戏界面,通过游戏来进入电话簿,游戏成功正常进入电话簿管理系统,退出游戏则进入紧急拨号界面。
(2)、对电话簿管理系统修改的模块:
输入记录模块:主要实现将数据存入数组中,当从数据文件中读出记录时,它调用fread(&tele[count],sizeof(TELEBOOK),1,fp)文件读取函数,执行一次从文件中读取一条电话簿记录信息存入某个数组元素中的操作,并且这个操作在main()中调用执行,即在电话簿管理系统进入显示菜单界面时,该操作已经执行了。若该文件中没有数据,则系统会提示数组为空,没有任何记录可操作,此时,用户应选择1,调用Add()函数,进行记录的输入,即完成在数组中添加元素的操作。
查询记录模块:主要实现在数组中按联系人姓名或电话或分组查找满足条件的记录。在查询函数Qur()中,为了遵循模块化编程的原则,我们对在数组中进行的记录定位操作设计成了一个单独的函数int Locate(TELEBOOK temp[],int n,char findmess[],char
nameorphonenum[]),参数findmess[]保存要查找的具体内容,nameorphonenum[]保存要查找的字段(值为字符串类型的name或phonenum或group),若找到该记录,则返回指向该记录的数组元素的下标;否则,返回一个-1的值。
更新记录模块:主要实现对记录的修改、删除、插入和排序操作。
1)修改记录:对数组中目标元素的数据域中的值进行修改,分两步完成。
第一步,输入要修改的联系人姓名,输入后调用定位函数Locate()在数组中逐个对联系人姓名字段的值进行比较,直到找到该联系人姓名的记录;第二步,若找到该记录,修改除记录编号之外的各字段的值,并将存盘标记变量saveflag置1,表示已经对记录进行了修改,但还未执行存盘操作。
2)删除记录:完成删除指定联系人姓名或电话号码或分组的记录,分两步
完成。第一步,输入要修改的联系人姓名或电话号码,输入后调用定位函数Locate()在数组中逐个对联系人姓名或电话号码字段的值进行比较,直到找到该联系人姓名或电话号码的记录,返回指向该记录的数组元素下标;而输入要修改的分组,输入后调用定位函数Locate1()在数组中逐个对分组字段的值进行比较,直到找到该分组的记录,返回指向该记录的数组元素下标;
第二步,若找到该记录,则从该记录所在元素的后续元素起,依次向前移一个元素位置,有值的数组元素个数减1。
3)插入记录:完成在指定记录编号的随后位置插入新记录。首先,输入某
个记录编号,新的记录将插入在该记录之后;然后,提示用户输入一条新的记录的信息,这些信息保存在新结构体类型的数组元素的各字段中;最后,将该元素插入在已经确认位置的记录编号之后。
4)排序记录:这里我们采用了选择排序法来实现按照记录编号或联系人姓
名或分组字段的值从低到高对记录进行升序排序。对按照记录编号排序方式而言,我们将按其数值大小来排序;对按照联系人姓名排序方式而言,我们将按其姓名字符ASCII码的大小来排序;对按照分组排序方式而言,我们也按其分组类别的字符ASCII码的大小来排序。
输出记录模块:当把记录输出至文件时,调用
fwrite(&temp[i],sizeof(TELEBOOK),1,fp)函数,将数组元素temp[i]中各字段的值,写入文件指针fp所指的文件;当把记录输出至屏幕时,调用void Disp函数,将数组中存储的记录信息以表格的形式在屏幕上打印出来。
增加成员分组:区分类别,例如家人、朋友、同学等等。
(3)、帮助模块
电话簿管理系统模块图:
电话簿管理系统
开场模块
更新记录模块帮助模块
正常游戏进入退
出
游
戏
紧
急
拨
号
从
文
件
读
入
从
键
盘
输
入
输
入
记
录
模
块
查
询
记
录
模
块
对电话簿管理系统修改的模块
输
出
记
录
模
块
增
加
成
员
分
组
按
姓
名
查
询
插
入
记
录
删
除
记
录
修
改
记
录
按
电
话
查
询
排
序
记
录
输
出
至
文
件
输
出
至
屏
幕