源码地址:一个简单的学生管理系统 ,提取码:1234
今天整理资料,突然发现上学时写的一个简单的学生管理系统,记录一下当初渣渣的代码。主要要求如下:
1:可以定义学生人数
2:添加一个学生
3:查找一个学生
4:根据编号更新学生的基本信息
5:根据编号删除学生
6:根据编号输入学生各科成绩
7:根据某门成绩进行排序
8:根据总分进行排序
9:退出系统
实现过程
一、随便建一个java project,左边是项目列表,右边是结果界面
二、新建一个Student类。
package com.studentmanage;
/**学生类
* @author ZQL
*/
public class Student {
private int id;//编号
private String name;//姓名
private int age;//年龄
private int java;//java课程
private int html;//html课程
private int sql;//sql课和
private int sum;//总分
private int avg;//平均分
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public int getJava() {
return this.java;
}
public void setJava(int java) {
this.java = java;
}
public int getHtml() {
return this.html;
}
public void setHtml(int html) {
this.html = html;
}
public int getSql() {
return this.sql;
}
public void setSql(int sql) {
this.sql = sql;
}
public int getSum() {
return this.sum;
}
public void setSum() {
//设置总分
this.sum = this.java+this.html+this.sql;
}
public int getAvg() {
return this.avg;
}
public void setAvg() {
//设置平均分
this.avg = this.sum/3;
}
//重写toString方法
public String toString(){
String msg="\t"+this.id+"\t"+this.name +"\t"+this.age+"\t"+this.java+"\t"+
this.html+"\t"+this.sql+"\t"+this.sum+"\t"+this.avg;
return msg;
}
}
三、新建一个Admin类。
package com.studentmanage;
/**系统功能管理类
* @author ZQL
*/
public class Admin {
//创建学生类并实例化
Student stu=new Student();
/**添加学生方法
* @param name 姓名
* @param age 年龄
* @param arr 学生类数组
*/
public void create(String name,int age,Student[] arr){
stu.setName(name);
stu.setAge(age);
int i=setIndex(arr);
if(i==-1){
System.out.println("学生人数已添加满,不能再添加");
}else{
stu.setId(i+1);
arr[i]=stu;
}
}
/**判断剩余的学生空间
* @param arr 学生类数组
* @return 返回-1说明已添加满
*/
public int setIndex(Student[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i]==null){
return i;
}
}
return -1;
}
/**按编号查询学生方法输出
* @param id 编号
* @param arr 学生类数组
*/
public void select(int id,Student[] arr){
int i=selectIndex(id,arr);
if(i==-1){
System.out.println("\t没有该编号的学生");
}else{
System.out.println(arr[i]);
}
}
/**按编号查询学生所在的数组下标
* @param id 编号
* @param arr 学生类数组
* @return
*/
public int selectIndex(int id,Student[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i].getId()==id){
return i;
}
}
return -1;
}
/**按姓名查询学生方法
* @param name 姓名
* @param arr 学生类数组
*/
public void select(String name,Student[] arr){
int j = 0;
for(int i=0;i<arr.length;i++){
if(arr[i].getName().equals(name)){
break;
}else{
j++;
}
}
if(j==arr.length){
System.out.println("\t没有该姓名的学生");
}else{
for(int i=0;i<arr.length;i++){
if(arr[i].getName().equals(name)){
System.out.println(arr[i]);
}
}
}
}
/**按编号更新学生姓名
* @param id 编号
* @param name 姓名
* @param arr 学生类数组
*/
public void update(int id,String name,Student[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i].getId()==id){
arr[i].setName(name);
}
System.out.println(arr[i]);
}
}
/**按编号更新学生年龄
* @param id 编号
* @param age 年龄
* @param arr 学生类数组
*/
public void update(int id,int age,Student[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i].getId()==id){
arr[i].setAge(age);
}
System.out.println(arr[i]);
}
}
/**按编号删除学生方法
* @param id 编号
* @param arr 学生类数组
*/
public void delete(int id ,Student[] arr){
boolean bl = true;//是否继续查询,同时也可以用来判断是否有删除
for(int i=0;i<arr.length;i++){
if(arr[i]!=null && arr[i].getId()==id && bl){
Student[] stu=new Student[1];
//被删除学生后面的人往前移
for(int j=i+1;j<arr.length;j++,i++){
arr[i]=arr[j];
if(arr[j]!=null) {
arr[i].setId(arr[j].getId()-1);
}
}
arr[arr.length-1]=stu[0];
bl = false;
}
}
if(bl) {
System.out.println("没有这个编号");
}
}
/**按编号输入学生成绩方法
* @param id 编号
* @param java java成绩
* @param html html成绩
* @param sql sql成绩
* @param arr 学生类数组
*/
public void scoreUpdate(int id,int java,int html,int sql,Student[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i].getId()==id){
arr[i].setJava(java);
arr[i].setHtml(html);
arr[i].setSql(sql);
arr[i].setSum();
arr[i].setAvg();
}
}
}
/**按java成绩排序
* @param arr 学生类数组
*/
public void javaArrays(Student[] arr){
if(arr.length>1) {
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i].getJava()>arr[j].getJava()){//升序排序
String name1=arr[i].getName();
String name2=arr[j].getName();
arr[i].setName(name2);
arr[j].setName(name1);
int age1=arr[i].getAge();
int age2=arr[j].getAge();
arr[i].setAge(age2);
arr[j].setAge(age1);
int java1=arr[i].getJava();
int java2=arr[j].getJava();
arr[i].setJava(java2);
arr[j].setJava(java1);
int html1=arr[i].getHtml();
int html2=arr[j].getHtml();
arr[i].setHtml(html2);
arr[j].setHtml(html1);
int sql1=arr[i].getSql();
int sql2=arr[j].getSql();
arr[i].setSql(sql2);
arr[j].setSql(sql1);
}
}
arr[i].setSum();
arr[i].setAvg();
}
}else {
System.out.println("至少需要2名学生排序才有意义");
}
}
/**按html成绩排序
* @param arr 学生类数组
*/
public void htmlArrays(Student[] arr){
if(arr.length>1) {
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i].getHtml()>arr[j].getHtml()){
String name1=arr[i].getName();
String name2=arr[j].getName();
arr[i].setName(name2);
arr[j].setName(name1);
int age1=arr[i].getAge();
int age2=arr[j].getAge();
arr[i].setAge(age2);
arr[j].setAge(age1);
int java1=arr[i].getJava();
int java2=arr[j].getJava();
arr[i].setJava(java2);
arr[j].setJava(java1);
int html1=arr[i].getHtml();
int html2=arr[j].getHtml();
arr[i].setHtml(html2);
arr[j].setHtml(html1);
int sql1=arr[i].getSql();
int sql2=arr[j].getSql();
arr[i].setSql(sql2);
arr[j].setSql(sql1);
}
}
arr[i].setSum();
arr[i].setAvg();
}
}else {
System.out.println("至少需要2名学生排序才有意义");
}
}
/**按sql成绩排序
* @param arr 学生类数组
*/
public void sqlArrays(Student[] arr){
if(arr.length>1) {
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i].getSql()>arr[j].getSql()){
String name1=arr[i].getName();
String name2=arr[j].getName();
arr[i].setName(name2);
arr[j].setName(name1);
int age1=arr[i].getAge();
int age2=arr[j].getAge();
arr[i].setAge(age2);
arr[j].setAge(age1);
int java1=arr[i].getJava();
int java2=arr[j].getJava();
arr[i].setJava(java2);
arr[j].setJava(java1);
int html1=arr[i].getHtml();
int html2=arr[j].getHtml();
arr[i].setHtml(html2);
arr[j].setHtml(html1);
int sql1=arr[i].getSql();
int sql2=arr[j].getSql();
arr[i].setSql(sql2);
arr[j].setSql(sql1);
}
}
arr[i].setSum();
arr[i].setAvg();
}
}else {
System.out.println("至少需要2名学生排序才有意义");
}
}
/**根据总分进行排序
* @param arr 学生类数组
*/
public void sumArrays(Student[] arr){
if(arr.length>1) {
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i].getSum()>arr[j].getSum()){
String name1=arr[i].getName();
String name2=arr[j].getName();
arr[i].setName(name2);
arr[j].setName(name1);
int age1=arr[i].getAge();
int age2=arr[j].getAge();
arr[i].setAge(age2);
arr[j].setAge(age1);
int java1=arr[i].getJava();
int java2=arr[j].getJava();
arr[i].setJava(java2);
arr[j].setJava(java1);
int html1=arr[i].getHtml();
int html2=arr[j].getHtml();
arr[i].setHtml(html2);
arr[j].setHtml(html1);
int sql1=arr[i].getSql();
int sql2=arr[j].getSql();
arr[i].setSql(sql2);
arr[j].setSql(sql1);
}
}
arr[i].setSum();
arr[i].setAvg();
}
}else {
System.out.println("至少需要2名学生排序才有意义");
}
}
}
四、新建一个ViewMain类。
package com.studentmanage;
import java.util.Scanner;
/**程序入口
* @author ZQL
*
*/
public class ViewMain {
String msg="\t编号\t姓名\t年龄\tJAVA\tHTML\tSQL\t总分\t平均分";
public static void main(String[] args) {
new ViewMain();
}
//重写无参构造函数
public ViewMain(){
@SuppressWarnings("resource")
Scanner in=new Scanner(System.in);
System.out.println("----------< 请定义学生人数 >----------");
Student[] stu=new Student[in.nextInt()];
//无限循环,除非退出系统
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("6:根据某门成绩进行排序");
System.out.println("7:根据总分进行排序");
System.out.println("0:退出系统");
int num = in.nextInt();
Admin admin = new Admin();
if (num == 1) {
System.out.println("请输入学生姓名:");
String name = in.next();
System.out.println("请输入学生年龄:");
int age = in.nextInt();
admin.create(name, age, stu);
output(stu);
}else if(num==2){
System.out.println("--你要执行的功能--");
System.out.println("21:按编号查询");
System.out.println("22:按姓名查询");
int numSelect=in.nextInt();
if(numSelect==21){
System.out.println("请输入查找的学生编号:");
int id=in.nextInt();
System.out.println(msg);
admin.select(id, stu);
}else if(numSelect==22)
{
System.out.println("请输入查找的学生姓名:");
String selectName=in.next();
System.out.println(msg);
admin.select(selectName, stu);
}
}else if(num==3){
output(stu);
System.out.println("请输入编号:");
int id=in.nextInt();
if(id>stu.length){
System.out.println("没有这个编号,请重新输入:");
id=in.nextInt();
}else{
System.out.println("--你要修改的信息--");
System.out.println("31:姓名");
System.out.println("32:年龄");
int numUpdate=in.nextInt();
if(numUpdate==31){
System.out.println("输入你要改的姓名:");
String name=in.next();
System.out.println(msg);
admin.update(id, name, stu);
}else if(numUpdate==32){
System.out.println("输入你要改的年龄:");
int age=in.nextInt();
System.out.println(msg);
admin.update(id, age, stu);
}
}
}else if(num==4){
System.out.println("请输入要删除的编号:");
int id=in.nextInt();
if(id>stu.length){
System.out.println("没有这个编号,请重新输入:");
id=in.nextInt();
}else{
admin.delete(id, stu);
output(stu);
}
}else if(num==5){
System.out.println("请输入编号");
int id=in.nextInt();
System.out.println("请输入java成绩");
int java=in.nextInt();
System.out.println("请输入html成绩");
int html=in.nextInt();
System.out.println("请输入sql成绩");
int sql=in.nextInt();
admin.scoreUpdate(id,java,html,sql,stu);
output(stu);
}else if(num==6){
System.out.println("请输入选择课程");
System.out.println("61:JAVA");
System.out.println("62:HTML");
System.out.println("63:SQL");
int numCourse=in.nextInt();
if(numCourse==61){
admin.javaArrays(stu);
output(stu);
}else if(numCourse==62){
admin.htmlArrays(stu);
output(stu);
}else if(numCourse==63){
admin.sqlArrays(stu);
output(stu);
}
}else if(num==7){
admin.sumArrays(stu);
output(stu);
}else if(num==0){
System.exit(0);
}
}
}
/**打印学生列表
* @param stu
*/
public void output(Student[] stu){
System.out.println(msg);
for(int i=0;i<stu.length;i++){
if(stu[i]!=null){
System.out.println(stu[i]);
}
}
}
}
测试结果截图