| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 246 人关注过本帖, 1 人收藏
标题:新人求助编
只看楼主 加入收藏
本帖由 林月儿 于 2019-5-17 14:11 提升
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
结帖率:100%
  已结贴   问题点数:20  回复次数:7   
新人求助编
谢谢(*°∀°)=3

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

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

知命以下无敌
2019-05-17 06:53
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:123
帖 子:1870
专家分:8197
注 册: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(学的挺基础的)两周让我们学到这个程度着实有点难。。。。请问这个程序涉及哪些知识点吗 例如集合 多线程 数组
6 天前 14:18
幻紫灵心
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山咔咔里面
等 级:版主
威 望:41
帖 子:363
专家分:2386
注 册:2018-3-30
  得分:0 
回复 4楼 mkgg
大佬写的很基础了,不过初学者理清还是要花点时间的。

saber,别哭.
6 天前 14:47
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
  得分:0 
回复 5楼 幻紫灵心
嗯嗯  我会好好研究的
6 天前 15:54
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:123
帖 子:1870
专家分:8197
注 册: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);

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

知命以下无敌
6 天前 21:21
mkgg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-16
  得分:0 
回复 7楼 林月儿
好的,谢谢您!
6 天前 22:33







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

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