基于java教学管理系统设计(含源文件)

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye

目录
1. 系统概述    1
1.1 系统目标    1
1.2 系统主要功能    1
2. 可行性分析    2
3. 系统分析    4
3.1 组织结构分析    4
3.2 业务流程分析    4
3.3 数据字典    5
4. 代码设计    7
4.1系统所需代码    7
4.2代码结构设计    18
5. 数据库设计    20
5.1 数据库机构设计    20
5.2 数据表关系设计    21
6. 输入设计    23
6.1输入界面设计    23
6.2输入设备选择    25
6.2 菜单设计    25
7. 输出设计    26
7.1系统输出内容设计    26
7.2输出界面设计    26
8. 心得体会    27
参考文献    28

1. 系统概述
1.1 系统目标
随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。而建立管理信息系统是一个很好的解决办法。 经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系 实际的宗旨,通过学校提供的这次软件技术实践的机会,在指导教师的帮助下, 历经一周时间,我们设计一套教学管理系统,在下面的各章中,我将以这套教学管理信息系统为例,谈谈其开发过程和所涉及到的问题。
要达到的目标如下:
1、教学管理系统的开发和投入使用能节省很多人力劳动,从而可以减少不必要的人力开支。  
2、各个信息都保存在数据库中,查询速度可以大大提高。管理员修改信息也方便快捷。  
3、学生和教师的录入可以大大提高。   
4、学籍管理部门通过访问各系部门的学生学籍情况,更加方便学生学籍信息的管理。  
5、决策系统的改进使教务处可以通过各个部门查询学生信息、教师信息、学生成绩、课程安排、学生选课。
6、人员工作效率的提高由于各个工作都有明确的分工,人员的工作效率显著提高。
1.2 系统主要功能
按照模块化的设计思想,我们设计出了系统的总体框架。系统由管理员管理使用,具有学生信息管理模块、教师信息管理模块、系别信息管理模块、课程开设信息模块、学生选课功能模块、成绩统计模块。同时具备了设定数据库,访问数据库,修改数据库等多种功能,各个功能模块相互协调工作。 

2. 可行性分析
可行性分析主要从下面几个方面进行分析:
技术可行性
这个课程设计是用MyEclipse、SQL Server ,MyEclipse是为数据库结构和应用程序开发而设计的功能强大的面向对象的环境。SQL Server 一种基于客户机/服务器的RDBMS,它为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应。利用Java语言进行编码。上面这些工具和编写语言的技术目前都比较成熟,具有可行性。
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNⅨ操作系统上的应用。
MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
经济可行性
根据成本/效益分析法,本系统所需的软硬件资源都已具备,该系统简单易懂,本系统具有成本相对较低、利益高的特点,经济上可行。
操作可行性
本系统开发的开发宗旨是以便捷为中心。开发后的系统应具有美观、大方、简单、易操作等优点,即使是不懂计算机的人员也可以根据系统提示使用和管理本系统,它的操作简单的特点使本系统在操作上可行。
 
3. 系统分析
3.1 组织结构分析
本教学管理系统一共包括七个大的功能模块:


3.2 业务流程分析
业务流程图
 
说明:
1、用户请求包括:
(1)  学生基本信息管理:新生信息录入、学生信息修改、删除
(2)  系基本信息管理:系的基本信息输入、修改、删除
(3)  课程信息管理:课程信息的输入、修改、删除
(4)  教职工信息管理:教职工信息的输入、修改、删除
(5)  选课管理:学生选课信息的输入、修改、删除,学生可以同时选修一门或多门课程。一门课程可以同时为多个学生选修某一门或某几门课程。
(6)  成绩管理
按课程输入和修改成绩。
按学生输入和修改成绩。
(7)  信息查询
查询学生基本信息、教职工基本信息、系的基本信息、课程基本信息、学生成绩、内容包括课程基本情况。
2、以上的用户请求经应用程序的转化,化为对数据库中的相应的表或视图的操作,数据库再把处理的结果(或都是错误信息)返回结应用程序。
3、应用程序把结果返回给用户,该结果可能为一个对表操作的结果(如插入,删除等),也可能为一个查询的结果,甚至可能为一个错误的信息。
3.3 数据字典
根据题目的需求,教学系统主要是对学生,教职工,学院,课程,成绩等的管理。由此分析得到如下数据结构:
数据库的表结构的设计,数据项如下,表名分别为:users,  score,  department,   student,   teach_job,    course:
Users表:
属性名称    存储类型    存储长度
User_name    Char    15
Password    Char    15
Popedom    Char    10

