JavaSE基础知识(包含少许面向对象知识)实现的小练习
****忽然想起来之前学习javaSE基础知识做的一个小东西,分享一下吧
名字: 学生信息管理系统
运行环境: cmd窗口,或者更高级的开发工具,比如Eclipse…
基本功能和界面如下:
登录: 内置确定的用户名和密码
主功能界面
添加学生功能
查找学生
更新学生信息
删除学生
录入学生成绩
根据某门成绩排序
根据总分排序
具体源码如下:
import java
.util
.Scanner
;
class Student{
private int id
;
private String name
;
private int age
;
private double java
;
private double csharp
;
private double html
;
private double sql
;
private double sum
;
private double avg
;
public Student(){
super();
}
public void setId(int id
){
this.id
=id
;
}
public void setName(String name
){
this.name
=name
;
}
public void setAge(int age
){
this.age
=age
;
}
public void setJava(double java
){
this.java
=java
;
}
public void setCsharp(double csharp
){
this.csharp
=csharp
;
}
public void setHtml(double html
){
this.html
=html
;
}
public void setSql(double sql
){
this.sql
=sql
;
}
public void setSum(){
this.sum
=this.java
+this.csharp
+this.html
+this.sql
;
}
public void setAvg(){
this.avg
=this.sum
/4;
}
public int getId(){
return this.id
;
}
public String
getName(){
return this.name
;
}
public int getAge(){
return this.age
;
}
public double getJava(){
return this.java
;
}
public double getCsharp(){
return this.csharp
;
}
public double getHtml(){
return this.html
;
}
public double getSql(){
return this.sql
;
}
public double getSum(){
return this.sum
;
}
public double getAvg(){
return this.avg
;
}
public String
toString(){
String msg
="\t"+this.id
+"\t"+this.name
+"\t"+this.age
+"\t"+this.java
+"\t"+this.csharp
+"\t"+this.html
+"\t"+this.sql
+"\t"+this.sum
+"\t"+this.avg
;
return msg
;
}
}
class StudentAdmin{
public StudentAdmin(){
super();
}
String msg
="\t编号\t姓名\t年龄\tjava\tcsharp\thtml\tsql\t总分\t平均分";
public void print(Student
[] stu
){
System
.out
.println(msg
);
for(int i
=0;i
<stu
.length
;i
++){
if(stu
[i
]!=null
){
System
.out
.println(stu
[i
].toString());
}
}
}
public void addStudent(String name
,int age
,Student
[] stu
){
Student student
=new Student();
student
.setName(name
);
student
.setAge(age
);
int flag
=-1;
for(int i
=0;i
<stu
.length
;i
++){
if(stu
[i
]==null
){
stu
[i
]=student
;
flag
=1;
student
.setId(i
);
print(stu
);
return;
}
}
if(flag
==-1){
System
.out
.println("请注意,系统已存满,不能再添加!!!");
}
}
public void selectStudent(int id
,Student
[] stu
){
if(id
>stu
.length
-1){
System
.out
.println();
System
.out
.println();
System
.out
.println("对不起,您输入的编号超出范围,无法查找!");
System
.out
.println();
System
.out
.println();
}else {
if(stu
[id
]==null
){
System
.out
.println("\t这个编号的学生还未录入!");
System
.out
.println();
System
.out
.println();
}else{
System
.out
.println(msg
);
System
.out
.println(stu
[id
].toString());
System
.out
.println();
System
.out
.println();
}
}
}
public void updateStudent(int id
,String name
,int age
,Student
[] stu
){
if(stu
[id
]==null
){
System
.out
.println();
System
.out
.println();
System
.out
.println("该学生不存在,更新失败");
System
.out
.println();
System
.out
.println();
}else{
stu
[id
].setName(name
);
stu
[id
].setAge(age
);
System
.out
.println();
System
.out
.println();
System
.out
.println("-----更新学生信息成功-----");
print(stu
);
System
.out
.println();
System
.out
.println();
}
}
public void deleteStudent(int id
,Student
[] stu
){
if(id
>stu
.length
-1){
System
.out
.println("删除学生失败");
}else{
if(stu
[id
]==null
){
System
.out
.println("删除学生失败");
}else{
stu
[id
]=null
;
print(stu
);
}
}
}
public String
getName(int id
,Student
[] stu
){
if(id
>stu
.length
-1){
System
.out
.println("输入的编号超出查找范围!");
return "输入的编号超出查找范围!";
}else{
if(stu
[id
]==null
){
System
.out
.println("编号对应的学生为空,不存在");
return "编号对应的学生为空,不存在";
}else{
System
.out
.println("编号"+id
+"对应的学生名字为: "+stu
[id
].getName());
return stu
[id
].getName();
}
}
}
public void inputScore(int id
,Student
[] stu
){
if(id
>stu
.length
-1){
System
.out
.println("输入的编号超出范围");
}else{
if(stu
[id
]==null
){
System
.out
.println("编号对应的学生为空,不存在");
}else{
Scanner sc
=new Scanner(System
.in
);
System
.out
.println("请输入"+stu
[id
].getName()+"的"+"java成绩");
double javaScore
=sc
.nextDouble();
System
.out
.println("请输入"+stu
[id
].getName()+"的"+"csharp成绩");
double csharpScore
=sc
.nextDouble();
System
.out
.println("请输入"+stu
[id
].getName()+"的"+"html成绩");
double htmlScore
=sc
.nextDouble();
System
.out
.println("请输入"+stu
[id
].getName()+"的"+"sql成绩");
double sqlScore
=sc
.nextDouble();
stu
[id
].setJava(javaScore
);
stu
[id
].setCsharp(csharpScore
);
stu
[id
].setHtml(htmlScore
);
stu
[id
].setSql(sqlScore
);
stu
[id
].setSum();
stu
[id
].setAvg();
print(stu
);
}
}
}
public void scoreSort(int num
,Student
[] stu
){
int ii
=stu
.length
;
for(int i
=0;i
<stu
.length
;i
++){
if(stu
[i
]==null
){
ii
=i
;
break;
}
}
if(num
==1){
for(int i
=0;i
<ii
-1;i
++){
for(int j
=0;j
<ii
-1-i
;j
++){
if(stu
[j
].getJava()<stu
[j
+1].getJava()){
Student s
=stu
[j
];
stu
[j
]=stu
[j
+1];
stu
[j
+1]=s
;
}
}
}
print(stu
);
}
if(num
==2){
for(int i
=0;i
<ii
-1;i
++){
for(int j
=0;j
<ii
-1-i
;j
++){
if(stu
[j
].getCsharp()<stu
[j
+1].getCsharp()){
Student s
=stu
[j
];
stu
[j
]=stu
[j
+1];
stu
[j
+1]=s
;
}
}
}
print(stu
);
}
if(num
==3){
for(int i
=0;i
<ii
-1;i
++){
for(int j
=0;j
<ii
-1-i
;j
++){
if(stu
[j
].getHtml()<stu
[j
+1].getHtml()){
Student s
=stu
[j
];
stu
[j
]=stu
[j
+1];
stu
[j
+1]=s
;
}
}
}
print(stu
);
}
if(num
==4){
for(int i
=0;i
<ii
-1;i
++){
for(int j
=0;j
<ii
-1-i
;j
++){
if(stu
[j
].getSql()<stu
[j
+1].getSql()){
Student s
=stu
[j
];
stu
[j
]=stu
[j
+1];
stu
[j
+1]=s
;
}
}
}
print(stu
);
}
}
public void sumSort(Student
[] stu
){
int ii
=stu
.length
;
for(int i
=0;i
<stu
.length
;i
++){
if(stu
[i
]==null
){
ii
=i
;
break;
}
}
for(int i
=0;i
<ii
-1;i
++){
for(int j
=0;j
<ii
-1-i
;j
++){
if(stu
[j
].getSum()<stu
[j
+1].getSum()){
Student s
=stu
[j
];
stu
[j
]=stu
[j
+1];
stu
[j
+1]=s
;
}
}
}
print(stu
);
}
}
public class StudentAdminTest{
public static void main(String
[] args
){
Scanner sc
=new Scanner(System
.in
);
StudentAdmin admin
=new StudentAdmin();
String user_Name0
="刘艳辉";
String passWord0
="123456";
System
.out
.println("\t"+"\t"+"\t"+"您好!欢迎来到学生信息管理系统");
System
.out
.println("请登录");
while(true){
System
.out
.print("用户名: ");
String user_Name
=sc
.next();
if(user_Name
.equals(user_Name0
)){
System
.out
.println();
System
.out
.println("用户名输入正确");
break;
}else{
System
.out
.println();
System
.out
.println("用户名输入不正确,请重新输入");
}
}
System
.out
.println();
while(true){
System
.out
.print("登录密码: ");
String passWord
=sc
.next();
if(passWord
.equals(passWord0
)){
System
.out
.println();
System
.out
.println("登录密码输入正确");
break;
}else{
System
.out
.println();
System
.out
.println("登录密码输入不正确,请重新输入");
}
}
System
.out
.println("恭喜您登录成功!!!");
System
.out
.println("-------------------------------------------------------------------------");
int studentNumber
;
while(true){
System
.out
.print("请设置本系统管理的人数: ");
studentNumber
=sc
.nextInt();
if(studentNumber
>0){
break;
}else{
System
.out
.println();
System
.out
.println("您的输入不合法,请重新输入!!!");
System
.out
.println();
}
}
System
.out
.println();
Student
[] students
=new Student[studentNumber
];
LOOP
:
while(true){
System
.out
.println("\t"+"\t"+"\t"+"您好!欢迎来到主页面!!!!");
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("99: 退出系统");
System
.out
.println();
int number
=sc
.nextInt();
switch(number
){
case 1:
System
.out
.println("------执行添加学生操作------");
System
.out
.println("请输入要添加学生的姓名: ");
String name0
=sc
.next();
System
.out
.println("请输入要添加学生的年龄: ");
int age0
=sc
.nextInt();
System
.out
.println();
System
.out
.println();
admin
.addStudent(name0
,age0
,students
);
System
.out
.println();
System
.out
.println();
break;
case 2:
System
.out
.println("------执行查找学生操作------");
System
.out
.println("请输入要查找的学生编号: ");
int id1
=sc
.nextInt();
admin
.selectStudent(id1
,students
);
break;
case 3:
System
.out
.println("------执行更新学生基本信息操作------");
System
.out
.println("请输入编号: ");
int id2
=sc
.nextInt();
if((id2
>=students
.length
)&&id2
<0){
System
.out
.println();
System
.out
.println();
System
.out
.println("对不起,您输入的编号超出范围");
System
.out
.println();
System
.out
.println();
}else{
System
.out
.println("请输入新的学生姓名: ");
String name3
=sc
.next();
System
.out
.println("请输入新的学生年龄: ");
int age3
=sc
.nextInt();
admin
.updateStudent(id2
,name3
,age3
,students
);
}
break;
case 4:
System
.out
.println("------执行删除学生信息操作------");
System
.out
.println("请输入要删除的学生的编号: ");
int id3
=sc
.nextInt();
admin
.deleteStudent(id3
,students
);
break;
case 5:
System
.out
.println("------执行输入学生成绩操作------");
System
.out
.println("请输入要输入学生成绩的编号: ");
int id4
=sc
.nextInt();
admin
.inputScore(id4
,students
);
break;
case 6:
System
.out
.println("------执行成绩排序操作------");
System
.out
.println("请输入要用什么成绩排序:(1:java 2:csharp 3:html 4:sql)");
int num
=sc
.nextInt();
admin
.scoreSort(num
,students
);
break;
case 7:
System
.out
.println("------执行总分排序操作------");
admin
.sumSort(students
);
break;
case 99:
System
.out
.println("------退出系统成功!!!------");
break LOOP
;
default:
System
.out
.println("您的输入有误,直接回到主页面");
continue LOOP
;
}
System
.out
.println();
System
.out
.println("请选择回到主页面 Or 直接退出系统(输入编号: 1: 回到主页面 2:直接退出系统)");
int select
=sc
.nextInt();
switch(select
){
case 1:
System
.out
.println("回到主页面");
System
.out
.println();
System
.out
.println();
break;
case 2:
System
.out
.println("------退出系统成功!!!------");
break LOOP
;
default:
System
.out
.println("您的输入有误,直接回到主页面");
break;
}
}
}
}
由于当时本人水平有限,如有不合理之处,欢迎大家指出,欢迎交流沟通