java课极限测试

在临近国庆的9月30号补课日 碰到了惨绝人寰的java课极限测试 我从下午两点半做到晚上九点 不得不说人在烦躁的时候是真的没办法写代码的 根本不想思考也不想学习。最后的几个小时基本就是在叹息和坐着。也告诉我要好好的利用好有限的精力时间,毕竟人的精力确实是有限的。

言归正传 题的内容是让写一个石家庄地铁的管理系统 说是管理系统,其实就是能显示线路和自动计算票价。需求看似简单,但实施起来属实超出了我的技能范围。在课下借助了某位学长的代码后(不得不说我现在的水平只有基本看懂别人代码的水平了。)

以下附上代码,其实功能实现的十分粗暴,并且只是机械的使用了一些知识点,这个软件十分不完美。

首先是subway

public class Subway {
    private String routenumber;
    private String routename;
    private String pd;
    public String getroutenumber(){
        return routenumber;
    }
    public void setroutenumber(String n){
        routenumber=n;
    }
    public String getroutename(){
        return routename;
    }
    public void setroutename(String m){
        routename=m;
    }
    public String getpd(){
        return pd;
    }
    public void setpd(String x){
        pd=x;
    }
    public static void main(String [] args){
        WriteFile();
    }
public static void WriteFile(){

    try{
        File writeName = new File("shijiazhuang-subway.txt");//相对路径,如果没有则要建立一个新的output.txt文件
        writeName.createNewFile();//创建文件,有同名的文件直接覆盖。
        try(FileWriter writer = new FileWriter(writeName);
                BufferedWriter out = new BufferedWriter(writer)
                ){
            out.write("一号 洨河大道 无\r\n"
                    + "一号 南村 无\r\n"+
                    "一号 石家庄东站 无\r\n"+
                    "一号 火炬广场 无\r\n"+
                    "一号 留村 无\r\n"+
                    "一号 白佛 无\r\n"+
                    "一号 朝晖桥 无\r\n"+
                    "一号 谈固 无\r\n"+
                    "一号 北宋 无\r\n"+
                    "一号 体育场 无\r\n"+
                    "一号 博物院 无\r\n"+
                    "一号 北国商城 无\r\n"+
                    "一号 平安大街 无\r\n"+
                    "一号 解放广场 无\r\n"+
                    "一号 新百广场 换乘3号线\r\n"+
                    "一号 烈士陵园 无\r\n"+
                    "一号 和平医院 无\r\n"+
                    "一号 长城桥 无\r\n"+
                    "一号 时光街 无\r\n"+
                    "一号 西王 无\r\n"+
                    "三号 市二中 无\r\n"+
                    "三号 新百广场 换乘1号线\r\n"+
                    "三号 东里 无\r\n"+
                    "三号 槐安桥 无\r\n"+
                    "三号 西三教 无\r\n"+
                    "三号 石家庄站 无\r\n"
                    );//\r\n即为换行
            out.flush();//把缓存区内容压入文件
        }
    }catch(IOException e){
        e.printStackTrace();
}
}
public static void subwayinformation(int routename1){}
public static void  returnroutenumber(String str1,String str2){}
}

接下来是主界面管理系统

