1、设计题目 学生信息管理系统 专业班级 计算机应用 081 班 学生姓名 学号: 指导教师 王 雷 时 佳 璐 起止日期 2010.5.312010.6.6 河南工业大学化学工业职业学院2目 录第 1 章 绪 论 .31.1 概述 .31.1.1 设计思想 .31.1.2 系统需求分析 .31.2 程序语言简介 .3第 2 章 数据库分析与设计 .52.1 数据库的分析 .52.2 数据库的设计 .5第 3 章 系统的设计与实现 .63.1 系统的设计 .63.2 系统的实现 .6第 4 章 关键技术分析 .18第 5 章 总 结 .19致谢 .20参考文献 .213第 1 章 绪 论1.1 概
2、述学习完 Java 语言程序设计后,要深入的掌握这门语言,还需要进行具体的设计来提高 Java 的编程技术,从而能在将来具体的工作中利用 Java 语言开发项目。而 Java 课程设计是在学完该课程之后的重要的实践教学环节。该实践教学是对利用 Java 语言编写程序的一个综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧等。1.1.1 设计思想认真学习课程设计任务书,了解设计的要求,再根据要求,联系所学的知识,运用 JAVA 知识,先创建数据库,然后再编写 JAVA 语句连接数据库,运用 JAVA 语句实现所需要的功能。通过建立数据库到编写程序,完成对数据库的添加,删除
3、,查询,更新等功能,最后调试运行。1.1.2 系统需求分析A. 设计题目:学生信息管理系统B. 功能需求:系统开发的总体任务是实现学生信息管理的系统化,规范化和自动化。系统功能分析是在系统开发总体任务的基础上完成的。本次设计的学生信息管理系统需要完成的功能主要有:a) 学生信息的输入,包括学生基本信息、课程信息和成绩信息等。b) 学生信息的修改、删除、统计、查询、显示,包括学生基本信息、课程信息和成绩信息等1.2 程序语言简介Java 语言是 Sun 公司于 20 世纪 90 年代初开发的。最初并不是为了用于Internet,而是作为一种小家用电器的编程语言,用来解决诸如电视机、电话、4闹钟、
4、烤面包机等家用电器的控制和通信问题,命名为 Oak。由于这些智能化家用电器的市场需求当时没有预期得高,Sun 放弃了该项计划。就在 Oak 几近夭折时,Internet 异常火爆起来。Sun 看到了 Oak 在计算机上网络上的广阔应用前景,就改造了 Oak,于是 Java 诞生了。1995 年 5 月 Sun 正式颁布了 Java。由于 Internet 上存在着巨大的商业利益,Java 是出现引起了商业界的极大兴趣。作为专业为商业用途设计的程序语言,Java 伴随着 Internet 的迅速发展而发展,逐渐成为重要的 Internet 编程语言。由于 Java 提供了强大的图形、图像、动画、
5、音频、视频、多线程及网络交互能力,使它在设计交互式、多媒体网页和网络应用程序方面大显身手,成为当今推广最快的一门计算机程序语言。5第 2 章 数据库分析与设计2.1 数据库的分析在仔细分析调查有关学生信息需要的基础上,归纳出本系统所处理的数据流程。针对一般学生信息管理系统的需求,通过对学生过程的内容和数据流程分析,设计如下面所示的数据项和数据结构。1)学生基本信息:包括的数据项有学号、姓名、性别、出生日期、民族、电话、政治面貌、健康情况、身高、专业、班级、籍贯、毕业学校、家庭住址、特长、备注。2)课程基本信息:包括的数据项有课程编号、课程名称、修课性质、考核性质、开课学期、开课单位、专业名称。
6、3)学生成绩信息:包括的数据项有学号、课程编号、成绩。2.2 数据库的设计首先通过 Access 建立一个数据库 J08101.mdb,在这个数据库中有 3 个表,编写程序与数据库 J08101.mdb 建立连接;向数据库发送 SQL Select 语句,对数据库中信息进行修改、删除、添加、查询、更新等操作;将操作后的数据显示出来,每一条记录显示在一行。设计步骤如下:1)创建数据库文件 J08102.mdb;创建表对象 stu08102、cor08102、sc08102,向表中录入数据;2)创建连接数据库 J08102.mdb 的数据源 J08102-java;6第 3 章 系统的设计与实现3
7、.1 系统的设计输入字符 x:学生基本信息 k:课程信息 c:成绩信息i:添加 添加一个新来学生的信息添加一门课程信息 给新来的这个学生登记其考试成绩s:查询 查询计算机技术专业学生信息或其他查询“信息工程系”所开的课程或者其他查询不及格的学生或其他d:删除 学生退学,删除其学生的信息删除一门课程信息 删除退学学生的所有成绩显示 对数据库信息进行任何的修改后都要输出显示数据库的信息t:统计 统计男生的人数或者其他统计选修课的开课门数或其他统计及格的学生人数或其他l:联合显示 由于 3 个表有一定的联系,可以将这 3 个表联合输出显示3.2 系统的实现import java.util.*;imp
8、ort java.sql.*;import java.io.*;public class J08102 public static void main(String args) throws IOException Connection conn= null;Statement stmt = null;PreparedStatement ps;ResultSet rs = null;char ch; try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); /声明使用的驱动程序conn=DriverManager.getConnection(“jdb
9、c:odbc:J08102-java“); 7/创建连接数据库对象 catch (Exception e) System.err.println(“OpenConn:“ +e.getMessage(); /访问数据库,输出数据库中数据System.out.println(“*学生管理系统*“);System.out.println(“请输入字符,选择对应操作的表:nx-学生基本信息 k-课程信息 c-成绩信息 q-退出 “);ch=(char)System.in.read();System.in.skip(2); /switch (ch)/学生信息表的各项操作 case x:String sq
10、lx;long xh;String xm,xb;System.out.println(“请输入字符,选择具体的操作:ni-添加 s-查询 d-删除 t-统计 l联合显示“); ch=(char)System.in.read();System.in.skip(2); switch (ch)/学生表的添加case i:System.out.println(“您选择的是对学生基本信息表的添加操作!“);byte id=new byte100;byte name=new byte100;byte sex=new byte100;byte nation=new byte100;System.out.pr
11、intln(“请输入学号“);System.in.read(id);String xid=new String(id);8System.out.println(“请输入姓名“);System.in.read(name);String xname=new String(name);System.out.println(“请输入性别“);System.in.read(sex);String xsex=new String(sex);System.out.println(“请输入民族“);System.in.read(nation);String xnation=new String(nation)
12、;try stmt=(Statement)conn.createStatement(); /创建操作 SQL 语句的对象sqlx=“insert into stu08102(id,name,sex,nation) values (?,?,?,?)“; ps=(PreparedStatement)conn.prepareStatement(sqlx);ps.setString(1,xid);ps.setString(2,xname);ps.setString(3,xsex);ps.setString(4,xnation);ps.executeUpdate();sqlx=“select * fro
13、m stu08102“;rs=stmt.executeQuery(sqlx); /创建保存 SQL 语句执行结果的对象while (rs.next() /当存在下一条记录时再次循环 System.out.println(“ 学号:“+rs.getLong(1); System.out.println(“ 姓名:“+rs.getString(2); System.out.println(“ 性别:“+rs.getString(3);System.out.println(“ 民族:“+rs.getString(5);System.out.println(); rs.close(); /关闭 Res
14、ultSet 对象stmt.close(); /关闭 Statement 对象9conn.close(); /关闭 Connection 连接对象 catch (SQLException e) System.out.print(“SQL Exception occur. Message is:“);System.out.print(e.getMessage(); break;/学生表的查询case s:System.out.println(“您选择的是对学生基本信息表的查询操作!“);try stmt=(Statement)conn.createStatement(); /创建操作 SQL 语
15、句的对象sqlx=“select * from stu08102 “; rs=stmt.executeQuery(sqlx); /创建保存 SQL 语句执行结果的对象while (rs.next() /当存在下一条记录时再次循环 System.out.println(“ 学号:“+rs.getLong(1); System.out.println(“ 姓名:“+rs.getString(2); System.out.println(“ 性别:“+rs.getString(3);System.out.println(“ 生日:“+rs.getDate(4);System.out.println(
16、“ 民族:“+rs.getString(5); System.out.println(“ 电话:“+rs.getString(6);System.out.println(“ 政治面貌:“+rs.getString(7);System.out.println(“ 健康状况:“+rs.getString(8);System.out.println(“ 身高:“+rs.getString(9);System.out.println(“ 专业:“+rs.getString(10);System.out.println(“ 班级:“+rs.getString(11);System.out.println
17、(“ 祖籍:“+rs.getString(12);System.out.println(“ 学校:“+rs.getString(13);System.out.println(“ 家庭住址:“+rs.getString(14);System.out.println(“ 特长:“+rs.getString(15);System.out.println(); rs.close(); 10/关闭 ResultSet 对象stmt.close(); /关闭 Statement 对象conn.close(); /关闭 Connection 连接对象 catch (SQLException e) Syste
18、m.out.print(“SQL Exception occur. Message is:“);System.out.print(e.getMessage(); break; /学生表的删除case d:byte buffer=new byte40;System.out.println(“您选择的是对学生基本信息表的删除操作,请输入要删除信息的学生学号“); System.in.read(buffer);String s=new String(buffer); try stmt=(Statement)conn.createStatement(); /创建操作 SQL 语句的对象sqlx= “d
19、elete from stu08102 where id=“+s; /删除记录stmt.executeUpdate(sqlx);sqlx=“select id,name from stu08102“; rs=stmt.executeQuery(sqlx); /创建保存 SQL 语句执行结果的对象 /获取每条记录中的数据信息,并显示出来while (rs.next() /当存在下一条记录时再次循环 System.out.println(“学号:“+rs.getLong(1); System.out.println(“姓名:“+rs.getString(2); System.out.println(); rs.close(); /关闭 ResultSet 对象stmt.close();