根据用户输入的账号和密码,判断用户是否合法,如果是合法用户则记录用户的账号、上机时间,如果为非法用户则提示账号或密码错误,请重试。用户上机结束后,记录用户的下机时间,并计算费用(设每小时时间费用为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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: