代码如下:
package com.lovo.manager; import java.util.Scanner; /**
* 学生管理
*
* @author Administrator
*
*/
public class StudentManager { public static void main(String[] args) {
String[] user = new String[10];
int[] password = new int[10];
while (true) {
// 菜单
System.out.println("A 注册");
System.out.println("B 登录");
System.out.println("C 退出"); System.out.println("请选择菜单:");
Scanner scan = new Scanner(System.in);
String operator = scan.nextLine();
operator = operator.toUpperCase();// 大小写互转
// "SFCDS" 转换为一个一个的'S','F','C','D','S'
char[] chr = operator.toCharArray();// 把字符串(String)转化为char数组 switch (chr[0]) {
case 'A':
register(user, password);
break;
case 'B':
login(user, password);
break;
case 'C':
System.out.println("退出系统!");
System.exit(-1);
break;
default:
System.out.println("操作错误,请从新输入!");
break;
}
}
} /**
* 登录
*/
public static void login(String[] user, int[] password) { System.out.println("输入用户名:");
Scanner input = new Scanner(System.in);
String userName = input.nextLine(); System.out.println("输入密码:");
int pwd = input.nextInt(); int index = -1;
for (int i = 0; i < user.length; i++) {
if (userName.equals(user[i]) && pwd == password[i]) {// 如果用户名与密码匹配
System.out.println("登录成功!");
studentMenu(userName);
index = i;
break;
}
}
if (index == -1) {// 如果没有找到下标,则登录失败
System.out.println("登录失败!");
return;
}
} /**
* 注册
*/
public static void register(String[] user, int[] password) { System.out.println("请输入用户名");
Scanner scan = new Scanner(System.in);
String userName = scan.nextLine(); System.out.println("请输入密码");
int pwd = scan.nextInt();
// 字符串中默认的数据是null,循环检查,一旦遇到null,
// 就输入用户名和密码,把值赋值进去。
for (int i = 0; i < user.length; i++) {
if (user[i] == null) {
user[i] = userName;
password[i] = pwd;
break;
}
}
} /**
* 学生菜单
*/
public static void studentMenu(String user) {
// 学生姓名与分数
String[] studentName = new String[2];
int[] score = new int[2];
boolean flag = false;
while (true) { System.out.println("***欢迎您" + user + "***"); System.out.println("A 新增学生成绩");
System.out.println("B 修改学生成绩");
System.out.println("C 删除学生成绩");
System.out.println("D 查询学生成绩");
System.out.println("E 返回上级菜单"); System.out.println("请选择菜单:");
Scanner input = new Scanner(System.in);
String operator = input.nextLine(); operator = operator.toUpperCase();
char op = operator.toCharArray()[0]; switch (op) {
case 'A':
addInfo(studentName, score);
break;
case 'B':
updateInfo(studentName, score);
break;
case 'C':
deleteInfo(studentName, score);
break;
case 'D':
queryInfo(studentName, score);
break;
case 'E':
flag = true;
break;// 退出这个switch,如果在while中不多增加一个break,则会继续循环不会返回上一级菜单
default:
System.out.println("操作错误,请从新输入!");
break;
}
if (flag) {
break;// 退出这个while,就返回到了登陆菜单
}
}
} /**
* 新增学生信息
*
* @param studentName
* @param score
*/
public static void addInfo(String[] studentName, int[] score) { for (int i = 0; i < studentName.length; i++) {
System.out.println("请输入学生姓名:");
Scanner scan = new Scanner(System.in);
String stName = scan.nextLine();
studentName[i] = stName; System.out.println("请输入学生成绩:");
int scr = scan.nextInt(); score[i] = scr;
}
} /**
* 修改学生姓名
*/
public static void updateInfo(String[] studentName, int[] score) {
System.out.println("请输入学生姓名:");
Scanner scan = new Scanner(System.in);
String stName = scan.nextLine();
// 通过名字修改分数
int index = -1;
for (int i = 0; i < score.length; i++) {// 通过遍历,输入的数与数组中的数据元素比较
if (stName.equals(studentName[i])) {// 如果找到这个学生姓名,就记录下标
index = i;
}
}
// 输入一个分数
System.out.println("请输入学生成绩:");
int scr = scan.nextInt(); score[index] = scr;// 把输入的成绩赋值给,index记录找到的这个 下标
} /**
* 删除员工数据
*/
public static void deleteInfo(String[] studentName, int[] score) {
// 删除人名、删除分数
System.out.println("请输入学生姓名:");
Scanner scan = new Scanner(System.in);
String stName = scan.nextLine();
boolean flag = false;
for (int i = 0; i < studentName.length; i++) { if (studentName.length - 1 == i) { // 当前下标是最后一个的话,就退出循环
studentName[i] = null;
score[i] = 0;
break;
}
if (stName.equals(studentName[i]) || flag) { // 如果发现这个名字,就用当前数组元素的下一个元素,向前移动替换当前这个元素
flag = true;
studentName[i] = studentName[i + 1];
score[i] = score[i + 1];
}
}
for (int i = 0; i < studentName.length; i++) {
System.out.println("学生姓名=" + studentName[i] + ",成绩=" + score[i]);
}
} /**
* 查询学生信息
*/
public static void queryInfo(String[] studentName, int[] score) {
boolean flag = false;
while (true) { System.out.println("A 查询单个学生信息");
System.out.println("B 查询所有学生信息");
System.out.println("C 返回上级菜单"); System.out.println("请选择菜单:");
Scanner scan = new Scanner(System.in);
String operator = scan.nextLine();
operator = operator.toUpperCase();// 大小写互转 char chr = operator.toCharArray()[0];
switch (chr) {
case 'A':
querySinglStudentInfo(studentName, score);
break;
case 'B':
queryAllStudentInfo(studentName, score);
break;
case 'C':
flag = true;
break;
default:
System.out.println("操作错误,请从新输入!");
break;
}
if(flag) {
break;
}
} } /**
* 查询单个学生信息
*/
public static void querySinglStudentInfo(String[] studentName, int[] score) {
System.out.println("请输入学生姓名:");
Scanner scan = new Scanner(System.in);
String stName = scan.nextLine(); for (int i = 0; i < studentName.length; i++) {
if (stName.equals(studentName[i])) {
System.out.println("学生:" + studentName[i] + ",成绩:" + score[i]);
break;
}
}
} /**
* 查询所有学生信息
*/
public static void queryAllStudentInfo(String[] studentName, int[] score) {
for (int i = 0; i < studentName.length; i++) {
System.out.println("学生:" + studentName[i] + ",成绩:" + score[i]);
}
}
}