public class SubwayManager {
    static int i=0,j=0;
    static int num;
    static Scanner scan = new Scanner(System.in);
    static Subway []f1 = new Subway[21];
    static Subway []f2 = new Subway[7];
    public static void Welcome(){
        
        System.out.println("***************************************************************");
        System.out.println("\t" + "欢迎乘坐石家庄地铁");
        System.out.println("***************************************************************");
        System.out.println("\t" + "1、显示具体线路信息;");
        System.out.println("\t" + "2、购票;");
        System.out.println("*******************************************************"
                + "********");
    }
    public static void read1(){
        for (int i= 0;i<21;i++)
            f1[i] = new Subway();
        
        f1[0].setroutenumber("1");
        f1[1].setroutename("洨河大道");
        f1[2].setroutename("南村");
        f1[3].setroutename("石家庄东站");
        f1[4].setroutename("火炬广场");
        f1[5].setroutename("留村");
        f1[6].setroutename("白佛");
        f1[7].setroutename("朝晖桥");
        f1[8].setroutename("谈固");
        f1[9].setroutename("北宋");
        f1[10].setroutename("体育场");
        f1[11].setroutename("博物院");
        f1[12].setroutename("北国商城");
        f1[13].setroutename("平安大街");
        f1[14].setroutename("解放广场");
        f1[15].setroutename("新百广场");
        
        f1[15].setpd("换乘3号线");
        
        f1[16].setroutename("烈士陵园");
        f1[17].setroutename("和平医院");
        f1[18].setroutename("长城桥");
        f1[19].setroutename("时光街");
        f1[20].setroutename("西王");
        }
    public static void read2(){
        for (int i= 0;i<7;i++)
            f2[i] = new Subway();
        f2[0].setroutenumber("3");
        f2[1].setroutename("市二中");
        f2[2].setroutename("新百广场");
        f2[2].setpd("换乘一号线");
        f2[3].setroutename("东里");
        f2[4].setroutename("槐安桥");
        f2[5].setroutename("西三教");
        f2[6].setroutename("石家庄站");
    }
    public static void show(){
        System.out.println("输入线路的序号,输入0显示所有路线");
        int in = scan.nextInt();
        switch(in){
        case 1:subwayinformation(1);break;
        case 3:subwayinformation(3);break;
        case 0:subwayinformation(0);break;
        default:System.out.println("请按照提示输入正确的数字!");break;
        }
        show();
    }
    public static  void main(String [] args){
        read1();
        read2();
        Welcome();
        int c = scan.nextInt();
        switch(c){
        case 1:show();break;
        case 2:buy();break;
        }
    }
    public static void buy(){
        String begin,end;
        int count=0,n=0,m=0;
        System.out.println("***************************************************************");
        System.out.println("\t" + "欢迎乘坐石家庄地铁");
        System.out.println("***************************************************************");
        System.out.println("起始站:");
        begin = scan.next();
        System.out.println("终点站:");
        end = scan.next();
        System.out.println("购票数量:");
        num= scan.nextInt();
        System.out.println("***************************************************************");
        System.out.println("\t" + "欢迎乘坐石家庄地铁");
        System.out.println("***************************************************************");
        //只走一号线
        int routea1=0,routeb1=0;
        for(int i=1;i<21;i++){
            if(begin.equals(f1[i].getroutename())){
                routea1=i;
            }
            if(end.equals(f1[i].getroutename())){
                routeb1=i;
            }
        }
        if(routea1!=0&&routeb1!=0){
            count=Math.abs(routeb1-routea1);
            System.out.println(count+"站地");
        for(i=routea1;i<=routeb1;i++){
            System.out.println(f1[i].getroutename());
        }
        if(count%3==0){
            System.out.println("购票单价:"+count/3);
            System.out.println("购票金额:"+num*count/3);
        }
        else{
            System.out.println("购票单价:"+(count/3+1));
            System.out.println("购票金额:"+num*(count/3+1));
        }
    }
//只走三号线
    int routea2=0,routeb2=0;
    for(i=1;i<7;i++){
        if(begin.equals(f2[i].getroutename())){
            routea2=i;
        }
        if(end.equals(f2[i].getroutename())){
            routeb2=i;
        }
    }
    if(routea2!=0&&routeb2!=0){
        count=Math.abs(routeb2-routea2);
        System.out.println(count+"站地");
        for(i=routea2;i<=routeb2;i++){
            System.out.println(f2[i].getroutename());
        }
        if(count%3 == 0)
        {
            System.out.println("购票单价:" + count/3);
            System.out.println("购票金额:" + num*count/3);
        }
        else {
            System.out.println("购票单价:" + (count/3+1));
            System.out.println("购票金额:" + num*(count/3+1));
        }
    }
    //需要换乘的情况
    if((routea1==0||routeb1==0)&&(routea2==0||routeb2==0)){
        for(i=0;i<21;i++){
            if(begin.equals(f1[i].getroutename())){
                n=i;count=Math.abs(15-n);
                break;

            }
            else if(end.equals(f1[i].getroutename())){    
                n=i;count=Math.abs(15-n);
                break;
                }
            }
            
    }
    for(i=0;i<7;i++){
        if(end.equals(f2[i].getroutename())){
            m=i;count=count+Math.abs(m-2);
            break;
        }
        else if(begin.equals(f2[i].getroutename())){
            m=i;count=count+Math.abs(m-2);
            break;
        }
    }

    System.out.println(count+"站地");
    if(n>15){
        for(i=n;i>15;i--)
            System.out.println(f1[i].getroutename());
            System.out.println(f1[15].getroutename()+" "+f1[15].getpd());
            if(m<2){
                System.out.println(f2[1].getroutename());
            }
            else{
                for(i=3;i<7;i++){
                    System.out.println(f2[i].getroutename());
                }
                    
            }
    }
    if(n>0&&n<=15){
        for(i=n;i<15;i++){
            System.out.println(f1[i].getroutename());
        }
        System.out.println(f1[15].getroutename()+" "+f1[15].getpd());
        if(m>=2&&m<7){
            for(i=3;i<7;i++)
            System.out.println(f2[i].getroutename());
        }
    }
    if(count % 3 == 0)
    {
        System.out.println("购票单价:" + count/3);
        System.out.println("购票金额:" + num*count/3);
    }
    else {
        System.out.println("购票单价:" + (count/3+1));
        System.out.println("购票金额:" + num*(count/3+1));
    }
    System.out.println("***************************************************************");
    }
    
    public static void subwayinformation(int routename1){
        String pathname = "shijiazhuang-subway.txt";
        try(FileReader reader = new FileReader(pathname);
                BufferedReader br = new BufferedReader(reader)
                ){ 
            String line;
            if(routename1==1){
            while((line = br.readLine()).contains("一号")){
                System.out.println(line);//一次读入一行数据
            }
            }
            if(routename1==3){
                while((line=br.readLine())!=null){
                    if(line.contains("三号")){
                        System.out.println(line);
                    }
                }
            }
            if(routename1==0){
                while((line=br.readLine())!=null){
                    System.out.println(line);
                }
            }
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/wushenjiang/p/11620881.html