沈阳理工大学课程设计专用纸
Noi
目 录
1 设计目的及内容要求 ................................................................................................................ 1
2 系统总体设计 ........................................................................................................................... 1
3 系统详细设计 ........................................................................................................................... 2
4 运行结果及分析 ..................................................................................................................... 17
致谢 ..............................................................................................................................................21
参考文献 ..................................................................................................................................... 22
沈阳理工大学
沈阳理工大学课程设计专用纸
No1
简单学生成绩管理系统的设计与实现
1 设计目的及内容要求
1、 设计目的:
巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握 java 语言编程和程序调
试的基本技能,利用 java 语言进行基本的软件设计,提高运用 java 语言解决实际问题的能力。
2、 内容要求
实现学生成绩的管理(增、删、改、查询、持久化、成绩排序、成绩统计等功能),在文件中增加、
删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这
些操作对文件中的信息保存。
2 系统总体设计
成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进行增加、删除、查询、修改、
统计,进入相应界面进行成绩管理,退出系统自动保存本次操作内容,保存信息。
简易流程图:
登陆
成绩管理界面
增加
删除
查询
修改
统计
退出
沈阳理工大学
沈阳理工大学课程设计专用纸
No2
3 系统详细设计
①
创建 Student 类,设置变量及对应方法
Student.java代码:
package keshe;
import java.io.Serializable;
public class Student implements Serializable{
private String name;
private int num;
private int yuwen;
private int shuxue;
private int java;
private int sum=0;
public Student(){
}
public Student(String name, int num, int yuwen, int shuxue,
int java) {
super();
this.name = name;
this.num = num;
this.yuwen = yuwen;
this.shuxue = shuxue;
this.java = java;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getYuwen() {
return yuwen;
}
public void setYuwen(int yuwen) {
this.yuwen = yuwen;
沈阳理工大学
沈阳理工大学课程设计专用纸
No3
}
public int getShuxue() {
return shuxue;
}
public void setShuxue(int shuxue) {
this.shuxue = shuxue;
}
public int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
public String toString() {
return "Student [name=" + name + ", num=" + num + ", yuwen=" + yuwen
+ ", shuxue=" + shuxue + ", java=" + java + ", sum=" + sum
+ "]";
}
}
②
Student 管理类 StuC,创建对应方法,实现对 Student 对象的操作(增、删、改、查询、持
久化、成绩排序、成绩统计等功能)供其对象调用。
StuC.java 代码
package keshe;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class StuC {
沈阳理工大学
沈阳理工大学课程设计专用纸
No4
ArrayList
al=new ArrayList();
File file = new File("e:/mydata.dat");
//添加
public void adds(Student s){
al.add(s);
}
//删除
public void del(int n){
for(int i=0;i沈阳理工大学课程设计专用纸
No5
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(al);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//输入流
public void read()
{
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream(file));
try {
al = (ArrayList
)in.readObject();
} catch (ClassNotFoundException e) {
al=null;
}
in.close();
} catch (FileNotFoundException e) {
File file = new File("e:/mydata.dat");
} catch (IOException e) {
e.printStackTrace();
}
}
//查找
public Student find(int n)
{
for(int i=0;i沈阳理工大学课程设计专用纸
No6
return null;
}
}
③
登陆界面及成绩管理的所有界面,同过创建 StuC 的对象,调用其方法实现成绩管理
代码:
package keshe;
import java.awt.*;
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.*;
public class Login extends JFrame
{
private TextField f1;
private TextField f2;
private JButton b1;
private JButton b2;
private JButton b3;
StuC scs=new StuC();
//登陆界面
public Login(){
Container cp=getContentPane();//容器
cp.setLayout(new GridLayout(3,1));//三行一列布局
Label l1=new Label("用户名");
Label l2=new Label("密 码");
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
f1=new TextField(10);
f2=new TextField(10);
f2.setEchoChar('*');//回显字符为*
b1=new JButton("登录");
b2=new JButton("重置");
b3=new JButton("退出");
p1.add(l1);//第一行添加 label 1
p1.add(f1);
p2.add(l2);
p2.add(f2);
p3.add(b1);
p3.add(b2);
p3.add(b3);
沈阳理工大学
沈阳理工大学课程设计专用纸
No7
cp.add(p1);
cp.add(p2);
cp.add(p3);
b1.addActionListener(new Enter());
b2.addActionListener(new ReWrite());
b3.addActionListener(new Close());
}
class Enter implements ActionListener{
public void actionPerformed(ActionEvent e)
{
if((f1.getText()).equals("admin")&&(f2.getText()).equals("123456"))
{
scs.read();//初始化,从文件读入信息
XueSheng frame1 = new XueSheng();
frame1.setBounds(200, 200, 300, 300);
frame1.setVisible(true);
}
else JOptionPane.showMessageDialog(null, "用户名或密码错误,请重新登录!");
}
}
class ReWrite implements ActionListener{
public void actionPerformed(ActionEvent e)
{
f1.setText("");
f2.setText("");
f1.requestFocus();
}
}
class Close implements ActionListener{
public void actionPerformed(ActionEvent e)
{
JButton bt=(JButton)e.getSource();
if(bt==b3){
System.exit(0);
}
}
}
//主函数 程序开始
public static void main(String[] args) {
Login log=new Login();
log.setTitle("系统登录");
log.setBounds(200, 200, 300, 300);
log.setBackground(Color.blue);
沈阳理工大学