2201_76005003 2023-02-16 11:54 采纳率: 88.9%
浏览 42
已结题

用C语言如何写机房上机模拟系统

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

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-16 12:11
    关注

    回答来自ChatGPT:

    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    
    // 定义合法的账号和密码
    char *accounts[] = {"user1", "user2", "user3"};
    char *passwords[] = {"password1", "password2", "password3"};
    int num_accounts = 3;
    
    // 定义每小时的费用
    float hourly_rate = 1.0;
    
    // 记录用户的上机实践和下机时间
    time_t login_time;
    time_t logout_time;
    
    // 根据账号和密码验证用户是否合法
    int is_valid_user(char *account, char *password) {
        for (int i = 0; i < num_accounts; i++) {
            if (strcmp(account, accounts[i]) == 0 && strcmp(password, passwords[i]) == 0) {
                return 1;  // 用户合法
            }
        }
        return 0;  // 用户非法
    }
    
    int main() {
        char account[20], password[20];
        printf("请输入账号:");
        scanf("%s", account);
        printf("请输入密码:");
        scanf("%s", password);
        if (!is_valid_user(account, password)) {
            printf("账号或密码错误,请重试!\n");
            return 0;
        }
    
        // 用户合法,记录上机时间
        time(&login_time);
        printf("欢迎使用机房上机模拟系统,您已成功登录!\n");
    
        // 模拟用户上机实践
        printf("请输入任意键开始上机:");
        getchar();
        getchar();
    
        // 模拟用户下机
        printf("请输入任意键下机:");
        getchar();
    
        // 计算费用并记录下机时间
        time(&logout_time);
        float duration = difftime(logout_time, login_time) / 3600.0;  // 上机时长(单位:小时)
        float cost = duration * hourly_rate;  // 上机费用
        printf("您的上机时长为%.2f小时,费用为%.2f元。谢谢使用!\n", duration, cost);
    
        return 0;
    }
    
    
    

    定义了三个合法的账号和密码,并将每小时费用设为1元。用户输入账号和密码后,通过is_valid_user()函数验证用户是否合法,如果合法则记录上机时间并输出欢迎信息;否则提示用户账号或密码错误并结束程序。

    模拟用户上机实践和下机时,我们使用了getchar()函数来等待用户输入任意键,模拟用户进行上机和下机操作。最后,根据记录的上机时间和下机时间,计算用户的上机时长和费用,并输出相应信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等