java基础:学生管理系统
package com.lovo.manager;
import java.util.Scanner;
/**
* 学生管理
*
* @author 向往的生活
*
*/
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基础:学生管理系统的更多相关文章
- java构建学生管理系统(一)
用java搭建学生管理系统,重要还是对数据库的操作,诸如增删改查等. 1.基本的功能: 老师完成对学生信息的查看和修改,完成对班级的信息的概览. 学生可以看自己的成绩和对自己信息的修改. 学生和老师有 ...
- Java 简化版学生管理系统(IO版)
Student management system 学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...
- Java+Mysql+学生管理系统
最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具 ...
- Java 小型学生管理系统心得
这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...
- Java开发学生管理系统
Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://downlo ...
- Java写学生管理系统
package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<s ...
- Java案例——学生管理系统
简单完整的学生管理系统 学生类 public class Student { private String id; private String age; private String name; p ...
- java集合学生管理系统
//student.java package com.sran.www; import java.util.Arrays; import java.util.Scanner; public class ...
- 学生管理系统——数据库、java基础
1.项目分层 view层:视图层 controller层:控制层 service层:业务层 dao层:数据库访问层 domain:实体包 tools:工具类 2.jar包 3.配置文件 4.程序设计 ...
- Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案
1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...
随机推荐
- sqlloader外部表
一创建目录 先在系统下创建 $ cd /home/oracle $ mkdir dir $ cd dir $ pwd 再在sqlplus里创建,让oracle知道这个目录 SQL> create ...
- ImageView及其子类(二)
实例:强大的图片按钮 下面的实例定义了多个图片按钮,并定义了两个ZoomButton.两个ZoomButton的android:src属性分别指定为@android:drawable/btn_minu ...
- python访问sqlserver
#coding=utf-8 #!/usr/bin/env python#---------------------------------------------------------------- ...
- js动画(四)
终于到了最后了,这里要告一段落了,整了个js运动框架,咳咳咳,好冷 啊啊啊啊啊啊,这天气.妈的,工资怎么也不发,啊,说好的 人与人之间的信任呢?哎,气诶,不到150字啊,又是这个梗..怎么办?说些什么 ...
- CodeForces 446B
DZY Loves Modification time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- 正则表达式之一:TSQL注释的查找
最近自己做了个小项目,涉及到了大量的正则表达式匹配和处理,在这里也和大家分享一下. 我相信接触过SQL Server数据库的很多朋友都知道,它是以"--"开头来进行注释的,但你觉得 ...
- java线程之多个生产者消费者2.0
上一节中,通过while和notifyAll解决了多个生产者,消费者对共享资源的访问问题,现在开始升级 但是,仍然有改进之处,主要体现在两点: 1)使用新版本1.5开始后的锁Lock解决,目的将其全部 ...
- Android jni 编程2(对基本类型一维整型数组的操作)
参考教程和这位博主的对一维数组的处理,主要包括以下三种类型: //传入一维数组,无返回值 public native void arrayEncode(int[] arr); //传一个一维数组和数组 ...
- 读书笔记 effective c++ Item 14 对资源管理类的拷贝行为要谨慎
1. 自己实现一个资源管理类 Item 13中介绍了 “资源获取之时也是初始化之时(RAII)”的概念,这个概念被当作资源管理类的“脊柱“,也描述了auto_ptr和tr1::shared_ptr是如 ...
- Linux系统(一)文件系统、压缩、打包操作总结
序言 当前的形势,.Net已经开源,.Net Core 正在跨平台,可见微软巨人在努力,在改变,在进步,在走向春天.从前被微软供作上帝的.Net从业者,如果不打开心扉面向开源,改变自己,那么很可能在不 ...