• 大小: 644KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-07-17
  • 语言: C/C++
  • 标签: 程序设计  

资源简介

机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include  
#include 
//每三十秒扣除的钱 
#define money_30s 0.1
using namespace std;
 
struct Card
{
char id[20]; //学号 
char password[20]; //密码 
char name[20];
char major[40]; //专业 
char class_id[20]; //班级 
float money; //余额 
bool exist; //是否挂失 
};
struct Record
{
char card_id[20]; //学号 
int yearmonthday; //日期 
unsigned int time_use; //上网时间 
bool use; //是否正在上网 
};

void init(); //初始化 
int menu_select_0(); //开始菜单 
int menu_select_stu(Card &stu); //学生菜单 
int menu_select_adm(); //管理员菜单 
void SignIn(); //登陆 
void LossCard(); //挂失 
void AddStu(); //添加学生 
void DelStu(); //删除学生 
void Info(); //查询某天的上网信息 
void Look(); //查询某个学生的上网记录 
void UseComputer(Card &stu); //上机 
void StopComputer(Card &stu); //下机 
void Despoit(Card &stu); //存款 
void ShowCard(Card &stu); //显示上网卡的信息 
void Save(); //保存当前信息 
void Update(); //每30S更新函数 

char admin_id[20] = “Admin“; //管理员账号 
char admin_password[20] = “Password“; //管理员密码 
list card_database; //上网卡数据库 
list record_database; //上网记录数据库 
//主程序 
int main()
{
init();
time_t timer = time(NULL);
//当程序没退出时,每30s更新一次信息 
while(menu_select_0()!=3)
{
int k = (time(0) - timer) / 30;
for(int i = 0;i < k;i++) Update(); //防止卡在其它页面时间太长 
if(k > 0) timer = time(0);
}
printf(“\n再见!“);
system(“pause“);
return 0;
}

void init()
{
//读取上网卡信息 
FILE *in;
in = fopen(“cards.txt““rb“);
Card t;
while(fread((char*)&t1sizeof(t)in))
card_database.push_back(t);
fclose(in);
ifstream fin;
//读取上网记录 
in = fopen(“records.txt““rb“);
Record t2;
while(fread((char*)&t21sizeof(t2)in))
record_database.push_back(t2);
fclose(in);
}

int menu_select_0()
{
char i;
do{
system(“cls“);
printf(“1.登陆\n“);
printf(“2.挂失\n“);
printf(“3.退出系统\n“);
printf(“请选择:“);
i=getchar();
setbuf(stdin NULL);//清空缓冲区 
}while(i<‘0‘ || i>‘3‘);
if(i == ‘1‘) SignIn();
if(i == ‘2‘) LossCard();
return (i-‘0‘);
}

int menu_select_stu(Card &stu)
{
char i;
do{
system(“cls“);
ShowCard(stu);
printf(“1.上机\n“);
printf(“2.下机\n“);
printf(“3.充值\n“);
printf(“4.退出\n“);
printf(“请选择:“);
i=getchar();
setbuf(stdin NULL);//清空缓冲区 
}while(i<‘0‘ || i>‘4‘);
switch(i - ‘0‘)
{
case 1:UseComputer(stu);break;
case 2:StopComputer(stu);break;
case 3:Despoit(stu);break;
}
return (i-‘0‘);
}

int menu_select_adm()
{
char i;
do{
printf(“欢迎您,管理员\n“); 
printf(“1.添加学生\n“);
printf(“2.删除学生\n“);
printf(“3.当天上机信息\n“);
printf(“4.查看学生上机信息\n“);
printf(“5.退出\n“);
printf(“请选择:“);
i=getchar();
setbuf(stdin NULL);//清空缓冲区 
}while(i<‘0‘ || i>‘5‘);
switch(i - ‘0‘)
{
case 1:AddStu();break;
case 2:DelStu();break;
case 3:Info();break;
case 4:Look();break;
}
return (i-‘0‘);
}

void SignIn()
{
char id[20];

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-10 22:54  机房收费管理系统(程序设计)\
     文件           0  2017-10-31 12:12  机房收费管理系统(程序设计)\cards.txt
     文件         200  2017-10-31 12:12  机房收费管理系统(程序设计)\records.txt
     文件        8661  2017-10-30 15:14  机房收费管理系统(程序设计)\机房收费管理系统.cpp
     文件     1896509  2017-11-02 14:28  机房收费管理系统(程序设计)\机房收费管理系统.exe
     文件         478  2017-10-28 06:46  机房收费管理系统(程序设计)\说明.txt
     文件      217351  2017-10-26 20:37  机房收费管理系统(程序设计)\要求.jpg

评论

共有 条评论