数据库应用技术 高考成绩查询系统

  • 格式:doc
  • 大小:145.00 KB
  • 文档页数:17

辽宁工业大学设计专题说明书(论文)辽宁工业大学数据库应用技术课程设计(论文)题目:高考成绩查询院(系):软件学院专业班级:学号:学生姓名:指导教师:***教师职称:助教起止时间:2014.11.17至2014.11.30设计任务及评语院(系):软件学院教研室:软件教研室1目录第1章设计目的与要求 (1)1.1 设计目的 (1)1.2 设计环境 (1)1.3 主要参考资料 (1)1.4 设计内容与要求 (1)第2章设计内容 (3)2.1数据库设计 (3)2.1.1需求分析 (3)2.1.2 概念设计 (3)2.1.3 逻辑设计 (4)2.1.4物理设计 (4)2.1.5数据库实现 (5)2.2 程序设计 (5)2.2.1概要设计 (5)2.2.2 程序实现 (6)第3章设计总结 (16)参考资料 (17)第1章设计目的与要求1.1设计目的《SQL Server 2000 数据库应用系统开发技术》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《SQL Server 2000 数据库应用系统开发技术》课程后,进行的一次全面的综合训练,SQL Server 2000 数据库应用系统开发技术的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2设计环境硬件要求能运行Windows 9.X操作系统的微机系统。

SQL Server 2000 数据库应用系统开发技术及相应的集成开发环境,SQL Server 2000 数据库应用系统开发工具和Visual Basic6.0程序设计开发工具。

1.3主要参考资料1.《管理信息系统》黄梯云高等教育出版社2.《数据库系统概论》萨师煊高等教育出版社3.《SQL Server 2000 数据库应用系统开发技术》朱如龙编,机械工业出版社。

4.《SQL Server 2000 数据库应用系统开发技术实验指导》朱如龙编,机械工业出版社1.4设计内容及要求一、内容1.要求根据管理信息系统及数据库设计原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。

2.需求分析具体实际,数据流图、数据字典、关系模型要正确规范3.在sql server2000 上实现设计的数据库模型。

4.对应用程序进行概要设计。

5.用VB实现简单的应用程序编写。

二、要求设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。

正确地完成上述内容,规范完整地撰写出课程设计报告。

第2章设计内容2.1数据库设计2.1.1需求分析高考成绩的统计和查询工作是非常重要的。

高考成绩是面向的是全国范围内的考生,它涉及的面比较广、数据量大,如果在设计上出现什么问题,都会在社会上产生巨大的影响。

在这里我们只是简单地做一个高考成绩查询和统计的一个小系统,并没有考虑安全性等方面的的问题,主要目的是通过这个课程设计的学习,对用JAVA开发数据库系统有更为深刻的认识。

本系统以Java Eclipse为开发平台,选择了易学易用可java图形界面开发编程语言,主要用到了swing、awt、sql三个类包,结合单位实际,利用软件工程化思想和方法,总体上用结构化生命周期法进行系统分析和设计,采用快速原型法来实现系统。

在程序设计与调试上采用了自上而下、逐步细化,逐步完善的原则。

采用结构化的功能模块设计系统功能,可读性好,易于扩充。

系统由考生基本信息添加、考生基本信息查询、考生成绩信息插入、考生成绩信息查询及学籍管理系统退出系统等功能模块组成,基本功能较全面。

本系统用户界面友好、清晰、操作简便,易学易用;系统可读性好,易于维护、更新,安全性较好。

本系统采用传统下拉菜单功能选择,方便、快捷、一目了然,并且在一个窗体中进行操作,每个功能界面颜色不同,这样可使系统可视化性比较强。

对考生的基本信息进行简单操作,可按学号进行查询、修改、删除操作。

本系统采用链入数据库进行存储,可动态进行查看、操作,这样的系统可修改性较强。

2.1.2概念设计由需求分析的结果可知,本系统设计的实体包括:(1)考生基本信息:准考证号,姓名,毕业前学校。

(2)科目基本信息:科目序号,数学,英语,语文,物理,化学,政治,历史。

这些实体的关系可以用系统E-R图表示:图2.1高考成绩查询系统E-R图2.1.3逻辑设计下面列出几个主要的数据库表设计:由系统E—R图转化而得到的关系模式如下:(1)考生(准考证号,姓名,考前学校),其主关键字为准考证号;(2)科目(科目序号,数学,英语,语文,物理,化学,政治,历史),其中主关键字为科目序号;(3)成绩(科目序号,准考证号,分数)其中主关键字为准考证号和科目序号。

可以与考生关系模式合并为:考生(准考证号,姓名,成绩,科目序号)。

2.1.4物理设计表2.1 Student_Inf信息表2.1.5 数据库实现给gaokao数据库的student_Inf表上创建一个cardID_index的唯一性聚簇索引,索引的关键字为cardID,升序,填充因子50%。

USE gaokaoGOCREATE UNIQUE CLUSTERED INDEX cardID_indexON student_Inf(cardID ASC)WITHFILLFACTOR=502.2程序设计2.2.1概要设计高考成绩管理模块主要实现以下功能:(1)登入身份。

高考管理系统的登入有两种身份:管理员和考生。

如果是管理员则需通过输入正确密码方可成功登入系统后台对数据库进行操作,如果是考生可以直接通过准考证号查询成绩。

(2)高考成绩录入。

高考成绩录入包括成绩的添加、修改、编辑和自动统计等功能。

目前高考主要包括两个方面:文科和理科。

文科成绩录入和理科成绩录入分别是两个不同的模块。

(3)高考成绩查询。

成绩查询也分为理科查询和文科查询两个部分,成绩查询部分最好是应用准考证查询,这是因为准考证号是全国统一的,每个考生只有一个准考证号,这样就避免了同名同姓出现查询重复的。

在这个系统中,包含4个基本模块:理科成绩录入、理科成绩查询、文科成绩录入和文科成绩查询。

其中,理科成绩录入和文科成绩录入、理科成绩查询和文科成绩查询两个模块的设计思想基本一致。

(4)建立理(文)科成绩录入和查询界面。

建立一个理科数据库表,用来记录准考证号(这个作为数据库表的主键,惟一标识)、考生考号和姓名、毕业学校以及各科目分数。

建立一个文科数据库表,用来记录准考证号(这个作为数据库表的主键,惟一标识)、考生考号和姓名、毕业学校以及各科目分数。

其中,理科文科的界面设计比较相似。

(5)本系统查询与成绩设计。

系统设计要求在考生查询的同时自动进行统计工作,这是一种人性化的需求,统计和查询只需要一个事件代码和一个执行动作即可完成。

功能结构图如下:图2.2 功能结构图2.2.2程序实现一、登陆窗口如下所示:考生和管理员登录窗口:五、文科生管理:文科生成绩插入:图 2.3 插入文科生成绩窗口文科生成绩查询:图2.4查询文科生成绩窗口代码如下:数据库的连接:import java.sql.*;public class DBceshi {public ResultSet GetData(String sql){String strcon="jdbc:sqlserver://127.0.0.1\\SQLEXPRESS:1433;DatabaseName=gaokao;";try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn=DriverManager.getConnection(strcon,"dong","123456");Statement st=conn.createStatement();return st.executeQuery(sql);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}public boolean UpdateData(String sql){String strcon="jdbc:sqlserver://127.0.0.1\\SQLEXPRESS:1433;DatabaseName=gaokao;";try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn=DriverManager.getConnection(strcon,"dong","123456");Statement st=conn.createStatement();int i=st.executeUpdate(sql);if(i>0){return true;}else{return false;}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return false;}}public static void main(String[] args){DBceshi db=new DBceshi();ResultSet rs=db.GetData("select * from student_Inf");try {while(rs.next()){System.out.println(rs.getString("studentName"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}登录界面代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.sql.*;class Dl12 extends Frame implements ActionListener,ItemListener {Box basebox,boxv1,boxv2;Label label1=new Label("用户登录");Label label3=new Label("账号:");Label label4=new Label("密码:");TextField text1=new TextField(12);TextField text2=new TextField(12);CheckboxGroup sex=new CheckboxGroup(); Checkbox box1=new Checkbox("考生",true,sex); Checkbox box2=new Checkbox("管理员",false,sex); Button button1=new Button("登录");Button button2=new Button("取消");Button button3=new Button("管理员登录");Panel panel1=new Panel();Dl12(String s){super(s);add(label1,BorderLayout.NORTH);boxv1=Box.createVerticalBox();boxv1.add(label3);boxv1.add(Box.createVerticalStrut(8));boxv1.add(label4);boxv1.add(Box.createVerticalStrut(8));boxv1.add(box1);boxv2=Box.createVerticalBox();boxv2.add(text1);boxv2.add(Box.createVerticalStrut(8));boxv2.add(text2);boxv2.add(Box.createVerticalStrut(8));boxv2.add(box2);basebox=Box.createHorizontalBox();basebox.add(boxv1);basebox.add(Box.createHorizontalStrut(10)); basebox.add(boxv2);panel1.add(basebox);add(panel1,BorderLayout.CENTER);add(button1);add(button3);add(button2);setLayout(new FlowLayout());box1.addItemListener(this);box2.addItemListener(this);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);setBounds(500,200,200,200);setVisible(true);validate();addWindowListener(new WindowAdapter(){public void windowActivated(WindowEvent e){}public void windowClosing(WindowEvent e){System.exit(0);}});}public void itemStateChanged(ItemEvent e){}public void actionPerformed(ActionEvent e1){String name=text1.getText();String mima=text2.getText();if(e1.getSource()==button1){DBceshi db=new DBceshi();String con="SELECT*FROM student_Inf WHERE cardID="+"'"+name+"'";ResultSet rs=db.GetData(con);try {if(rs.next()){Zhujiemian zhu=new Zhujiemian("高考成绩查询");zhu.setVisible(true);this.dispose();}else{text1.setText(null);text2.setText(null);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}this.dispose();}if(e1.getSource()==button2){System.exit(0);}if(e1.getSource()==button3){if(name.equals("李玉东")&&mima.equals("101406065")){ setVisible(false);Zhujiemian zhu=new Zhujiemian("高考成绩查询"); zhu.setVisible(true);this.dispose();}else{text1.setText(null);text2.setText(null);}}}}public class Dl1 extends WindowAdapter{public static void main(String args[]){Dl12 win=new Dl12("用户登录");}}第3章设计总结为了使我们较快的适应社会的发展的需要,老师为我们提供了一系列综合性、适用性较强的毕业设计课题,从而使之成为我们了解社会需求,应用知识的实践课题。