PL/I 语言 跨模块函数调用实现学生选课系统实战

PL/I阿木 发布于 1 天前 3 次阅读


跨模块函数调用在PL/I语言中的学生选课系统实战

PL/I(Programming Language One)是一种高级程序设计语言,它结合了多种编程语言的特性,如COBOL、FORTRAN和ALGOL。在学生选课系统中,跨模块函数调用是一种常见的编程模式,用于实现模块间的数据传递和功能共享。本文将围绕PL/I语言,通过一个实战案例,展示如何实现学生选课系统中的跨模块函数调用。

系统需求分析

在学生选课系统中,我们需要实现以下功能:

1. 学生信息管理:包括学生信息的录入、查询和修改。
2. 课程信息管理:包括课程信息的录入、查询和修改。
3. 选课管理:包括学生选课、退课、查询选课情况等。
4. 成绩管理:包括成绩的录入、查询和修改。

为了实现这些功能,我们需要设计相应的模块,并在模块之间进行函数调用。

模块设计

1. 学生信息模块

该模块负责学生信息的处理,包括学生信息的录入、查询和修改。

pl/i
IDENTIFICATION DIVISION.
PROGRAM-ID. STUDENT-MODULE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STUDENT-INFO.
05 WS-NAME PIC X(50).
05 WS-ID PIC 9(10).
05 WS-AGE PIC 9(2).
05 WS-CLASS PIC X(20).

PROCEDURE DIVISION.
PERFORM STUDENT-ENTRY.
PERFORM STUDENT-QUERY.
PERFORM STUDENT-UPDATE.
STOP RUN.

2. 课程信息模块

该模块负责课程信息的处理,包括课程信息的录入、查询和修改。

pl/i
IDENTIFICATION DIVISION.
PROGRAM-ID. COURSE-MODULE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-COURSE-INFO.
05 WS-COURSE-ID PIC 9(5).
05 WS-COURSE-NAME PIC X(50).
05 WS-TEACHER PIC X(50).
05 WS-CREDITS PIC 9(2).

PROCEDURE DIVISION.
PERFORM COURSE-ENTRY.
PERFORM COURSE-QUERY.
PERFORM COURSE-UPDATE.
STOP RUN.

3. 选课管理模块

该模块负责学生选课、退课和查询选课情况。

pl/i
IDENTIFICATION DIVISION.
PROGRAM-ID. ENROLLMENT-MODULE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ENROLLMENT-INFO.
05 WS-STUDENT-ID PIC 9(10).
05 WS-COURSE-ID PIC 9(5).
05 WS-ENROLLMENT-DATE PIC X(10).

PROCEDURE DIVISION.
PERFORM ENROLLMENT.
PERFORM DROP-ENROLLMENT.
PERFORM QUERY-ENROLLMENT.
STOP RUN.

4. 成绩管理模块

该模块负责成绩的录入、查询和修改。

pl/i
IDENTIFICATION DIVISION.
PROGRAM-ID. GRADE-MODULE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-GRADE-INFO.
05 WS-STUDENT-ID PIC 9(10).
05 WS-COURSE-ID PIC 9(5).
05 WS-GRADE PIC 9(2).

PROCEDURE DIVISION.
PERFORM GRADE-ENTRY.
PERFORM GRADE-QUERY.
PERFORM GRADE-UPDATE.
STOP RUN.

跨模块函数调用实现

在上述模块中,我们需要实现跨模块函数调用,以便在各个模块之间传递数据和处理功能。

1. 学生信息模块与选课管理模块

在学生信息模块中,我们需要将学生信息传递给选课管理模块,以便进行选课操作。

pl/i
PROCEDURE DIVISION.
PERFORM STUDENT-ENTRY.
PERFORM STUDENT-QUERY.
PERFORM STUDENT-UPDATE.
CALL "ENROLLMENT-MODULE" USING WS-STUDENT-INFO.
STOP RUN.

2. 课程信息模块与选课管理模块

在课程信息模块中,我们需要将课程信息传递给选课管理模块,以便学生进行选课。

pl/i
PROCEDURE DIVISION.
PERFORM COURSE-ENTRY.
PERFORM COURSE-QUERY.
PERFORM COURSE-UPDATE.
CALL "ENROLLMENT-MODULE" USING WS-COURSE-INFO.
STOP RUN.

3. 选课管理模块与成绩管理模块

在选课管理模块中,我们需要将选课信息传递给成绩管理模块,以便进行成绩录入。

pl/i
PROCEDURE DIVISION.
PERFORM ENROLLMENT.
PERFORM DROP-ENROLLMENT.
PERFORM QUERY-ENROLLMENT.
CALL "GRADE-MODULE" USING WS-ENROLLMENT-INFO.
STOP RUN.

总结

通过以上实战案例,我们展示了如何在PL/I语言中实现学生选课系统中的跨模块函数调用。在实际开发过程中,我们需要根据具体需求设计模块,并通过函数调用实现模块间的数据传递和功能共享。跨模块函数调用是PL/I语言中一种重要的编程模式,有助于提高代码的可读性和可维护性。