刚刚做的学生管理系统姓名查询环节只能查到第一个姓名,剩下的都查不到

问题描述

刚刚做的学生管理系统姓名查询环节只能查到第一个姓名,剩下的都查不到

import java.util.Scanner;

public class Score {
public static void main(String[] args) {
// 保存学生姓名
String [] names = new String [5];
// 保存成绩
double[] scores = new double[names.length];
// 导航
System.out.println("");
System.out.println("*****欢迎进入学生信息管理系统*****");
System.out.println("");
System.out.println(" *****1、 姓名录入 *****");
System.out.println(" *****2、 成绩录入 *****");
System.out.println(" *****3、 查询所有 *****");
System.out.println(" *****4、 按名字查询 *****");
System.out.println(" *****5、 修改成绩 *****");
System.out.println(" *****6、删除学生信息*****");
System.out.println(" *****0、 退出 *****");
System.out.println("");
System.out.println("请输入您要选择的模块序号:");
// 用户选择
Scanner mySc = new Scanner(System.in);
int xuanze = mySc.nextInt();
while (xuanze > 0) {
switch (xuanze) {
// 姓名录入
case 1:
System.out.println("欢迎进入姓名录入系统");
for (int i = 0 ; i < names.length ; i ++) {
System.out.println("请录入第" + (i + 1) + "个学生的姓名:");
names[i] = mySc.next();
}
System.out.println("姓名录入成功!");
break;
// 成绩录入
case 2:
System.out.println("欢迎进入成绩录入系统");
for (int i = 0; i < names.length; i++) {
System.out.println("学生姓名:" + names[i]);
System.out.println("请录入该同学的成绩:");
scores[i] = mySc.nextDouble();
}
System.out.println("成绩录入成功!");
break;
// 查询所有
case 3:
double sum = 0;
for (int i = 0; i < names.length; i++) {
sum = sum + scores[i];
}
System.out.println("本班共有" + names.length + "名学生,平均成绩为:" + sum
/ names.length + "分"); // 求平均成绩
for (int j = 0; j < names.length; j++) {
System.out.println(names[j] + ":" + scores[j]);
}
break;
// 按名字查询
case 4:
boolean flag = true;
while (flag == true) {
System.out.println("请输入学生姓名:");
String name = mySc.next();
for (int i = 0; i < names.length; i++) {
if (name.equals(names[i])) {
System.out.println(name + "的成绩是:" + scores[i]+ "分。");
break;
} else {
System.out.println("您想查询的名字不在查找范围内,请核对后再输入!");
flag = true;
break;
}
}
System.out.println("是否继续查询(按 “ Y ” 继续,其余任意键退出)?"); // 一次查询结束,判断是否继续这一环节
String panduan = mySc.next();
if (panduan.equals("y") || panduan.equals("Y")) { // 继续这一环节
flag = true;
} else { // 按任意键退出这一环节
System.out.println("您已退出姓名查询环节!");
break;
}
// else {
// System.out.println("输入有误,请重新输入!");
//
// }
}
break;
// 修改成绩
case 5:
System.out.println("请输入学生姓名:");
String name1 = mySc.next();
for (int i = 0; i < names.length; i++) {
System.out.println("请录入新成绩:");
scores[i] = mySc.nextDouble();
break;
}
System.out.println("成绩修改成功!");
break;
// 删除学生信息
case 6:
System.out.println("请输入将要删除的学生姓名:");
String name2 = mySc.next();
System.out.println("确认删除该学生(Y / N)?");
String xuanze1 = mySc.next();
if (xuanze1.equals("y") || xuanze1.equals("Y")) { // 再次提醒用户,防止误删
for (int i = 0; i < names.length; i++) {
names[i] = names[i + names.length - 1]; // 将要删除的姓名放到数组最后面
scores[i] = scores[i + names.length - 1]; // 将要删除的分数放到数组最后面
names[i + names.length - 1] = " "; // 名字清空
scores[i + names.length - 1] = 0; // 分数清空为0
break;
}
System.out.println("删除成功!");
break;
} else if (xuanze1.equals("n") || xuanze1.equals("N")) { // 取消删除
break;
} else {
System.out.println("输入有误,请重新输入!");
break;
}
default:
System.out.println("输入有误,请重新输入:");
break;
}
System.out.println("");
System.out.println("*****欢迎进入学生信息管理系统*****");
System.out.println("");
System.out.println(" *****1、 姓名录入 *****");
System.out.println(" *****2、 成绩录入 *****");
System.out.println(" *****3、 查询所有 *****");
System.out.println(" *****4、 按名字查询 *****");
System.out.println(" *****5、 修改成绩 *****");
System.out.println(" *****6、删除学生信息*****");
System.out.println(" *****0、 退出 *****");
System.out.println("");
System.out.println("请输入您要选择的模块序号:");
// 用户选择
xuanze = mySc.nextInt();
}
System.out.println("程序退出!"); // 退出
}
}

解决方案

