2201_75590617 2023-03-08 16:36 采纳率: 90%
浏览 19
已结题

c语言机房上机模拟系统

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

  • 写回答

2条回答 默认 最新

  • CQ.abc 2023-03-08 16:45
    关注

    以下是一个简单的实现,用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;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!