学习日志 Day 12
//2020年3月30日21:05:55 磊子
Java Day 11
学生管理系统
package com.itheima;
/*
* 学生类
*/
public class Student {
private String id;
private String name;
private String age;
private String address;
public Student() {}
public Student(String id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
主类
package com.itheima;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManagerTest {
public static void main(String[] args) {
//创建集合对象,存储学生数据
ArrayList<Student> array = new ArrayList<Student>();
//学生系统管理页面
while(true) {
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("请输入你的选择:");
Scanner sc = new Scanner(System.in);
String choiceString = sc.nextLine();
switch(choiceString) {
case "1":
//1 查看所有学生
findAllStudent(array);
break;
case "2":
//2 添加学生
addStudent(array);
break;
case "3":
//3 删除学生
deleteStudent(array);
break;
case "4":
//4 修改学生
updateStudet(array);
break;
case "5":
//5 退出
default:
System.out.println("谢谢你的使用!");
System.exit(0);
break;
}
}
}
//1 查看所有学生
public static void findAllStudent(ArrayList<Student> array) {
//判断集合中是否有数据
if(array.size()==0) {
System.out.println("不好意思,目前没有学生信息可供查询,请重新选择操作");
return;
}
System.out.println("学号\t\t姓名\t年龄\t居住地");
for(int i=0; i<array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
}
}
//2 添加学生
public static void addStudent(ArrayList<Student> array) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
String id;
while(true) {
System.out.println("请输入学生学号:");
id = sc.nextLine();
//判断学号是否重复
//定义标记
boolean flag = false;
for(int i=0; i<array.size(); i++) {
Student s = array.get(i);
if(s.getId().equals(id)) {
flag = true;//被占用
break;
}
}
if(flag) {
System.out.println("你输入的学号已经被占用,请重新输入");
}else {
break;//结束循环
}
}
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
System.out.println("请输入学生地址:");
String address = sc.nextLine();
//创建学生对象
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//把学生对象添加到集合
array.add(s);
//给出提示
System.out.println("添加成功");
}
//3 删除学生
public static void deleteStudent(ArrayList<Student> array) {
int index = -1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除学生的学号:");
String id = sc.nextLine();
for(int i=0; i<array.size(); i++) {
Student s = array.get(i);
if(s.getId().equals(id)) {
index = i;
break;
}
}
if(index == -1) {
System.out.println("不好意思,你要删除的学号对应的学生信息不存在,请重新选择");
}else {
array.remove(index);
//给出提示
System.out.println("删除学生成功");
}
}
//4 修改学生
public static void updateStudet(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改学生的学号:");
String id = sc.nextLine();
int index = -1;
for(int i=0; i<array.size(); i++) {
Student s = array.get(i);
if(s.getId().equals(id)) {
index = i;
break;
}
}
if(index == -1) {
System.out.println("不好意思,你要修改的学号对应的学生信息不存在,请重新选择");
}else {
System.out.println("请输入学生新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生新地址:");
String address = sc.nextLine();
//创建学生对象
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//修改集合中的学生对象
array.set(index, s);
System.out.println("修改成功");
}
}
}
分析以下需求,并用代码实现
1.定义如下方法public static String getPropertyGetMethodName(String property)
功能描述:
(1)该方法的参数表示用户给定的成员变量的名字,返回值为成员变量对应的get方法的名字
(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"
package com.itheima_3;
import java.util.Scanner;
/*
* 分析以下需求,并用代码实现
1.定义如下方法public static String getPropertyGetMethodName(String property)
功能描述:
(1)该方法的参数表示用户给定的成员变量的名字,返回值为成员变量对应的get方法的名字
(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"
//"get"+property.subString(0,1).toUpperCase()+property.subString(1);
2.定义如下方法public static String getPropertySetMethodName(String property)
功能描述:
(1)该方法的参数表示用户给定的成员变量的名字,返回值为成员变量对应的set方法的名字
(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"setName"
*/
public class day8Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
String s1 = getPropertyGetMethodName(s);
System.out.println(s1);
}
public static String getPropertyGetMethodName(String property) {
String s1 = "get"+property.substring(0, 1).toUpperCase();
s1 +=property.substring(1, property.length());
//String s2 = "get"+property.substring(0, 1).toUpperCase()+property.substring(1);
return s1;
}
}
分析以下需求,并用代码实现
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字符串:javajava I love java I like jajavava I enjoy javajavajava
请输入小字符串:java
控制台输出:小字符串java,在大字符串javajava I love java I like jajavava I enjoy javajavajava中共出现7次
package com.itheima_3;
import java.util.Scanner;
/*
* 分析以下需求,并用代码实现
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字符串:javajava I love java I like jajavava I enjoy javajavajava
请输入小字符串:java
控制台输出:小字符串java,在大字符串javajava I love java I like jajavava I enjoy javajavajava中共出现7次
4:思路提示:
//获取要查询的小字符串第一次出现的位置,然后截取大字符串,从出现的位置截取到出现位置加上小字符串的长度。
//使用截取后的字符串作为大串。继续进行上一步的动作。
解释:
从出现的位置截取到出现位置加上小字符串的长度:因为当小字符串对应上大字符串时候,返回的索引是小字符串对应大字符串的第一个字符的索引,所以要加上小字符串
的长度,否则没有截取成功,在"原地踏步".
*/
public class day8Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大的字符串:");
String s1 = sc.nextLine();
System.out.println("请输入一个小的字符串:");
String s2 = sc.nextLine();
//统计小字符串在大字符串中出现的次数
String s3 = s1;
int i= 0;
int index = 0;
while(true) {
index = s1.indexOf(s2);
i++;
s1 = s1.substring(index+s2.length());
if(index == -1 || s1.length()<s2.length()) {
break;
}
}
System.out.println("小字符串"+s2+"在大字符串"+s3+"中共出现"+i+"次");
}
}
分析以下需求,并用代码实现
1.键盘录入一个源字符串由字符串变量scrStr接收
2.键盘录入一个要删除的字符串由字符串变量delStr接收
3.要求
删除该字scrStr符串中的所有delStr字符串(最终的字符串中不能包含delStr),要求打印删除后的结果以及删除了几个delStr字符串
4.代码运行打印格式:
请输入源字符串:javajava I love java I like jajavava I enjoy javajavajava
请输入要删除的字符串:java
控制台输出结果:源字符串中总共包含:8 个 java 删除java后的字符串为: I love I like I enjoy
package com.itheima_3;
import java.util.Scanner;
/*
* 分析以下需求,并用代码实现
1.键盘录入一个源字符串由字符串变量scrStr接收
2.键盘录入一个要删除的字符串由字符串变量delStr接收
3.要求
删除该字scrStr符串中的所有delStr字符串(最终的字符串中不能包含delStr),要求打印删除后的结果以及删除了几个delStr字符串
4.代码运行打印格式:
请输入源字符串:javajava I love java I like jajavava I enjoy javajavajava
请输入要删除的字符串:java
控制台输出结果:源字符串中总共包含:8 个 java 删除java后的字符串为: I love I like I enjoy
*/
public class day8Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String scrStr = sc.nextLine();
System.out.println("请输入一个要删除的字符串:");
String delStr = sc.nextLine();
int index = index = scrStr.indexOf(delStr);
int count = 0;
while(index != -1) {
String s1 = scrStr.substring(0,index);
String s2 = scrStr.substring(index+delStr.length());
scrStr = s1 + s2;
index = scrStr.indexOf(delStr); //-1
count++;
}
System.out.println("源字符串中总共包含:"+count+"个"+delStr+"后的 字符串为:"+scrStr);
}
}
分析以下需求,并用代码实现
1.定义String getStr()方法
功能描述:获取长度为5的随机字符串,字符串前四位是由随机大写英文字母组成,最后1位是0-9之间(包含0和9)的整数组成。
//思路:
//定义一个长度为5的字符数组.用来装字符串的每个字符.
//遍历字数组.判断是索引是0-3 使用随机的大写英文字母赋值.(提示英文字母的ASCII码表对应的数组可以强转成字符.例如:(char)65)
//如果索引是最后一个.则使用随机的0-9来赋值.
//最后把字符数组转换成字符串就搞定了.
2.定义main方法,方法内完成:
(2)调用getStr()方法,获取返回值,并在控制台打印返回值
package com.itheima_3;
import java.util.Random;
/*
* 分析以下需求,并用代码实现
1.定义String getStr()方法
功能描述:获取长度为5的随机字符串,字符串前四位是由随机大写英文字母组成,最后1位是0-9之间(包含0和9)的整数组成。
//思路:
//定义一个长度为5的字符数组.用来装字符串的每个字符.
//遍历字数组.判断是索引是0-3 使用随机的大写英文字母赋值.(提示英文字母的ASCII码表对应的数组可以强转成字符.例如:(char)65)
//如果索引是最后一个.则使用随机的0-9来赋值.
//最后把字符数组转换成字符串就搞定了.
2.定义main方法,方法内完成:
(2)调用getStr()方法,获取返回值,并在控制台打印返回值
*/
public class day8Test4 {
public static void main(String[] args) {
char[] arr2 = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
String s = getStr(arr2);
System.out.println(s);
}
public static String getStr(char[] arr2) {
Random r = new Random();
StringBuilder sb = new StringBuilder();
for(int i=0; i<4; i++) {
int index = r.nextInt(arr2.length);
sb.append(arr2[index]);
}
int num = r.nextInt(10);
sb.append(num);
return sb.toString();
}
}