在你的case 4,那个for循环里有逻辑错误,
if (name.equals(names[i])) {
System.out.println(name + "的成绩是:" + scores[i] + "分。");
break;
} else {
System.out.println("您想查询的名字不在查找范围内,请核对后再输入!");
flag = true;
break;
}
你的if判断是如果第一个name不等于输入的,就走else了,这肯定是不对的。你应该把循环走完才能下判断。改成下面的

解决方案二:

帮你看了一下没看出什么问题,你打个断点name那,看看name里面是什么值。另外你的代码写得真乱,添好缩进,在这里贴代码的时候建议放到

 这里

方便别人阅读你的代码

时间: 2024-08-03 18:57:07

刚刚做的学生管理系统姓名查询环节只能查到第一个姓名,剩下的都查不到的相关文章

c#编程 数据库-做的学生管理系统 怎么把我查询的表 已excel导出

问题描述 做的学生管理系统 怎么把我查询的表 已excel导出 数据库用的 sql server 电脑上装的wps 应该怎么操作?? 有例子就好了 解决方案 用npoi生成excel,不管电脑上有没有excel还是wps都可以.例子参考:http://www.cnblogs.com/zhuawang/archive/2012/12/12/2815367.html 解决方案二: Sql server不是有导入导出数据的工具么 解决方案三: http://blog.csdn.net/lucky512

delphi做学生管理系统总结

在用刚刚学的delphi来做学生管理系统会遇到很多问题,这写问题或许是共性的,希望对大家有帮助 工程文件 界面 一.登录界面 二.主功能界面 用户管 理

sqlserver2008-jsp, sqlserverl2008做一个学生信息管理系统

问题描述 jsp, sqlserverl2008做一个学生信息管理系统 遇到的问题大致是这样,我想用数据库中的表来存储成绩表,但是每个年级有不同的班,每个班有不同的课程,所以存储学生成绩时,需要存到不同的表中,所以一个学院就得建大量的表,通过jsp对数据库中的成绩数据进行修改时,不同的表的提交页面不一样,所以对应就有很多提交的页面,这个不是重点,页面多,可以慢慢写,表多,可以慢慢建,但是下一学年,学生的成绩信息不能直接录入,得先新建表,还得修改一堆修改信息提交的页面,后台维护就需要花很多时间,导

请教怎样做学生上课统计查询

问题描述 class学生{publicintId{get;set;}publicstring姓名{get;set;}}class上课记录{publicintId{get;set;}publicint学生Id{get;set;}publicstring课程{get;set;}publicDateTime上课时间{get;set;}}学生数据:Id姓名1张三2李四上课记录数据:Id学生Id课程上课时间11语文2014-11-2021数学2014-11-2132数学2014-11-21要求得出最终结果

谁有c#+sql做的学生信息管理系统的论文啊

问题描述 谁有c#+sql做的学生信息管理系统的论文啊,要1万字,最好带源码,急!有的发我邮箱dennis_kang@163.com!万分感谢!多谢大家了,很急! 解决方案 解决方案二:最好还是自己做吧,纯粹个人意见.Thanks解决方案三:不会啊,现在急用了,也不叫你们做个给我,谁有现成的就发给我吧解决方案四:毕业设计要自己弄解决方案五:你分数也要加个100吧,人家看了进来才有动力啊解决方案六:不会就再学一年,学会了再弄知道csdn也算厉害的了

c++-C++学生管理系统交不了差我就死定了,大叔大婶行行好

问题描述 C++学生管理系统交不了差我就死定了,大叔大婶行行好 送人玫瑰手有余香,救人一命胜造七级浮屠,C++学生管理系统交不了差我就死定了,大叔大婶行行好 解决方案 http://wenku.baidu.com/link?url=SXkEsiMcpfqhM3IdT5ZZ97aNTmwfO_74dvJoNSWoCp2FIyudzpd1uBSgh2ccFJS6fvJROIDaVTEAkHkOJBY1a7LNDw6amoiRs_CUd_YjNi3 解决方案二: 我也在做这个>__< 解决方案三:

新手 c++学生管理系统 不知道怎么改错

问题描述 新手 c++学生管理系统 不知道怎么改错 #include "iostream" #include "string" #include "fstream" #include "conio.h" using namespace std; // *******建立学生信息的类 class Student { public: Student *Head,*p; Student *Next,*end; char name[2

数据结构 单链表-用链表做一个成绩管理系统,记录写在student.txt中,有些问题。望回答。

问题描述 用链表做一个成绩管理系统,记录写在student.txt中,有些问题.望回答. #include ""stdio.h""#include ""io.h""#include ""malloc.h""#define MAXSIZE 100#define LEN 5typedef char DataType;typedef struct student{ DataType num[L

java-怎么用Java做一个成绩管理系统?

问题描述 怎么用Java做一个成绩管理系统? Java实验课要做关于学生成绩管理系统的程序 之前学的比较浅 不知道从哪入手 希望大家能提供一些思路 题目如下: 数据库管理系统是一种常见的数据管理软件,数据库是按一定模式存储相关数据的集合.现将学生的成绩存储在education_management.mdb数据库的score表中,请编写一个数据库程序,实现录入学生成绩.自动计算成绩和学分.查询学生成绩的功能.score表中数据如下: 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综