package classTest;

import java.util.Scanner;

public class scoreArrangement {
 /**
  * 选择界面(main)
  */
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  String[] name = new String[2];
  String[] password = new String[2];
  int i = 0;// main函数和register函数里面,数组的下标
  while (true) {
   System.out.println("选择菜单");
   System.out.print("A、注册      B、登陆      C、退出");
   String choice = sc.next();
   switch (choice) {
   case "a":
   case "A":
    if (name[1] == null) {
     System.out.println(name[0] + "   " + password[0]);
     System.out.println(name[1] + "   " + password[1]);
     i = register(name, password, i);
     break;
    } else {
     System.out.println("已注册满!");
     break;
    }
   case "b":
   case "B":
    dengLu(name, password);
    break;
   case "c":
   case "C":
    System.out.println("退出成功");
    System.exit(-1);
    break;
   default:
    System.out.println("无效输入,重新选择!");
    break;
   }
  }
 }

/**
  * 注册
  */
 public static int register(String[] a, String[] b, int x) {
  Scanner sc = new Scanner(System.in);
  System.out.print("请输入用户名:");
  a[x] = sc.next();
  System.out.println("请输入密码:");
  b[x] = sc.next();
  System.out.println("注册成功,用户名为:" + a[x] + "     密码为:" + b[x]);
  x++;
  return x;
 }

/**
  * 登陆
  */
 public static void dengLu(String[] a, String[] b) {

Scanner sc = new Scanner(System.in);
  int times = 0;
  System.out.println(a[0] + "   " + b[0]);
  System.out.println(a[1] + "   " + b[1]);
  while (times < 3) {
   System.out.print("请输入用户名:");
   String name = sc.next();
   System.out.println("请输入密码:");
   String password = sc.next();
   for (int x = 0; x < 2; x++) {
    if (name.equals(a[x]) && password.equals(b[x])) {
     fenShuGuanLi();
     times = 3;
     break;
    } else {
     System.out.println("用户名或者密码不对,重新输入。");
     times++;
     if (times == 3) {
      System.out.println("3次输入错误,退出!");
      // System.exit(-1);如果需要停止运行,加上此行代码。
     }
     break;
    }
   }
  }
 }

/**
  * 分数管理
  */
 public static void fenShuGuanLi() {
  String[] name = new String[100];
  double[] score = new double[100];
  Scanner sc = new Scanner(System.in);
  int index = 1;
  int number = 0;// 学生姓名数组下标
  while (index == 1) {
   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("7、返回上级菜单。");
   int choice = sc.nextInt();
   switch (choice) {
   case 1:
    if(number==99){
     System.out.println("数据已满,不能继续录入。");
     break;
    }
    number = luRuFenShu(name, score, number);
    break;
   case 2:
    xiuGaiFenShu(name, score, number);
    break;
   case 3:
    shanChuFenShu(name,score,number);
    break;
   case 4:
    chaXunFenShu(name, score);
    break;
   case 5:
    chaXunAll(name,score,number);
    break;
   case 6:
    average(name,score,number);
    break;
   case 7:
    index = 0;
    break;
   default:
    System.out.println("无效选择,重新输入。");
    break;
   }
  }
 }

/**
  * 录入分数
  */
 public static int luRuFenShu(String[] name, double[] score, int number) {
  if (number > 99) {
   System.out.println("存储空间不足,不能录入!返回上级菜单。");
   return number;
  }
  // System.out.println("Welcome lurufenshu!");
  Scanner sc = new Scanner(System.in);
  int index = 0;
  while (index == 0) {
   System.out.println("请输入学生姓名:");
   String userName = sc.next();
   name[number] = userName;
   System.out.println("请输入学生分数:");
   double userScore = sc.nextDouble();
   score[number] = userScore;
   System.out.println("录入信息成功,是否继续录入?Y/N");
   int index1 = 0;
   while (index1 == 0) {
    String choice = sc.next();
    switch (choice) {
    case "y":
    case "Y":
     number++;
     index1 = 1;
     break;
    case "n":
    case "N":
     number++;
     return number;
    default:
     System.out.println("无效指令,请重新输入:");
     break;
    }
   }
  }
  return number;
 }

/**
  * 修改分数
  */
 public static void xiuGaiFenShu(String[] name, double[] score, int number) {
  System.out.println("请输入学生名字:");
  Scanner sc = new Scanner(System.in);
  if (name[0] != null) {
   String userName = sc.next();
   int i = 0;
   for (i = 0; i < number; i++) {
    if (name[i].equals(userName)) {
     System.out.println("请输入修改后的分数:");
     score[i] = sc.nextDouble();
     System.out.println("修改成功!  " + name[i] + "  " + score[i] + "分");
     break;
    }
   }
   if (i == number) {
    System.out.println("没有该学生信息!");
   }
  } else {
   System.out.println("数据库为空,请先录入数据!");
  }
 }

/**
  * 删除分数
  */
 public static int shanChuFenShu(String[]name,double[]score,int number) {
  Scanner sc=new Scanner(System.in);
  System.out.println("请输入要删除成绩的学生名字:");
  String userName=sc.next();
  for(int i=0;i<=number;i++){
   if(name[i].equals(userName)&&i==99){
    System.out.println("删除成功!");
    name[i]=null;
    score[i]=0;
   }else if(name[i].equals(userName)){
    System.out.println("删除成功!");
    name[i]=name[i+1];
    name[i+1]=null;
    score[i]=score[i+1];
    score[i]=0;
    number--;
   }
  }
  return number;
 }

