A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.bjsxt.test01;


import java.util.Random;
import java.util.Scanner;


public class test {
static int sign = 0;//标记
static int sign2 = 0;//索引标记
static student[] arrays = new student[10];//存放数组
static int[] suoyin = new int[arrays.length];//存放找到的索引
static Scanner s = new Scanner(System.in);//获取键盘输入
public static void main(String[] args) {
for(int i = 0; i <= arrays.length/2; i++){
arrays[i] = new student(i+1,"路人甲"+i,18+new Random().nextInt(2));
}
while(true){
play();
}
}

static void print(){//打印提示
System.out.println("请输入数字选择:");
System.out.println("1.增加一个学生信息");
System.out.println("2.删除一个学生信息");
System.out.println("3.查找一个学生信息");
System.out.println("4.打印当前学生信息");
}

static void play(){//多分支选择
int a;
do{
print();
a = s.nextInt();
if(!(a == 1 || a == 2 || a == 3 || a == 4))
System.out.println("输入有误,请重新输入");
}while(!(a == 1 || a == 2 || a == 3 || a == 4));
switch(a){
case 1:
if(sign < arrays.length)
add();
else
System.out.println("数组已越界,不能进行添加操作");
break;
case 2:
if(sign > 0)
delete();
else
System.out.println("学生信息为空,不能进行删除操作");
break;
case 3:search();
break;
case 4:printStudent(arrays);
break;
}
}

static void printStudent(student[] stu){//打印学生信息
System.out.println("***************************");
for(int i = 0; i < sign; i++){
if(stu[i].getId() != 0)
System.out.println(stu[i].getId()+"\t"+stu[i].getName()+
"\t"+stu[i].getAge());
}
System.out.println("***************************");
}

static void add(){//添加学生信息
int a1;
do{//保持id唯一性
System.out.print("请输入学号");
a1 = s.nextInt();
if(idForDelete(a1) != -1)
System.out.println("学号与已有学号重合,请重新输入");
}while(!(idForDelete(a1)== -1));
System.out.print("请输入姓名");
String b1 = s.next();
System.out.print("请输入年龄");
int c1 = s.nextInt();
arrays[sign] = new student(a1,b1,c1);
printStudent(arrays);
if(sign < arrays.length){//保证数组不越界
System.out.println("继续添加请输入1\t返回主菜单请输入任意数字");
int d1 = s.nextInt();
if(d1 == 1)
add();
}
}

static void delete(){//删除学生信息
System.out.println("请输入你要删除的学生id:");
int a2 = s.nextInt();
int b2 = idForDelete(a2);
if(b2 == -1)
System.out.println("你要删除的id不存在");
else {
for(int i = b2; i < sign-1; i++)
arrays[i] = arrays[i+1];
sign --;
}
System.out.println(sign);
printStudent(arrays);
if(sign > 0){//保证数组不越界
System.out.println("继续删除请输入1\t返回主菜单请输入任意数字");
int c2 = s.nextInt();
if(c2 == 1)
delete();
}
}

static int idForDelete(int a4){//输入id返回数组下标
int index = -1;
for(int i = 0; i < sign; i++)
if(arrays[i].getId() == a4)
index = i;
return index;
}

static void search(){
int a3 = 0;
for(int i = 0; i < arrays.length; i++)
suoyin[i] = 0;
sign2 = 0;
do{
System.out.println("请输入你要查找的类型");
System.out.println("1.学号");
System.out.println("2.姓名");
System.out.println("3.年龄");
a3 = s.nextInt();
}while(!(a3 == 1 || a3 == 2 || a3 == 3));
System.out.println("请输入你要查找的信息");
int b3;
String c3;
switch(a3){
case 1:
b3 = s.nextInt();
for(int i = 0; i < sign; i++){
if(arrays[i].getId() == b3){
suoyin[sign2] = i;
sign2 ++;
}
}
break;
case 2:
c3 = s.next();
for(int i = 0; i < sign; i++){
if(arrays[i].getName().equals(c3)){
suoyin[sign2] = i;
sign2 ++;
}
}
break;
case 3:
b3 = s.nextInt();
for(int i = 0; i < sign; i++){
if(arrays[i].getAge() == b3){
suoyin[sign2] = i;
sign2 ++;
}
}
break;
}
printForSearch();
System.out.println("继续查找请输入1\t返回主菜单请输入任意数字");
int d3 = s.nextInt();
if(d3 == 1)
search();
}

static void printForSearch(){//打印出查找到信息
if(sign2 == 0)
System.out.println("没有找到相关信息");
for(int i = 0; i < sign2; i++){
System.out.println(arrays[suoyin[i]].getId()+"\t"+arrays[suoyin[i]].getName()
+"\t"+arrays[suoyin[i]].getAge());
}
}
}


class student{//学生类
private int id;//学号
private String name;//名字
private int age;//年龄

public student(){
test.sign ++;
}


public student(int id, String name, int age) {//带参构造
super();
test.sign ++;
this.id = id;
this.name = name;
this.age = age;
}

public int getId() {//seter and geter
return id;
}


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


public String getName() {
return name;
}


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


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}
}

8 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
很不错!
回复 使用道具 举报
代码这么长啊!!!!
回复 使用道具 举报
看到我眼都花了·~~~
回复 使用道具 举报
我也眼花了。。。
回复 使用道具 举报
眼晕了,
回复 使用道具 举报
过两天你再来看看,你看你还记得不,反正我是忘记了,加油哟
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马