精华内容
下载资源
问答
  • 课上测试-地铁售票系统
    2021-03-13 04:52:32

    packageshangke.disizhou;importjava.io.File;importjava.io.InputStreamReader;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileInputStream;importjava.util.Arrays;importjava.util.List;importjava.util.Scanner;importjava.util.StringTokenizer;importjava.io.FileWriter;public classSubway {private int num01=1;private int num03=3;private String ditie01[][]=new String[2][100];public static int m[]=new int[2];public static voidmain(String[] args) {

    Subway sta=newSubway();

    sta.getxinxi();

    Scanner shuru01=newScanner(System.in);intn;

    System.out.println("***************************************************");

    System.out.println(" 制作人姓名:苗可卓 学号:20183629");for(;;)

    {

    System.out.println("***************************************************");

    System.out.println(" 欢迎乘坐石家庄地铁");

    System.out.println("***************************************************");

    System.out.println(" 1、显示各线路信息");

    System.out.println(" 2、查询站点信息");

    System.out.println(" 3、购票");

    System.out.println(" 4、退出");

    System.out.print(" 请输入");for(;;)

    {

    n=shuru01.nextInt();if(n>=1&&n<=4)

    {break;

    }else{

    System.out.print(" 输入错误请重新输入");

    }

    }if(n==4)

    {

    System.out.println(" 谢谢使用");

    }switch(n)

    {case 1:sta.bianli();break;case 2:sta.chaxun();break;case 3:sta.goupiao();break;

    }

    }

    }public voidbianli()

    {intx;

    m[0]=19;

    m[1]=6;

    Scanner shuru02= newScanner(System.in);

    System.out.println("**********************************************");

    System.out.println(" 0、输出全部线路");

    System.out.println(" 1、输出1号线");

    System.out.println(" 3、输出3号线");

    x=shuru02.nextInt();switch(x)

    {case 0:

    {for(int a=0;a<2;a++)

    {if(a==0)

    {

    System.out.println("1号线");

    }if(a==1)

    {

    System.out.println("3号线");

    }for(int b=0;b

    {

    System.out.print(ditie01[a][b]+" ");

    }

    System.out.println();

    }break;

    }case 1:

    {

    System.out.println("1号线");for(int a=0;a

    {

    System.out.print(ditie01[0][a]+" ");

    }

    System.out.println();break;

    }case 3:

    {

    System.out.println("3号线");for(int a=0;a

    {

    System.out.print(ditie01[1][a]+" ");

    }

    System.out.println();break;

    }

    }

    }public voidgetxinxi()

    {int i=0,j;try { //防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw

    /*读入TXT文件*/String pathname= "H:\\wenben.txt"; //绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径

    File filename = new File(pathname); //要读取以上路径的input。txt文件

    InputStreamReader reader = newInputStreamReader(new FileInputStream(filename)); //建立一个输入流对象reader

    BufferedReader br = new BufferedReader(reader); //建立一个对象,它把文件内容转成计算机能读懂的语言

    String line = "";

    line=br.readLine();while (line != null) {

    StringTokenizer st2= new StringTokenizer(line, " ");

    j=0;while(st2.hasMoreElements()) {

    ditie01[i][j]=String.valueOf(st2.nextElement());

    ditie01[i][j]=ditie01[i][j].toLowerCase();

    j++;

    }

    line= br.readLine(); //一次读入一行数据

    i++;

    }

    }catch(Exception e) {

    e.printStackTrace();

    }

    }public voidchaxun()

    {

    Scanner shuru02=newScanner(System.in);

    String name1,name2;int sum=0;int flag0=0;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int xiabiao1=0;int xiabiao2=0;int xiabiao3=0;int xiabiao4=0;

    System.out.println("*********************************************");

    System.out.println(" 请输入您所查询的起始站和终点站");

    name1=shuru02.next();

    name2=shuru02.next();for(int a=0;a<19;a++)

    {//System.out.println("1111111111111111111111111111111");

    if(ditie01[0][a].contentEquals(name1))

    {//System.out.println("*********");

    flag1=1;

    xiabiao1=a;

    }if(name2.contentEquals(ditie01[0][a]))

    {

    flag2=1;

    xiabiao2=a;

    }

    }if(xiabiao1==14&&flag2==1) ;else{for(int a=0;a<6;a++)

    {if(name1.contentEquals(ditie01[1][a]))

    {//System.out.println("2222222222222222222222");

    flag3=1;

    xiabiao3=a;

    }if(name2.contentEquals(ditie01[1][a]))

    {

    flag4=1;

    xiabiao4=a;

    }

    }

    }if(flag1==1&&flag2==1||flag3==1&&flag4==1)

    {

    flag0=1;

    }if(flag0==1)

    {if(flag1==1&&flag2==1)

    {if(xiabiao1

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao2-xiabiao1+1+"站");for(int a=xiabiao1;a<=xiabiao2;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    }else{

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao1-xiabiao2+1+"站");for(int a=xiabiao1;a>=xiabiao2;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    }

    }else if(flag3==1&&flag4==1)

    {if(xiabiao3

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao4-xiabiao3+1+"站");for(int a=xiabiao3;a<=xiabiao4;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    }else{

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao3-xiabiao4+1+"站");for(int a=xiabiao3;a>=xiabiao4;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    }

    }

    }else{if(flag1==1&&flag4==1)

    {if(xiabiao1>=14&&xiabiao4>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao1-14+1+xiabiao4-1+"站");for(int a=xiabiao1;a>14;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1+1;a<=xiabiao4;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    }else if(xiabiao1>=14&&xiabiao4<=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao1-14+1+1-xiabiao4+"站");for(int a=xiabiao1;a>14;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1-1;a>=xiabiao4;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    }else if(xiabiao1<=14&&xiabiao4>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao1+1+xiabiao4-1+"站");for(int a=xiabiao1;a<14;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1+1;a<=xiabiao4;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    }else if(xiabiao1<=14&&xiabiao4<=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao1+1+1-xiabiao4+"站");for(int a=xiabiao1;a<14;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1-1;a>=xiabiao4;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    }

    }else if(flag2==1&&flag3==1)

    {if(xiabiao2>=14&&xiabiao3>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao2-14+1+xiabiao3-1+"站");for(int a=xiabiao3;a>1;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14+1;a<=xiabiao2;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    }else if(xiabiao2>=14&&xiabiao3<1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao2-14+1+1-xiabiao3+"站");for(int a=xiabiao3;a<1;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14+1;a<=xiabiao2;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    }else if(xiabiao2<14&&xiabiao3>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao2+1+xiabiao3-1+"站");for(int a=xiabiao3;a>1;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14-1;a>=xiabiao2;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    }else if(xiabiao2<14&&xiabiao3<1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao2+1+1-xiabiao3+"站");for(int a=xiabiao3;a<1;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14-1;a>=xiabiao2;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    }

    }

    }

    }public voidgoupiao()

    {

    Scanner shuru03=newScanner(System.in);int sum=0;int aaa=0;int flag0=0;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int xiabiao1=0;int xiabiao2=0;int xiabiao3=0;int xiabiao4=0;

    System.out.println("***************************************************");

    System.out.println(" 欢迎使用石家庄地铁");

    System.out.println("***************************************************");

    System.out.println(" 请输入所购票的起始站和终点站");

    String name1,name2;

    name1=shuru03.next();

    name2=shuru03.next();

    System.out.println(" 请输入您所购数量");

    aaa=shuru03.nextInt();for(int a=0;a<19;a++)

    {//System.out.println("1111111111111111111111111111111");

    if(ditie01[0][a].contentEquals(name1))

    {//System.out.println("*********");

    flag1=1;

    xiabiao1=a;

    }if(name2.contentEquals(ditie01[0][a]))

    {

    flag2=1;

    xiabiao2=a;

    }

    }if(xiabiao1==14&&flag2==1) ;else{for(int a=0;a<6;a++)

    {if(name1.contentEquals(ditie01[1][a]))

    {//System.out.println("2222222222222222222222");

    flag3=1;

    xiabiao3=a;

    }if(name2.contentEquals(ditie01[1][a]))

    {

    flag4=1;

    xiabiao4=a;

    }

    }

    }if(flag1==1&&flag2==1||flag3==1&&flag4==1)

    {

    flag0=1;

    }if(flag0==1)

    {if(flag1==1&&flag2==1)

    {if(xiabiao1

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao2-xiabiao1+1+"站");for(int a=xiabiao1;a<=xiabiao2;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    sum=Math.abs(xiabiao1-xiabiao2)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }else{

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao1-xiabiao2+1+"站");for(int a=xiabiao1;a>=xiabiao2;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    sum=Math.abs(xiabiao1-xiabiao2)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    }else if(flag3==1&&flag4==1)

    {if(xiabiao3

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao4-xiabiao3+1+"站");for(int a=xiabiao3;a<=xiabiao4;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    sum=Math.abs(xiabiao3-xiabiao4)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }else{

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao3-xiabiao4+1+"站");for(int a=xiabiao3;a>=xiabiao4;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    sum=Math.abs(xiabiao3-xiabiao4)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    }

    }else{if(flag1==1&&flag4==1)

    {if(xiabiao1>=14&&xiabiao4>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao1-14+1+xiabiao4-1+"站");for(int a=xiabiao1;a>14;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1+1;a<=xiabiao4;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    }else if(xiabiao1>=14&&xiabiao4<=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao1-14+1+1-xiabiao4+"站");for(int a=xiabiao1;a>14;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1-1;a>=xiabiao4;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    }else if(xiabiao1<=14&&xiabiao4>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao1+1+xiabiao4-1+"站");for(int a=xiabiao1;a<14;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1+1;a<=xiabiao4;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    }else if(xiabiao1<=14&&xiabiao4<=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao1+1+1-xiabiao4+"站");for(int a=xiabiao1;a<14;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    System.out.println(ditie01[0][14]+"换乘3号线");for(int a=1-1;a>=xiabiao4;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    }

    sum=Math.abs(xiabiao1-14)+Math.abs(xiabiao4-1)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }else if(flag2==1&&flag3==1)

    {if(xiabiao2>=14&&xiabiao3>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao2-14+1+xiabiao3-1+"站");for(int a=xiabiao3;a>1;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14+1;a<=xiabiao2;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    }else if(xiabiao2>=14&&xiabiao3<1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(xiabiao2-14+1+1-xiabiao3+"站");for(int a=xiabiao3;a<1;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14+1;a<=xiabiao2;a++)

    {

    System.out.println(ditie01[0][a]);

    }

    }else if(xiabiao2<14&&xiabiao3>=1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao2+1+xiabiao3-1+"站");for(int a=xiabiao3;a>1;a--)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14-1;a>=xiabiao2;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    }else if(xiabiao2<14&&xiabiao3<1)

    {

    System.out.println("起始站:"+name1);

    System.out.println("终点站:"+name2);

    System.out.println(14-xiabiao2+1+1-xiabiao3+"站");for(int a=xiabiao3;a<1;a++)

    {

    System.out.println(ditie01[1][a]);

    }

    System.out.println(ditie01[1][1]+"换乘1号线");for(int a=14-1;a>=xiabiao2;a--)

    {

    System.out.println(ditie01[0][a]);

    }

    }

    sum=Math.abs(xiabiao2-14)+Math.abs(xiabiao3-1)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    }/*for(int a=0;a<19;a++)

    {

    //System.out.println("1111111111111111111111111111111");

    if(ditie01[0][a].contentEquals(name1))

    {

    //System.out.println("*********");

    flag1=1;

    xiabiao1=a;

    }

    if(name2.contentEquals(ditie01[0][a]))

    {

    flag2=1;

    xiabiao2=a;

    }

    }

    if(xiabiao1==14&&flag2==1) ;

    else

    {

    for(int a=0;a<6;a++)

    {

    if(name1.contentEquals(ditie01[1][a]))

    {

    //System.out.println("2222222222222222222222");

    flag3=1;

    xiabiao3=a;

    }

    if(name2.contentEquals(ditie01[1][a]))

    {

    flag4=1;

    xiabiao4=a;

    }

    }

    }

    if(flag1==1&&flag2==1||flag3==1&&flag4==1)

    {

    flag0=1;

    }

    if(flag0==1)

    {

    if(flag1==1&&flag2==1)

    {

    sum=Math.abs(xiabiao1-xiabiao2)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    else

    {

    sum=Math.abs(xiabiao3-xiabiao4)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    }

    else

    {

    if(flag1==1&&flag4==1)

    {

    sum=Math.abs(xiabiao1-14)+Math.abs(xiabiao4-1)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    else if(flag2==1&&flag3==1)

    {

    sum=Math.abs(xiabiao2-14)+Math.abs(xiabiao3-1)+1;

    sum=((sum+2)/3)*aaa;

    System.out.println("您需花费"+sum+"元");

    }

    }*/}

    }

    更多相关内容
  • 地铁售票系统afc.rar

    2020-04-27 17:59:42
    广电运通 自动售票机 afc 闸机 网络售票机 acc aoc
  • vc北京地铁售票系统

    2017-03-30 13:18:43
    北京地铁售票系统
  • 设计思想:地铁售票系统的关键点在于换乘,所以首先要分为换乘和不换乘两种情况。不换乘比较简单,通过起始站名和终点站名查询他们的num,然后list打包输出到jsp就可以。换乘的话就先要找到两条线路,找到两条线路的...

    设计思想:地铁售票系统的关键点在于换乘,所以首先要分为换乘和不换乘两种情况。不换乘比较简单,通过起始站名和终点站名查询他们的num,然后list打包输出到jsp就可以。换乘的话就先要找到两条线路,找到两条线路的交点也就是换乘站,然后分别输出起始站到换乘站,换乘站到终点站两段路线就完成了,这里面还涉及到一个最短路径问题,我的想法是把全部的可能线路都找到,然后比较大小就完成了。目前进度到换乘部分。

    双人项目合作人:郑锦

    部分源代码:

    package Dao;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.Statement;

    import connection.DBUtil;

    public class dao {

    /**

    * 通过name得到number(线路号)

    * @param name

    * @return

    */

    public static int getNum(String name) {

    String sql = "select xianluhao from aaa where name ='" + name + "'";

    Connection conn = DBUtil.getConn();

    Statement state = null;

    ResultSet rs = null;

    int number=0;

    try {

    state = conn.createStatement();

    rs = state.executeQuery(sql);

    while (rs.next()) {

    number = rs.getInt("xianluhao");

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    DBUtil.close(rs, state, conn);

    }

    return number;

    }

    /**

    * 通过name得到zhanhao(站台号)

    * @param name

    * @return

    */

    public static int getZhanhao(String name) {

    String sql = "select num from aaa where name ='" + name + "'";

    Connection conn = DBUtil.getConn();

    Statement state = null;

    ResultSet rs = null;

    int zhanhao=0;

    try {

    state = conn.createStatement();

    rs = state.executeQuery(sql);

    while (rs.next()) {

    zhanhao = rs.getInt("num");

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    DBUtil.close(rs, state, conn);

    }

    return zhanhao;

    }

    public static String getLine1(int zhanhao1,int zhanhao2) {

    String line="";

    String sql = "select name from aaa where num between '"+zhanhao1+"' and '"+zhanhao2+"'order by num ASC ";//升序

    Connection conn = DBUtil.getConn();

    Statement state = null;

    ResultSet rs = null;

    try {

    state = conn.createStatement();

    rs = state.executeQuery(sql);

    if(rs.next())

    line=rs.getString("name");

    while (rs.next()) {

    String name=rs.getString("name");

    line=line+"->"+name;

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    DBUtil.close(rs, state, conn);

    }

    return line;

    }

    public static String getLine2(int zhanhao1,int zhanhao2) {

    String line="";

    String sql = "select name from aaa where num between '"+zhanhao1+"' and '"+zhanhao2+"' order by num DESC ";//降序

    Connection conn = DBUtil.getConn();

    Statement state = null;

    ResultSet rs = null;

    try {

    state = conn.createStatement();

    rs = state.executeQuery(sql);

    if(rs.next())

    line=rs.getString("name");

    while (rs.next()) {

    String name=rs.getString("name");

    line=line+"->"+name;

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    DBUtil.close(rs, state, conn);

    }

    return line;

    }}

    package servlet;

    import java.io.IOException;

    import javax.servlet.ServletException;

    import javax.servlet.annotation.WebServlet;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import Dao.dao;

    @WebServlet("/servlet")

    public class servlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    req.setCharacterEncoding("utf-8");

    String method = req.getParameter("method");

    if ("chaxun".equals(method)) {

    chaxun(req, resp);

    }

    }

    private void chaxun(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    // TODO Auto-generated method stub

    req.setCharacterEncoding("utf-8");

    String qi=req.getParameter("qi");

    String zhong=req.getParameter("zhong");

    int zhanhao1=dao.getZhanhao(qi);

    int zhanhao2=dao.getZhanhao(zhong);

    int number1=dao.getNum(qi);

    int number2=dao.getNum(zhong);

    if(number1==number2) {

    if(zhanhao1

    {

    String line=dao.getLine1(zhanhao1, zhanhao2);

    req.setAttribute("line",line );

    req.setAttribute("num",number1);

    req.getRequestDispatcher("list.jsp").forward(req,resp);

    }if(zhanhao1>zhanhao2)

    {

    String line=dao.getLine2(zhanhao2, zhanhao1);

    System.out.print(line);

    req.setAttribute("num",number1);

    req.setAttribute("line",line );

    req.getRequestDispatcher("list.jsp").forward(req,resp);

    }

    }}}

    实验截图

    项目总结分析

    这个项目因为涉及到一个最短路径的问题,最开始我是想用迪杰斯特拉算法来解决这个问题。但是我尝试了很久没有成功,可能是我的水平还是太有限。所以最后用了最简单的方法来解决这个问题。我了解到有的同学是用迪杰斯特拉算法完成了这个项目,所以还是去请教一下。后期有时间的话还是想改善一下我程序的算法。

    展开全文
  • VHDL地铁售票系统

    2014-09-20 13:37:48
    使用Nexys3开发板,用VHDL写的一个地铁售票模拟系统,代码行数2000多行。
  • #资源达人分享计划#
  • 注册登录、站点查询、个人中心(普通用户、超级用户)、权限管理、系统设置、用户管理、业务管理、虚拟支付等 个人中心 查看基本信息、密码修改、信息变更、用户注销、订单管理(用户购票记录等)、用户须知 状态 在...

    该项目以PHP作为后台程序,有MYSQL数据库,前端页面为HTML5

    核心功能

    注册登录、站点查询、个人中心(普通用户、超级用户)、权限管理、系统设置、用户管理、业务管理、虚拟支付等

    个人中心

    查看基本信息、密码修改、信息变更、用户注销、订单管理(用户购票记录等)、用户须知

    状态

    在非登录状态下,用户可查询票价信息(票价、发车时间、到达时间、沿途经过的站点、沿途经过站点的时间);
    在用户登录成功后,方可进行虚拟支付,个人信息查询。

    用户

    用户可根据实际需要选择始发站、到达站,收费标准按照距离定

    路线

    地铁有两条线,地铁1号线、地铁2号线

    root

    超级管理员拥有所有权限

    系统展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    获取源码的方式

    QQ:460800420
    邮箱:gsc_gsf@126.com

    展开全文
  • int main() { test t1; int past_s=0; string s1, s2; cout << "起点站:"; cin >> s1; cout << "终点站:"; cin >> s2; t1.find(s1,s2); t1.initstruct();... "er...

    int main()
    {
        
        test t1;
        int past_s=0;
        string s1, s2;
        cout << "起点站:";
        cin >> s1;
        cout << "终点站:";
        cin >> s2;
        t1.find(s1,s2);
        t1.initstruct();
        if (front_s == 0)
        {
            cout << "error" << endl;
            return 0;
        }
        if (end_s == 0)
        {
            cout << "error" << endl;
            return 0;
        }
        past_s =t1.path();
        int s=t1.past(past_s);
        t1.print(s);
        return 0;
    }

    首先,输入要乘坐的起点站和终点站,这个存放到下面这个类里面

    clss test

    {

    private:

    array<string, 34> arr_1;
        array<string, 34>arr_2;
        array<string, 34> arr_4;
        array<string, 39>arr_5;

    }

    实现的肯有一点愚钝,但是对于新手的我来说还是比较友好的,用了四个string类型的数组分别存储,那个文件里的四条线路里的站点;

      打开文件:

    ifstream ifile("D:\\data\\Metro-Line.txt", ios::in);

    然后将他们存入到test 类里面

    while (!ifile.eof())
        {
            ifile >> arr_1[0];
            for (int i = 0; i < (int)arr_a.size(); i++)
            {
                ifile >> arr_a[i];
            }

            for (int i = 0; i < (2 * (int)arr_1.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_1.size(); i++)
            {
                arr_1[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }
            
            
            ifile >> arr_a[0];
            arr_2[0] = "二号线:";
            for (int i = 0; i < (2 * (int)arr_2.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_2.size(); i++)
            {
                arr_2[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }
            for (int i = 0; i < 2; i++)
            {
                arr_a[i].clear();
            }
            
            ifile >> arr_4[0];
            arr_4[0] = "四号线:";
            for (int i = 0; i < (2 * (int)arr_4.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_4.size(); i++)
            {
                arr_4[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }

            ifile >> arr_5[0];
            arr_5[0] = "五号线:";
            for (int i = 0; i < (2 * (int)arr_5.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_5.size(); i++)
            {
                arr_5[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }
            for (int i = 0; i<2; i++)
            {
                arr_a[i].clear();
            }
        }
    }

    以下是全代码:

    #include<iostream>
    #include<array>
    #include<string>
    #include<fstream>
    #include<assert.h>
    #include<stdio.h>
    using namespace std;
    static int front_s=0;
    static int end_s=0;
    static int front=0;
    static int end_i=0;

    int x1[20];
    int x2[20];
    int i1[20];
    int i2[20];

    bool operator== (string s1,string s2);
    class test
    {
    public:
        
    test()
    {   
        array<string, 2>arr_a;
        array<string, 100>arr_3;
        ifstream ifile("D:\\data\\Metro-Line.txt", ios::in);
        while (!ifile.eof())
        {
            ifile >> arr_1[0];
            for (int i = 0; i < (int)arr_a.size(); i++)
            {
                ifile >> arr_a[i];
            }

            for (int i = 0; i < (2 * (int)arr_1.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_1.size(); i++)
            {
                arr_1[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }
            
            
            ifile >> arr_a[0];
            arr_2[0] = "二号线:";
            for (int i = 0; i < (2 * (int)arr_2.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_2.size(); i++)
            {
                arr_2[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }
            for (int i = 0; i < 2; i++)
            {
                arr_a[i].clear();
            }
            
            ifile >> arr_4[0];
            arr_4[0] = "四号线:";
            for (int i = 0; i < (2 * (int)arr_4.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_4.size(); i++)
            {
                arr_4[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }

            ifile >> arr_5[0];
            arr_5[0] = "五号线:";
            for (int i = 0; i < (2 * (int)arr_5.size()); i++)
            {
                ifile >> arr_3[i];
            }
            for (int i = 1; i < (int)arr_5.size(); i++)
            {
                arr_5[i] = arr_3[2 * i - 1];
            }
            for (int i = 0; i < 100; i++)
            {
                arr_3[i].clear();
            }
            for (int i = 0; i<2; i++)
            {
                arr_a[i].clear();
            }
        }
    }
    friend bool operator==(string s1,string s2)
    {
        int x = 1;
        for (int i = 0; i < (int)s1.size() && i < (int)s2.size();i++)
        {
            if (s1[i] != s2[i])
                x = 0;
        }
        return x;
    }
    void find(string &s1, string& s2)
    {
        for (int i = 0; i < (int)arr_1.size(); i++)
        {
            if (arr_1[i] == s1)
            {
                front_s = 1;
                front = i;

            }
            if (arr_1[i] == s2)
            {
                end_s = 1;
                end_i = i;
            }
        }
        for (int i = 0; i < (int)arr_2.size(); i++)
        {

            if (arr_2[i] == s1)
            {
                front_s = 2;
                front = i;
            }
            if (arr_2[i] == s2)
            {
                end_s = 2;
                end_i = i;
            }
        }
        for (int i = 0; i < (int)arr_4.size(); i++)
        {
            if (arr_4[i] == s1)
            {
                front_s = 4;
                front = i;
            }
            if (arr_4[i] == s2)
            {
                end_s = 4;
                end_i = i;
            }
        }
        for (int i = 0; i < (int)arr_5.size(); i++)
        {
            if (arr_5[i] == s1)
            {
                front_s = 5;
                front = i;
            }
            if (arr_5[i] == s2)
            {
                end_s = 5;
                end_i = i;
            }
        }
    }
    public:
        int past(int past_s)
        {
            if (past_s < 0)
                past_s = -past_s;
            if (past_s == 0)
                return 0;
            if (past_s <= 3)
                return 2;
            if (past_s <= 6 && past_s >= 4)
                return 3;
            if (past_s >= 7 && past_s <= 11)
                return 4;
            if (past_s >= 12 && past_s <= 16)
                return 5;
            if (past_s >= 17)
            {
                int s = (5 + (past_s - 17) / 5);
                if ((past_s - 17) % 5 != 0)
                    s++;
                return s;
            }
            return 0;

        }
    public:
            int path()
            {
                int num = 0;
                    int tmp = 0;
                    if (front_s == end_s)
                    {
                        if ((end_i - front) < 0)
                            return (-(end_i - front));
                        else
                            return (end_i - front);
                    }
                    if (front_s != end_s)
                    {
                        for (int i = 0; i < 13; i++)
                        {
                            if ((x1[i] == front_s && x2[i] == end_s && i2[i] == end_i) || (x2[i] == front_s && x1[i] == end_s) && i1[i] == end_i)
                            {
                                end_s = front_s;
                                if (i2[i] == end_i)
                                {
                                    num = i1[i] - front;
                                }
                                if (i1[i] == end_i)
                                {
                                    num = i1[i] - front;
                                }
                            }

                        }
                        for (int i = 0; i < 13; i++)
                        {
                            for (int j = 0; j < 13; j++)
                            {
                                if (x1[i] == front_s && x1[j] == end_s && x2[i]==x2[j]
                                    || x2[i] == front_s && x2[j] == end_s && x1[i] == x1[j])
                                {
                                    if (i1[i] == front && i1[j] == end_i)
                                    {
                                        front_s = x2[i];
                                        end_s = front_s;
                                        front = i2[i];
                                        end_i = i2[j];
                                        num = end_i - front;
                                    }
                                    if (i2[i]==front&&i2[j]==end_i)
                                    {
                                        front_s = x1[i];
                                        end_s = front_s;
                                        front = i1[i];
                                        end_i = i1[j];
                                        num = front - end_i;
                                    }
                                }
                            }
                        }
                    }
                    for (int i = 0; i < 13; i++)
                    {
                        if (front_s == x1[i] && end_s == x2[i])
                        {
                            if ((front - i1[i] < 0) && !(end_i - i2[i] < 0))
                            {
                                tmp = i1[i] - front + end_i - i2[i];
                            }
                            else if (!(front - i1[i] < 0) && (end_i - i2[i] < 0))
                            {
                                tmp = front - i1[i] + i2[i] - end_i;
                            }
                            else if ((front - i1[i] < 0) && (end_i - i2[i] < 0))
                            {
                                tmp = i1[i] - front + i2[i] - end_i;
                            }
                            else
                            {
                                tmp = front - i1[i] + end_i - i2[i];
                            }
                            if (front_s == 2 && end_s == 4)
                            {
                                printf("乘坐%d号线(", front_s);
                                if (front > i1[i])
                                {
                                    cout << arr_2[1] << "方向),上车:" << arr_2[front] << ", 途径: ";
                                    for (int a = front - 1; a > i1[i]; a--)
                                    {
                                        cout << arr_2[a] << "、";
                                    }
                                }
                                if (front < i1[i])
                                {
                                    cout << arr_2[33] << "方向),上车:" << arr_2[front] << ", 途径: ";
                                    for (int a = front + 1; a < i1[i]; a++)
                                    {
                                        cout << arr_2[a] << "、";
                                    }
                                }
                                cout << ", 下车: " << arr_2[i1[i]] << endl;
                                printf("乘坐%d号线(", end_s);
                                if (end_i < i2[i])
                                {
                                    cout << arr_4[1] << "方向),上车:" << arr_4[i2[i]] << ", 途径: ";

                                    for (int a = i2[i] - 1; a > end_i; a--)
                                    {
                                        cout << arr_4[a] << "、";
                                    }
                                }
                                if (end_i > i2[i])
                                {
                                    cout << arr_4[33] << "方向),上车:" << arr_4[i2[i]] << ", 途径: ";
                                    for (int a = i2[i] + 1; a < end_i; a++)
                                    {
                                        cout << arr_4[a] << "、";
                                    }
                                }
                                cout << ", 下车: " << arr_4[end_i] << endl;
                            }
                        }
                        if ((num == 0) || (num > tmp))
                        {
                            num = tmp;
                        }
                    }
                    
                return num;
            }
    public:
    void initstruct()
        {
            int j = 0;
            int input = 1;
            while (input)
            {
                for (int x = 0; x < (int)arr_1.size(); x++)
                {
                    for (int y = 0; y < (int)arr_2.size(); y++)
                    {
                        if (arr_2[y] == arr_1[x])
                        {
                            x1[j] = 1;
                            x2[j] = 2;
                            i1[j] = x;
                            i2[j] = y;
                            j++;
                        }
                    }
                }
                for (int x = 0; x < (int)arr_1.size(); x++)
                {
                    for (int y = 0; y < (int)arr_4.size(); y++)
                    {
                        if (arr_4[y] == arr_1[x])
                        {
                            x1[j] = 1;
                            x2[j] = 4;
                            i1[j] = x;
                            i2[j] = y;
                            j++;
                        }
                    }
                }
                for (int x = 0; x < (int)arr_1.size(); x++)
                {
                    for (int y = 0; y < (int)arr_5.size(); y++)
                    {
                        if (arr_5[y] == arr_1[x])
                        {
                            x1[j] = 1;
                            x2[j] = 5;
                            i1[j] = x;
                            i2[j] = y;
                            j++;
                        }
                    }
                }
                for (int x = 0; x < (int)arr_2.size(); x++)
                {
                    for (int y = 0; y < (int)arr_4.size(); y++)
                    {
                        if (arr_4[y] == arr_2[x])
                        {
                            x1[j] = 2;
                            x2[j] = 4;
                            i1[j] = x;
                            i2[j] = y;
                            j++;
                        }
                    }
                }
                for (int x = 0; x < (int)arr_2.size(); x++)
                {
                    for (int y = 0; y < (int)arr_5.size(); y++)
                    {
                        if (arr_5[y] == arr_2[x])
                        {
                            x1[j] = 2;
                            x2[j] = 5;
                            i1[j] = x;
                            i2[j] = y;
                            j++;
                        }
                    }
                }
                for (int x = 0; x < (int)arr_4.size(); x++)
                {
                    for (int y = 0; y < (int)arr_5.size(); y++)
                    {
                        if (arr_5[y] == arr_4[x])
                        {
                            x1[j] = 4;
                            x2[j] = 5;
                            i1[j] = x;
                            i2[j] = y;
                            j++;
                        }
                    }
                    if (x == ((int)arr_4.size() - 1))
                    {
                        input = 0;
                    }
                }

            }

    }
    void print(int s)
    {
        
        if (front_s == end_s && end_s == 1)
        {cout << "乘坐" << front_s << "号线";
            for (int i = front; i < end_i; i++)
            {
                
                cout << arr_1[i]<<"->";
            }
            cout << arr_1[end_i];
        }
        if (front_s == end_s && end_s == 2)
        {
            cout << "乘坐" << front_s << "号线";
            for (int i = front; i < end_i; i++)
            {
                cout << arr_2[i]<<"->";
            }
            cout << arr_2[end_i];
        }
        if (front_s == end_s && end_s == 4)
        {
            cout << "乘坐" << front_s << "号线";
            for (int i = front; i < end_i; i++)
            {
                cout << arr_4[i]<<"->";
            }
            cout << arr_4[end_i];
        }
        if (front_s == end_s && end_s == 5)
        {
            cout << "乘坐" << front_s << "号线";
            for (int i = front; i < end_i; i++)
            {
                cout << arr_5[i]<<"->";
            }
            cout << arr_5[end_i];
        }
        
        cout << endl;
        cout << "费用:" << s;
    }
    private:
        array<string, 34> arr_1;
        array<string, 34>arr_2;
        array<string, 34> arr_4;
        array<string, 39>arr_5;
        
    };

    int main()
    {
        
        test t1;
        int past_s=0;
        string s1, s2;
        cout << "起点站:";
        cin >> s1;
        cout << "终点站:";
        cin >> s2;
        t1.find(s1,s2);
        t1.initstruct();
        if (front_s == 0)
        {
            cout << "error" << endl;
            return 0;
        }
        if (end_s == 0)
        {
            cout << "error" << endl;
            return 0;
        }
        past_s =t1.path();
        int s=t1.past(past_s);
        t1.print(s);
        return 0;
    }

    会计算两站点的距离以及价格:

    这是运行之后

     

    展开全文
  • jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统
  • 基于Thinkphp3的地铁售票系统.7z
  • 1、地铁票价3站(含)内3元: 4~6站(含) 4元: 7~11站(含) 5元: 12~16站(含)6元; 17站(含)以上部分,每增加1元可乘坐10站; 2、 能够开机自检,检验显示器件正常: 3. 通过按键BTN7输入购票张数,按一下加1,- -次最多购买9...
  • 地铁售票系统 verilog

    2010-04-09 10:12:50
    verilog 地铁 售票 系统 ,自己写的作业功能实现一部分在de1板上实现
  • c++面向对象练习:西安市地铁售票系统自定义三个类每个类的详细信息地铁线路类地图类数据类测试代码测试结果目前存在的问题 自定义三个类 地铁线路类:保存本条线路的所有站点信息和换乘车站信息。 地图类:保存所有...
  • 使用 verilog 实现地铁售票
  • importjava.io.IOException;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet....
  • 硬件:FPGA Nexys4-DDR 包含工程,源代码(有注释),约束文件,仿真文件。 vivado 2017.4
  • 地铁网络售票系统 详见UI,见: 先告一段落( ⊙ o ⊙ )啊!。。。 Have fun! 已实现功能:  1.主页面选择(城市,线路,站点)  2.最短路径生成(还没加入站点间的距离,so,只是最少站点数)  3.二维码生成  4....
  • 对铁路售票系统进行分析,包括用例图、用例规约,希望这个对大家的学习有一点点参考价值,有不好的地方可以指正
  • 通过站台之间的距离计算价钱,我用了combobox来设置选择的起点和终点,但是怎么监听然后获得两地的距离进行计算价钱呢?求解
  • 模拟轨道交通地铁自助售票系统,模拟西安地铁自助售票软件,演示版支持1、2号线。可绘制地铁地图,可定制开发软件,delphi设计。主要用于职高学校使用。有兴趣的可以交流。
  • 南京市地铁售票系统

    2012-04-09 09:06:03
    南京市地铁售票系统
  • .....................................................................................................................................10 4.12 售票管理员登录系统 ...........................................
  • MFC 地铁售票系统 VC 软件工程 课程联系 网对您有所帮助!
  • 地铁售票查询系统(c语言)
  • 这是用c#制作的一个程序,网上售票系统,感兴趣的同学可以看下。
  • 摘要:随着现代都市交通拥挤问题越来越严重,城市轨道交通因其可以极大的缓解这个...而自动售票机作为AFC系统中最重要的设备之一,真正完成对车票的发售及对交易的记录。并且自动售票机与乘客有直接的接触,因此保证自...
  • C++面向对象程序设计:地铁自动售票系统

    千次阅读 多人点赞 2020-05-14 23:00:05
    请设计一个简易的、带菜单的地铁自动售票系统。 功能需求: (1)设计一个地铁路线类Router,包含路线编号,途中的各个站点。 (2)设计一个地图类Map,可以显示所有可以乘坐的地铁站名,以及线路信息。 (3...
  • 中南大学C++课程设计——地铁售票管理系统 自动化学院 自动化与电气类 内含源程序、实验报告、预设数据及必要程序说明 PS:建议大家下载后评论留下班级,只要没有同班的即可放心使用; 该程序为本人大一时所写,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 822
精华内容 328
关键字:

地铁售票系统

友情链接: bookshop.rar