学生成绩管理系统课程设计报告

更新时间:2024-02-29 13:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

攀枝花学院

学生课程设计(论文)

题 目: 学生信息管理系统 学生姓名: 王 东 林 学 号: 201210803035 所在院(系): 数学与计算机学院 专 业: 网络工程 班 级: 网络工程1班 指 导 教 师: 欧方平 职称: 讲师

2014年 12 月 8 日

攀枝花学院本科学生课程设计任务书

题 目 学生信息管理系统 1、课程设计的目的 使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现;把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。 2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等) (1) 用户管理:系统分为管理员、教师及学生用户,每类用户对数据具有不同的操作权限。 (2)学生基本信息管理:对学生的学号、姓名、性别等基本信息的录入、修改和删除。 (3)学生奖惩信息管理 (4)各类信息的查询:按简单条件和复合条件对各类信息进行查询。 (5)学生信息的统计:自己设计统计条件对学生信息进行统计。 3、主要参考文献 [1]张莉 《SQL SEVER数据库原理及应用 》 [2]萨师煊 王珊著.《数据库系统概论》第三版.高等教育出版社 [3] 施伯乐 丁宝康 汪卫.《数据库系统教程》 高等教育出版社2003年第2版 [4]庄成三等.《数据库系统原理及其应用》.电子工业出版社 4、课程设计工作进度计划 第1天 :选题、完成需求分析 第2天 :数据库概念结构设计 第3天:数据库逻辑结构设计及物理实现 第4天:应用程序开发 第5天: 程序调试分析和结果、编写课程设计报告 指导教师(签字) 教研室意见: 年 月 日 日期 年 月 日 学生(签字): 接受任务时间: 年 月 日 注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表 题目名称 评分项目 工作 表现 20% 01 02 03 04 05 06 07 08 学习态度 科学实践、调研 课题工作量 综合运用知识的能力 应用文献的能力 设计(实验)能力,方案的设计能力 计算及计算机应用能力 对计算或实验结果的分析能力(综合分析能力、技术经济分析能力) 插图(或图纸)质量、篇幅、设计(论文)规范化程度 设计说明书(论文)质量 创新 学生信息管理系统 分值 6 7 7 10 5 5 5 10 得分 评价内涵 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。 按期圆满完成规定的任务,工作量饱满。 能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。 能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。 能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。 具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。 具有较强的数据收集、分析、处理、综合的能力。 能力 水平 35% 成果 质量 45% 09 10 11 5 30 10 符合本专业相关规范或规定要求;规范化符合本文件第五条要求。 综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。 对前人工作有改进或突破,或有独特见解。 成绩 指导教师评语 指导教师签名: 年 月 日

摘 要

随着教育的不断普及,各个学校的学生人数也越来越多。创痛的管理方式并不能适应时代的发展。为了提高管理效率,减少学校开支,使用软件管理学生信息已成为必然。本学生信息管理系统是基于Java EE与SQL server 2008数据库技术建立的一个系统,使用了Swing、IDBC技术连接数据库、javabean等技术,该系统提供了查询、修改、增加记录、删除等功能,功能比较落齐全,基本上能满足学校的需求。

关键词: 学生信息管理,SQLSERVER,JAVA EE, JavaBean

目录

摘 要 .............................................................................................................................................. 0 第一章 绪 论 ................................................................................................................................. 1

1.1 设计目的 ............................................................................................................................ 1 1.2 开发工具选择 .................................................................................................................... 1 1.3 开发环境 ............................................................................................................................ 1 1.4 本报告的主要内容 ............................................................................................................ 1 第二章 需求分析 ............................................................................................................................. 2

2.1系统需求简介 .................................................................................................................... 2

2.1.1系统目标 .................................................................................................................. 2 2.1.2功能需求分析 .......................................................................................................... 2 2.1.3性能需求分析 .......................................................................................................... 2

第三章 总体设计 ............................................................................................................................. 3

