一、系统概述
将各种有关的信息从文件读取到链表中,开始进行系统登陆,(需要是超级管理员),然后通过对菜单的选择,进行各种函数操作,最后退出。
二、系统功能结构图
序号 | 模块 | 功能 | 说明 | |
1 | 卡管理 | 添加卡 | 输入卡号、密码、开卡金额等卡信息,将卡信息保存到data文件夹的card.txt文件中 | 独立完成,组长 |
2 | 查询卡 | 根据输入的卡号,查询卡号相同的卡信息,并以表格形式显示在控制台中 | 独立完成,组长 | |
3 | 注销卡 | 根据输入的卡号、密码,将对应卡的状态改为注销,注销卡不能进行上机 | 独立完成,组长 | |
4 | 计费标准管理 | 新增计费标准 | 输入计费标准的信息,将输入的计费标准保存到data文件夹的rate.txt文件中 | 合作完成,组长,组员 |
5 | 查询计费标准 | 根据上机时间,查询对应的计费标准 | 合作完成,组长,组员 | |
6 | 删除计费标准 | 从计费标准文件data文件夹的rate.txt文件中,删除一条计费标准 | 合作完成,组长,组员 | |
7 | 修改计费标准 | 修改一条计费标准 | 合作完成,组长,组员 | |
8 | 计费管理 | 上机 | 根据输入的卡号、密码,判断该卡能否上机,如果能上机,则保存计费信息 | 独立完成,组长 |
9 | 下机 | 根据输入下机卡的卡号,进行下机结算操作 | 独立完成,组长 | |
10 | 费用管理 | 充值 | 给一条已经存在的卡进行充值。 | 独立完成,组员 |
11 | 退费 | 将卡中余额返回给用户 | 独立完成,组员 | |
12 | 查询统计 | 查询消费记录 | 查询一张卡在一段时间内的消费记录 | 独立完成,组长 |
13 | 统计总营业额 | 统计一段时间内,总营业额 | 独立完成,组长 | |
14 | 统计月营业额 | 统计一年中,每个月上机次数、总营业额,将统计结果保存到文本文件中,并以列表形式显示在控制台中。 | 独立完成,组长 | |
15 | 权限管理 | 添加管理员 | 超级管理员添加一个管理员信息,配置管理员的权限 | 独立完成,组员 |
16 | 删除管理员 | 超级管理员删除一个管理员信息 | 独立完成,组员 | |
17 | 系统 | 退出 | 超级管理员和管理员退出系统 | 合作完成,组长,组员 |
主要设计
consume *next1; 卡的消费的数据链表
int year; //消费的年份
int month; //消费的月份
int day; //消费的日期
int hourstart; //消费的时
int hourend;//消费的分
//开始上机的时间,和下机的时间
int minstart; //消费结束的时
int minend; //消费结束的分
card *next; 卡的链表
int num;//卡号
char password[Maxsize];//卡密
int money;//卡的余额
int state; //卡的状态(是否注销0)
//卡的状态,1为可用,0为不可上机(默认为1)(未被注销)
int time;
//统计上机时间
charge *next; 收费标准的链表
int time; //收费的时长
int money; //收费的每小时的金额
monitor *next; 管理员的链表
int num; //管理员的账号
char password[Maxsize]; //管理员的密码
int key[6];
//权限,初始都为0,(不具有),改为1则具有
相关结构体
//卡的结构体
typedef struct card{
int num;//卡号
char password[Maxsize];//卡密
int money;//卡的余额
struct card *next;
int state;//卡的状态,1为可用,0为不可上机(默认为1)(未被注销)
int time;//统计上机时间
struct lirun A[Maxsize][12]; //统计2010年以后的消费数据
struct consume *next1;//consume指针,指向消费的结构体
}card;
//消费 相关的结构体
typedef struct consume{
int year;
int month;
int day;
int hourstart;
int hourend;//开始上机的时间,和下机的时间
int minstart;
int minend;
//这里要有计算了....
//要有消费文件的写入了
struct consume *next; //consume也要有下一个节点指针,指向下一次的消费
}consume;
//计费标准的结构体
typedef struct charge{
int time1[Maxsize];
int money1[Maxsize];
int time;
int money;
struct charge *next;
//分别对应数组,存放什么时间段内的什么金额;
}charge;
//管理员的结构体
typedef struct monitor{
int num;
char password[Maxsize];
int key[6]; //权限,初始都为0,(不具有),改为1则具有
struct monitor *next;
}monitor;
//营业额 的结构体
typedef struct lirun{
float allGot;//总营业额
int allOpen;//总上机次数
}lirun;//一次统计一个月的,用链表展示
typedef struct totallirun{
struct lirun A[Maxsize][12];
//行-》代表年份
//列-》代表月份
}totallirun;//统计总共的消费