基于链表的打字练习统计软件,运用ege和devc++进行实现,要能对用户进行管理
2条回答 默认 最新
- 踢足球的阿坤 2023-02-17 22:25关注
定义链表数据结构
通过定义链表数据结构,可以用来存储用户的相关信息,包括用户名,用户ID,打字速度,统计次数和时间等。struct userInfo{ int userID; char userName[20]; int typingSpeed; int totalCount; int totalTime; struct userInfo *next; };
创建链表
在程序开始时,创建一个头结点,用来存储用户信息,每次添加新用户,都可以把新用户添加到头结点后面。struct userInfo head; head = (struct userInfo)malloc(sizeof(struct userInfo)); head -> userID = 0; head -> next = NULL;
添加用户
根据用户输入,把用户的信息添加到链表中,添加的时候,需要把用户的ID和名字检测是否重复,确保添加的用户不会重复。struct userInfo p; p = (struct userInfo)malloc(sizeof(struct userInfo)); if (check_userinfo(userID, userName)) { p -> userID = userID; p -> userName = userName; p -> typingSpeed = 0; p -> totalCount = 0; p -> totalTime = 0; p -> next = head -> next; head -> next = p; }
统计数据
每次用户进行打字练习,就对用户进行统计,记录用户的打字速度,累计次数,累计时间等,把统计数据存放到链表中。struct userInfo *p; p = head -> next; while (p != NULL) { if (p -> userID == userID) { p -> typingSpeed = typingSpeed; p -> totalCount += 1; p -> totalTime += time; } p = p -> next; }
输出数据
把统计完成的用户数据,以 Markdown 格式输出,方便用户查看。struct userInfo *p; p = head -> next; while (p != NULL) { printf("|UserID|UserName|TypingSpeed|TotalCount|TotalTime|\n"); printf("|------|--------|-----------|----------|---------|\n"); printf("|%d |%s |%d |%d |%d |\n", p -> userID, p -> userName, p -> typingSpeed, p -> totalCount, p -> totalTime); p = p -> next; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 软件定义网络mininet和onos控制器问题
- ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
- ¥15 ArcGIS批量裁剪
- ¥15 labview程序设计
- ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
- ¥15 Cloudreve保存用户组存储空间大小时报错
- ¥15 伪标签为什么不能作为弱监督语义分割的结果?
- ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
- ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
- ¥15 android 集成sentry上报时报错。