| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2139 人关注过本帖, 1 人收藏
标题:新人求助编
只看楼主 加入收藏
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:9 
新人求助编
谢谢(*°∀°)=3

[此贴子已经被作者于2019-5-21 23:41编辑过]

2019-05-16 23:24
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
自己不尝试写点再请别人指导一下?

剑栈风樯各苦辛,别时冰雪到时春
2019-05-17 06:53
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:20 

程序代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class Test0517 {
    class Student implements Comparable<Student> {
        String stuNo;
        String name;
        int score;
        public Student(String stuNo, String name, int score) {
            this.stuNo = stuNo;
            this.name = name;
            this.score = score;
        }
        @Override
        public String toString() {
            return stuNo +"\t" + name + "\t" + score;
        }
        @Override
        public int compareTo(Student o) {
            return score-o.score;
        }
    }
    private static final String ADD="0", DEL = "1", UPDATE="2",
            QUERY = "3", SORT = "4", SHOW="5", EXIT="-1";
    public static void main(String[] args) {
        Map<String, Test0517.Student> students = new LinkedHashMap<>(); 
        showMenu();
        Scanner scanner = new Scanner(System.in);
        String commandTxt = scanner.nextLine();
        while(!EXIT.equals(commandTxt)) {
            if(!Arrays.asList(EXIT, ADD, DEL, UPDATE, QUERY, SORT, SHOW).contains(commandTxt)) {
                System.out.println("命令有误:"+commandTxt);
            } else {
                executeMenu(commandTxt, scanner, students);
            }
            showMenu();
            commandTxt = scanner.nextLine();
        }
        scanner.close();
    }
    private static void executeMenu(String commandTxt, Scanner scanner, Map<String, Student> students) {
        if(ADD.equals(commandTxt)) {
            String no = getInputByMsg("学号:", scanner);
            String name = getInputByMsg("姓名:", scanner);
            String score = getInputByMsg("成绩:", scanner);
            while(!score.matches("\\d+")) {
                String flag = getInputByMsg("成绩必须是整数,不纠正则不添加,纠正:1,不纠正任意键继续", scanner);
                if("1".equals(flag)) {
                    score = getInputByMsg("成绩:", scanner);
                } else {
                    return;
                }
            }
            students.put(no, new Test0517().new Student(no, name, Integer.parseInt(score)));
        } else if(DEL.equals(commandTxt)) {
            String no = getInputByMsg("请输入要删除的学号:", scanner);
            if(!students.keySet().contains(no)) {
                System.out.println("学号" + no + "不存在,无删除操作");
            } else {
                students.remove(no);
            }
        } else if(UPDATE.equals(commandTxt)) {
            String no = getInputByMsg("请输入要修改的学号:", scanner);
            if(!students.keySet().contains(no)) {
                System.out.println("学号" + no + "不存在,无删除操作");
            } else {
                String name = getInputByMsg("姓名:", scanner);
                String score = getInputByMsg("成绩:", scanner);
                while(!score.matches("\\d+")) {
                    String flag = getInputByMsg("成绩必须是整数,不纠正则不修改,纠正:1,不纠正任意键继续", scanner);
                    if("1".equals(flag)) {
                        score = getInputByMsg("成绩:", scanner);
                    } else {
                        return;
                    }
                }
                students.put(no, new Test0517().new Student(no, name, Integer.parseInt(score)));
            }
        } else if(QUERY.equals(commandTxt)) {
            String no = getInputByMsg("请输入要查询的学号:", scanner);
            if(!students.keySet().contains(no)) {
                System.out.println("学号" + no + "不存在");
            } else {
                System.out.println(students.get(no));
            }
        } else if(SORT.equals(commandTxt)) {
            List<Student> tmpStus = new ArrayList<Student>(students.values());
            Collections.sort(tmpStus);
            students.clear();
            for(Student stu : tmpStus) students.put(stu.stuNo, stu);
        } else if(SHOW.equals(commandTxt)) {
            System.out.println("学号\t姓名\t成绩");
            for(Student stu : students.values()) {
                System.out.println(stu);
            }
        } 
    }
    private static String getInputByMsg(String msg, Scanner scanner) {
        System.out.print(msg);
        return scanner.nextLine();
    }
    private static void showMenu() {
        System.out.println("=====================================");
        System.out.println("增加:0、删除:1、修改:2、查询:3、排序:4、输出:5");
        System.out.println("退出:-1");
        System.out.print("请输入指令:");
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2019-05-17 22:33
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
收藏
得分:0 
回复 3楼 林月儿
谢谢您!我会好好研究这个程序的!初学java 之前学过c(学的挺基础的)两周让我们学到这个程度着实有点难。。。。请问这个程序涉及哪些知识点吗 例如集合 多线程 数组
2019-05-19 14:18
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:396
专家分:2640
注 册:2018-3-30
收藏
得分:0 
回复 4楼 mkgg
大佬写的很基础了,不过初学者理清还是要花点时间的。

saber,别哭.
2019-05-19 14:47
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
收藏
得分:0 
回复 5楼 幻紫灵心
嗯嗯  我会好好研究的
2019-05-19 15:54
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
比如控制台输入
 Scanner scanner = new Scanner(System.in);
        String commandTxt = scanner.nextLine();
比如控制台输出
   System.out.println("=====================================");
        System.out.println("增加:0、删除:1、修改:2、查询:3、排序:4、输出:5");

比如集合排序,这个可以查一下比较器相关知识点
 Collections.sort(tmpStus);

代码那么多,用到的知识点不多,也就围绕几个知识点来回折腾
不用记我写的代码,知道那些语句干嘛用的,自己能利用相关接口实现同样的功能就可以了
在书写的过程中,不断简化流程,书写规范,慢慢养成好习惯。

剑栈风樯各苦辛,别时冰雪到时春
2019-05-19 21:21
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
收藏
得分:0 
回复 7楼 林月儿
好的,谢谢您!
2019-05-19 22:33
一只闲鱼
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-8-21
收藏
得分:0 
回复 2楼 林月儿
大佬,能不能推荐下小白对于java怎样学习的快速方法,谢谢您
2019-08-21 15:30
红柚
Rank: 4
来 自:咸鱼乡的酸菜鱼
等 级:贵宾
威 望:14
帖 子:53
专家分:218
注 册:2018-4-20
收藏
得分:0 
回复 9楼 一只闲鱼
谈快速,就谈不了什么方法了。
花钱去培训班都得给你计划个四个月吧。

不想花钱就找度娘,然后一套学到底
愿意花钱但没什么时间就网课
愿意花钱还不用上班就去找个靠谱的培训班

对于一个晚上都最多只能挤得出两个小时学习的人来说
我也很想有快速的方法。
2019-08-22 09:06
快速回复:新人求助编
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021120 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved