
正文
票务管理系统Java代码 票务管理系统java代码怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
软件工程航空公司机票预定系统
软件工程课程设计
一、 课程设计题目:
航空公司机票预订系统。
二、 课程设计内容简要分析:
航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
三、主要设计过程:
1、问题定义:
航空运输现在已经逐渐成为我国运输事业的重要手段,但是对于航空运输来说,天气或人为的种种的因素,会给航空机票的预定和退订带来困难,特别是对于机票的预定和退订的条理性、及时性和准确性,也同样带来巨大的困难。
对以上的问题,完全可以建立一套完整的航空公司机预定系统,来对信息进行录入、查询、订票、退票等日常管理工作,尽量少的人员介入和数据冗余,以简练实用为基础,实现信息管理计算机化,提高工作效率和信息化水平。
2、可行性分析:
可行性分析对系统的开发至关重要,可以大幅减少不必要的损失,保证系统开发的顺利进行。可以从技术可行性、经济可行性、操作可行性三方面进行系统可行性分析:
2.1、技术可行性:
这些年来,计算机技术的发展异常迅猛,而绝大多数的企业和单位,都已经把计算机作为信息和数据处理、保存和管理的重要工具。
Java是Sun Microsystem公司的James Gosling开发的编程语言。它以C++为基础,但是却是一个全新的软件开发语言。Java是一个简单,面象对象、分布式、解释性、强壮、安全,与系统无关、可移植、高性能、多线程和动态的语言,利用Java就可以编制出程序接口好、图形界面优美的管理系统。同时,微软公司开发的SOL Server 2000,为数据库的开发和管理带来了极大的方便。
2.2、经济可行性:
一方面,对于新系统的开发和研究,不需要花费更多的费用,而且对于人员的培训,不同样不需要花费很多;另一方面,航空公司的原有服务器和计算机系统,同样可以用来使用,不需要更新系统。
2.3、操作可行性:
对于用Java开发的本系统,通过简单的学习就可以熟练操作,同时,对于票务的管理,也同样因为本系统的高效性、及时性和方便性而易于管理。
通过以上的分析,航空公司机票预定系统在经济上、技术上、操作上都是可行的。
3、 需求分析:
需求分析阶段的主要目标是准确了解用户对未来软件的系统结构的需求,是发现、求精、建模、规格说明和复审过程。
在需求分析中,可以采用主要流程和数据流程图来描述。
3.1、该系统主要要完成的流程为:
a) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
b) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
c) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
d) 退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
3.2、数据流程图:
数据流程图是描绘信息流和数据从输入移动到输出的过程中所经历的变换。是一种能全面描述信息系统逻辑模型的主要工具,也是系统分析人员与用户进行交流的有效手段。
旅客的订票流程图如下:
旅客取票的流程图如下:
订票旅客清单
打印机票
旅客信息查询
旅客
旅客
售出机票信息
4、概要设计:
4.1、本系统的设计总框图:
说明:本系统共分为两大子系统:客户定票系统和后台管理系统。
客户服务系统包含三个子系统:
1、查询系统(实现查询功能)
2、定票系统(实现定票功能)
3、退票系统(实现退票和修改功能)
后台处理系统包含三个子系统:
1、航班信息查询 (实现航班信息的查询功能)
2、航班信息修改(实现航班信息的修改、新增、删除功能)
3、乘客信息查询(实现乘客信息的查询)
两大系统共用两个数据文件:航班基本信息文件和客户定票信息文件。
4.2、客户定票系统的概要设计:
说明:
1)查询:用户可以通过输入航班号单关键字查询,飞机的起降地点和飞机的起飞时间双关键字查询两种方式进行查询。(注:结构图里查询和订票之间的连线表示客户可以由查询界面直接进入订票界面)
2)订票:客户可以直接从主界面直接进入订票界面,也可以从航班信息查询界面通过事件触发进入订票界面。客户在订票界面内填写客户基本信息和所定航班的关键信息,然后由提交事件进行信息有效性判断。如果数据有效,则修改航班基本信息,新增客户信息。
3)退票和修改:在客户正确输入交易单号,乘客姓名,身份证号的前提下,系统确定数据有效性,客户拥有退票或修改交易的权限。此时对航班基本信息数据文件和客户订票信息文件进行数据项的删除或修改。
4)客户修改的主要作用:当客户对于所定机票的航班号,数量,等级等内容需要修改时,可启动此功能。
同时,为方便客户修改过程能准确的了解航班基本信息,在客户退票界面加入了查询按钮。可以通过事件触发进入相关界面。
4.3、后台管理系统的概要设计:
说明:
1) 航班信息修改:管理人员可以通过输入航班号与日期查询该航班的基本信息 。可在查询的结果上进行修改,也可删除该条信息。所有数据修改都应在数据文件中完成,在界面上显示出来。
2) 航班信息录入:管理人员可以通过输入新的航班信息新加一条航班的基本信息。
3) 乘客信息查询:管理人员可以通过输入交易单号码,乘客姓名,乘客身份证号查询乘客的基本信息。
4.4、机票预订系统的逻辑模型如下:
航班机票信息
旅行时间
姓名
性别
旅行地点
身份证号码
工作单位
旅客
1
价格
航空公司
取票通知
帐单
订票
1 1
时间
旅行社
合适航班机票
N
订票旅客清单
售出机票信息
可售机票
等级
5、详细设计:
5.1、主界面程序流程图设计:
说明:在主界面,可以设置四个按钮以供选择:查询、订票、退票和退出。
选择不同的按钮触发不同事件。
5.2、查询系统程序流程图设计:
5.3、订票系统程序流程图设计:
5.4、 退票系统流程流程图设计:
6、实现和单元测试:
6.1、编码:
航班信息链表类核心代码:
public class FlightList implements Serializable
{
public FlightListNode firstNode; // 第一架航班的信息表
public FlightListNode lastNode; // 最后一架航班的信息表
public String name;
public int numberOfRecords; // 全天起落航班的总记录
public FlightList( String s )
{
name = s;
firstNode = lastNode = null;
}
public boolean exist( String sFlightNo, Date date ) //判断含传入航班号和日期的结点是否存在
{
FlightListNode current = firstNode; // 航班信息的第一个结点
while( current != null)
{
if( current.data.flightNum.equals( sFlightNo )
current.data.date.equals( date ) )
return false;
else
current = current.next; //当前航班号不存在时转入下一个结点
}
return true;
}
public void insertAtFront( FlightInfo insertItem ) //在链首插入结点
{
if( isEmpty() )
firstNode = lastNode = new FlightListNode( insertItem );
else
firstNode = new FlightListNode( insertItem, firstNode );
return numberOfRecords ++;
}
public void insertAtBack( FlightInfo insertItem ) //在链尾插入结点
{
if( isEmpty() )
firstNode = lastNode = new FlightListNode( insertItem );
else
lastNode = lastNode.next = new FlightListNode( insertItem );
return numberOfRecords ++;
}
public void delete( FlightInfo deleteItem ) //删除航班信息结点
{
FlightListNode deleteNode = new FlightListNode( deleteItem );
FlightListNode current = firstNode;
if( isEmpty() )
throw new EmptyListException( name );
FlightListNode temp = firstNode;
int flag = 0 ;
while( current != null )
{
if( current.data.flightNum.equals( deleteNode.data.flightNum ))
{
if( flag == 0 )
{
firstNode = firstNode.next;
}
temp.next = current.next;
break;
}
else
{
temp = current;
current = current.next;
flag ++;
}
}
numberOfRecords --;
}
}
7、软件维护:
维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 2000的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。
三、 主要参考文献:
1 张海潘. 软件工程导论. 北京:清华大学出版社,2005
2 赵松涛. SQL Server 2000系统管理实录. 北京:电子工业出版社, 2006
3 宋波. Java Web应用与开发教程. 北京:清华大学出版社,2006
4 孙卫琴. Java面向对象编程. 北京:电子工业出版社,2006
相关问答
Q1: 亲有java语言写的超市管理系统课程设计和源代码吗,能给我吗
package untitled5;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.lang.*;
import javax.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
public class delbook extends JFrame {
JPanel contentPane;
XYLayout xYLayout1 = new XYLayout();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JTextField jTextField1 = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField jTextField2 = new JTextField();
JLabel jLabel5 = new JLabel();
JTextField jTextField3 = new JTextField();
JLabel jLabel6 = new JLabel();
JTextField jTextField4 = new JTextField();
JButton jButton1 = new JButton();
//Construct the frame
public delbook() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jLabel1.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel1.setForeground(Color.red);
jLabel1.setText("超市管理系统");
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(500,400));
this.setTitle("超市管理系统");
jLabel2.setFont(new java.awt.Font("SansSerif", 0, 30));
jLabel2.setText("业务单位信息");
jLabel3.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel3.setText("产品编号");
jTextField1.setText("");
jLabel4.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel4.setText("公司名称");
jTextField2.setText("");
jLabel5.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel5.setText("订单号码");
jTextField3.setText("");
jLabel6.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel6.setText("电 话");
jTextField4.setText("");
jButton1.setFont(new java.awt.Font("SansSerif", 0, 25));
jButton1.setText("提交");
jButton1.addActionListener(new delbook_jButton1_actionAdapter(this));
contentPane.add(jLabel1, new XYConstraints(179, 1, 153, 32));
contentPane.add(jLabel2, new XYConstraints(162, 33, -1, -1));
contentPane.add(jLabel3, new XYConstraints(83, 89, -1, -1));
contentPane.add(jTextField1, new XYConstraints(189, 88, 141, 36));
contentPane.add(jTextField2, new XYConstraints(189, 149, 142, 36));
contentPane.add(jLabel4, new XYConstraints(84, 148, -1, -1));
contentPane.add(jTextField3, new XYConstraints(188, 206, 143, 33));
contentPane.add(jLabel5, new XYConstraints(84, 204, -1, -1));
contentPane.add(jLabel6, new XYConstraints(84, 253, -1, -1));
contentPane.add(jTextField4, new XYConstraints(189, 260, 143, 36));
contentPane.add(jButton1, new XYConstraints(197, 318, -1, -1));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void update() {
try {
//定义显示的字符串
String str1;
String str2;
String str3;
String str4;
str1 = jTextField1.getText();
str2 = jTextField2.getText();
str3 = jTextField3.getText();
str4 = jTextField4.getText();
//装载jdbc驱动程序
String driverName = "oracle.jdbc.OracleDriver";
Driver driver = (Driver) Class.forName(driverName).newInstance();
//连接数据库
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@thsspc0791:1521:liuyong", "hr", "tongfang");
PreparedStatement pstmt = con.prepareStatement(
" insert Customer1('goodID','Name','PID','tel')values(?,?,?,?)");
pstmt.setString(1, str1);
pstmt.setString(2, str2);
pstmt.setString(1, str3);
pstmt.setString(4, str4);
ResultSet res = pstmt.executeQuery();
pstmt.close();
con.close();
}catch (InstantiationException e) {
System.out.println(e.getMessage());
}catch (IllegalAccessException e) {
System.out.println(e.getMessage());
}catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}catch (SQLException edd) {
edd.printStackTrace() ;
System.out.println(edd.getMessage());
}
}
void jButton1_actionPerformed(ActionEvent e) {
update();
}
}
class delbook_jButton1_actionAdapter implements java.awt.event.ActionListener {
delbook adaptee;
delbook_jButton1_actionAdapter(delbook adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
package untitled5;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
/**
* pTitle: /p
* pDescription: /p
* pCopyright: Copyright © 2003/p
* pCompany: /p
* @author not attributable
* @version 1.0
*/
public class retur extends JFrame {
JPanel contentPane;
XYLayout xYLayout1 = new XYLayout();
JLabel jLabel1 = new JLabel();
//Construct the frame
public retur() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jLabel1.setFont(new java.awt.Font("SansSerif", 0, 20));
jLabel1.setForeground(Color.red);
jLabel1.setText("超市管理系统");
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("超市管理系统");
contentPane.add(jLabel1, new XYConstraints(139, 1, 126, 33));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}
package untitled5;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.lang.*;
import javax.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import com.borland.dbswing.*;
//货品信息登记
public class Frame2 extends JFrame {
JPanel contentPane;
JLabel jLabel1 = new JLabel();
XYLayout xYLayout1 = new XYLayout();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JTextField jTextField1 = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField jTextField2 = new JTextField();
JPanel jPanel1 = new JPanel();
XYLayout xYLayout2 = new XYLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JLabel jLabel5 = new JLabel();
JTextField jTextField3 = new JTextField();
//Construct the frame
public Frame2() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(600, 500));
this.setTitle("超市管理系统");
this.addHierarchyBoundsListener(new Frame2_this_hierarchyBoundsAdapter(this));
jLabel1.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel1.setForeground(Color.red);
jLabel1.setText("超市管理系统");
contentPane.setForeground(Color.black);
jLabel2.setFont(new java.awt.Font("SansSerif", 0, 30));
jLabel2.setText("产 品 信 息 展 示");
// statusBar.setFont(new java.awt.Font("SansSerif", 0, 20));
jLabel3.setFont(new java.awt.Font("SansSerif", 0, 20));
jLabel3.setText("产品名称");
jTextField1.setText("");
jLabel4.setEnabled(true);
jLabel4.setFont(new java.awt.Font("SansSerif", 0, 20));
jLabel4.setText("产品ID号");
jTextField2.setText("");
jTextField2.addActionListener(new Frame2_jTextField2_actionAdapter(this));
jPanel1.setLayout(xYLayout2);
jLabel5.setFont(new java.awt.Font("SansSerif", 0, 25));
jLabel5.setForeground(Color.red);
jLabel5.setText("该产品详细信息");
jTextField3.setText("");
contentPane.add(jLabel1, new XYConstraints(237, 0, 153, 40));
contentPane.add(jLabel2, new XYConstraints(200, 47, 231, 58));
contentPane.add(jLabel3, new XYConstraints(47, 102, 101, 42));
contentPane.add(jTextField1, new XYConstraints(128, 108, 112, 34));
contentPane.add(jTextField2, new XYConstraints(361, 107, 109, 36));
contentPane.add(jPanel1, new XYConstraints(75, 166, 453, 277));
jPanel1.add(jScrollPane1, new XYConstraints(14, 8, 433, 221));
jScrollPane1.getViewport().add(jTextField3, null);
jPanel1.add(jLabel5, new XYConstraints(112, 240, -1, -1));
contentPane.add(jLabel4, new XYConstraints(278, 111, -1, -1));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void Select() {
try {
String str1, str2;
str1 = jTextField1.getText();
str2 = jTextField2.getText();
Q2: 谁能用JAVA做个节目单管理系统在线等啊
我没做过,但是可以这样做java+mysql.
programe类(javabean)
节目名称,播放时间,节目内容等等有get, set方法的
programeproxy类
添加节目,修改节目,删除节目,节目查询,节目排行
index主类
gui设计,程序主页面窗口
系统难点:利用JTable,然后在播放时间一列,实现排列.
数据库设计:建一个节目表programe
说得马虎,不要见怪啦.
Q3: 数据结构课程设计 铁路票务管理系统
#includefstream
#includeiostream
#includestring
#includestdio.h
#includeiomanip
#define SIZE_view 50
#define SIZE_line 100
#define SIZE_way 300
#define MAXNODE 30 //定义最多的顶点数
#define MAXCOST 1000
//自己写的头文件
//#includeaddview.h// //
using namespace std;
struct view_info /*城市信息结构*/
{
int id;
char name[20];
int code;
char shortname[20];
char LName[100];// 经过此车站的铁路线名称
} views[SIZE_view];
struct line_info //铁路线信息结构
{
int Lid;
char LName[20];
int start_id; //始发站id
int end_id; //终点站id
int dist; //铁路线长度
int sign;//通行标志
}lines[SIZE_line];
struct way_info //铁路度的信息结构
{
int station1;
int station2;
int dist;
}ways[SIZE_way];
struct path_info //用于最短路径的查询
{
int count;
int path[SIZE_view];
};
int view_count,line_count,way_count;//用来存储文件中有多少条记录
void readviews()
{
int i;
ifstream infile("views.txt",ios::in); //打开文件
infile view_count ; //把文件中的记录赋值给view_count
if(!infile) //打开文件失败
{
cerr"open error!"endl;
exit(1);
}
//infileview_count; // 先读入文件个数
for(i=0;iview_count;i++)
{
infileviews[i].idviews[i].nameviews[i].codeviews[i].shortnameviews[i].LName;
}
//view_count=i;//给出原文件中车站的个数
infile.close();
cout" ""id"" ""name"" ""code"" ""shortname"" ""LName"endl;
for(i=0;iview_count;i++)
cout" "views[i].id" "views[i].name" "views[i].code
" "views[i].shortname" "views[i].LNameendl;
}
void readways() //读文件ways.txt
{
int i;
ifstream infile("ways.txt",ios::in); //打开文件
infileway_count; ////把文件中的记录赋值给way_count
if(!infile) //打开文件失败
{
cerr"open error!"endl;
exit(1);
}
for(i=0;iway_count;i++)
infileways[i].station1ways[i].station2ways[i].dist;
infile.close();
//测试用,输出路段的信息
cout" ""station1"" ""station2"" ""dist"endl;
for(i=0;iway_count;i++)
cout" "ways[i].station1" "ways[i].station2" "ways[i].distendl ;
}
void readlines() //读文件lines.txt
{
int i;
ifstream infile("lines.txt",ios::in); //打开文件
infileline_count; //把文件中的记录赋值给line_count
if(!infile) //打开文件失败
{
cerr"open error!"endl;
exit(1);
}
for(i=0;iline_count;i++)
infilelines[i].Lidlines[i].LNamelines[i].start_idlines[i].end_idlines[i].distlines[i].sign;
infile.close();
/*
cout" ""Lid"" ""LName"" ""start_id"" ""end_id"" ""dist"" ""sign"endl;
for(i=0;iview_count;i++)
cout" "lines[i].Lid" "lines[i].LName" "lines[i].start_id
" "lines[i].end_id" "lines[i].dist" "lines[i].signendl;
*/ //这里是输出文件中的信息
}
void search () //查询车站信息(所在的铁路线)
{
cout"please enter the station name:";
char sta_name[20];
cinsta_name; //输入要查询的名字
coutendl;
ifstream infile("views.txt ",ios::in); //读文件
infile view_count ; //读出文件记录的个数
if(!infile) //打开文件失败
{
cerr"open error!"endl;
exit(1);
}
int i,mark;
for(i=0;iview_count;i++)
infileviews[i].idviews[i].nameviews[i].codeviews[i].shortnameviews[i].LName;
infile.close();
for(i=0;i view_count;i++)
{
if(strcmp(sta_name,views [i].name)==0) //找到车站
{
cout"the station's informations is:\n"endl;
cout" ""id"" ""name"" ""code"" ""shortname"" ""LName"endl;
cout" "views[i].id" " views[i].name" " views [i].code
" " views [i].shortname" " views [i].LName endl;
break;
}
mark=i;
}
if(mark==( view_count -1)) //若没有找到,输出提示
{
cout"sorry,the station is not in here"endl;
}
}
void addview()
{
cout"please enter the new view's informations:"endl; //输入新车站信息
cout"id:";
cinviews[view_count].id;
cout"name:";
cinviews[view_count].name;
cout"code:";
cinviews[view_count].code;
cout"shortname:";
cinviews[view_count].shortname;
cout"LName:";
cinviews[view_count].LName;
ofstream outfile("views.txt",ios::app); //打开views文件,并且写入数据
outfileview_countendl;
if(!outfile) //文件打开失败
{
cerr"open error!"endl;
exit(1);
}
outfileviews[view_count].id" "views[view_count].name" "views[view_count].code
" " views[view_count].shortname" "views[view_count].LNameendl;
//在文件末尾添加
view_count=view_count+1;
outfile.close(); //关闭文件
cout"successfully! the new station is added"endl;
cout"now station number is:"view_countendl;
}
void addway()
{
cout"please enter the new way's informations:"endl; //输入新车站信息
cout"station1:";
cinways[way_count].station1; // station1的id
cout"station2:";
cinways[way_count].station2; //station2的id
cout"dist:";
cinways[way_count].dist; //路段的长度
ofstream outfile("ways.txt",ios::app); //打开way.txt文件
outfileway_countendl;
if(!outfile) //文件打开失败
{
cerr"open error!"endl;
exit(1);
}
outfileways[way_count].station1" "ways[way_count].station2" "ways[way_count].dist;
//在文件末尾添加
outfile.close(); //关闭文件
cout"successfully! the new station is added"endl;
way_count=way_count+1;
cout"now station number is:"view_countendl;
}
void addline()
{
cout"please enter the new line's informations:"endl; //输入新铁路线信息
cout"Lid:";
cinlines[line_count].Lid;
cout"LName:";
cinlines[line_count].LName;
cout"start_id:";
cinlines[line_count].start_id;
cout"end_id:";
cinlines[line_count].end_id;
cout"dist:";
cinlines[line_count].dist;
cout"sign:";
cinlines[line_count].sign;
ofstream outfile("lines.txt",ios::app); //打开文件
outfile line_count endl;
if(!outfile) //文件打开失败
{
cerr"open error!"endl;
exit(1);
}
outfilelines[line_count].Lid" "lines[line_count].LName" "lines[line_count].start_id
" " lines[line_count].end_id" "lines[line_count].distlines[line_count].signendl;
//在文件末尾添加
outfile.close(); //关闭文件
cout"successfully! the new line is added"endl;
line_count=line_count+1;
cout"now line number is:"line_countendl;
}
//-----------------------------------------------------------------------------------
void floyed() //弗洛伊德(Floyed)算法
{
int i, j, k, m, start_num, end_num; //i,j用来表示起始点和终点
int dist_list[SIZE_view][SIZE_view]; //定义了一个数组
view_count=view_count+1;
struct path_info path_list[SIZE_view][SIZE_view]; //定义了一个path_info结构的变量,包含着count和path[]用来存储经过的路径
for(i=1;i=view_count;i++) //这里开始读文件,先让所有的线都为最大值
for(j=1;j=view_count;j++)
dist_list[i][j]=MAXCOST;
for(int t=0;t=way_count;t++)
{
i=ways[t].station1;
j=ways[t].station2;
dist_list[i][j]=ways[t].dist;//把文件中的数据赋值给dist_list[i][j]=ways[t].dist;形式
}
for (i =0; i view_count; i++)
{
for (j= 0; jview_count; j++)
{
if (i == j)
{
dist_list[i][j] = 0;
continue;
}
dist_list[i][j] = -1;
path_list[i][j].count = 0;
for (k = 0; k way_count; k++) //
{
if (ways[k].station1 == i ways[k].station2 == j) //把起始点和终点分别给予i,j
{
dist_list[i][j] = ways[k].dist;
path_list[i][j].count = 2;
path_list[i][j].path[0] = i;
path_list[i][j].path[1] = j;
break;
}
}
}
}
for (k = 0; k= view_count-1; k++)
{
for (i = 0; i view_count; i++)
for (j = 0; j view_count; j++)
{
if (i == k || j == k || i == j)
continue;
if (dist_list[i][k] == -1 || dist_list[k][j] == -1)
continue;
if ( (dist_list[i][j] == -1) ||
((dist_list[i][j] != -1) (dist_list[i][k] + dist_list[k][j] dist_list[i][j])))
{
dist_list[i][j] = dist_list[i][k] + dist_list[k][j];
// shortest[i][j]=shortest[i][k]+shortest[k][j];
path_list[i][j].count = path_list[i][k].count + path_list[k][j].count - 1;
// path[i][j]=k;
for (m = 0; m path_list[i][k].count; m++)
path_list[i][j].path[m] = path_list[i][k].path[m];
for (m = 0; m path_list[k][j].count; m++)
path_list[i][j].path[m+path_list[i][k].count] = path_list[k][j].path[m+1];
}
}
}
cout" Floyed table:\n";
cout" All views in the school:\n";
for (i = 0; i view_count-1; i++)
cout" "i+1":"views[i].nameendl;
cout" Please input the start number: ";
cinstart_num;
cout" Please input the end number: ";
cinend_num;
coutendlendl;
cout"From"views[start_num-1].name"to"views[end_num-1].name;
if (dist_list[start_num][end_num] == -1)
cout"no way."endl;
else
{
cout"distance is "dist_list[start_num][end_num]", and path is :";//dist_list[][]用来表示两点间的长度
k = path_list[start_num][end_num].path[0]-1; //path_list[][]用来保存路径path[m]在这里表明是通过的那个车站的
coutviews[k].name;
for (m = 1; m path_list[start_num][end_num].count; m++)
{
k = path_list[start_num][end_num].path[m]-1; //这里应该也是int型,k是经过的路径的id
cout"-"views[k].name;
}
}
coutendlendl;
}
void main()
{
readviews();
readlines() ;
readways();
while(1)
{
int menu;
coutendlendlendlendl;
cout" 全国铁路运输网最佳经由系统 "endl;
cout"**********************************************************"endl;
cout" 1:增加车站信息 "endl;
cout" 2:增加铁路线信息 "endl;
cout" 3:查询车站信息 "endl;
cout" 4:查询最短路径 "endl;
cout" 5:退出界面 "endl;
cout"**********************************************************"endl;
cout"输入要进行的操作的代码(1--5):"endl;
cinmenu;
while(menu1||menu5)
{
cout"error!please enter again:";
cinmenu;
}
switch(menu)
{
case 1:
while(1)
{
addview();
while (1)
{
addway();
cout"do you want to continue (y/n) "endl;
char con ;
cincon;
if(con=='y')
addway();
else
break;
}
cout"do you want to continue (y/n) "endl;
char con ;
cincon;
if(con=='y')
addview();
else
break;
}
break;
case 2:
while(1)
{
addline();
cout"do you want to continue (y/n) "endl;
char con ;
cincon;
if(con=='y')
addline();
else
break;
}
break;
case 3:
while(1)
{
search ();
cout"do you want to continue (y/n) "endl;
char con ;
cincon;
if(con=='y')
search ();
else
break;
}
break;
case 4:
while(1)
{
floyed();
cout"do you want to continue (y/n) "endl;
char con ;
cincon;
if(con=='y')
floyed();
else
break;
}
break;
case 5:
{
cout"谢谢使用,再见!"endl;
exit(1);
}
}
}
}
Q4: Java简单的实现订单管理系统要详细的操作!!要用到SQL数据库的。
这个功能太多票务管理系统Java代码了吧。要做一个小项目票务管理系统Java代码了。。
关于票务管理系统Java代码和票务管理系统java代码怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







