-
在家想尝试下用java写一个简单学生信息管理系统,由于java都是自己学的,也没写过这种大点但是不难的对象程序,就在网上先看了一个比较简单的。
-
我看的原文是 课设
-
毕竟简单的管理系统也不会有什么太多花样,无非就是增删改查,所以很多东西都一样,参考和借鉴那位大佬。
-
直接用一个package,4个class。
Main
package com.Student;
import java.text.DecimalFormat;
import java.util.ArrayList;//有些是没有必要的,就是平时做题会用的
import java.util.List;
import java.util.Scanner;
import java.io.UnsupportedEncodingException;
import java.lang.Math;
@SuppressWarnings("unused")
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Main main = new Main();
StuSys st = new StuSys();
while(true) {
main.showMenu();
switch(in.nextInt()) {
case 0:
System.exit(0);
case 1:
st.insertstu(in);
break;
case 2:
st.delStu(in);
break;
case 3:
st.changestu(in);
break;
case 4:
st.showstu(in);
break;
case 5:
st.showall();
break;
default:
System.out.println("输入不合法!");
}
}
}
void showMenu(){//显示界面,要在main外,,因为方法不能嵌套方法
System.out.println(" 请选择操作:\n");
System.out.println(" 1:增加学生信息");
System.out.println(" 2:删除学生信息");
System.out.println(" 3:修改学生信息");
System.out.println(" 4:根据学号查看学生信息");
System.out.println(" 5:查看所有学生信息");
System.out.println(" 0:退出系统");
}
}
Student学生信息类
package com.Student;
public class student {
//构造函数
student() {
}
student(String stuno,String stuname,String sex,int age,int score){
this.stuno=stuno;
this.stuname=stuname;
this.sex=sex;
this.age=age;
this.score=score;
}
String stuno;//学号
String stuname;//Name
String sex;
int age;
int score;
}
Studate每个操作的具体代码
package com.Student;
public class Studate {
student stuArray[] = new student[10];//创建对象为studnet的列表
int index=0;//下标
void insert(student stu) {
//如果满的话要扩容
if(index==stuArray.length) {
student newstuarr[]= new student[stuArray.length*2];
for(int i=0;i<stuArray.length;i++) {
newstuarr[i] = stuArray[i];//转移数据
}
stuArray = newstuarr;//将满的array更新为新的array
}
stuArray[index]=stu;//增
index++;
}
void delstu(String stuno) {
//要先判断有没有那个学生
int flag=0;
for(int i=0;i<index;i++) {
if(stuArray[i].stuno.equals(stuno)) {
flag=1;
for(int j=i;j<index-1;j++) {
stuArray[j]=stuArray[j-1];
}
}
}
//判断是否进行了删除操作
if(flag==1)
index--;//删除了一个,所以总数减一
}
student checkStudent(String stuno) {//根据学号查找学生
for(int i=0;i<index;i++) {
if(stuArray[i].stuno.equals(stuno)) {
return stuArray[i];
}
}
return null;
}
void changestu(student stu) {//更新学生信息
//System.out.print(stu.stuname+stu.sex+stu.age);
for(int i=0;i<index;i++) {
//System.out.print(stu.stuno+stu.stuname+stu.sex+stu.age);这里开始有错误,因为上一个只对stu进行的除stuno以外的定义,所以此时stu.stuno为空
if(stuArray[i].stuno.equals(stu.stuno)) {
stuArray[i]=stu;
}
}
}
void printstu(student stu) {
//打印这个学生的信息
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.print("学生编号 " + stu.stuno+ " ");
System.out.print("学生姓名 " + stu.stuname + " ");
System.out.print("学生性别 " + stu.sex + " ");
System.out.print("学生年龄 " + stu.age + " ");
System.out.println("学生成绩 " + stu.score + " ");
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
}
void printallstu() {
//打印出所有的学生信息
if(index==0) {
System.out.println("学生列表为空");
}
else {
for(int i=0;i<index;i++) {
printstu(stuArray[i]);
}
}
}
}
StuSys
- 主要用来判断是哪一个操作,并引用studate中那个具体的函数
- 还有一些信息的返回,就是继续还是结束或者一些提示语
package com.Student;
import java.util.Scanner;
public class StuSys {
Studate stud= new Studate();
//Scanner in = new Scanner(System.in);
void insertstu(Scanner in) {
System.out.println("请输入学生的学号 姓名 性别 年龄 成绩(输入出用空格分开):");
String stuno = in .next();
String stuname = in.next();
String sex = in.next();
int age = in.nextInt();
int score = in .nextInt();
if(stud.checkStudent(stuno)==null) {//这个同学是未添加过的
student stu = new student(stuno, stuname, sex, age, score);
stud.insert(stu);
System.out.println("学生信息添加成功");
}else {//已经存在
System.out.println("学生信息已存在,请选择下一步操作。 1:继续添加 2:退出");
int next_int = in.nextInt();
if(next_int==1) {
insertstu(in);//继续输入继续添加
}else if(next_int==2) {
return ;//重新选择操作
}
else {
System.out.println("输入有误");
}
}
}//输入
void delStu(Scanner in) {//删除操作
System.out.println("请输入要删除学生的学号");
String stuno = in.next();
if(stud.checkStudent(stuno)!=null) {
stud.delstu(stuno);
System.out.println("删除成功");
}
else {
System.out.println("输入学号有误,请输入1 继续输入,或者输入2结束。");
int i=in.nextInt();
if(i==1) {
delStu(in);
}
else if(i==2) {
return;
}
else {
System.out.println("输入有误,");
}
}
}
void changestu(Scanner in) {//修改学生信息
System.out.println("请输入要修改学生的学号:");
String stuno = in.next();
student stu= new student();
stu.stuno=stuno;
if(stud.checkStudent(stuno)!=null) {
System.out.println("请依次输入学生的姓名 性别 年龄 成绩");
stu.stuname=in.next();
stu.sex=in.next();
stu.age= in.nextInt();
stu.score = in.nextInt();
stud.changestu(stu);
//System.out.print(stu.stuname+stu.sex+stu.age);
System.out.println("修改信息成功");
}
else {
System.out.println("输入学号有误,请输入1重新输入或者输入2返回主界面");
int n= in.nextInt();
if(n==1) {
changestu(in);
}
else if(n==2){
return;
}
else {
System.out.println("输入有误");
}
}
}
void showstu(Scanner in) {
System.out.println("请输入要查看学生学号:");
String stu=in.next();
if(stud.checkStudent(stu)!=null) {
stud.printstu(stud.checkStudent(stu));
}
else {
System.out.println("没有找到,请输入1继续或者输入2返回主界面");
int i = in.nextInt();
if(i==1) {
showstu(in);
}
else if(i==2) {
return;
}
else {
System.out.println("输入有误");
}
}
}
void showall() {
stud.printallstu();
}
}
- 还是希望自己写写,把文件放在文末了
下载