基于windows系统的JAVA语言订票系统实现课程设计说明书(含源程序).doc_第1页
基于windows系统的JAVA语言订票系统实现课程设计说明书(含源程序).doc_第2页
基于windows系统的JAVA语言订票系统实现课程设计说明书(含源程序).doc_第3页
基于windows系统的JAVA语言订票系统实现课程设计说明书(含源程序).doc_第4页
基于windows系统的JAVA语言订票系统实现课程设计说明书(含源程序).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统课程设计实验报告基于windows系统的java语言订票系统实现课程设计课程设计要求:基于windows的课程设计,任务要求为2个projects,完成一下两个任务及要求:(1):进程间的通信、并发(同步或者互斥)、文件读写等要求(2):内存管理、dll、windows消息机制、io等等问题简要描述和设计要求:(1):多个进程之间的相互通信 :其中一组进程(生产者)从外部获取数据:另外一组进程(消费者)接受并显示数据 (2):设计并实现这样一个系统。两组进程的数目自定问题具体描述和设计要求: (1):完成n个生产者和m个消费者之间的并发控制,n、m不低于5,数据发送和接收缓冲区大小不小于10个。 (2):某个生产者进程生产的消息供k个消费者进程消费。k=m。某些消费进程消费多个生产者生产的消息。生产者和消费者之间的对应关系可以在程序开始有一个文件中读入,也可以动态调整。 课程设计目的:(1)掌握并能够灵活使用进程间通信机制(2)掌握并能够灵活使用同步互斥机制(3)掌握并能够灵活使用io技术 课程设计分析:多个进程之间的相互通信:(1):其中一组进程(生产者)从外部获取数据(2):另外一组进程(消费者)接收并显示数据 已实现的功能:1 设计实现基于线程的多任务程序2 完成生产者消费者程序设计3 实现线程之间的消息通信程序 未实现的功能: dll的功能:动态链接库的实现,dll是一个包含可由多个程序同时使用的代码和数据库,dll不是可执行文件。动态链接库提供了一种方法使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于dll中,该dll包含一个或多个已被编译、链接并使用他们的进程分开存储的函数。dll还有助于共享数据和资源。多个应用程序可同时访问内存中单个dll副本的内容。dll是一个包含可由多个程序同时使用的代码和数据库。dll未实现的原因:动态链接库虽然跟容易地将更新应用于各个模块,不影响该程序的其他部分,但利用java实现起来难度有点大,而且不会利用java实现动态链接库。对于当前windows程序设计的详细分析: 在window课程设计中利用java语言实现一个简单的订票系统。对于订票系统的详细分析;(1)需求分析:需求分析是软件设计的一个重要的环节。本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。用户对系统的需求我们从以下几方面进行分析。功能需求:售票系统实现一下功能:a:查询:分为对车次信息的查询和客户对已订车票信息的查询。要求:1)对车次的查询,可以按照发车车次进行查询; 2)车次信息包括:车号、出发地、目的地、发车日期、开出时刻、票价。3)车次信息只能查询不能修改。b:添加车票:通过查询系统,客户根据自己的需求找到满意的车次,再次输入个人信息后直接通过订票系统预定以选中的车票。要求:售票记录应包括:会员名、车号、发车日期、订票数量、总价。 c:退票:可退票,通过查询系统,客户可根据自己的车号找到自己订票信息,通过退票模块退去已购车票。数据需求:信息需求,即在系统中需要处理拿些数据。根据车站订票系统的分析,本系统的信息需求如表所示:信息输入输出信息输入信息处理信息输出用户输入所需车次检索系统文件符合用户需求的车次及相关信息用户输入个人信息及所需购的车票信息更新系统中的订票信息,将新信息存入文件操作反馈(如找零)对于系统总体设计: a: 系统软件结构设计:本订票系统可分为信息查询、网上订票、退票三部分。其中查询信息又可分为车次查询和订票查询两个部分。层次图如图所示:售票系统信息查询车次查询车票查询 售票退出订票系统的层次图b:系统流程图: 系统顶层流程图如图所示:查询程序订票程序 退票程序订票系统文件系统事务相应信息操作反馈系统流程输入所需车次的重要信息查询程序文件系统符合用户需求的车次信息事务车次信息查询系统流程图售票程序文件系统操作反馈事务输入售票信息订单信息查询系统流程图退票程序文件系统操作反馈事务输入退票信息退票系统流程图c.程序流程图本系统主界面为用户设计了三个功能操作以供选择:查询,订票,退票。另外,为方便用户,还将“退出系统”也单另列了出来,用户可以根据需要触发不同事件。其处理流程如图所示。(1).售票的系统主处理流程售票员系统主程序流程图nnnyyynnyy查询界面用户输入要查询条件查询读数据文件输出查询结果关闭窗口结束开始售票售票界面继续查询车次信息查询车次信息售票返回主页(2).车次信息查询处理流程车次信息查询程序流程图(3). 车票处理流程nnyynyny开始添加界面添加改输入添加信息n返回主页继续售票提交信息有效性修改数据文件y关闭窗口结束错误提示售票程序流程图(4). 车票信息查询处理流程nnnyyyny查询界面读数据文件输出查询结果关闭窗口结束开始y返回主页主界面退票退票界面继续查询订票信息查询订票信息退票订票信息查询模块程序流程图(5). 退票模块处理流程nnyynyny开始退票界面退票n返回主页继续退票提交信息有效性y关闭窗口结束错误提示输入退票信息退票模块程序流程图详细的代码分析:主页面:代码:final display dis=new display();final tuipiao tui=new tuipiao();jframe frame; button b1,b2,b3; panel p1;frame=new jframe(订票系统启动:);frame.setsize(500,400);frame.setlocation(480,380);/frame.pack();frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setbackground(color.light_gray);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);订票页面:对车次信息的查询,系统提供了车次信息,进行精确的查询,系统经过检索,返回符合用户要求的车次,再由用户自行选择满意的车次。代码: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 jbutton(确定); 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 jtextfield();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.setbounds(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);jtf5.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(jtf5); 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.add(p1,borderlayout.north);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setvisible(true); jpanel jetextfield=new jpanel();jetextfield.setlayout(new borderlayout(1,0);jetextfield.add(new jlabel(enter the number),borderlayout.west);jetextfield.add(jtfmessage,borderlayout.center);/getcontentpane().add(jetextfield,borderlayout.north);tf1=new jtextfield(30); /存放显示区tf1.seteditable(false); p1.add(jetextfield);jtfmessage.sethorizontalalignment(jtextfield.right);jtfmessage.addactionlistener( this);but=new button(ok); p1.add(but);查询页面:选择查询条件代码:jframe frame; int teformnum; / jframe frame; button b1,b2; panel p1; frame=new jframe(查询: 请选择查询的方式:); frame.setsize(500,500); frame.setlocation(480,480); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setbackground(color.light_gray); 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(始发抵达城市); p1.add(b1); p1.add(b2); 按车次查询:输入车次查询:按始发城市查询: 输入始站和终站:订票成功返回成功信息:文件系统:代码: /从文件中读取车票信息public arraylist ticketreader()fileinputstream is = null;file file = new file(ticket.txt);/创建byte数组,用于存放信息byte b = new byte(int)file.length();try is =new fileinputstream(file); is.read(b);string str = new string(b); string temp = str.split(;);for(int i = 0;itemp.length;i+)string s = tempi.split(,); ticket t = new ticket();t.setstart(s0); t.setlast(s1); t.setprice(double.valueof(s2);t.setnum(integer.valueof(s3); ticket.add(t); catch (filenotfoundexception e) / todo auto-generated catch blocke.printstacktrace(); catch (ioexception e) / todo auto-generated catch blocke.printstacktrace();return ticket;/将车票信息写入文件public void ticketwriter()outputstream os = null; file file = new file(ticket.txt); string str = ;/str用于存放车票信息for(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论