当前位置:编程学习 > JAVA >>

新手求助,小程序不知道怎样写下去了

看了JAVA视频后,有感而发,所以就
设计一个学生查询系统
学生信息只有   姓名 ,编号,分数
此3个数据在一个类中
通过姓名和编号查询到该学生的分数
程序的效果:

神秘代码     新手勿喷
import java.util.Scanner;
 
 
public class Student {
private static final String String = null;
 
public static void main(String [] args){
System.out.println("The school inquiry system");
System.out.println("Please choose student name or id to inquiry");
System.out.println("Choose 1 is student name ; 2 is student id ");
Student s = new Student();
Student.Choose(); //调用Choose 来进行选择和调用方法
}
public static void Choose (){
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if(num==1){
System.out.println("Please key student name ");
String namer = s.next();   //定义namer 为查询学生名字
System.out.println(namer);
Student.Name(namer);
}else if(num==2){
System.out.println("Please key student id ");
int ider = s.nextInt();  //定义ider 为查询学生编号
System.out.println(ider);
Student.Id(ider);
}else{
System.out.println("You key num is erro ");
}
}
public static void Name(String namer){
System.out.println(namer);
int b=0;
Student.Database(namer, b);
}
public static  void Id(int ider){
System.out.println(ider);
int a=0;
Student.Database(String, ider);
}
public static void Database(String a,int b){ //学生数据库   以数组的形式存储,如[Name,Id,Score]
String [][]str={{"张三","001","90"},{"李四","002","65"},{"王五","003","85"}};
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++ ){
//if(b == str[i][j]){
System.out.println("姓名:"+str[i][j-1]+",编号:"+str[i][j]+",分数:"+str[i][j+1]);
}
}
}
}
//}
--------------------编程问答-------------------- 如果你不说想实现什么样的效果的话,估计没人能帮的了你。。 --------------------编程问答--------------------

import java.util.Scanner;

public class Student {
private static final String String = null;

public static void main(String[] args) {
System.out.println("The school inquiry system");
System.out.println("Please choose student name or id to inquiry");
System.out.println("Choose 1 is student name ; 2 is student id ");
Student.Choose(); // 调用Choose 来进行选择和调用方法
}

public static void Choose() {
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
System.out.println("Please key student name ");
String namer = s.next(); // 定义namer 为查询学生名字
System.out.println(namer);
Student.Name(namer);
} else if (num == 2) {
System.out.println("Please key student id ");
String ider = s.next(); // 定义ider 为查询学生编号
System.out.println(ider);
Student.Id(ider);
} else {
System.out.println("You key num is erro ");
}
}

public static void Name(String namer) {
System.out.println(namer);
String b = null;
Student.Database(namer, b);
}

public static void Id(String ider) {
System.out.println(ider);
Student.Database(String, ider);
}

public static void Database(String a, String b) { // 学生数据库
// 以数组的形式存储,如[Name,Id,Score]
String[][] str = { { "张三", "001", "90" }, { "李四", "002", "65" },
{ "王五", "003", "85" } };
boolean find = false;
for (int i = 0; i <= 2; i++) {
if(a != null){
if(str[i][0].equals(a)){
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1] + ",分数:"
+ str[i][2]);
find = true;
}
}else{
if(str[i][1].equals(b)){
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1] + ",分数:"
+ str[i][2]);
find = true;
}
}
}
if(!find){
System.out.println("查无此人");
}
}
}
// }
--------------------编程问答--------------------
引用 1 楼 AA5279AA 的回复:
如果你不说想实现什么样的效果的话,估计没人能帮的了你。。

效果就是
我前面的那个运作流程 --------------------编程问答--------------------
引用 2 楼 longtian1213 的回复:

import java.util.Scanner;

public class Student {
private static final String String = null;

public static void main(String[] args) {
System.out.println("The school inquiry system");
System.out.println("Please choose student name or id to inquiry");
System.out.println("Choose 1 is student name ; 2 is student id ");
Student.Choose(); // 调用Choose 来进行选择和调用方法
}

public static void Choose() {
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
System.out.println("Please key student name ");
String namer = s.next(); // 定义namer 为查询学生名字
System.out.println(namer);
Student.Name(namer);
} else if (num == 2) {
System.out.println("Please key student id ");
String ider = s.next(); // 定义ider 为查询学生编号
System.out.println(ider);
Student.Id(ider);
} else {
System.out.println("You key num is erro ");
}
}

public static void Name(String namer) {
System.out.println(namer);
String b = null;
Student.Database(namer, b);
}

public static void Id(String ider) {
System.out.println(ider);
Student.Database(String, ider);
}

public static void Database(String a, String b) { // 学生数据库
// 以数组的形式存储,如[Name,Id,Score]
String[][] str = { { "张三", "001", "90" }, { "李四", "002", "65" },
{ "王五", "003", "85" } };
boolean find = false;
for (int i = 0; i <= 2; i++) {
if(a != null){
if(str[i][0].equals(a)){
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1] + ",分数:"
+ str[i][2]);
find = true;
}
}else{
if(str[i][1].equals(b)){
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1] + ",分数:"
+ str[i][2]);
find = true;
}
}
}
if(!find){
System.out.println("查无此人");
}
}
}
// }

大神   为什么中间会输出多一次  我的输入内容呢?
如:
he school inquiry system
Please choose student name or id to inquiry
Choose 1 is student name ; 2 is student id 
2
Please key student id 
001
001001
姓名:张三,编号:001,分数:90
--------------------编程问答--------------------
引用 4 楼 u011494600 的回复:
Quote: 引用 2 楼 longtian1213 的回复:


import java.util.Scanner;

public class Student {
private static final String String = null;

public static void main(String[] args) {
System.out.println("The school inquiry system");
System.out.println("Please choose student name or id to inquiry");
System.out.println("Choose 1 is student name ; 2 is student id ");
Student.Choose(); // 调用Choose 来进行选择和调用方法
}

public static void Choose() {
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
System.out.println("Please key student name ");
String namer = s.next(); // 定义namer 为查询学生名字
System.out.println(namer);
Student.Name(namer);
} else if (num == 2) {
System.out.println("Please key student id ");
String ider = s.next(); // 定义ider 为查询学生编号
System.out.println(ider);
Student.Id(ider);
} else {
System.out.println("You key num is erro ");
}
}

public static void Name(String namer) {
System.out.println(namer);
String b = null;
Student.Database(namer, b);
}

public static void Id(String ider) {
System.out.println(ider);
Student.Database(String, ider);
}

public static void Database(String a, String b) { // 学生数据库
// 以数组的形式存储,如[Name,Id,Score]
String[][] str = { { "张三", "001", "90" }, { "李四", "002", "65" },
{ "王五", "003", "85" } };
boolean find = false;
for (int i = 0; i <= 2; i++) {
if(a != null){
if(str[i][0].equals(a)){
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1] + ",分数:"
+ str[i][2]);
find = true;
}
}else{
if(str[i][1].equals(b)){
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1] + ",分数:"
+ str[i][2]);
find = true;
}
}
}
if(!find){
System.out.println("查无此人");
}
}
}
// }

大神   为什么中间会输出多一次  我的输入内容呢?
如:
he school inquiry system
Please choose student name or id to inquiry
Choose 1 is student name ; 2 is student id 
2
Please key student id 
001
001001
姓名:张三,编号:001,分数:90

你把不需要的System.out.println去掉就行了
--------------------编程问答-------------------- --------------------编程问答-------------------- he school inquiry system
Please choose student name or id to inquiry
Choose 1 is student name ; 2 is student id 
2
Please key student id 
001
001
001
姓名:张三,编号:001,分数:90
--------------------编程问答-------------------- 没时间做题,给你点建议就是下次定义字段名,方法名的时候,首字母请小写。。那个String String亮瞎了我的双眼。。 --------------------编程问答--------------------
引用 8 楼 fudongrifdr 的回复:
没时间做题,给你点建议就是下次定义字段名,方法名的时候,首字母请小写。。那个String String亮瞎了我的双眼。。

新手  555 --------------------编程问答-------------------- 你这程序BUG和逻辑上的缺陷有点多,
尽量少改了些,写了如下的程序,希望能帮到你。

package com;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test4 {
private static final String String = null;

public static void main(String[] args) {

Test4 t = new Test4();
Student student=t.getStuScore();
if(student==null){
System.out.println("未查找到该学生");
}else{
System.out.println(student.toString());
}
}

public Student getStuScore() {
//创建学生对象来存储学生信息
Student student=new Student();
System.out.println("The school inquiry system");

//输入学生信息来选择学生
choose(student);
//学生已经存好了信息
if(student.getId()!=null)
return selectById(student);
if(student.getName()!=null)
return selectByName(student);
return null;
}

public static void choose(Student student) {
System.out.println("Please choose student name or id to inquiry");
System.out.println("Choose 1 is student name ; 2 is student id ");
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
System.out.println("Please key student name ");
String name = s.next(); // 定义namer 为查询学生名字
System.out.println(name);//这里其实应该加一些正则格式验证,就先不写了。。
student.setName(name);
} else if (num == 2) {
System.out.println("Please key student id ");
String id = s.next(); // 定义ider 为查询学生编号
System.out.println(id);
student.setId(id);
} else {
System.out.println("You key num is erro ");
}
}