3.1设计概述 ............................................................................................................................. 3 3.2系统总体结构及功能模块划分 ......................................................................................... 3 3.3系统数据库概念结构设计 ................................................................................................. 3

3.3.1系统E-R图 ............................................................................................................ 3 3.3.2系统数据库的设计 ................................................................................................ 4 3.4安全保密设计 ..................................................................................................................... 6

3.4.1用户登录安全性 ...................................................................................................... 6

第四章 详细设计 ............................................................................................................................. 7

4.1概述 ..................................................................................................................................... 7 4.2系统程序流程图 ................................................................................................................. 7 4.3系统主要功能模块简介 ..................................................................................................... 8

4.3.1系统登录 .................................................................................................................. 8 4.3.2参数设置模块 .......................................................................................................... 8 4.3.3基本信息模块 .......................................................................................................... 9 4.3.4系统查询模块 ........................................................................................................ 12 4.3.5系统管理模块 ........................................................................................................ 13

第五章 主要功能模块代码 ........................................................................................................... 15

5.1 公共类代码设计(数据的增删查改) .......................................................................... 15 5.2 登录界面代码设计 .......................................................................................................... 22 第六章 结束语 ............................................................................................................................... 26 第七章 参 考 文 献 ..................................................................................................................... 27

表3.3.8用户表(tb_user)

3.4安全保密设计

3.4.1用户登录安全性

系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。

6

第四章 详细设计

4.1概述

详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

4.2系统程序流程图

程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。

图4.2.1系统总体流程图

7

4.3系统主要功能模块简介

4.3.1系统登录

用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面

如图4.3.1 用户登录界面所示。

图4.3.1 用户登录界面

4.3.2参数设置模块

参数设置:主要功能为添加年级信息、班级信息、考试科目、考试类别等系

统信息。

图4.3.2 程序主界面

8

图4.3.3 详细信息窗口

4.3.3基本信息模块

基本信息:通过程序主界面的相应记录弹出的上下文菜单可对实现学生基本信息

的添加与删除如图4.34,实现教师基本信息的添加删除如图4.35,实现成绩的录入与删除如图3.46.

图4.3.4 学生基本信息添加、删除

图4.3.5 教师信息添加、删除窗口

11

图4.3.6 考试成绩录入删除窗口

4.3.4系统查询模块

系统查询模块:该模块包含三个功能块分别是:基本信息查询,成绩信息查询,汇总查询。基本信息查询可实现学生基本信息查询与老师基本信息查询,成绩信息查询可实现学生成绩查询,汇总查询可实现年级学生信息查询。

图4.3.7 学生基本信息查询窗口

12

图4.3.8教师基本信息查询窗口

图4.3.8学生成绩查询窗口

4.3.5系统管理模块

系统管理模块:该模块包含两个功能块分别是用户管理与系统退出。用户管理实现新用户的添加与旧用户的删除功能,退出系统实现系统的退出。

13

图4.3.9用户的添加删除询窗口

图4.3.9系统退出提示窗口

14

第五章 主要功能模块代码

5.1 公共类代码设计(数据的增删查改)

package appstu.util;

import java.sql.Connection; import java.sql.DriverManager;

public class CommonaJdbc {

public static Connection conection = null;

public CommonaJdbc() { getCon(); }

private Connection getCon() { try {

Class.forName(\ conection

DriverManager.getConnection(\\

} catch (java.lang.ClassNotFoundException classnotfound) { classnotfound.printStackTrace(); } catch (java.sql.SQLException sql) {

new appstu.view.JF_view_error(sql.getMessage()); sql.printStackTrace(); }

return conection; } }

package appstu.util;

import java.sql.Connection;

import java.sql.PreparedStatement; import java.sql.Statement;

import javax.swing.JOptionPane;

15

= \

import appstu.model.Obj_classinfo; import appstu.model.Obj_examkinds; import appstu.model.Obj_gradeinfo; import appstu.model.Obj_gradeinfo_sub; import appstu.model.Obj_student; import appstu.model.Obj_subject; import appstu.model.Obj_teacher; import appstu.model.Obj_user; import appstu.view.JF_view_error;

public class JdbcAdapter {

private Connection con = null; private Statement stmt = null;

private PreparedStatement pstmt = null; private String infoStr = null;

public boolean BuildeDeleteTempView(String sqlState) { boolean flag = false;

System.out.println(\执行的语句为:\ try {

con = CommonaJdbc.conection;

pstmt = con.prepareStatement(sqlState); pstmt.execute(); flag = true;

} catch (java.sql.SQLException sql) { flag = false;

sql.printStackTrace(); }

return flag; }

// 真正的执行对数据库的各种操作

private boolean AdapterObject(String sqlState) { boolean flag = false; try {

con = CommonaJdbc.conection; // 获取数据库连接

pstmt = con.prepareStatement(sqlState); // 获取PreparedStatement实例 pstmt.execute(); // 执行该SQL语句 flag = true; // 将标识量修改为true

JOptionPane.showMessageDialog(null, infoStr + \数据成功!!!\系统提示\JOptionPane.INFORMATION_MESSAGE); // 弹出相应提示对话框

} catch (java.sql.SQLException sql) { flag = false;

16

sql.printStackTrace(); }

return flag; // 将标识量返回 }

// 执行删除数据表中的数据

public boolean DeleteObject(String deleteSql) { infoStr = \删除\

return AdapterObject(deleteSql); }

// 验证数据表中是否存在数据

private boolean validateID(String id, String tname, String idvalue) { String sqlStr = null;

sqlStr = \定义SQL语句

try {

con = CommonaJdbc.conection; // 获取数据库连接

pstmt = con.prepareStatement(sqlStr); // 获取PreparedStatement实例 java.sql.ResultSet rs = null; // 获取ResultSet实例 rs = pstmt.executeQuery(); // 执行SQL语句 if (rs.next()) {

if (rs.getInt(1) > 0) // 如果数据表中有值 return true; // 返回true值 }

} catch (java.sql.SQLException sql) { // 如果产生异常 sql.printStackTrace(); // 输出异常 return false; // 返回false值 }

return false; // 返回false值 }

public boolean InsertOrUpdateObject(Obj_gradeinfo objgradeinfo) { String sqlStatement = null;

if (validateID(\ sqlStatement = \tb_gradeinfo set gradeID = '\+ objgradeinfo.getGradeID() + \

+ \ infoStr = \更新年级\ } else {

sqlStatement = \tb_gradeinfo(gradeID,gradeName) values ('\+ objgradeinfo.getGradeID() + \

infoStr = \添加年级\ }

17

System.out.println(sqlStatement); return AdapterObject(sqlStatement); }

public boolean InsertOrUpdateObject(Obj_classinfo objclassinfo) { String sqlStatement = null;

if (validateID(\

sqlStatement = \tb_classinfo set className = '\+ objclassinfo.getClassName() + \

+ \

infoStr = \更新班级\ } else {

sqlStatement = \tb_classinfo(classID,gradeID,className) values ('\+ objclassinfo.getClassID() + \

+ objclassinfo.getClassName() + \ infoStr = \添加班级\ }

System.out.println(sqlStatement); return AdapterObject(sqlStatement); }

public boolean InsertOrUpdateObject(Obj_subject objsubject) { String sqlStatement = null;

if (validateID(\

sqlStatement = \tb_subject set code = '\+ objsubject.getCode() + \

+ objsubject.getCode().trim() + \ infoStr = \更新考试科目\ } else {

sqlStatement = \tb_subject(code,subject) values ('\+ objsubject.getCode() + \

infoStr = \添加考试科目\ }

return AdapterObject(sqlStatement); }

public boolean InsertOrUpdateObject(Obj_examkinds objexamkinds) {

18

String sqlStatement = null;

if (validateID(\

sqlStatement = \tb_examkinds set KindID = '\+ objexamkinds.getKindID() + \

+ \

infoStr = \更新考试类别\ } else {

sqlStatement = \tb_examkinds(KindID,KindName) values ('\+ objexamkinds.getKindID() + \

infoStr = \添加考试类别\ }

return AdapterObject(sqlStatement); }

public boolean InsertOrUpdateObject(Obj_user objuser) { String sqlStatement = null;

if (validateID(\

sqlStatement = \tb_user set userid = '\+ objuser.getUserid() + \

+ \ infoStr = \更新用户\ } else {

sqlStatement = \tb_user(userid,username,pass) values ('\+ objuser.getUserid() + \

+ \

infoStr = \添加用户\ }

return AdapterObject(sqlStatement); }

// ///////////////////////////////////////////// // 产生更新存盘学生信息语句

public boolean InsertOrUpdateObject(Obj_student objstudent) { String sqlStatement = null;

if (validateID(\

sqlStatement = \\

+ objstudent.getStuname() + \= '\+ objstudent.getSex() + \

19

+ \= '\+ objstudent.getPhone() + \where stuid = '\+ objstudent.getStuid().trim() + \

infoStr = \更新学生信息\ } else {

sqlStatement = \tb_studentinfo(stuid,classid,stuname,sex,age,addr,phone) values ('\

+ objstudent.getClassID() + \objstudent.getSex() + \

+ objstudent.getAddress() + \ infoStr = \添加学生信息\ }

return AdapterObject(sqlStatement); }

// 产生更新存盘教师信息语句

public boolean InsertOrUpdateObject(Obj_teacher objteacher) { String sqlStatement = null;

if (validateID(\

sqlStatement = \tb_teacher set teaid = '\+ objteacher.getTeaid() + \

+ objteacher.getTeaname() + \= '\+ objteacher.getSex() + \

+ objteacher.getKnowlevel() + \where teaid = '\+ objteacher.getTeaid().trim() + \

infoStr = \更新教师信息\ } else {

sqlStatement = \tb_teacher(teaid,classID,teaname,sex,knowledge,knowlevel) values ('\+ objteacher.getTeaid() + \

+ objteacher.getClassID() + \objteacher.getSex() + \

+ objteacher.getKnowlevel() + \

infoStr = \添加教师信息\ }

return AdapterObject(sqlStatement); }

// 验证数据表中是否存在数据

private boolean validateobjgradeinfo(String stuid, String kindid, String code) { String sqlStr = null;

sqlStr = \

20

kindID = '\

System.out.println(sqlStr); try {

con = CommonaJdbc.conection;

pstmt = con.prepareStatement(sqlStr); java.sql.ResultSet rs = null; rs = pstmt.executeQuery(); if (rs.next()) {

if (rs.getInt(1) > 0) return true; }

} catch (java.sql.SQLException sql) { sql.printStackTrace();

new appstu.view.JF_view_error(\执行的SQL语句为:\\n\错误信息为:\

return false; }

return false; }

// 产生更新学生信息信息语句

public boolean InsertOrUpdate_Obj_gradeinfo_sub(Obj_gradeinfo_sub[] object) { try {

con = CommonaJdbc.conection; stmt = con.createStatement();

for (int i = 0; i < object.length; i++) { String sqlStr = null;

if (validateobjgradeinfo(object[i].getStuid(), object[i].getKindID(), object[i].getCode())) {

sqlStr = \+ \

+ object[i].getKindID() + \+ \

+ object[i].getExamdate() + \where stuid = '\+ object[i].getStuid() + \

+ \ } else { sqlStr = \ tb_gradeinfo_sub(stuid,stuname,kindID,code,grade,examdate) values ('\\

+ object[i].getSutname() + \

21

\

+ object[i].getExamdate() + \ }

System.out.println(\ stmt.addBatch(sqlStr); }

stmt.executeBatch();

JOptionPane.showMessageDialog(null, \学生成绩数据存盘成功!!!\\系统提示\

} catch (java.sql.SQLException sqlerror) {

new appstu.view.JF_view_error(\错误信息为:\ return false; }

return true; }

// 产生删除学生信息信息语句

public boolean Delete_Obj_gradeinfo_sub(Obj_gradeinfo_sub[] object) { try {

con = CommonaJdbc.conection; stmt = con.createStatement();

for (int i = 0; i < object.length; i++) { String sqlStr = null;

sqlStr = \From tb_gradeinfo_sub where stuid = '\+ object[i].getStuid() + \

+ object[i].getCode() + \ System.out.println(\ stmt.addBatch(sqlStr); }

stmt.executeBatch();

JOptionPane.showMessageDialog(null, \学生成绩数据数据删除成功!!!\\系统提示\

} catch (java.sql.SQLException sqlerror) {

new appstu.view.JF_view_error(\错误信息为:\ return false; }

return true; } }

5.2 登录界面代码设计

private void jbInit() throws Exception {

22

getContentPane().setLayout(borderLayout1); flowLayout1.setAlignment(FlowLayout.RIGHT); jLabel3.setForeground(Color.red);

this.setResizable(false);

this.setTitle(\系统用户登录\);

Font _MenuItemFont = new Font(\宋体\, 0, 12); jTextField1.addKeyListener(new JF_login_jTextField1_keyAdapter(this)); jPanel1.setBorder(border1);

jPasswordField1.addKeyListener(new JF_login_jPasswordField1_keyAdapter(this)); jBexit.addActionListener(new JF_login_jBexit_actionAdapter(this)); jBlogin.addActionListener(new JF_login_jBlogin_actionAdapter(this)); this.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); jTextField1.setText(\); jLabel2.setText(\密 码:\);

jLabel2.setFont(_MenuItemFont);

jLabel2.setHorizontalAlignment(SwingConstants.CENTER); jPasswordField1.setText(\); jPanel2.setLayout(flowLayout1); jBlogin.setText(\登录\);

jBlogin.setFont(_MenuItemFont); jBexit.setText(\退出\);

jBexit.setFont(_MenuItemFont); jPanel1.add(jLabel1);

jLabel1.setHorizontalAlignment(SwingConstants.CENTER); jPanel1.add(jTextField1); jPanel1.add(jLabel2);

jPanel1.add(jPasswordField1);

this.getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH); jPanel2.add(jLabel3); jPanel2.add(jBlogin); jPanel2.add(jBexit);

jLabel1.setText(\用户名:\);

jLabel1.setFont(_MenuItemFont); gridLayout1.setColumns(2); gridLayout1.setHgap(2); gridLayout1.setVgap(5);

23

gridLayout1.setRows(2);

jPanel1.setLayout(gridLayout1); this.setSize(360, 200); Dimension screenSize =

Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = this.getSize();

if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; }

if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }

this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); }

public void jTextField1_keyPressed(KeyEvent keyEvent) { if (keyEvent.getKeyCode() == KeyEvent.VK_ENTER) { String sqlSelect = null; Vector vdata = null;

sqlSelect = \ + jTextField1.getText().trim() + \;

appstu.util.RetrieveObject retrieve = new appstu.util.RetrieveObject();

vdata = retrieve.getObjectRow(sqlSelect); System.out.println(\ + vdata.size()); if (vdata.size() > 0) {

jPasswordField1.requestFocus(); } else {

javax.swing.JOptionPane.showMessageDialog(null, \输入的用户ID不存在,请重新输入!!!\, \系统提示\, javax.swing.JOptionPane.ERROR_MESSAGE); jTextField1.requestFocus(); } } }

public void jPasswordField1_keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) {

ActionEvent login = new ActionEvent(jBlogin, 0, null); jBlogin_actionPerformed(login); } }

24

public void jBexit_actionPerformed(ActionEvent e) {

int result = javax.swing.JOptionPane.showOptionDialog(null, \是否退出系统登录?\, \系统提示\, javax.swing.JOptionPane.YES_NO_OPTION, javax.swing.JOptionPane.QUESTION_MESSAGE, null, new String[] { \是\, \否\ }, \否\);

if (result == javax.swing.JOptionPane.YES_OPTION) { System.exit(0); } }

public void jBlogin_actionPerformed(ActionEvent e) { if (jTextField1.getText().trim().length() == 0 || jPasswordField1.getPassword().length == 0) {

javax.swing.JOptionPane.showMessageDialog(null, \用户密码不允许为空\, \系统提示\, javax.swing.JOptionPane.ERROR_MESSAGE); return; }

String pass = null;

pass = String.valueOf(jPasswordField1.getPassword()); String sqlSelect = null;

sqlSelect = \ + jTextField1.getText().trim() + \ + pass + \; Vector vdata = null;

appstu.util.RetrieveObject retrieve = new appstu.util.RetrieveObject();

vdata = retrieve.getObjectRow(sqlSelect);

System.out.println(vdata.size() + \ + vdata.get(0));

if (Integer.parseInt(String.valueOf(vdata.get(0))) > 0) { AppMain frame = new AppMain(); this.setVisible(false); } else {

javax.swing.JOptionPane.showMessageDialog(null, \输入的口令不正确,请重新输入!!!\, \系统提示\,

javax.swing.JOptionPane.ERROR_MESSAGE); jTextField1.setText(null);

jPasswordField1.setText(null); jTextField1.requestFocus(); return; } }

25

第六章 结束语

为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。我按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加等模块的功能。

在这短短的五天里我收获如下:

1、巩固和加深了对JAVA的理解,提高了综合运用本课程所学知识的能力。

? 使用javabean来封装对象。由于对象具有多个属性,在传递对象属

性时,单个传递容易出错,而且代码可读性差。如果使用javabean来将其封装,就能很好地解决这些问题。

? 使用窗体控件开发桌面程序。在Swing中使用控件可减少代码书写

量加快开发速度。 ? 使用JDBC操作数据库。

? 批处理技术。如果频繁使用JDBC操作数据库,会影响系统性能。使

用批处理可以一次处理大量数据,能提高性能。

2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点: 1、认真上好专业实验课,多在实践中锻炼自己。 2、写程序的过程中要考虑周到,严密。

3、在做设计的时候要有信心,有耐心,切勿浮躁。

4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。

5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。

26

第七章参 考 文 献

[1] 耿祥义,张跃平.Java面向对象程序设计.北京:清华大学出版社 [2]萨师煊 王珊著.《数据库系统概论》第三版.高等教育出版社

[3陈昊鹏,王浩等译(美)Cay S.Horstmann,Gary Comell著.Java核心技术卷Ⅰ:基础知识.机械工业出版社

[4] 陈昊鹏,王浩等译(美)Cay S.Horstmann,Gary Comell著.Java核心技术卷Ⅱ:基础知识.机械工业出版社

[5]张莉 《SQL SEVER数据库原理及应用 》

[6]陈浩鹏译.(美)BruceEckel著.Java编程思想.机械工业出版社

[7] 施伯乐 丁宝康 汪卫.《数据库系统教程》 高等教育出版社2003年第2版 [8]庄成三等.《数据库系统原理及其应用》.电子工业出版社

27

第七章参 考 文 献

[1] 耿祥义,张跃平.Java面向对象程序设计.北京:清华大学出版社 [2]萨师煊 王珊著.《数据库系统概论》第三版.高等教育出版社

[3陈昊鹏,王浩等译(美)Cay S.Horstmann,Gary Comell著.Java核心技术卷Ⅰ:基础知识.机械工业出版社

[4] 陈昊鹏,王浩等译(美)Cay S.Horstmann,Gary Comell著.Java核心技术卷Ⅱ:基础知识.机械工业出版社

[5]张莉 《SQL SEVER数据库原理及应用 》

[6]陈浩鹏译.(美)BruceEckel著.Java编程思想.机械工业出版社

[7] 施伯乐 丁宝康 汪卫.《数据库系统教程》 高等教育出版社2003年第2版 [8]庄成三等.《数据库系统原理及其应用》.电子工业出版社

27

本文来源:https://www.bwwdw.com/article/orma.html

Top