PL/I 语言 项目实战之通讯录管理

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


PL/I 语言项目实战:通讯录管理系统的设计与实现

PL/I(Programming Language One)是一种高级程序设计语言,它结合了多种编程语言的特性,旨在提高编程效率和代码的可读性。本文将围绕PL/I语言,通过一个通讯录管理系统的设计与实现,展示PL/I语言在现实项目中的应用。

项目背景

随着信息技术的飞速发展,个人和组织对通讯录管理的需求日益增长。一个高效的通讯录管理系统可以帮助用户方便地管理联系人信息,提高工作效率。本文将使用PL/I语言开发一个简单的通讯录管理系统,实现以下功能:

1. 添加联系人
2. 删除联系人
3. 查询联系人
4. 修改联系人信息
5. 显示所有联系人

系统设计

数据结构设计

为了存储联系人信息,我们设计一个结构体`contact`,包含以下字段:

- `name`:联系人姓名
- `phone`:联系人电话
- `email`:联系人邮箱
- `address`:联系人地址

pl/i
DCL CONTACT RECORD;
01 NAME PIC X(50);
01 PHONE PIC X(15);
01 EMAIL PIC X(50);
01 ADDRESS PIC X(100);

功能模块设计

根据需求,我们将系统分为以下功能模块:

1. `add_contact`:添加联系人
2. `delete_contact`:删除联系人
3. `search_contact`:查询联系人
4. `modify_contact`:修改联系人信息
5. `display_contacts`:显示所有联系人

系统实现

添加联系人

pl/i
PROCEDURE add_contact;
DECLARE contact_rec CONTACT;
DECLARE file_rec FILE;
DECLARE file_name PIC X(50) VALUE 'contacts.dat';
DECLARE file_status INTEGER;

OPEN OUTPUT file_rec FILENAME file_name;

PUT file_rec FROM contact_rec;

CLOSE file_rec;
END add_contact;

删除联系人

pl/i
PROCEDURE delete_contact;
DECLARE contact_rec CONTACT;
DECLARE file_rec FILE;
DECLARE file_name PIC X(50) VALUE 'contacts.dat';
DECLARE file_status INTEGER;
DECLARE search_name PIC X(50);

PUT "Enter the name of the contact to delete: ";
GET contact_rec NAME;

OPEN INPUT file_rec FILENAME file_name;

DO UNTIL file_status = 'EOF'
GET file_rec INTO contact_rec
IF contact_rec.NAME = search_name THEN
DELETE file_rec
PUT "Contact deleted successfully.";
END-IF
END-DO

CLOSE file_rec;
END delete_contact;

查询联系人

pl/i
PROCEDURE search_contact;
DECLARE contact_rec CONTACT;
DECLARE file_rec FILE;
DECLARE file_name PIC X(50) VALUE 'contacts.dat';
DECLARE file_status INTEGER;
DECLARE search_name PIC X(50);

PUT "Enter the name of the contact to search: ";
GET contact_rec NAME;

OPEN INPUT file_rec FILENAME file_name;

DO UNTIL file_status = 'EOF'
GET file_rec INTO contact_rec
IF contact_rec.NAME = search_name THEN
PUT contact_rec;
END-IF
END-DO

CLOSE file_rec;
END search_contact;

修改联系人信息

pl/i
PROCEDURE modify_contact;
DECLARE contact_rec CONTACT;
DECLARE file_rec FILE;
DECLARE file_name PIC X(50) VALUE 'contacts.dat';
DECLARE file_status INTEGER;
DECLARE search_name PIC X(50);

PUT "Enter the name of the contact to modify: ";
GET contact_rec NAME;

OPEN INPUT file_rec FILENAME file_name;

DO UNTIL file_status = 'EOF'
GET file_rec INTO contact_rec
IF contact_rec.NAME = search_name THEN
PUT "Enter new contact information: ";
GET contact_rec;
PUT file_rec FROM contact_rec;
PUT "Contact information updated successfully.";
END-IF
END-DO

CLOSE file_rec;
END modify_contact;

显示所有联系人

pl/i
PROCEDURE display_contacts;
DECLARE contact_rec CONTACT;
DECLARE file_rec FILE;
DECLARE file_name PIC X(50) VALUE 'contacts.dat';
DECLARE file_status INTEGER;

OPEN INPUT file_rec FILENAME file_name;

DO UNTIL file_status = 'EOF'
GET file_rec INTO contact_rec
PUT contact_rec;
END-DO

CLOSE file_rec;
END display_contacts;

总结

本文通过PL/I语言实现了一个简单的通讯录管理系统,展示了PL/I语言在现实项目中的应用。在实际开发过程中,可以根据需求对系统进行扩展,例如增加联系人分类、批量导入导出等功能。通过本文的学习,读者可以了解到PL/I语言的基本语法和编程技巧,为后续的项目开发打下基础。