使用COBOL编写传统的公司电脑监控软件

简介: 本文介绍了如何使用COBOL编写一款简单的公司电脑监控软件,该软件能够监控并记录员工活动,数据自动提交至网站。COBOL程序包含标识部、环境部、数据部和过程部。示例代码展示了数据结构,如员工的登录和活动时间,并定义了监控和数据存储过程。最后,通过HTTP POST请求将数据提交到指定网站。虽然COBOL古老,但在传统系统中仍占有一席之地,此类解决方案有助于维护企业系统和保障数据安全。

COBOL(Common Business-Oriented Language)是一种历史悠久的编程语言,广泛应用于商业、金融和行政系统。尽管现代化编程语言层出不穷,但COBOL在传统系统中依然具有不可替代的地位。本文将展示如何使用COBOL编写一个简单的公司电脑监控软件,并在最后讨论如何将监控到的数据自动提交到网站。

一、基础结构

首先,我们需要定义监控软件的基础结构。COBOL程序由四个主要部分组成:标识部、环境部、数据部和过程部。以下是一个基本的COBOL程序框架:

IDENTIFICATION DIVISION.

PROGRAM-ID. Monitor.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

INPUT-OUTPUT SECTION.

DATA DIVISION.

FILE SECTION.

WORKING-STORAGE SECTION.

77 WS-TIME PIC X(8).

PROCEDURE DIVISION.

START-SECTION.

   DISPLAY "Monitoring started..." UPON CONSOLE.

   PERFORM MONITORING-SECTION

   STOP RUN.

MONITORING-SECTION.

   ACCEPT WS-TIME FROM TIME.

   DISPLAY "Current Time: " WS-TIME.

   PERFORM UNTIL WS-TIME = "235959"

       CALL 'CheckActivities' USING WS-TIME

       ACCEPT WS-TIME FROM TIME

   END-PERFORM.

二、定义数据结构

接下来,我们定义数据结构以存储监控信息。假设我们需要监控员工的登录时间和活动时间:

DATA DIVISION.

FILE SECTION.

FD  LOG-FILE

   LABEL RECORDS ARE STANDARD

   VALUE OF FILE-ID IS "logfile.dat".

01  LOG-RECORD.

   05  EMPLOYEE-ID     PIC X(10).

   05  LOGIN-TIME      PIC X(8).

   05  ACTIVITY-TIME   PIC X(8).

WORKING-STORAGE SECTION.

77 WS-EMPLOYEE-ID     PIC X(10).

77 WS-LOGIN-TIME      PIC X(8).

77 WS-ACTIVITY-TIME   PIC X(8).

三、监控活动

然后,我们需要编写过程来监控和记录员工的活动。假设我们有一个外部子程序CheckActivities,它会返回当前活动的信息:

PROCEDURE DIVISION.

MONITORING-SECTION.

   ACCEPT WS-TIME FROM TIME.

   DISPLAY "Current Time: " WS-TIME.

   PERFORM UNTIL WS-TIME = "235959"

       CALL 'CheckActivities' USING WS-TIME, WS-EMPLOYEE-ID, WS-ACTIVITY-TIME

       WRITE LOG-RECORD FROM WS-EMPLOYEE-ID, WS-LOGIN-TIME, WS-ACTIVITY-TIME

       ACCEPT WS-TIME FROM TIME

   END-PERFORM.

四、数据存储和传输

我们将监控到的数据存储在一个日志文件中。为了将这些数据提交到网站,我们需要编写一个子程序SubmitData来处理数据传输。假设我们使用HTTP POST请求提交数据,以下是实现该功能的示例:

PROCEDURE DIVISION.

SUBMIT-DATA SECTION.

   OPEN INPUT LOG-FILE.

   PERFORM UNTIL EOF

       READ LOG-FILE INTO LOG-RECORD

       AT END SET EOF TO TRUE

       NOT AT END

           CALL 'SubmitDataToWeb' USING LOG-RECORD

   END-PERFORM.

   CLOSE LOG-FILE.

   STOP RUN.

在实际应用中,SubmitDataToWeb子程序会使用HTTP协议将数据提交到指定的网站:

PROCEDURE DIVISION.

SUBMIT-DATA-TO-WEB SECTION.

   MOVE "https://www.vipshare.com" TO URL.

   CALL 'HTTP-POST' USING URL, LOG-RECORD.

   STOP RUN.

监控到的数据,如何自动提交到网站

我们已经在上述代码中展示了如何将监控到的数据写入日志文件。接下来,利用HTTP POST请求将数据提交到指定的网站。假设我们有一个外部HTTP库,可以简化该过程:

IDENTIFICATION DIVISION.

PROGRAM-ID. Monitor.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

INPUT-OUTPUT SECTION.

DATA DIVISION.

FILE SECTION.

FD  LOG-FILE

   LABEL RECORDS ARE STANDARD

   VALUE OF FILE-ID IS "logfile.dat".

01  LOG-RECORD.

   05  EMPLOYEE-ID     PIC X(10).

   05  LOGIN-TIME      PIC X(8).

   05  ACTIVITY-TIME   PIC X(8).

WORKING-STORAGE SECTION.

77 WS-EMPLOYEE-ID     PIC X(10).

77 WS-LOGIN-TIME      PIC X(8).

77 WS-ACTIVITY-TIME   PIC X(8).

77 WS-EOF             PIC X VALUE 'N'.

PROCEDURE DIVISION.

START-SECTION.

   DISPLAY "Monitoring started..." UPON CONSOLE.

   PERFORM MONITORING-SECTION

   PERFORM SUBMIT-DATA

   STOP RUN.