/**
  * 查询单个分数
  */
 public static void chaXunFenShu(String[] name, double[] score) {
  System.out.println("请输入学生名字:");
  Scanner sc = new Scanner(System.in);
  String userName = sc.next();
  if (name[0] != null) {
   int i = 0;
   for (i = 0; i < name.length - 1; i++) {
    if (name[i].equals(userName)) {
     System.out.println("该学生的成绩是:" + score[i] + "分。");
     break;
    }
   }
   if (i == name.length - 1) {
    System.out.println("没有该学生信息!");
   }
  } else {
   System.out.println("数据库为空,请先录入成绩!");
  }
 }

/**
  * 查询全部分数
  */
 public static void chaXunAll(String[]name,double[]score,int number) {
  if (name[0] != null) {
   for(int i=0;i<number;i++){
    System.out.println(name[i]+"、"+score[i]+"分.");
    }
  } else {
   System.out.println("数据库为空,请先录入成绩!");
  } 
 }

/**
  * 求平均分
  */
 public static void average(String[]name,double[]score,int number) {
  double averageScore=0;
  double sum=0;
  for(int i=0;i<name.length-1;i++){
   sum+=score[i];
  }
  System.out.println("平均分为:"+sum/(number+1));
 }
}

初识Java-分数录入系统的更多相关文章

  1. 初识Java Java基础知识

    今天给大家带来的是初级Java基础部分的知识:包括初识Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!!!内容.步骤超详细,附有各种案例的源代码(可以直接 ...

  2. 初识Java

    Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以极强的安全性.平台无关性.硬件结构无关性.语言简洁.面向对象的特点,在网络编程语言中占据了无可比拟的优势 ...

  3. SSH 框架学习之初识Java中的Action、Dao、Service、Model-收藏

    SSH 框架学习之初识Java中的Action.Dao.Service.Model-----------------------------学到就要查,自己动手动脑!!!   基础知识目前不够,有感性 ...

  4. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  5. Personal Learning Path of Java——初识Java

    初识Java 在我个人看来,Java是一门高大上的面向编程语言,这也是Java吸引我的地方.在自学Java之前,我在学校大概学过了一些C语言的知识,在学校学的那点C语言纯属是拿来打基础用的,大概了解了 ...

  6. day01-day02 初识java、注释、变量、变量命名、基本数据类型

    1. 初识java 1) 什么是java java是一门高级的计算机编程语言 2) JDK的安装 2.1) 下载2.2) 安装2.3) 验证 3) 环境变量的配置 3.1) 打开环境变量3.2) 配置 ...

  7. Java入门——初识Java

    Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...

  8. java中获取系统属性以及环境变量

    java中获取系统属性以及环境变量 System.getEnv()和System.getProperties()的差别 从概念上讲,系统属性 和环境变量 都是名称与值之间的映射.两种机制都能用来将用户 ...

  9. 彻底明白Java的IO系统

    java学习:彻底明白Java的IO系统 文章来源:互联网 一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有 ...

随机推荐

  1. http post和put区别

    POST是用来提交数据的.提交的数据放在HTTP请求的正文里,目的在于提交数据并用于服务器端的存储,而不允许用户过多的更改相应数据(主要是相对于在url 修改要麻烦很多).PUT操作是幂等的.所谓幂等 ...

  2. codeblocks个性化配置

    1.general setting设置默认字体大小设置控制台字体大小:"Settings -> Environment -> View -> Message logs' f ...

  3. React Native 一个组件styles BUG

    'use strict'; var React = require('react-native'); var { StyleSheet, PanResponder, View, Text } = Re ...

  4. 【转帖】Python在大数据分析及机器学习中的兵器谱

    Flask:Python系的轻量级Web框架. 1. 网页爬虫工具集 Scrapy 推荐大牛pluskid早年的一篇文章:<Scrapy 轻松定制网络爬虫> Beautiful Soup ...

  5. 【转】Tomcat的默认访问路径

    放在外网的应用,用户多是直接输入域名访问,相信没有哪个后面还加个尾巴,而Tomcat的默认目录是ROOT,所以我们需要更改其默认目录. 更改Tomcat的默认目录很简单,只需要修改server.xml ...

  6. JS中的属性和变量的区别

    在很多文章中都说变量其实就是属性,但是它们之间有一定的区别,例如: 在全局作用域下, var a = "hello"; b = "hello"; 从字面上看,它 ...

  7. iOS thirdKeyboard Develop (APP Extension)

    如果需要开发第三方键盘 首先得了解一下苹果官方文档  https://developer.apple.com/library/ios/documentation/General/Conceptual/ ...

  8. Android:Layout_weight的深刻理解

    最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出 ...

  9. Python Beautiful Soup学习之HTML标签补全功能

    Beautiful Soup是一个非常流行的Python模块.该模块可以解析网页,并提供定位内容的便捷接口. 使用下面两个命令安装: pip install beautifulsoup4 或者 sud ...

  10. Ionic2 rc2 Events 跨界面调用的使用方法及问题解决

    Events:事件注册  在任意一界面注册事件之后可在任意界面根据事件名称进行调用. 首先看一下官方文档的调用方式 import { Events } from 'ionic-angular'; co ...