综合实训-课堂点名管理系统
综合实训――课堂点名管理系统
一、实验目的
1、掌握C 语言的主要知识点:变量、控制语句、数组、函数、指针、结构体、文件等;
2、掌握C 程序的结构化程序设计方法,能使用C 语言开发简单的应用程序; 3、掌握多文件程序的运行、调试等。
二、实验内容和步骤
设计一个课堂点名管理系统,并给出程序源代码。
三、实训要求
(1) 能建立新数据文件,存放班级和学生信息; (2) 能追加新记录; (3) 能修改已有记录; (4) 能删除指定记录; (5) 能查询部分记录; (6) 能排序记录;
(7) 能用菜单方法操作。
四、系统设计
1、数据文件设计
class_table.txt文件中存放各班的信息,包括班级名、存放该班级信息的文件名,班级人数,每行对应一个班级。该文件采用文本格式存放数据。
每个班级的信息对应有一个文件存放,文件名为如“计1301.txt ”的格式。存放该班级每位同学的学号、姓名、各次提问的评分及提问次数。该文件采用二进制格式存放数据。
数据结构如下表所示。
课堂点名管理系统的功能如下图所示。
根据功能需求,本系统分6大模块和1个头文件,如下表所示。
4、总体设计思想
为了简化程序,所有记录操作通过数组完成,当程序开始执行时把班级数据文件一次性读入到班级结构体数组,在需要对学生进行操作时,先把某个班级的全部学生记录读入到学生结构体数组中。以后对数据的操作都通过结构体数组来完成。只有当数据发生变化时才进行写文件操作,把更新后的信息写回到文件中。
(1)头文件student.h 。由于多个文件需要进行结构估声明,因此为了减少代码,采用头文件形式。
(2)主控文件main.c 。负责库函数及函数原型声明,全局变量声明;负责菜单选择和菜单处理。
执行流程如下:
①函数、函数原型声明,全局变量声明。
②主函数的功能:调用read( ) 函数,从班级文件中读取班级记录到班级结构体数组中;调用select( ) 函数来对菜单进行选择,当选择某一菜单后显示相应的子菜单或直接调用某个功能模块。
5、实训具体要求
(1) 首先了解程序设计的总体要求; (2) 录入源代码,编译、连接,运行程序 (3) 进一步完善本系统。
(4) 实训结果的提交:每个学生应提交一个文件夹,其中包括一个可执行文件、全部源程序和学生信息文件。