Score表:
属性名称    存储类型    存储长度
Stu_id    Char    9
C_id    smallint    
U_score    Int    
Exam_score    int    
Total    int    


Department表:
属性名称    存储类型    存储长度
Depth_id     Smallint    
Depth_name    Char    14
Description    varchar    50

Student表:
属性名称    存储类型    存储长度
Stu_id     Char    9
S_name    char    8
Sex    char    2
birthday    Char    10
Score    int    
Depth_id    smallint    
Teacher_job表:
属性名称    存储类型    存储长度
T_id     int    
T_name    Char    8
Sex    Char    2
Birthday    Char    10
Depth_id    Smallint    
Job    Char    10
Speciality    Char    16
Direction    Char    16
Course表:
属性名称    存储类型    存储长度
C_id    Smallint    
C_name    Char    20
T_id    Int    
Period    Smallint    
Class_time    Char    10
Class_area    Char    10
Exam_time    Char    10
 
4. 代码设计
4.1系统所需代码
    登陆窗口设计源代码:
package frame;

import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.sql.SQLException;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import util.ConneJdbc;

import frame.layout.GBC;

public class EnterFrame extends JFrame{
    
    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGTH = 150;
    
    JLabel userNameL;
    JLabel passwordL;
    JTextField userNameT;
    JPasswordField passwordT;
    JButton ok;
    JButton exit;

    public EnterFrame() {
        userNameL = new JLabel("用户名:");
        passwordL = new JLabel("密码:");
        userNameT = new JTextField();
        passwordT = new JPasswordField();
        ok = new JButton("登录");
        exit = new JButton("退出");
        setTitle("系统登陆");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGTH);
        setLocation(250, 250);
        initEnter();
        addMyListener();
        this.setResizable(false);              
    }
    
    private void initEnter() {        
        GridBagLayout gridbag = new GridBagLayout();
        setLayout(gridbag);
        add(userNameL, new GBC(0,0,1,1).setWeight(1, 1));
        add(userNameT, new GBC(1,0,3,1).setFill(GBC.HORIZONTAL));
        add(passwordL, new GBC(0,1,1,1));
        add(passwordT, new GBC(1,1,3,1).setFill(GBC.HORIZONTAL));
        add(ok, new GBC(1,2,1,1).setWeight(1, 1));
        add(exit, new GBC(2,2,1,1).setWeight(1, 1));
    }
    
    private void addMyListener() {
        ok.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {                
                try {
                    enter();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }                
        });
        
        exit.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {                
                System.exit(0);
            }            
        });
    }
    
    private void enter() throws SQLException {
        String user, password;
        user = userNameT.getText();
        password = passwordT.getText();
        ConneJdbc con = new ConneJdbc();
        if(con.inTable(user, password)) {
            System.out.println("now Enter the System");
            new MainFrame();
            this.dispose();            
        }
        else JOptionPane.showMessageDialog(null, "输入的用户名或口令不正确,请重新输入!!!", "系统提示",
                JOptionPane.ERROR_MESSAGE);
    }
    
    public static void main(String[] args) {
        EnterFrame frame = new EnterFrame();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    
}
成绩管理模块源代码:
package frame;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

import javax.swing.AbstractAction;
import javax.swing.DefaultDesktopManager;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import model.ScoreData;
import util.SqlTableModel;
import util.UpdateDatebase;
//成绩管理
public class ScoreManager extends JInternalFrame {
    
    JSplitPane splitPane = new JSplitPane();
    BorderLayout borderLayout = new BorderLayout();
    GridLayout gridLayout = new GridLayout();
    FlowLayout flowLayout = new FlowLayout();
    JScrollPane scrollPane = new JScrollPane();
    JPanel panel_1 = new JPanel();
    JPanel panel_2 = new JPanel();
    JTable table = new JTable();
    SqlTableModel tablemodel;    
    JLabel s_nameL = new JLabel("学生名");
    JLabel c_nameL = new JLabel("课程名");
    JLabel u_scoreL = new JLabel("平时成绩");
    JLabel e_scoreL = new JLabel("考试成绩");
    JLabel t_scoreL = new JLabel("总评成绩");
    JTextField s_nameT = new JTextField();
    JTextField c_nameT = new JTextField();
    JTextField u_scoreT = new JTextField();
    JTextField e_scoreT = new JTextField();
    JTextField t_scoreT = new JTextField();
    JButton insertB = new JButton("增加");
    JButton updateB = new JButton("修改");
    JButton searchB = new JButton("查询");
    JButton deleteB = new JButton("删除");
    JButton clearB = new JButton("清空");
    JButton exitB = new JButton("退出");
    
    ScoreData data = new ScoreData();    

    public ScoreManager() {
        init();
        setVisible(true);
        setDefaultCloseOperation(JInternalFrame.EXIT_ON_CLOSE);
    }

    private void init() {
        setLayout(borderLayout);
        setSize(550, 440);
        setClosable(true);
//        buildTable();        
        
        add(splitPane, BorderLayout.CENTER);
        splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
        splitPane.add(scrollPane, JSplitPane.TOP);
        scrollPane.getViewport().add(table);
        splitPane.add(panel_2, JSplitPane.BOTTOM);
        
        
//        buildTable();

        gridLayout.setColumns(2);
        gridLayout.setRows(3);
        panel_2.setLayout(gridLayout);
        
             
        panel_2.add(s_nameL);
        panel_2.add(s_nameT);
        panel_2.add(c_nameL);
        panel_2.add(c_nameT);
        panel_2.add(u_scoreL);
        panel_2.add(u_scoreT);
        panel_2.add(e_scoreL);
        panel_2.add(e_scoreT);
        panel_2.add(t_scoreL);
        panel_2.add(t_scoreT);
        
        panel_1.setLayout(flowLayout);
        add(panel_1, BorderLayout.SOUTH);
        panel_1.add(insertB);
        panel_1.add(updateB);
        panel_1.add(searchB);
        panel_1.add(deleteB);
        panel_1.add(clearB);
        panel_1.add(exitB);
        splitPane.setDividerLocation(250);
 
        buildTable();
        
        insertB.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {
                setSM();            
            }            
        });
        
        updateB.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {
                update();                
            }            
        });
        searchB.addActionListener(new AbstractAction() {
                 public void actionPerformed(ActionEvent arg0) {          
                     search();                
                 }            
             });
        deleteB.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {
                delete();                
            }            
        });
        clearB.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {
                 s_nameT.setEditable(true);
                 c_nameT.setEditable(true);
                setBlank();                
            }            
        });
        exitB.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent arg0) {
                DefaultDesktopManager manger = new DefaultDesktopManager();
                manger.closeFrame(ScoreManager.this);
            }            
        });
        table.addMouseListener(new MouseAdapter() {             
            public void mouseClicked(MouseEvent e) { 
                if(table.getValueAt(getRow(),0)!=null)
                {
                    updateInit();
                }
               }
             });
        
    }

    public void buildTable() {
        String sql = "select s_name,c_name,u_score,exam_score,total " +
                "from score,student,course " +
                "where score.stu_id=student.stu_id " +
                "and score.c_id=course.c_id";
        
//        tablemodel.addTableModelListener(table);
        String[] name = { "学生名", "课程名", "平时成绩","考试成绩","总评成绩" };
        tablemodel = new SqlTableModel(sql, name);
        table.setModel(tablemodel);        
    }
    private void setBlank(){
        c_nameT.setText("");
        e_scoreT.setText("");
        s_nameT.setText("");
        t_scoreT.setText("");
        u_scoreT.setText("");
    }
    private int getRow(){
        return table.getSelectedRow();
    }
    private void updateInit(){                  
        int Row=getRow();
        String S_name= (String)tablemodel.getValueAt(Row,0);
        String C_name =(String)tablemodel.getValueAt(Row,1);
        int u_score=(Integer)tablemodel.getValueAt(Row,2);
        int e_score=(Integer)tablemodel.getValueAt(Row,3);
        int total=(Integer)tablemodel.getValueAt(Row,4);
        s_nameT.setText(S_name);
        c_nameT.setText(C_name);
        s_nameT.setEditable(false);
        c_nameT.setEditable(false);
        u_scoreT.setText(""+u_score);
        e_scoreT.setText(""+e_score);
        t_scoreT.setText(""+total);
    }
    private void setSM() {    
        s_nameT.setEditable(true);
        c_nameT.setEditable(true);
        data.setS_name(s_nameT.getText().trim());
        data.setC_name(c_nameT.getText().trim());
        data.setU_score(Integer.parseInt(u_scoreT.getText().trim()));
        data.setExam_score(Integer.parseInt(e_scoreT.getText().trim()));
        data.setTotal(Integer.parseInt(t_scoreT.getText().trim()));
        
        UpdateDatebase scoreM = new UpdateDatebase();
        try {
            scoreM.insert(data);
        } catch (SQLException e) {            
            e.printStackTrace();
        }
        buildTable();
        setBlank();
    }
    private void update() {                                
        int Row=getRow();
        String s_name= (String)tablemodel.getValueAt(Row,0); 
        String c_name=(String)tablemodel.getValueAt(Row, 1);
        data.setU_score(Integer.parseInt(u_scoreT.getText().trim()));
        data.setExam_score(Integer.parseInt(e_scoreT.getText().trim()));
        data.setTotal(Integer.parseInt(t_scoreT.getText().trim()));
        UpdateDatebase scoreM = new UpdateDatebase();
        try {
            scoreM.update(data,s_name,c_name);
        } catch (SQLException e) {            
            e.printStackTrace();
        }
        buildTable();
        setBlank();
        s_nameT.setEditable(true);
        c_nameT.setEditable(true);
    }
    private void search(){
        String S_name=s_nameT.getText().trim();
        String C_name=c_nameT.getText().trim();
        UpdateDatebase sea= new UpdateDatebase();
        try {
            data=sea.search(S_name, C_name);
            System.out.println(S_name);
            System.out.println(C_name);
        } catch (SQLException e) {
            e.printStackTrace();
        }
//        s_nameT.setText(S_name);
//        c_nameT.setText(C_name);
        u_scoreT.setText(""+data.getU_score());
        e_scoreT.setText(""+data.getExam_score());
        t_scoreT.setText(""+data.getTotal());
     }    
    private void delete() {
        int Row=getRow();
        String s_name = (String)tablemodel.getValueAt(Row, 0);
        data.setS_name(s_name);        
        String c_name= (String)tablemodel.getValueAt(Row,1);
        data.setC_name(c_name);
        
//        System.out.println(stu_id + c_id);
        UpdateDatebase sm= new UpdateDatebase();
        try {
            sm.delete(data, data.getStu_id(), data.getC_id());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        buildTable();
        setBlank();
    }    
}
连接数据库:
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

public class ConneJdbc {
    protected static Connection connection = null;
    private Connection con = null;
    private ResultSet rs = null;
    private ResultSetMetaData rsmd = null;

    public ConneJdbc() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            connection = DriverManager.getConnection(
                            "jdbc:sqlserver://localhost:1433;DatabaseName=teach",
                            "sa", "123456");
            
            System.out.println("数据库操作成功,祝贺你");
        } catch (java.lang.ClassNotFoundException classnotfound) {
            classnotfound.printStackTrace();
        } catch (java.sql.SQLException sql) {
            sql.printStackTrace();
        }
    }
    
    public Connection getCon() {
        return connection;
    }

    public Vector selectSql(String sql) {
        Vector vdata = new Vector();
        try {
            rs = connection.prepareStatement(sql).executeQuery();
            rsmd = rs.getMetaData();
            while (rs.next())
                vdata.addElement(rs.getObject(1));
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return vdata;
    }
    
    public String selectOne(String sql) {

        ResultSet rs = null;
        ResultSetMetaData rsmd = null;
        try {
            rs = connection.prepareStatement(sql).executeQuery();
            
            rsmd = rs.getMetaData();
            if (rs.next())
                return (String)rs.getObject(1);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return null;
    }
    
    
    public boolean inTable(String user, String pa) throws SQLException {
        Statement stmt = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql = "select password from users " +
                "where user_name='" + user +"' and password='"
                + pa + "'";
        
        rs = connection.prepareStatement(sql).executeQuery();
        if(rs.next())return true;
        else return false;       
    }
    public static void main(String[]args){
        new ConneJdbc();
    }
}
4.2代码结构设计
代码结构截图:
 
 
5. 数据库设计
5.1 数据库机构设计
整体的E-R图
 
E-R图

1、    创建数据库的对象: create database teach;
2、    创建表的过程如下:
create table users(user_name varchar(15) not null,
password varchar(15),
type char(10) null); 
create table department(depth_id smallint primary key, depth_name char(14),
discription varchar(50));
create table teach_job(t_id int primary key, t_name char(8), sex char(2),
birthday char(10),
depth_id smallint foreign key references department(depth_id),
job char(10), speciality char(16), direction char(16));
create table course(c_id smallint primary key, c_name char(16) not null,
t_id int foreign key references teach_job(t_id), credit smallint,
period smallint, class_time char(10),
class_area char(10), exam_time char(10);
create table student(stu_id char(6) primary key, s_name char(8),
birthday char(10),  score int,
depth_id smallint foreign key references department(depth_id));
create table score(stu_id char(6), c_id smallint, u_score int, exam_score int,
total int,  primary key(stu_id,c_id));

5.2 数据表关系设计
关系模型的设计:
学生(学号、姓名、性别、出生日期、入学成绩、所在系号、密码)
教师(职工号、姓名、性别、出生年月、所在系号、职称、专业及教学方向)
系(系号、系名称、系的简介)
课程(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)
成绩(学号、课程号、平时成绩、考试成绩、总评成绩)
拥有(学号、系号)
属于(职工号、系号)
讲授(职工号、课程号、上课时间)
选修(学号、课程号、上课时间)
用户子模式
 
成绩视图(学号、学生姓名、教师号、教师姓名、课程号、上课时间、课程名、
平时成绩、考试成绩、总评成绩、)
选课视图(学号、课程号、上课时间、平时成绩、考试成绩、总评成绩、课程名、学时、学分)
统计视图(课程号、上课时间、课程名称、任课教师号、学时、学分、上课地点、考试时间、学号、学生姓名、学生性别、平时成绩、考试成绩、总评成绩)
安全性
安全性的实现主要是通过应用程序来实现,在程序中设定一个检查用户名和密码的机构,用户要进入系统就先要输入授权了的用户名和密码方能进入。


 
6. 输入设计
6.1输入界面设计
1.用户登陆界面:
 
2.学生信息输入界面:
 


3.课程录入界面:
 

4.成绩录入截图:
 

6.2输入设备选择
键盘、鼠标

6.2 菜单设计
菜单设计截图:
 
7. 输出设计
7.1系统输出内容设计
学生的选课成绩可以汇总生成一个成绩单,以一个大表的形式供用户查看。
7.2输出界面设计
学生总成绩表输出界面截图:
 


 
8. 心得体会
作平时课程设计做的不多。在做课程设计的时候,有点不知所措,不知道从哪里着手,拿教学管理系统个设计来说.用到的所学的知识很全面, 综合了我们本学期所学到的和要掌握的重点,在做学生管理系统时,查阅了相关的网络,借鉴了别人好的方法,从而顺利的完成了这个设计.老师上课讲的知识点,一定要掌握好以外,课外也要多去实践.多复习所学的知识,课外多看书,基础很重要,否则到了最后,手忙脚乱。
通过这次课程设计,我们了解到java也是可以分工合作的,虽然最后的整合过程非常麻烦,但是在整合完后,我们发现,课本被翻过很多遍,很多以前不知道的东西就这样豁然开朗了。我们还引用了很多从来没有用过的语句块,大多是从网上找到,然后自己整合进入代码,再实现我们想要的功能。 
编程是个艰难的过程,很多功能语句都需要上网或者是查其他书籍来查看他们的用法,课本上的东西对我们来说远远不够,我们要把目光放长远一些。 
这次的课程设计使我对JAVA的许多东西都有了更深一步的了解,以前对自己的要求是看得懂就行,现在才发现,光能看懂是远远不够的,能看懂并不代表你会!只有自己真的亲身体验到了,才会知道。 
这个礼拜的课程设计是这个学期最累的一个礼拜,但是,我们的付出总算有回报,虽然我们的计算器可能还存在不少的问题,但是,至少它可以正常运行四则运算,基本达到了我们预期的要求,所以,这个礼拜同样是我最充实的一个礼拜。 
参考文献
    《Java程序设计实践教程》颜志军 栾媛媛. 清华大学出版社
    《数据库系统概论》(第四版)王珊 萨师煊 高等教育出版社
 

猜你喜欢

转载自blog.csdn.net/weixin_55459367/article/details/114379766