public static Student selectByName(Student student) {
System.out.println("根据姓名:"+student.getName()+"查询");
List<Student> database = Database();
for(Student stu:database){
if(stu.getName().equals(student.getName())){
return stu;
}
}
return null;
}

public static Student selectById(Student student) {
System.out.println("根据学号:"+student.getId()+"查询");
List<Student> database = Database();
for(Student stu:database){
if(stu.getId().equals(student.getId())){
return stu;
}
}
return null;
}

/**
 * 返回list型对象,等于把数据封装好了
 */
public static List<Student> Database() { // 学生数据库
// 以数组的形式存储,如[Name,Id,Score]
String[][] str = { { "张三", "001", "90" }, { "李四", "002", "65" },
{ "王五", "003", "85" } };
System.out.println("数据库如下:");
for (int i = 0; i <= 2; i++) {
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1]+ ",分数:" + str[i][2]);
}
List<Student> list=new ArrayList<>();
for(int i=0;i<str.length;i++){
Student student=new Student();
for(int j=0;j<str[i].length;j++){
student.setName(str[i][0]);
student.setId(str[i][1]);
student.setScore(Integer.parseInt(str[i][2]));
}
list.add(student);
}
return list;
}

}

class Student {
private String id;
private String name;
private int score;

public Student() {

}



public String getId() {
return id;
}



public void setId(String id) {
this.id = id;
}



public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getScore() {
return score;
}

public void setScore(int score) {
this.score = score;
}

@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", score=" + score
+ "]";
}

}
--------------------编程问答--------------------
引用 10 楼 AA5279AA 的回复:
你这程序BUG和逻辑上的缺陷有点多,
尽量少改了些,写了如下的程序,希望能帮到你。

package com;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test4 {
private static final String String = null;

public static void main(String[] args) {

Test4 t = new Test4();
Student student=t.getStuScore();
if(student==null){
System.out.println("未查找到该学生");
}else{
System.out.println(student.toString());
}
}

public Student getStuScore() {
//创建学生对象来存储学生信息
Student student=new Student();
System.out.println("The school inquiry system");

//输入学生信息来选择学生
choose(student);
//学生已经存好了信息
if(student.getId()!=null)
return selectById(student);
if(student.getName()!=null)
return selectByName(student);
return null;
}

public static void choose(Student student) {
System.out.println("Please choose student name or id to inquiry");
System.out.println("Choose 1 is student name ; 2 is student id ");
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
System.out.println("Please key student name ");
String name = s.next(); // 定义namer 为查询学生名字
System.out.println(name);//这里其实应该加一些正则格式验证,就先不写了。。
student.setName(name);
} else if (num == 2) {
System.out.println("Please key student id ");
String id = s.next(); // 定义ider 为查询学生编号
System.out.println(id);
student.setId(id);
} else {
System.out.println("You key num is erro ");
}
}

public static Student selectByName(Student student) {
System.out.println("根据姓名:"+student.getName()+"查询");
List<Student> database = Database();
for(Student stu:database){
if(stu.getName().equals(student.getName())){
return stu;
}
}
return null;
}

public static Student selectById(Student student) {
System.out.println("根据学号:"+student.getId()+"查询");
List<Student> database = Database();
for(Student stu:database){
if(stu.getId().equals(student.getId())){
return stu;
}
}
return null;
}

/**
 * 返回list型对象,等于把数据封装好了
 */
public static List<Student> Database() { // 学生数据库
// 以数组的形式存储,如[Name,Id,Score]
String[][] str = { { "张三", "001", "90" }, { "李四", "002", "65" },
{ "王五", "003", "85" } };
System.out.println("数据库如下:");
for (int i = 0; i <= 2; i++) {
System.out.println("姓名:" + str[i][0] + ",编号:" + str[i][1]+ ",分数:" + str[i][2]);
}
List<Student> list=new ArrayList<>();
for(int i=0;i<str.length;i++){
Student student=new Student();
for(int j=0;j<str[i].length;j++){
student.setName(str[i][0]);
student.setId(str[i][1]);
student.setScore(Integer.parseInt(str[i][2]));
}
list.add(student);
}
return list;
}

}

class Student {
private String id;
private String name;
private int score;

public Student() {

}



public String getId() {
return id;
}



public void setId(String id) {
this.id = id;
}



public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getScore() {
return score;
}

public void setScore(int score) {
this.score = score;
}

@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", score=" + score
+ "]";
}

}

谢谢,我看看
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,