JAVA 语法基础综合练习——学生成绩管理系统的更多相关文章

  1. Java项目:学生成绩管理系统(二)

    学生成绩管理系统(二):项目介绍 一.设计要求: 1.1 简单的图形界面登录功能. 1.2 对数据库的的信息的查询功能. 1.3 对数据库的的信息的修改功能. 1.4 对数据库的的信息的删除功能. 1 ...

  2. 学生成绩管理系统 1.0(Java+MySql)

    真难…… 数据库建立不会,中文编码不会,插入数据不会,删除不会…… Java读入数据不会……数据库连接不会…… 你也好意思说自己是学计算机的啊魂淡…… 我会慢慢写2.0,3.0版的……噗…… src/ ...

  3. 使用Java模拟一个简单的Dos学生成绩管理系统:

    使用Java模拟学生成绩管理系统... ------------------- 学生成绩管理系统:需要实现的功能:1.录入学生的姓名和成绩2.显示列表.列表中包括学生姓名与成绩3.显示最高分.最低分的 ...

  4. Java课程设计—学生成绩管理系统(201521123005 杨雪莹)

    一.团队课程设计博客链接 学生成绩管理系统 二.个人负责模块或任务说明 学生成绩录入 显示所有学生信息 显示各科平均成绩 显示学生成绩(按降序排序) 三.自己的代码提交记录截图 四.自己负责模块或任务 ...

  5. Java课程设计——学生成绩管理系统(201521123003 董美凤)

    Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...

  6. Java开学测试-学生成绩管理系统

    题目: 1.定义 ScoreInformation 类,其中包括七个私有变量(stunumber, name, mathematicsscore, englishiscore,networkscore ...

  7. java简单学生成绩管理系统

    题目要求: 一. 数据结构要求:(5 分) 1.定义 ScoreInformation 类,其中包括七个私有变量(stunumber, name, mathematicsscore, englishi ...

  8. java学生成绩管理系统

                                                       信1805-1 20183590 田庆辉             石家庄铁道大学 2019 年秋季 ...

  9. 学生成绩管理系统-JAVA语言测试

     首先右键新建一个工程project 选择Java Project,单击next下一步 project命名为“学生成绩管理系统”,点击finish继续 右键src文件夹新建Package包,取名为te ...

随机推荐

  1. wordpress目录文件结构说明

    wordpress目录文件结构说明   wordpress目录文件结构说明. WordPress文件夹内,你会发现大量的代码文件和3个文件夹wp-admin wp-content wp-include ...

  2. 创建用资源管理器打开FTP位置

    FTP快捷方式默认用浏览器打开,而不是用资源管理器打开,管理文件不习惯. 解决方法1:创建桌面快捷方式 新建快捷方式,键入对象位置 %windir%\explorer.exe "ftp:// ...

  3. Android 三级联动选择城市+后台服务加载数据库

    技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...

  4. AutoCAD安装失败

    问题一: Installing .NET Framework Runtime 4.0: D:\安装包\CAD\cad2012(x64)\Map3D2012(x64)\3rdParty\NET\4\wc ...

  5. Maven学习链接

    别人的资料很多且写的很详细,我这里先收藏,等学习到一定阶段且有时间再整理自己的积累. 1.eclipse安装maven插件方法: http://blog.csdn.net/kittyboy0001/a ...

  6. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  7. 矩阵k次幂 采用三重循环

    #include<iostream> using namespace std; int main() { int n,k; ][],b[][],c[][]; while(cin>&g ...

  8. Windows Store App JavaScript 开发:WinJS库控件

    在介绍了如何使用标准的HTML控件以及WinJS库中提供的新控件之后,下面来着重介绍WinJS库中几种常用的控件. (1)ListView控件 在开发Windows应用商店应用时可以使用ListVie ...

  9. js 判断IE浏览器,包含IE6/7/8/9

    //判断IE6-9的版本,num可取值为6/7/8/9//若不给参数num,仅判断浏览器是否为IE,不判断版本 var isIE = function (num) { if(arguments.len ...

  10. java向Excel文件写入数据

    /*使用之前要记得导入第三的jar包这个是我之前使用的时候那别人的东西自己修改了一下 还没来得及好好地封装一下还望见谅,注释我感觉写的挺清楚的就在不进行解释代码了*/package com.zzp.E ...