程序设计报告
( 2014 / 2015 学年 第 一 学期)
题 目:门禁信息系统
专 业 计算机科学与技术 组长 学号姓名 B13040505张娟__________________ 组员 学号姓名 B13040515冯奎 ________________ B13040525李英杰________________ 指 导 教 师 朱丹 指 导 单 位 南京邮电大学 日 期 2014 年 11 月20 日
1 / 35
组长(张娟) main函数的实现、选择菜单和显示菜单的实现 结构体的定义及主要函数(包括录入、修改、删除)的实现 查找、统计、排序函数的实现 优秀 良好 中等 差 成员分工组员(冯奎) 评分细则评分等级 组员(李英杰) 评分项 遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简短评语 教师签名: 年月日 备注评分等级共五种:优秀、良好、中等、及格、不及格
2 / 35
门禁信息系统
一、 课题内容和要求
课题内容:
门禁信息系统是一个用来统计人员出入情况的程序。信息结构包括出入人员的姓名、证件类型、证件编号、负责接待出入人员的接待人(部门)、出入人员的进出时间、出入事由等。通过此课题,熟练掌握数组、字符串、函数的调用和文件的处理等。
程序要求:
1. 能录入,删除,修改,保存文件info_1中数据 2. 能分别按姓名,证件编号查询出入信息 3. 统计各出入点的出入信息 4. 统计各部门的接待次数 5. 按出入事由统计对应出入次数
6. 按总滞留时间排序,并显示对应姓名证件编号,结果存入单独文件info_2
二、 需求分析
门禁信息系统的功能框架图如图1所示。
门禁信息系统 录入 删除 修改 保存 查询 统计 排序 图1 功能框架图
(1)提供可操作的主菜单:输出菜单,用于显示以从文件中加载的总客户信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
(2)数据的录入:从终端获取信息,并将其写入文件info_1中。
(3)数据的删除:从终端获取操作信息,删除info_1中与命令对应的数据。 (4)数据的修改:从终端获取指令,修改info_1中与命令对应的数据。
(5)保存数据:进行录入、删除、修改的操作后,自动将数据保存在文件info_1中。 (6)查找功能:提供两种类型的查找方式,即按姓名查找和按证件编号查找。
3 / 35
(7)统计数据:能够分别按照出入点、接待人(部门)、出入事由进行数据的统计。 (8)排序功能:根据进出人员的出入时间差进行排序。
三、概要设计
1、 主要结构体
typedef struct {
char name[100]; //姓名 char credentials_type[100]; //证件类型 char credentials_number[100]; //证件编号 char place[100]; //出入点 char in_and_out_type[100]; //出入类型 char reason[100]; //事由 long int time; //时间
char depart[100]; //接待人(部门) }TX;
struct Info //定义结构Info { };
typedef struct Info Info;
Info Info_2[100]; //定义结构数组,用于存储排序后的时间,姓名,证件编号 TX mj[100]; //定义结构数组,存储录入的记录 TX a[100]; //定义结构数组,存储进入记录 TX b[100]; //定义结构数组,存储出去记录 TX d[100]; //定义结构数组,存储只留时间差 int last=0; //初始化记录数为0
long int time1; char name1[100]; char number1[100];
2、主要函数流程图
(1)主函数:调用其他函数实现程序功能,主函数流程图如图2所示。
4 / 35
图2 主函数
(2)录入函数:输入记录并保存到文件中,,录入函数流程图如图3所示。
图3 录入函数
5 / 35