在文章开始之前,先声明,不是可以白嫖的!所有代码均为本人书写(虽然代码写的垃圾,但是能跑,能满足要求),大神不用看,话不多说,看要求:
编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、其中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业不同),而总评成绩是其它成绩的平均值。请先设计合理的类存放这些信息,然后设计程序完成以下功能:
- 列出某个学生的所有成绩;
- 列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分;
- 分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。
没错,这是郑州某大学的java期末大作业,30号之前完成,由于口罩原因,小编匆忙完成了(急着回家)
运行效果图:(小编这里有两种)
第一种:(无图形化)
更多的想法功能,小编会在30号之前一一添加。
第二种:(图形化)
第二种,页面看着不错,但是功能欠缺(小编上课不听,这里都是摸索的),后续会根据自己能力添加功能。
这里放出部分代码:(第一种)
import utils.Utility;
/**
* 创建系统菜单
* 1——创建学生集合(学生相关信息可以从键盘录入也可以直接初始化)
* 2——查询学生信息
* 3——列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分
* 4——分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等
* 根据用户输入的选项,调用功能类相关操作。
*/
public class View {
private boolean loop = true; //控制显示菜单
private char key = ' '; //接收用户选择
//显示主菜单
public void mainMenu() {
do {
Method.DefaultInformationAdd();//初始化录入信息
System.out.println("\n=============学生成绩管理系统============");
System.out.println("\t\t\t1 录入学生信息");
System.out.println("\t\t\t2 查询学生信息");
System.out.println("\t\t\t3 查询某门课程每个学生总评成绩及平均分");
System.out.println("\t\t\t4 查询某门课程学生成绩区段");
System.out.println("\t\t\t5 删除学生信息");
System.out.println("\t\t\t6 退出系统");
System.out.print("请输入你的选择(1-6): ");
key = Utility.readChar();
switch (key) {
case '1':
Method.addMessage();
break;
case '2':
Method.messageSearch();
break;
case '3':
Method.sumScore();
break;
case '4':
Method.scoreSection();
break;
case '5':
Method.delMessage();
break;
case '6':
Method.exit();
break;
}
} while (loop);
}
}
这是主页面,当然,肯定运行不成功,因为Method类,我没放出来,里面用的都是静态方法,类加载时,就已经初始化了,所以没有创建对象。
(第二种界面)
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.Spring;
import javax.swing.SpringLayout;
import javax.swing.border.EmptyBorder;
import javax.swing.SwingConstants;
import java.awt.FlowLayout;
import java.awt.Font;
//登录界面
public class Login extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;//序列化用到
//定义控件
JPanel jp1;
JLabel id,pw,title;
JButton login,restart;
JTextField id_t;
JPasswordField pw_t;
SpringLayout springLayout = new SpringLayout();
public Login() {
init();
this.setVisible(true);
//窗口大小不可变
setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void init() {
id = new JLabel("账号:");
pw = new JLabel("密码:");
title = new JLabel("学生成绩管理系统");
jp1 = new JPanel(springLayout);
id_t = new JTextField(15);
pw_t = new JPasswordField(15);
login = new JButton("登录");
restart = new JButton("重置");
//监听jb1按钮
login.addActionListener(this);
restart.addActionListener(this);
//获取内容面板
Container contentPane = getContentPane();
id_t.setPreferredSize(new Dimension(200,30));
pw_t.setPreferredSize(new Dimension(200,30));
//jpanel.add(title,jpanel.CENTER_ALIGNMENT);
jp1.add(id);
id.setPreferredSize(new Dimension(200,30));
jp1.add(id_t);
jp1.add(pw);
pw_t.setPreferredSize(new Dimension(200,30));
jp1.add(pw_t);
jp1.add(login);
jp1.add(restart);
jp1.add(title);
id.setFont(new Font("微软雅黑",Font.PLAIN,18));
pw.setFont(new Font("微软雅黑",Font.PLAIN,18));
title.setFont(new Font("微软雅黑",Font.PLAIN,28));
springLayout.putConstraint(springLayout.WEST, id, -100, springLayout.HORIZONTAL_CENTER, jp1);
springLayout.putConstraint(springLayout.NORTH, id, -200, springLayout.HORIZONTAL_CENTER, jp1);
springLayout.putConstraint(springLayout.WEST, id_t, -150, springLayout.EAST, id);
springLayout.putConstraint(springLayout.NORTH, id_t, 0, springLayout.NORTH, id);
springLayout.putConstraint(springLayout.WEST, pw_t, 0, springLayout.WEST, id_t);
springLayout.putConstraint(springLayout.NORTH, pw_t, 0, springLayout.NORTH, pw);
springLayout.putConstraint(springLayout.WEST, pw, -100, springLayout.HORIZONTAL_CENTER, jp1);
springLayout.putConstraint(springLayout.NORTH, pw, -140, springLayout.HORIZONTAL_CENTER, jp1);
//放置button,相对于中心
springLayout.putConstraint(springLayout.EAST, login, 10, springLayout.HORIZONTAL_CENTER, jp1);
springLayout.putConstraint(springLayout.NORTH, login, 40, springLayout.SOUTH, pw);
springLayout.putConstraint(springLayout.WEST, restart, 40, springLayout.HORIZONTAL_CENTER, jp1);
springLayout.putConstraint(springLayout.NORTH, restart, 40, springLayout.SOUTH, pw);
//放置title
springLayout.putConstraint(springLayout.WEST, title, -5, springLayout.WEST, id);
springLayout.putConstraint(springLayout.SOUTH, title, -40, springLayout.NORTH, id);
//将中间容器放入内容面板
contentPane.add(jp1,BorderLayout.CENTER);
}
//事件监听
@Override
public void actionPerformed(ActionEvent e) {
String ad = "12345";
String psw = "12345";
//登录
if (e.getSource() == login) {
String id_s = id_t.getText();
String pw_s = pw_t.getText();
if (id_s.equals(ad)) {
if(pw_s.equals(psw)) {
WindowOfStudent win = new WindowOfStudent();
win.setBounds(200,200,600,400);
win.setTitle("学生成绩管理系统");
this.dispose();
}else {
JOptionPane.showMessageDialog(login, "密码错误!!!");
}
} else {
JOptionPane.showMessageDialog(login, "用户名错误!!!");
}
}
//重置
if (e.getSource() == restart) {
id_t.setText("");
pw_t.setText("");
}
}
}
这里是登录界面的,里面的监听函数啥的,以及相关按钮设置啥的,借鉴了网上部分代码(小编能力有限。嘴下留情)
其实java作为一门强大的语言,主要写后端,像前端界面不是其优势,开发中也基本不用java写前端界面(这里是小编为自己菜鸡而找的借口)
好了,说了这么废话,主要是小编快封疯了(),所以说话前一句后一句的
现在还不加上代码获取资源链接,看各位想要同学的评论了,没有评论就不发了,有评论就看看是否公开