数据结构课程设计(一)---系统进程统计(必做)(链表)

本文介绍了一个C++程序,通过WindowsAPI每秒收集系统进程信息,按内存使用量排序,同时维护一个已结束进程链表,按持续时间排序。程序展示了如何检测进程状态变化,更新链表,并实现动态界面刷新。
摘要由CSDN通过智能技术生成

1.1 系统进程统计 [链表]

1.1.1 题目内容
1.1.1-A [问题描述]

  设计一个程序,每秒统计一次当前系统的进程状况,并按照内存使用自多到少排序打印输出相关信息。对已经结束的进程,另外给出一个列表,并显示该进程的结束时间和持续时间。

1.1.1-B [基本要求]

(1) 该题目要求使用两个链式线性表。一个链表存储当前活动进程,要求使用单向链表,并按照内存使用自多到少排序。另外一个链表存储已结束进程,要求使用双向链表,按照持续时间自少到多排序。

(2) 每秒在窗口内更新一次当前系统进程情况,输出内容包括:进程名,持续时间,内存使用情况。

(3) 每秒在窗口内更新一次已结束进程情况,输出内容包括:进程名,持续时间,结束时间。

(4) 注意进程在这两个链表中的切换,一个进程既可被结束,也可以过一段时间后再被运行。

1.1.2 算法思想

这段代码的主要思路是通过调用 Windows API 不断获取系统中的进程信息,并记录下这些进程的内存使用情况、持续时间等信息,然后对比前后两次获取的进程信息,找出已结束的进程并记录其结束时间和持续时间,把它们存放在CreateEndedList 函数创建的已结束进程链表中。UpdateProgarm 函数用于刷新后更新进程,通过比对当前进程链表和已结束进程链表,找出新的进程并添加到当前进程链表和已结束进程链表中,并通过SortDList 和 SortSList 函数分别对当前进程链表和已结束进程链表按照内存大小和结束时间进行排序。最后,通过 ShowArray_D 函数将当前进程链表和已结束进程链表的信息显示出来,包括进程名、PID、内存使用情况、持续时间和结束时间。

在结果显示方面,为了实现良好交互的界面,通过Set_Color函数来控制字体颜色,当前进程中的信息为绿色,已结束进程中的信息为红色,便于区分。使用Sleep(1000)来实现每过1s获取一次当前进程,使用system("cls")来实现清屏,结合它们来实现了每秒在窗口内更新一次已结束进程情况动态刷新的要求

1.1.5 测试数据与运行结果
1.1.5-A 测试数据

无输入!

1.1.5-B 运行结果

源码地址:GeekclubC/Course-Design-of-Data-Structure: 用C++完成的数据结构课程设计 (github.com)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值