📄 business.java
字号:
package control;
import java.util.*;
import java.io.*;
import model.Student;
public class Business
{
public static void switchMenu(int n,Vector stuVector) throws IOException
{
switch(n)
{
case 1:
//输入学生成绩
enterStuResult(stuVector);
break;
case 2:
//查询学生成绩
searchStuInfo(stuVector);
break;
case 3:
//统计学生成绩
statisticAll(stuVector);
break;
case 4:
//统计学生平均成绩
statisticAvg(stuVector);
break;
case 5:
//退出系统
System.out.println("谢谢您的使用,再见");
System.exit(0);
break;
default:
System.out.println("您输入有误,请重新输入");
}
}
public static void enterStuResult(Vector stuVector) throws IOException
{
printLine();
InputStreamReader in=new InputStreamReader(System.in);
BufferedReader reader=new BufferedReader(in);
String yesOrNo;
do
{
System.out.println("请输入学生的基本信息");
Student student=new Student();
student.setStuNu(inputStuNu("学号:",reader,stuVector));
//这里为什么要加上vector这样的一个参数呢?
//主要是因为我们必须验证我们在输入时是否有相同的学号,我们必须到我们的动态数据库中验证
student.setName(inputStuName("姓名:",reader));
student.setAge(inputInt("年龄:",reader));
student.setResult(inputDouble("成绩:",reader));
stuVector.addElement(student);
System.out.println();
System.out.println("输入成功,按q键终止!");
yesOrNo=reader.readLine();
}while(!yesOrNo.toLowerCase().equals("q"));
}
public static void searchStuInfo(Vector stuVector) throws IOException
{
printLine();
System.out.println("请输入这个学生的学号:");
InputStreamReader in=new InputStreamReader(System.in);
BufferedReader reader=new BufferedReader(in);
String stuNu=reader.readLine();
System.out.println("正在查询这个学生的成绩.......");
for(int i=0;i<stuVector.size();i++)
{
Student student=(Student)stuVector.elementAt(i);
if(student.hasSuchStudent(stuNu))
{
student.printStuInfo();
}
}
}
public static void statisticAll(Vector stuVector)throws IOException
{
System.out.println();
printLine();
System.out.println("正在统计学生的总成绩......");
System.out.println("您输入了"+stuVector.size()+"个学生成绩信息");
System.out.print("总成绩:");
double totalResult=0;
for(int i=0;i<stuVector.size();i++)
{
Student student=(Student)stuVector.elementAt(i);
totalResult+=student.getResult();
}
System.out.print(totalResult);
}
public static void statisticAvg(Vector stuVector)
{
System.out.println();
printLine();
System.out.println("正在统计学生的平均成绩......");
System.out.println("您输入了"+stuVector.size()+"个学生成绩信息");
System.out.print("平均成绩:");
double totalResult=0;
double averageResult=0;
for(int i=0;i<stuVector.size();i++)
{
Student student=(Student)stuVector.elementAt(i);
totalResult+=student.getResult();
}
averageResult=totalResult/stuVector.size();
System.out.print(averageResult);
}
public static String inputStuNu(String prompt,BufferedReader reader,Vector stuVector)
{
String ret="";
do
{
try
{
ret=inputString(prompt,reader);
if(!stuNuUnique(stuVector,ret))
throw new Exception();
return ret;
}
catch(Exception e)
{
System.out.println("对不起,您输入的学号已经存在,请重试");
continue;
}
}
while(true);
}
public static String inputStuName(String prompt,BufferedReader reader)
{
String temp="";
do
{
temp=inputString(prompt,reader);
return temp;
}while(true);
}
public static String inputString(String prompt,BufferedReader reader)
{
String ret="";
do
{
try
{
System.out.print(prompt);
ret=reader.readLine();
if(ret.trim().length()==0)
throw new Exception();
return ret;
}
catch(Exception e)
{
System.out.println("您还没有输入字符,请重试!");
continue;
}
}while(true);
}
public static int inputInt(String prompt,BufferedReader reader)
{
int ret=0;
do
{
try
{
System.out.print(prompt);
ret=Integer.parseInt(reader.readLine());
return ret;
}
catch(Exception e)
{
System.out.println("您输入的不是数字,请重新输入");
continue;
}
}while(true);
}
public static double inputDouble(String prompt,BufferedReader reader)
{
double ret=0;
do
{
try
{
System.out.print(prompt);
ret=Double.parseDouble(reader.readLine());
return ret;
}
catch(Exception e)
{
System.out.println("您输入的不是数字,请重新输入");
continue;
}
}while(true);
}
public static boolean stuNuUnique(Vector stuVector,String stuNu)throws IOException
{
boolean flag=true;
for(int i=0;i<stuVector.size();i++)
{
Student student=(Student)stuVector.elementAt(i);
if(student.hasSuchStudent(stuNu))
{
flag=false;
}
}
return flag;
}
//打印出菜单,由于我们实在命令行的窗口中,所以这就是我们的所谓的用户界面窗口
public static void printMenu()
{
printLine();
System.out.println("\t=====菜单=====");
System.out.println("\t1:输入学生成绩");
System.out.println("\t2:查询学生成绩");
System.out.println("\t3:统计学生成绩");
System.out.println("\t4:统计学生平均成绩");
System.out.println("\t5:退出系统");
System.out.print("\n请输入您的选择");
}
//打印出我们的项目主题,由于我们实在命令行的窗口中,所以这就是我们的所谓的用户界面窗口
public static void printLine()
{
System.out.println("===========学生成绩管理系统==========");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -