问题提出
用C语言实现门禁系统功能。功能简析
1,系统登录分为管理员登录和学生登录,输入相应字符即可选择登录;
2,学生登录,学生使用自己的账号密码登录系统,选择开启的门,即可开启门禁;此外系统还会记录下学生登录的信息,如登录账号、登录时间、开启哪间门;
3,管理员登录,管理员登录也是要输入特定的账号密码才能登录;登录之后才能进入管理员操作界面进行相应操作,如添加学生账号、删除学生账号、查看学生基本信息、查看学生登录情况……输入相应字符即可选择执行相应的功能。
4,管理员权限一:添加学生账号。输入学生姓名(即为账号)、密码、专业班级等基本信息,可用于后续查询,回车完成添加。查看系统中学生信息,该账号已存在
5,管理员权限二:删除学生账号。输入需要删除的账号,回车完成删除操作,查看系统数据库中已无该学生信息。
6,管理员权限三:查看所以学生基本信息。输入相应字符,即可查询所以信息
7,管理员权限四:查看学生登录门禁系统情况。输入相应相应字符,可按学生使用门禁系统时间先后顺序一次显示学生账号、登录时间,选择开启的门。
8,管理员权限五:修改存在于系统的学生信息。输入需要修改的学生账号,并输入修改后的账号、密码、专业班级等基本信息。
实现关键
首先考虑到要对学生账号等基本数据要重复使用,且易更改,下次使用时上次修改的信息还会存在而不是对代码进行修改,所以考虑使用对文本进行操作。将学生账号密码等数据信息全部储存在一个txt或dat文本中,调用函数对文本进行相应操作,对数据的操作即是对文件的操作。代码实现
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
struct information
{
char name[10];
char password[10];
char profession[20];
};
struct Thelog
{
char name[10];
char times[24];
char num[1];
};
FILE *fp; //文件指针
information *head;//链表头指针
void add_student(information a); //函数[1]管理员添加学生账号,使用门禁系统
void delete_student(char names[10]);//函数[2]管理员员删除学生账号,解除使用门禁系统权限
void administrator_login(); //函数[3]管理员登陆
void administrator_management(); //函数[4]管理员操作界面,添加学生账号,删除学生账号,查看学生使用门禁情况
void student_login(); //函数[5]学生登陆,用于打开门禁
void time (); //函数[6]时间函数,用于显示登陆时间
void All_output(); //函数[7]全部学生信息
void the_log(information a,char num[1]); //函数[8]录入学生使用门禁情况
void log_output(); //函数[9]输出学生使用门禁情况
void replace_massage(char names[10]); //函数[10]更改学生信息,只有管理员有权限
int main()
{
int n;
printf(" *********************************************\n");
printf(" * 欢迎使用四海门禁系统!!! *\n");
printf(" *********************************************\n");
printf("\n"