当前位置:文档之家› 课程设计说明书示例

课程设计说明书示例

面向过程程序设计(C语言)课程设计设计说明书通讯录管理系统起止日期: 2012 年 12 月 18 日至 2012 年 12月 23日学生姓名班级学号成绩指导教师(签字)计算机与通信学院2012 年 12 月 23 日通讯录管理系统一、设计要求综合运用C语言程序设计课程的主要知识,设计一个用于通讯录管理的程序,设计指标由程序的功能要求和技术要求具体说明。

1、功能要求通信录管理程序至少应具有如下功能:(1)输入功能:能通过键盘向通信录输入数据。

要求随时都能使用该项功能实现记录输入,一次可以输入一条记录,也可以输入多条记录。

所谓一条记录,是指通信录中一个人员的完整信息。

(2)显示功能:能显示通信录存储的记录信息,在显示时能提供下列显示方式:①按自然顺序显示。

即按照向通信录输入数据时各条记录的先后顺序,显示通信录中已有的记录信息。

②按照一定的排列顺序显示通信录信息。

排序顺序有多种,如按姓名查询、按所在城市查询,任何一种查询都要有明确的查询结果。

(3)查询功能:能查询通信录信息。

要求至少提供两种查询方式,如按照姓名查询、按所在城市查询,任何一种查询都要有明确的查询结果。

(4)修改功能:能对通信录存储的信息进行修改。

要求至少提供两种修改方式,如按照姓名修改、按照通信录记录序号修改。

记录序号是通信录记录的自然顺序编号。

(5)删除功能:能对通信录的信息进行删除。

要求删除时以记录为单位,既能一次删除一条记录,也能一次删除多条记录。

(6)保存功能:能将记录保存在任何自定义的文件中,如保存在:c:\score。

(7)读取功能:能将保存在文件中的记录读取出来,并在屏幕上显示。

(8)通信录管理结束后,能够正常退出通信录管理程序。

2、技术要求(1)每个通信录记录至少包括如下信息:姓名、电话、所在城市、所在单位、年龄、备注等。

(2)通信录信息以磁盘文件的形式存储,存储位置、文件名、文件格式由设计者确定。

(3)对于通信录功能中数据输入、显示、查询、修改、删除、保存、读取等功能,要求编写功能独立的函数或主控函数予以实现,其所属的各项功能尽量由独立的函数实现。

(4)以菜单方式实现功能选择控制。

(5)本通信录管理程序能够实现100条记录的管理。

二、程序的功能设计根据题目的功能要求,设计通信录管理程序的功能如图1所示。

图1 通信录管理程序功能图各功能的具体说明如下:1、通信录信息录入(1)通过显示信息项目,逐项输入通信录的记录信息。

(2)每次输入记录后,通过询问的方式决定是否继续进行记录输入。

因此,使用该功能既可以录入一条记录,也可连续录入多条记录。

(3)每次录入记录之前,显示通信录中已有的记录数。

2、通信录信息显示(1)按自然顺序显示,即以通信录文件中的记录顺序为序,逐个对文件记录进行显示。

(2)按排序顺序显示,即对通信录中的记录进行排序后,再按照排序结果显示出来,但不管使用何种排序算法,排序显示不能改变通信录记录的物理顺序。

(3)当通信录信息较多时,实行分屏显示,每屏最多显示20条记录信息。

(4)显示记录时,对每一条记录增加与显示顺序一致的序号。

3、通信录信息查询(1)提供按姓名查询和按城市查询两种查询方式。

(2)查找成功后显示每一条符号条件记录的完整信息,当一屏不能完成显示时,实行分屏显示,每屏最多显示20条符合条件的记录信息。

当找不到符合条件记录时,给出相应的提示信息。

4、通信录信息修改(1)按照指定的记录序号,对通信录记录进行修改。

首先显示指定的记录当前数据,然后通过重新输入该记录数据的方法,完成数据修改操作。

(2)为方便确认记录序号,该功能项同时提供通信录记录的浏览功能。

5、通信录信息删除(1)提供按姓名删除和按序号删除两种方式,当找到指定记录时,进行删除操作。

找不到指定记录时,给出相应的提示信息。

(2)所有的删除均为物理删除,即将制定的记录从通讯录文件中彻底清除掉。

6、建立通讯录文件第一次使用通讯录管理程序时,用于建立存储通讯录信息的文件。

三、程序的数据设计(1)每个通讯录记录由多个不同的数据项构成,是一个结构体数据,因此需要定义结构体数据,因此需要定义结构体数据类型。

根据题目要求,确定每个记录包括的数据项目为:姓名、电话、所在城市、所在单位、年龄、备注等。

据此定义如下结构体数据类型:Struct record{Char name[20] / /姓名Int age; / /年龄Char tele[15]; / /电话号码Char city[20]; / /所在城市Char units[30]; / /所在单位Char note[20]; / /备注};(2)考虑到struct record是通讯录管理程序中的通用数据类型,将在多个函数中使用,故将其在头文件中定义。

(3)使用文件存储数据类型为stuct record的通讯录数据。

四、程序的函数设计1、函数功能描述(1)main()函数通讯录管理程序主函数,实现程序功能的主菜单显示,通过各功能函数的调用,实现整个程序的功能控制。

(2) append()函数函数原型为void append(),是输入数据函数,它实现通讯录数据的键盘输入。

(3)display()函数函数原型为void display(),是显示通讯录信息的主控函数,它实现显示功能的菜单显示,并进行不同显示功能的函数调用,以实现程序的显示功能。

(4)locate()函数函数原型为void locate(),是查询通讯录信息的主控函数,它显示查询功能的菜单,并根据查询要求,进行相应的函数调用,以实现查询的查询功能。

(5)modify()函数函数原型为void modify(),修改通讯录信息的主控函数,它显示查询功能的菜单,进行相应的函数调用,以实现程序的修改功能。

(6)dele()函数函数原型为void dele(),是删除通讯录记录的主控函数,它显示删除功能的菜单,并根据删除要求,并进行相应的函数调用,以实现程序的修改功能。

(7)disp_arr()函数函数原型为void disp_arr(struct record[],int),功能是显示struct record型结构体数组的全部数据,其第二个参数是结构体数组的长度。

这里的结构体数组对应于存储通讯录文件的数据,数组长度对应于通讯录文件的记录数。

(8)disp_name()函数函数原型为void disp_row(struct record),功能是显示一个struct record型结构体数据,disp_arr()函数进行数组输出时,每一个数组元素都调用disp_row()函数实现输出。

(9)sort()函数函数原型为void sort(struct record[],int),是排序的主控函数,它显示排序功能的菜单,并根据显示的排序要求,进行相应的函数调用,以实现程序的排序显示功能。

(10)sort_name()函数函数原型为void sort_name(struct record[],int),功能是对struct record型结构体数组实现按姓名排序操作。

(11)sort_city()函数函数原型为void sort_city(struct record[],int ),功能是对struct record型结构体数组实现按城市排序操作。

(12)modi_seq()函数函数原型为void modi_seq(struct record[],int),功能是对struct record型结构体数组实现按序号修改操作。

(13)dele_name()函数函数原型为void dele_name(struct record[],int*),功能是对struct record型结构数组实现按姓名删除操作。

(14)dele_sequ()函数函数原型为void dele_sequ(struct record[],int*),功能是对struct record型结构体数组实现按序号删除操作。

(15)disp_str()函数函数原型为disp_str(char,int),功能是输出n个字符,用于菜单的字符显示,每一个有菜单显示功能的函数都调用该函数。

(16)disp_table()函数函数原型为void disp_table(),功能是显示一行表头,用于输出记录时的标题显示。

(17)creat()函数函数原型为void creat(),功能是建立存储通讯录信息的文件address,txl。

2、函数的直接调用关系(1)main()函数直接调用的函数:disp_str()函数、append()函数、display()函数、locate()函数、modify()函数、dele()函数。

(2)append()函数直接调用的函数:无。

(3)display()函数直接调用的函数:disp_str()、disp_arr()、sort()。

…………。

五、程序编码及调试1、头文件的设计头文件包含以下信息:(1)通讯录记录的结构体类型定义。

(2)通讯录管理程序中使用的C语言系统的宏包含命令。

(3)通讯录管理程序中自定义的函数原型声明。

(4)通讯录管理程序中使用的结构体数组的长度。

下面是头文件的具体内容:#define M 100 用于定义结构体数组的长度以下是通讯录管理程序所用系统头文件的宏包含命令#include “”#include””#include””以下是结构体数据类型定义,与通讯录记录的数据项相同struct record{char name[20]; / / 姓名int age; / /年龄int tele[15]; / /电话号码char city[30]; / /所在城市char units[30]; / /所在单位char note[20]; / /备注};/ /以下是用户自定义函数声明void creat(); / /建立通讯录文件函数void append(); / /输入数据函数void siaplay(); / /显示通讯录文件函数void locate(); / /查询通讯录主控函数void modify(); / /修改通讯录主控函数void dele(); / /删除通讯录主控函数void disp_arr(struct record*,int); / /显示数组函数void disp_row(struct record); / /显示一个记录的函数void disp_table(); / /显示一行表头的函数void modi_seq(struct record [],int ); / /按序号编辑修改记录函数void disp_str(char,int ); / /显示N个字符的函数void sort(struct record[],int ); / /排序主控函数void sort_name(struct record[],int); / /按姓名排序函数void sort_city(struct record[],int ); / /按城市排序函数void dele_name(srtruct record[],int*); / /按姓名删除记录函数void dele_sequ(struct record[],int*); / /按序号删除记录函数以上为头文件的全部内容该头文件在通讯录管理程序的开头位置用 include命令包含,宏包含命令为 #include””。

相关主题