1、操作系统课程设计 实验报告 基于 windows 系统的 JAVA 语言订票 系统实现课程设计 课程设计课程设计要求要求: 基于 Windows 的课程设计,任务要求为 2 个 Projects,完成一下两个任务及要求: (1) :进程间的通信、并发(同步或者互斥) 、文件读写等要求 (2) :内存管理、DLL、Windows 消息机制、IO 等等 问题简要描述和设计要求:问题简要描述和设计要求: (1) :多个进程之间的相互通信 :其中一组进程(生产者)从外部获取数据 :另外一组进程(消费者)接受并显示数据 (2) :设计并实现这样一个系统。两组进程的数目自定 问题具体描述和设计要求:问题具
2、体描述和设计要求: (1) :完成 N 个生产者和 M 个消费者之间的并发控制,N、M 不低于 5,数据发送 和接收缓冲区大小不小于 10 个。 (2) :某个生产者进程生产的消息供 K 个消费者进程消费。K=M。某些消费进程 消费多个生产者生产的消息。 生产者和消费者之间的对应关系可以在程序开始有一个文件中 读入,也可以动态调整。 课程设计目的课程设计目的: (1)掌握并能够灵活使用进程间通信机制 (2)掌握并能够灵活使用同步互斥机制 (3)掌握并能够灵活使用 IO 技术 课程设计分析课程设计分析: 多个进程之间的相互通信多个进程之间的相互通信: (1) :其中一组进程(生产者)从外部获取数
3、据 (2) :另外一组进程(消费者)接收并显示数据 已实现的功能:已实现的功能: 1 设计实现基于线程的多任务程序 2 完成生产者消费者程序设计 3 实现线程之间的消息通信程序 未实现的功能:未实现的功能: DLL 的功能:动态链接库的实现,DLL 是一个包含可由多个程序同时使用的代码 和数据库, DLL 不是可执行文件。 动态链接库提供了一种方法使进程可以调用不属 于其可执行代码的函数。函数的可执行代码位于 DLL 中,该 DLL 包含一个或多个 已被编译、 链接并使用他们的进程分开存储的函数。 DLL 还有助于共享数据和资源。 多个应用程序可同时访问内存中单个 DLL 副本的内容。DLL
4、是一个包含可由多个 程序同时使用的代码和数据库。 DLL 未实现的原因: 动态链接库虽然跟容易地将更新应用于各个模块, 不影响该程 序的其他部分,但利用 JAVA 实现起来难度有点大,而且不会利用 JAVA 实现动态 链接库。 对于当前对于当前 Windows 程序设计的详细分析:程序设计的详细分析: 在 window 课程设计中利用 JA V A 语言实现一个简单的订票系统。 对于订票系统的详细分析对于订票系统的详细分析; (1)需需求分析:求分析:需求分析是软件设计的一个重要的环节。本阶段对订票系统的应用情况作 全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从
5、而 确定用户的需求。用户对系统的需求我们从以下几方面进行分析。 功能需求:售票系统实现一下功能: a:查询:分为对车次信息的查询和客户对已订车票信息的查询。要求: 1)对车次的查询,可以按照发车车次进行查询; 2)车次信息包括:车号、出发地、 目的地、发车日期、开出时刻、票价。3)车次信息只能查询不能修改。 b:添加车票:通过查询系统,客户根据自己的需求找到满意的车次,再次输入个人 信息后直接通过订票系统预定以选中的车票。要求: 售票记录应包括:会员名、车号、发车日期、订票数量、总价。 c:退票:可退票,通过查询系统,客户可根据自己的车号找到自己订票信息,通过退 票模块退去已购车票。 数据需求
6、:信息需求,即在系统中需要处理拿些数据。根据车站订票系统的分析, 本系统的信息需求如表所示: 信息输入输出 信息输 入 信息 处理 信息 输出 用户输 入所需车次 检索 系统文件 符合 用户需求的车次及相关 信息 用户输 入个人信息及所需 购的车 票信息 更新 系统中的订票信息, 将新 信息存入文件 操作 反馈(如找零) 对于对于系统总体设计系统总体设计: a: 系统软件结构设计:本订票系统可分为信息查询、网上订票、退票三部分。 其中查询信息又可分为车次查询和订票查询两个部分。层次图如图所示: 订票系统的层次图 b:系统流程图:系统流程图: 系统顶层流程图如图所示: 系统流程系统流程 车次信息查询系统流程图车次信息查询系统流程图 售票系统 信息查询 车次查询 车票查询 售票 退出 查询程序 订票程序 退票程序 订票系统 文件系统 事务 相应信息 操作反馈 输入所 需车次 的重要 信息 查询程序 文件系统 符合用户 需求的车 次信息 事务 售票程序 文件系统 操作反馈 事务 输入售 票信息 订单信息查询系统流程图订单信息查询系统流程图 退票系统流程图