当前位置:首页 > C语言课程设计指导书
(3)显示表头。 5.文件存储
(1)可以按默认名或指定名存储记录文件; (2)存储成功返回0,失败返回-1; (3)更新存储标志。 6.读取文件
(1)可以按默认名字或指定名字将记录文件读入内存; (2)读取成功返回0,失败返回-1;
(3)可以将指定或默认文件追加到现有记录的尾部; (4)可以将文件连续追加到现有记录并更新记录的名次; (5)更新存储标志。 7.删除记录
(1)可以按“学号”、“姓名”或“名次”方式删除记录; (2)给出将被删除记录的信息,经确认后再删除;
(3)如果已经是空表,删除时应给出提示信息并返回主菜单; (4)如果没有要删除的信息,输出没有找到的信息; (5)应该更新其他记录的名次;
(6)删除操作仅限于内存,只有执行存记录时,才能覆盖原记录。 (7)更新存储标志。 8.修改记录
(1)可以按“学号”、“姓名”或“名次”方式修改记录内容; (2)给出将被修改记录的信息,经确认后再修改;
(3)如果已经是空表,删除时应给出提示信息并返回主菜单; (4)如果没有找到要修改的信息,输出提示信息; (5)应该同时更新其他记录的名次;
(6)修改操作仅限于内存,只有执行存储操作时,才能覆盖原记录。 (7)更新存储标志。 9.查询记录
(1)可以按“学号”、“姓名”或“名次”方式查询记录;
(2)能给出查询记录的信息;
(3)如果查询的信息不存在,输出提示信息。 10.对记录进行排序
(1)可以按学号进行升序或降序排序; (2)可以按姓名进行升序或降序排序; (3)可以按名次进行升序或降序排序; (4)如果属于选择错误,可以立即退出排序; (5)更新存储标志。 11.头文件
(1)使用条件编译定义头文件; (2)函数原型声明; (3)数据结果及包含文件。 12.测试程序
(1)应列出测试大纲对程序进行测试; (2)应保证能测试到程序的各种边缘情况。 6.2.2 总体设计
本课程设计对模块设计的要求如下: (1)要求使用多文件方式实现设计; (2)要求在各个文件内实现结构化设计;
(3)每个模块作为一个单独的C文件,每个文件内的函数如表6-1所示,表中给出了各个函数的功能说明;
(4)宏和数据结构等放在头文件中,并使用条件编译。
本设计由5个C文件(17个函数)和一个头文件组成,每个C文件都代表着某种特定的功能,它们的关系如表6-1所示。
程序包含文件的存、取过程。它的功能就是按输入顺序建立记录。如果原来没有记录文件,可重新建立一个文件;如果已经有记录,可以先把文件内容读入,然后把新记录追加到原来记录的尾部;也可以单独建立新文件,以后再使用读取文件的方法拼装。
由上述功能分析可以看到程序的全貌。因为它有并列选择,所以可以用选择
菜单方便地实现。这个菜单具有多个选择项,用switch语句可以实现这些选择。
表6-1 文件及函数组成
源文件 student.c 函数名及其他成分 main menu_select handle_menu newRecords quit add_disp.c showTable getIndex addRecord display que_remv_modi.c removeRecord findRecord queryInfo copyRecord modifyRecord save_load sort.c student.h Save Load sortInfo 常数 结构说明 库函数及函数原型声明 6.2.3 函数设计
为一些函数设计两个返回值以区分其执行结果是否正确。每个学生信息资料用一个StuInfo结构来保存,用StuInfo数组全局变量records来保存一批学生的信息资料。其中用宏定义INITIAL_SIZE表示数组初始大小,当已经分配的数组大小不够用时,将增加数组的大小,INCR_SIZE为每次增加的大小。全局变量numStus表示数组中记录的学生数,arraySize是为数组分配的空间大小。全局
功能 总控函数 菜单选择 菜单处理 新建学生信息记录 结束运行 打印表头 按升序排序的位置 在表尾追加信息 显示信息 删除指定的记录 查找指定的记录 查询指定学生的信息 复制记录 修改指定学生的信息 文件存储 文件读取 排序 提供常数 学生成绩结构 引用库函数及函数 变量saveTag是信息是否已保存的标志,当数组内容被保存到文件后,设为“已保存”状态,当数组内容被修改之后,设为“未保存”状态。
下面分别描述这些函数,并建立它们的函数原型。 1.文件存储操作函数
函数原型:int saveRecords(void)
功能:将记录存入默认文件stu_info或指定文件 参数:void
返回值:成功0,失败-1
工作方式:数组records被保存至指定文件。
要求:报告是否有记录可存,是否能正常建立或打开文件,根据要求执行存入操作并报告存入记录的条数。
2.文件读取操作函数
函数原型:int loadRecords(void)
功能:将默认文件stu_info或指定文件里的记录取入内存 参数:void
返回值:成功0,失败-1
工作方式:records将为从指定文件中读取出的记录。
要求:报告是否有记录可存,是否能正常打开文件、是否覆盖已有记录以及读取记录的条数。
3.显示所有学生信息的函数 函数原型:void display(void) 功能:显示内存里的记录信息 参数:void 返回值:void
工作方式:从头部开始逐个显示记录内容。 要求:报告是否有记录及记录条数和内容。 4.增加信息函数
函数原型:void addRecord(void) 功能:增加记录
共分享92篇相关文档