1、纯java系统
就是说,整个系统,包括后台和前端都是使用java开发,即页面使用jsp及基于jsp的技术(如struts、jsf等)。
对于这种系统,只要查看buildpath中引入的jar包即可判定。
常用的架构:spring、springmvc、struts、hibernate、mybatis等。
2、前后端分离的项目
对于这些系统,后端是java实现,前端是前端框架实现。
对于后端,与第一种一样,查看jar包即可。
对于前端,需要通过浏览器查看生成后的代码,一般在首页均可以看到明显的标志,常用的前端框架是vue、react、angular。
import java.util.ArrayListimport java.util.Collections
import java.util.List
import java.util.Scanner
/**
* 学生管理系统:增删查改并按总分排序
*
* @author young
*
*/
//学生类实现Comparable接口是为了实现后面的根据总分进行排序功能。
class Students implements Comparable<Students> {
private String sno // 学号
private String sname // 姓名
private String ssex // 性别
private String sgrade // 班级
private double smath // 数学成绩
private double seng // 英语成绩
private double spc // 计算机成绩
private double sum // 总分
private double avg // 平均分
public String getSno() {
return sno
}
public void setSno(String sno) {
this.sno = sno
}
public String getSname() {
return sname
}
public void setSname(String sname) {
this.sname = sname
}
public String getSsex() {
return ssex
}
public void setSsex(String ssex) {
this.ssex = ssex
}
public String getSgrade() {
return sgrade
}
public void setSgrade(String sgrade) {
this.sgrade = sgrade
}
public double getSmath() {
return smath
}
public void setSmath(double smath) {
this.smath = smath
}
public double getSeng() {
return seng
}
public void setSeng(double seng) {
this.seng = seng
}
public double getSpc() {
return spc
}
public void setSpc(double spc) {
this.spc = spc
}
public void setSum(double smath, double seng, double spc) {
this.sum = smath + seng + spc
}
public void setAvg(double smath, double seng, double spc) {
this.avg = Double.valueOf(String.format("%.2f", (smath + seng + spc) / 3))
}
public double getSum() {
return sum
}
public double getAvg() {
return avg
}
@Override
/*
* 功能:通过比较对象的属性来对每一个对象进行排序
*
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Students s) {
// TODO Auto-generated method stub
if (this.sum > s.sum) {
return -1
} else if (this.sum < s.sum) {
return 1
} else {
return 0
}
}
@Override
public String toString() {
return "学生信息 -----> 学号:" + this.sno + ", 姓名:" + this.sname
+ ", 性别:" + this.ssex + ", 班级:" + this.sgrade + ", 数学成绩:"
+ this.smath + ", 英语成绩:" + this.seng + ", 计算机成绩: " + this.spc
+ ", 总分:" + this.sum + ", 平均分:" + this.avg
}
}
public class StudentMan {
public static int cd(Scanner sc) {
int i
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("|---------- 0 退出 ----------|")
System.out.println("-------------------------------")
System.out.print("请输入你的选择:")
i = sc.nextInt()
return i
}
//排序
public static void sort(List<Students> stuList) {
Collections.sort(stuList)
for(Students stu : stuList){
System.out.println(stu.toString())
}
}
// 添加学生信息
public static List<Students> addRecord(Scanner sc, List<Students> addList) {
Students stu = new Students()
System.out.print("输入学号:")
stu.setSno(sc.next())
System.out.print("输入姓名:")
stu.setSname(sc.next())
System.out.print("输入性别:")
stu.setSsex(sc.next())
System.out.print("输入班级:")
stu.setSgrade(sc.next())
System.out.print("输入数学成绩:")
stu.setSmath(sc.nextDouble())
System.out.print("输入英语成绩:")
stu.setSeng(sc.nextDouble())
System.out.print("输入计算机成绩:")
stu.setSpc(sc.nextDouble())
// 根据输入的三个成绩算出总分和平均分,并赋值到对应的属性中
stu.setSum(stu.getSmath(), stu.getSeng(), stu.getSpc())
stu.setAvg(stu.getSmath(), stu.getSeng(), stu.getSpc())
// 测试添加的对象的各个属性
// System.out.println(stu.toString())
// 把stu对象添加到集合stuList中,并返回集合
addList.add(stu)
return addList
}
// 修改学生信息
public static void modifyByNumber(Scanner sc, List<Students> stuList) {
String sno = ""
Students stu = null
if(stuList.size() == 0){
System.out.println("还没有任何学生信息。")
}else{
System.out.println("输入要修改学生的学号:")
sno = sc.next()
for(int i = 0 i < stuList.size() i++){
if(stuList.get(i).getSno().equals(sno)){
System.out.print("输入新的数学成绩:")
stuList.get(i).setSmath(sc.nextDouble())
System.out.print("输入新的英语成绩:")
stuList.get(i).setSeng(sc.nextDouble())
System.out.print("输入新的计算机成绩:")
stuList.get(i).setSpc(sc.nextDouble())
// 根据输入的三个成绩算出总分和平均分,并赋值到对应的属性中
stuList.get(i).setSum(stuList.get(i).getSmath(), stuList.get(i).getSeng(), stuList.get(i).getSpc())
stuList.get(i).setAvg(stuList.get(i).getSmath(), stuList.get(i).getSeng(), stuList.get(i).getSpc())
}
}
}
}
// 删除学生信息
public static void delRecord(Scanner sc, List<Students> stuList) {
if(stuList.size() == 0){
System.out.println("还没有任何学生信息。")
}else {
System.out.print("输入要删除的学号:")
String sno = sc.next()
// 循环遍历集合查找学生并删除
for(int i = 0 i < stuList.size() i++){
if(stuList.get(i).getSno().equals(sno)){
stuList.remove(i)
}
}
}
}
// 按学号查找
public static void queryBySeatNum(Scanner sc, List<Students> stuList) {
if(stuList.size() == 0){
System.out.println("还没有任何学生信息。")
}else {
System.out.print("输入要查找的学号:")
String sno = sc.next()
// 循环遍历集合查找学生
for(int i = 0 i < stuList.size() i++){
if(stuList.get(i).getSno().equals(sno)){
System.out.println(stuList.get(i).toString())
}
}
}
}
public static void main(String[] args) {
List<Students> stuList = new ArrayList<Students>()
Scanner sc = new Scanner(System.in)
int i
i = cd(sc)
while (i != 0) {
switch (i) {
case 1:
stuList = addRecord(sc, stuList)
break
case 2:
queryBySeatNum(sc, stuList)
break
case 3:
modifyByNumber(sc, stuList)
break
case 4:
sort(stuList)
break
case 5:
delRecord(sc, stuList)
break
case 0:
System.out.println("Exit!")
System.exit(0)
break
}
i = cd(sc)
}
}
}