基于windows系统的java语言订票系统实现课程设计说明书(含源程序)

上传人:Bod****ee 文档编号:47220128 上传时间:2018-07-01 格式:DOC 页数:16 大小:412.53KB
返回 下载 相关 举报
基于windows系统的java语言订票系统实现课程设计说明书(含源程序)_第1页
第1页 / 共16页
基于windows系统的java语言订票系统实现课程设计说明书(含源程序)_第2页
第2页 / 共16页
基于windows系统的java语言订票系统实现课程设计说明书(含源程序)_第3页
第3页 / 共16页
基于windows系统的java语言订票系统实现课程设计说明书(含源程序)_第4页
第4页 / 共16页
基于windows系统的java语言订票系统实现课程设计说明书(含源程序)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《基于windows系统的java语言订票系统实现课程设计说明书(含源程序)》由会员分享,可在线阅读,更多相关《基于windows系统的java语言订票系统实现课程设计说明书(含源程序)(16页珍藏版)》请在金锄头文库上搜索。

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):其中一组进程(生产者)从外部获取数据 (2):另外一组进程(消费者)

3、接收并显示数据已实现的功能:已实现的功能:1 设计实现基于线程的多任务程序 2 完成生产者消费者程序设计 3 实现线程之间的消息通信程序未实现的功能:未实现的功能:DLL 的功能:动态链接库的实现,DLL 是一个包含可由多个程序同时使用的代码 和数据库,DLL 不是可执行文件。动态链接库提供了一种方法使进程可以调用不 属于其可执行代码的函数。函数的可执行代码位于 DLL 中,该 DLL 包含一个或 多个已被编译、链接并使用他们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。DLL 是一个包含 可由多个程序同时使用的代码和数据库。 DL

4、L 未实现的原因:动态链接库虽然跟容易地将更新应用于各个模块,不影响该 程序的其他部分,但利用 JAVA 实现起来难度有点大,而且不会利用 JAVA 实现 动态链接库。对于当前对于当前 Windows 程序设计的详细分析:程序设计的详细分析:在 window 课程设计中利用 JAVA 语言实现一个简单的订票系统。 对于订票系统的详细分析对于订票系统的详细分析;(1)需求分析:)需求分析:需求分析是软件设计的一个重要的环节。本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。用户对系统的需求我们从以下几方面进行分析。功能需求

5、:售票系统实现一下功能:a:查询:分为对车次信息的查询和客户对已订车票信息的查询。要求:1)对车次的查询,可以按照发车车次进行查询; 2)车次信息包括:车号、出发地、目的地、发车日期、开出时刻、票价。3)车次信息只能查询不能修改。b:添加车票:通过查询系统,客户根据自己的需求找到满意的车次,再次输入个人信息后直接通过订票系统预定以选中的车票。要求:售票记录应包括:会员名、车号、发车日期、订票数量、总价。c:退票:可退票,通过查询系统,客户可根据自己的车号找到自己订票信息,通过退票模块退去已购车票。数据需求:信息需求,即在系统中需要处理拿些数据。根据车站订票系统的分析,本系统的信息需求如表所示:

6、信息输入输出信息输 入信息 处理信息 输出用户输 入所需车次检索 系统文件符合 用户需求的车次及相关 信息用户输 入个人信息及所需 购的车 票信息更新 系统中的订票信息, 将新 信息存入文件操作 反馈(如找零)对于系统总体设计:对于系统总体设计:a: 系统软件结构设计:本订票系统可分为信息查询、网上订票、退票三部分。其中查询信息又可分为车次查询和订票查询两个部分。层次图如图所示:订票系统的层次图b:系统流程图:系统流程图:系统顶层流程图如图所示:系统流程系统流程车次信息查询系统流程图车次信息查询系统流程图售票系统信息查询车次查询车票查询 售票退出查询程序订票程序 退票程序订票系统文件系统事务相

7、应信息操作反馈输入所 需车次 的重要 信息查询程序文件系统符合用户 需求的车 次信息事务售票程序文件系统操作反馈事务输入售 票信息订单信息查询系统流程图订单信息查询系统流程图退票系统流程图退票系统流程图c.程序流程图程序流程图本系统主界面为用户设计了三个功能操作以供选择:查询,订票,退票。另外,为方便用户,还将“退出系统”也单另列了出来,用户可以根据需要触发不同事件。其处理流程如图所示。(1).售票的系统主处理流程退票程序文件系统操作反馈事务输入退 票信息售票员系统主程序流程图(2).车次信息查询处理流程NNNYYYNNYY查询 界面用户输入要 查询条件查询读数据文件输出查询结果关闭窗口结束开

