根据用户输入的账号和密码,判断用户是否合法,如果是合法用户则记录用户的账号、上机时间,如果为非法用户则提示账号或密码错误,请重试。用户上机结束后,记录用户的下机时间,并计算费用(设每小时时间费用为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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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语言#的问题,请各位专家解答!