实现学生管理系统系统前,需要掌握的前期基础知识:
1.输入语句:
-Scanner:输入各种类型数据的方法,如String,int,double,float或引用数据类型.... -System: System.out.println();输出语句 System,in:输入接口 System.exit(); System.gc();JVM的垃圾回收器,不占内存
代码如下:
public class ScannerInputData {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串:");
String str1=sc.next();
System.out.println("您输入的是:"+str1);//读取一个字符以空格或回车结尾
System.out.println("输入一个整数:");
int num=sc.nextInt();
sc.nextLine();
System.out.println("您输入的整数为"+num);
System.out.println("请输入字符串:");
String str=sc.nextLine();//读取一行字符串
System.out.println("您输入的是:"+str);
double d=sc.nextDouble();
System.out.println("您输入的是:"+d);
//nextInt 后面如果是nextLine会直接跳过nextLine的读取
}
}
输出结果:
2.数组的运用:
数据结构(线性表) > 保存数据 1.定义数组 2.利用数组存,取数据 定义数组:数据类型[] 数组名 = new 数据类型[长度]; 数据类型[] 数组名 = {元素,元素,元素}; 唯一的属性:length 数组长度 数组的下标:0~长度-1 存数据:数组名[下标] = 数据; 取数据: 数据类型 变量名 = 数组名[下标];
public class ArrayDema {
public static void main(String[] args) {
// 定义数组:
int [] arr = new int[20];
// 随机数
// 存入数据
for (int i = 0; i < arr.length; i++) {
arr[i] = (int) (Math.random() * 10);
}
// 取出数据查看
for (int i = 0; i < arr.length; i++) {
int n = arr[i];
System.out.print(" " + n);
}
}
}
接下来,我们便可以实现简单的学生信息管理系统了:
首先,我们先创建一个User类,用来存储我们所需的数据:id名,用户名,密码以及实现总信息输出的方法
public class User {
int id;
String userName;
String password;
public String toString(){
//拼接字符串
String info="User{id="+id+" ,userName="+userName+", password="+password+"}";
return info;
}
}
接下来,创建DataManage类:
属性: 最大数据量 maxSize
存储数组 User[] userList = new User[maxSize];
实时的数据个数 size
final int maxSize=100;
User[] userList=new User[maxSize];
int size;
方法:
系统启动的方法:
1: 进入主页功能模块
2: 根据用户在主页模块选择的功能做分流 根据选择调用下面的方法之一执行
3:add方法 检测是否具有空闲空间(后续扩展为扩容机制) 需要用户输入用户名 检测用户名是否重复 输入密码 再将账号密码存入一个新的用户对象中 再将用户对象设置好id存入userList中 size++;
4:get方法 :根据需要查询的依据类型: id , name 或 all来得到用户的总信息.
5:remove方法:根据需要查询的依据类型: id , name来删除该学生的信息,值得注意的是,删除该学生的信息后,后续学生的id要依次减去1,size--,以此达到系统的操作合法性
6:update方法:根据需要查询的依据类型: id , name来利用循环取出所需要的对象,利用输入语句更新对象的属性,最后打印全部信息!
7. exit方法:用于退出系统.
public class DataManage {
final int maxSize=100;
User[] userList=new User[maxSize];
int size;
public void lunch(){
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("------------------------");
System.out.println("----欢迎使用数据录入系统----");
System.out.println("------------------------");
System.out.println("请输入需要使用功能的指令:" + " \n 增加-add 查询-get 删除remove 更新-update 退出-exit");
String action = sc.nextLine();
if (action.equals("add")) {
add(sc);
} else if (action.equals("get")) {
get(sc);
} else if (action.equals("remove")) {
remove(sc);
} else if (action.equals("update")) {
update(sc);
} else if (action.equals("exit")) {
System.exit(0);
} else {
System.err.println("--输入无效请重新输入--");
}
}
}
public void add(Scanner sc){
if(size>=maxSize){
System.out.println("当前系统负载已满,无法存入数据!");
return;
}
System.out.println("请输入用户名:");
String name=sc.nextLine();
for(int i=0;i<size;i++){
User user=userList[i];
if(user.userName.equals(name)){
System.err.println("已存放该姓名学生的信息!");
return;
}
}
System.out.println("请输入密码:");
String pwd=sc.nextLine();
User user=new User();
user.userName=name;
user.password=pwd;
user.id=size;
userList[size]=user;
size++;
System.out.println("add--ok!");
}
public void get(Scanner sc){
System.out.println("请选择需要查询的依据类型: id | name | all");
String action=sc.nextLine();
if(action.equals("id")){
System.out.println("请输入查询的id:");
int id=sc.nextInt();
sc.nextLine();//吸收多余的回车符号!
for(int i=0;i<size;i++){
User user=userList[i];
if(user.id==id){
System.out.println(user.toString());
System.out.println("--get--ok!");
return;//结束查找
}
}
System.out.println("未找到有效数据!");
}else if(action.equals("name")){
System.out.println("请输入查询的用户名:");
String name=sc.nextLine();
for(int i=0;i<size;i++){
User user=userList[i];
if(user.userName.equals(name)){
System.out.println(user.toString());
System.out.println("--get--ok!");
return;//结束查找
}
}
System.out.println("未找到有效数据!");
} else if (action.equals("all")) {
String allinfo=" ";
for(int i=0;i<size;i++) {
User user = userList[i];
allinfo+=user.toString() + "\n";
}
System.out.println(allinfo);
System.out.println("--get ok!");
}else{
System.out.println("输入有误!");
}
}
public void remove(Scanner sc){
System.out.println("请选择需要移除学生信息的依据类型: id | name ");
String action=sc.nextLine();
if(action.equals("id")){
System.out.println("请输入id:");
int id=sc.nextInt();
sc.nextLine();//吸收多余的回车符号!
for(int i=0;i<size;i++){
User user=userList[i];
if(user.id==id){
for(int j=i;j<size-1;j++){
userList[j]=userList[j+1];
User user1=userList[j];
user1.id--;
}
size--;
System.out.println("--remove--ok!");
return;//结束查找
}
}
System.out.println("未找到有效数据!");
}else if(action.equals("name")){
System.out.println("请输入用户名:");
String name=sc.nextLine();
for(int i=0;i<size;i++){
User user=userList[i];
if(user.userName.equals(name)){
for(int j=i;j<size-1;j++){
userList[j]=userList[j+1];
User user1=userList[j];
user1.id--;
}
size--;
System.out.println("--remove--ok!");
return;//结束查找
}
}
System.out.println("未找到有效数据!");
}else{
System.out.println("输入有误!");
}
}
public void update(Scanner sc){
System.out.println("请选择需要更新信息的依据类型: id | name ");
String action=sc.nextLine();
if(action.equals("id")){
System.out.println("请输入被更新学生信息的id:");
int id=sc.nextInt();
sc.nextLine();//吸收多余的回车符号!
System.out.println("请输入新的的姓名:");
String newname=sc.nextLine();
System.out.println("请输入新的的密码:");
String newpwd=sc.nextLine();
for(int i=0;i<size;i++){
User user=userList[i];
if(user.id==id){
user.userName=newname;
user.password=newpwd;
System.out.println(user.toString());
System.out.println("--update--ok!");
return;//结束查找
}
}
System.out.println("未找到有效数据!");
}else if(action.equals("name")){
System.out.println("请输入被修改的学生名:");
String name=sc.nextLine();
System.out.println("请输入新的的密码:");
String newpwd=sc.nextLine();
for(int i=0;i<size;i++){
User user=userList[i];
if(user.userName.equals(name)){
user.password=newpwd;
System.out.println(user.toString());
System.out.println("--update--ok!");
return;//结束查找
}
}
System.out.println("未找到有效数据!");
}else{
System.out.println("输入有误!");
}
}
public static void main(String[] args){
DataManage dm=new DataManage();
dm.lunch();
}
}