8、始售票售票 界面继续查询 车次信息查询车次信息售票返回主页车次信息查询程序流程图(3). 车票处理流程NNYYNYNY开始添加 界面添加 改输入添加信 息N返回主页继续售票提交信息有效性修改数据文件Y关闭窗口结束错误提示售票程序流程图(4). 车票信息查询处理流程NNNYY YNY查询 界面读数据文件输出查询结果关闭窗口结束开始Y返回主页主界面退票退票 界面继续查询 订票信息查询订 票信息退票订票信息查询模块程序流程图(5). 退票模块处理流程退票模块程序流程图详细的代码分析:详细的代码分析:主页面: 代码:final display dis=new display();final Tuipi

9、ao tui=new Tuipiao(); JFrame frame; Button b1,b2,b3; Panel p1; frame=new JFrame(“订票系统启动:“); frame.setSize(500,400);frame.setLocation(480,380); /frame.pack();NNYYNYNY开始退票 界面退票N返回主页继续退票提交信息有效性Y关闭窗口结束错误提示输入退票 信息frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBackground(Color.LIGHT_GRAY);

10、frame.setResizable(false); frame.setLayout(new BorderLayout(5,5); p1=new Panel(new GridLayout(5,5,35,15); frame.add(p1,BorderLayout.CENTER); b1=new Button(“订票“); b2=new Button(“退票“); b3=new Button(“查询“); p1.add(b1); p1.add(b2); p1.add(b3);订票页面:对车次信息的查询,系统提供了车次信息,进行精确的查询,系统经过检索, 返回符合用户要求的车次,再由用户自行选择满

11、意的车次。 代码:this.dingpiao=true;/创建窗体和容器 final JFrame jf = new JFrame(“dingpiao“); JPanel jp = new JPanel();/创建组件 final Choice city = new Choice();final Choice city1 = new Choice(); city.add(“北京“); city.add(“上海“); city.add(“广州“); city1.add(“北京“); city1.add(“上海“);city1.add(“广州“); JButton but = new JButto

12、n(“确定“); JLabel j1 = new JLabel(“起始站:“); JLabel j2 = new JLabel(“终点站:“); JLabel j3 = new JLabel(“剩余票数:“); JLabel j4 = new JLabel(“单价:“) ;JLabel j5 = new JLabel(“购买数量:“); JLabel j6 = new JLabel(“合计:“); JLabel j7 = new JLabel(“付款:“); JLabel j8 = new JLabel(“找零:“); final JTextField jtf1 = new JTextFiel

13、d(); final JTextField jtf2 = new JTextField();final JTextField jtf3 = new JTextField(); final JTextField jtf4 = new JTextField();final JTextField jtf5 = new JTextField(); final JTextField jtf6 = new JTextField(); /布局 jp.setLayout(null); j1.setBounds(0,0,80,30); city.setBounds(80,0,80,30); j2.setBoun

14、ds(160,0,80,30); city1.setBounds(240,0,80,30); j3.setBounds(320,0,80,30); jtf1.setBounds(400,0,80,30); j4.setBounds(0,40,80,30); jtf2.setBounds(80,40,80,30); j5.setBounds(160,40,80,30);jtf3.setBounds(240,40,80,30); j6.setBounds(320,40,80,30); jtf4.setBounds(400,40,80,30); j7.setBounds(0,80,80,30); j

15、tf5.setBounds(80,80,80,30); j8.setBounds(160,80,80,30); jtf6.setBounds(240,80,80,30); but.setBounds(400,80,80,30); /将组件添加到容器 jp.add(j1); jp.add(j2); jp.add(j3); jp.add(j4); jp.add(j5); jp.add(j6); jp.add(j7); jp.add(j8); jp.add(but); jp.add(jtf1); jp.add(jtf2); jp.add(jtf3); jp.add(jtf4); jp.add(jtf

16、5); jp.add(jtf6); jp.add(city); jp.add(city1); /将容器添加到窗体 jf.add(jp); /设置窗体 jf.setSize(500,200); jf.setVisible(true);退票页面: 根据车票号码来退票 代码: this.tuipiao=true; Button but; final JTextField tf1; Panel p1; frame=new JFrame(“tuipiao“); frame.setSize(500,450); frame.setLocation(480,430); /frame.pack(); frame.setLayout(new BorderLayout(5,5); p1=new Panel(new GridLayout(1,1,5,5);/p2=new Panel(new GridLayout(200,0,10,10);frame.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号