• 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();
            }
        }
    }
  • 相关阅读:
    集训作业 洛谷P1135 奇怪的电梯
    集训作业 洛谷P1433 吃奶酪
    集训作业 洛谷P1443 马的遍历
    集训作业 洛谷P1032 字串变换
    T3 成绩单 题解
    T4 字符串的修改 题解
    P3379 最近公共祖先(LCA) 洛谷
    集训作业 洛谷P3913 车的攻击
    解决intellij idea卡顿的方法
    好的在线开发工具推荐
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/11620881.html
Copyright © 2020-2023  润新知