c语言机房上机模拟系统

根据用户输入的账号和密码,判断用户是否合法,如果是合法用户则记录用户的账号、上机时间,如果为非法用户则提示账号或密码错误,请重试。用户上机结束后,记录用户的下机时间,并计算费用(设每小时时间费用为1元)。

以下是一个简单的实现,用C语言编写。需要注意的是,此实现没有进行真正的用户认证和授权,因此只是一个模拟系统。同时,时间计算也比较简单,只是简单地计算了开始时间和结束时间之间的时间差。如果需要更加精确的计算,可以使用系统提供的时间函数。另外,此实现只考虑了单用户的情况,如果需要支持多用户,需要对代码进行相应的修改。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define RATE 1  // 时间费率

int main()
{
    int valid = 0;  // 是否合法用户
    char account[20];  // 用户账号
    char password[20];  // 用户密码
    time_t start_time, end_time;  // 上机时间和下机时间
    double duration;  // 上机时长
    double cost;  // 费用

    // 用户认证
    printf("请输入账号和密码,用空格分隔:");
    scanf("%s%s", account, password);
    if (strcmp(account, "admin") == 0 && strcmp(password, "123456") == 0) {
        printf("欢迎您,%s!\n", account);
        valid = 1;
    } else {
        printf("账号或密码错误,请重试!\n");
        return 0;
    }

    // 上机记录
    time(&start_time);
    printf("上机时间:%s", ctime(&start_time));  // ctime函数可以将时间转换为字符串
    printf("按任意键下机...\n");
    getchar();  // 暂停程序,等待用户输入
    time(&end_time);
    printf("下机时间:%s", ctime(&end_time));
    duration = difftime(end_time, start_time);  // 计算上机时长,difftime函数可以计算两个时间之间的时间差
    cost = duration / 3600.0 * RATE;  // 计算费用
    printf("本次上机时长:%.2f小时,费用:%.2f元。\n", duration / 3600.0, cost);

    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^