MONITORING-SECTION.

   ACCEPT WS-TIME FROM TIME.

   DISPLAY "Current Time: " WS-TIME.

   PERFORM UNTIL WS-TIME = "235959"

       CALL 'CheckActivities' USING WS-TIME, WS-EMPLOYEE-ID, WS-ACTIVITY-TIME

       WRITE LOG-RECORD FROM WS-EMPLOYEE-ID, WS-LOGIN-TIME, WS-ACTIVITY-TIME

       ACCEPT WS-TIME FROM TIME

   END-PERFORM.

SUBMIT-DATA SECTION.

   OPEN INPUT LOG-FILE.

   PERFORM UNTIL WS-EOF = 'Y'

       READ LOG-FILE INTO LOG-RECORD

       AT END MOVE 'Y' TO WS-EOF

       NOT AT END

           CALL 'SubmitDataToWeb' USING LOG-RECORD

   END-PERFORM.

   CLOSE LOG-FILE.

SUBMIT-DATA-TO-WEB SECTION.

   MOVE "https://www.vipshare.com" TO URL.

   CALL 'HTTP-POST' USING URL, LOG-RECORD.

   STOP RUN.

尽管COBOL是一种古老的编程语言,但它在许多传统商业环境中仍然非常有用。通过本文所展示的示例代码,我们可以看到如何使用COBOL编写一个基本的公司电脑监控软件,并将监控到的数据自动提交到指定的网站。这样的解决方案在维护企业内部系统和保证数据安全方面具有重要意义。

本文参考自:https://www.bilibili.com/read/cv35378263

目录
相关文章
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
1712 0
|
缓存 数据安全/隐私保护 iOS开发
2023最新mac开启ntfs读写功能 ntfs硬盘如何在mac上读写教程
在日常的工作中,总是避免不了跨平台的传输文件、文件共享等,例如一些用户使用Mac电脑修图或者剪辑视频之后需要拷贝到Windows电脑上查看。对于需要同时使用Mac和Windows的用户来说,系统之间不兼容是很大的阻碍,尤其是使用NTFS移动硬盘,用户会遇到Mac电脑无法写入NTFS硬盘的情况,本文就来教大家ntfs硬盘如何在mac上读写以及mac如何移动硬盘的文件。
4552 0
2023最新mac开启ntfs读写功能 ntfs硬盘如何在mac上读写教程
Failed to execute script ‘xxx‘ due to unhandled exception:No module named ‘ctypes‘
Failed to execute script ‘xxx‘ due to unhandled exception:No module named ‘ctypes‘
633 0
|
12月前
|
算法 Go Python
获取指定范围符合正态分布的随机数Go/Python
获取指定范围符合正态分布的随机数Go/Python
171 0
|
文字识别 安全 网络安全
印刷文字识别产品使用合集之一般包含什么信息, 会被认为敏感信息
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
10月前
|
数据采集 JavaScript 前端开发
异步请求在TypeScript网络爬虫中的应用
异步请求在TypeScript网络爬虫中的应用
|
11月前
|
存储 人工智能 编解码
阿里云服务器计算型c8i、通用型g8i和计算型c8a、通用型g8a实例区别及选择参考
在选择阿里云服务器计算型和通用型实例规格的时候,有的用户不清楚计算型c8i、通用型g8i与计算型c8a、通用型g8a实例的区别,他们都是采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。但是计算型c8i和通用型g8i实例用的是Intel处理器,计算型c8a和通用型g8a实例用的是AMD处理器。本文将详细介绍阿里云服务器计算型c8i、通用型g8i与计算型c8a、通用型g8a实例各自的性能和区别,以及适合的用户群体,帮助用户更好地选择适合自己的云服务器实例。
|
存储 SQL 关系型数据库
MySQL中的update操作与锁机制
本文探讨MySQL中`UPDATE`操作的自动加锁机制及其对数据一致性的保障作用。尤其在InnoDB存储引擎下,系统会在涉及索引的更新操作中加行锁或间隙锁,防止多事务并发修改同一条记录。通过福利码兑换系统的实例展示,当线程A开启事务更新库存时,线程B试图更新相同记录会被阻塞,直至线程A提交。此外,文章还介绍了乐观锁及版本号控制等策略进一步提升并发性能的方法。作者:小明爱吃火锅,来源:稀土掘金。
654 2
【天梯赛】L1-095 分寝室
输出的方案对应女生都是 24/4=6 人间、男生都是 60/6=10 人间,人数差为 4。满足前三项要求的分配方案还有两种,即女生 6 间(都是 4 人间)、男生 4 间(都是 15 人间);同时,每间女寝人数必须都一样,每间男寝人数必须都一样,也就是女生总人数对女寝数取模为0,男生总人数对男寝数取模为0。输入在一行中给出 3 个正整数 n0​、n1​、n,分别对应女生人数、男生人数、寝室数。按题意模拟,因为知道总寝室数为n,所以可以从1~n-1暴力枚举女寝 i 的数量,那么男寝的数量则为 c-i。
256 6
|
缓存 负载均衡 测试技术
企业系统工程(Enterprise Systems Engineering, ESE)是一个跨学科的领域,它应用系统工程的原则和方法来规划、设计、实施和管理复杂的组织系统,特别是那些涉及信息技术(IT)和商业流程的系统。
企业系统工程(Enterprise Systems Engineering, ESE)是一个跨学科的领域,它应用系统工程的原则和方法来规划、设计、实施和管理复杂的组织系统,特别是那些涉及信息技术(IT)和商业流程的系统。