




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 概述 设计要求设计一个学生信息的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。数据查询功能数据插入功能数据修改功能块数据删除功能块数据库登录一般用户登录管理员登录数据查询界面实验环境:SQL Server 2000第二章 系统分析2.1 分析形成数据字典 数据库名称:自定义(要求为有意义的名称):StuManager数据库基本表包括:(1)管理员信息表 基本字段包括:姓名、密码表名:Admin字段类型说明IDint序号Admin_Namevarchar(256)管理员姓名Admin_Pwdvarchar(256)密码Admin_Typevarchar(256)管理员类型Create table Admin(ID int primary key not null,Admin_Name varchar(256) not null,Admin_Pwd varchar(256) not null,Admin_Type varchar(256) not null);(2)学生基本信息表基本字段包括:学号、姓名、性别、出生日期、班级、专业、系别。表名:Student字段类型说明Snovarchar(256)学号Snamevarchar(256)姓名Ssexvarchar(56)性别Sbirthvarchar(256)出生日期Sclassvarchar(256)班级Sdomvarchar(256)专业Sdeptvarchar(256)系别建表SQL语句:Create table Student(Sno varchar(256) primary key not null,Sname varchar(256) not null,Ssex varchar(56) not null,Sbirth date not null,Sclass varchar(256) not null,Sdom varchar(256) not null,Sdept varchar(256) not null);插入数据Insert into Admin values(1,admin,admin,超级管理员);Insert into Admin values(2,user1,123456,普通管理员);(3)课程信息表基本字段包括:序号、课程号、课程名、学时、学分。表名:Course字段类型说明IDInt序号Cnovarchar(256)课程号Cnamevarchar(256)课程名Cperiod Int学时CcreditInt学分Create table Course(ID int not null,Cno varchar (256) primary key not null,Cname varchar(256) not null,Cperiod int not null,Ccredit int not null);(4)成绩信息表基本字段包括:学号、课程号、课程名、成绩、补考成绩。表名:StuGrade字段类型说明IDint序号Snovarchar(256)学号Cnovarchar(256)课程号Cnamevarchar(256)课程名Gradeint成绩Resitgradeint补考成绩外键:Sno Cno分别参照表Student和CourseCreate table StuGrade(ID int primary key not null,Sno varchar(256) not null,Cno varchar(256) not null,Cname varchar(256) not null,Grade int,Resitgrade int,foreign key Cno references Course(Cno),foreign key Sno references Student(Sno);2.2概念结构设计(ER图)学生实体E-R图 学生关系E-R图老师实体E-R图教务关系E-R图2.3数据流图学生信息管理系统顶层数据图:学生信息系统零层数据流图:管理学生模块据流图:管理老师模块数据流图:选课管理与成绩管理模块数据流图:2.4逻辑结构设计 逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。设计逻辑结构一般分为3步进行:(1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。2.4.1关系模型将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体型间的联系则有以下不同的情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的侯选码。如果与某一端实体对应的关系模式合并,则需要在关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。(3)一个m:n联系转换为一个关系模式。与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(5)具有相同码的关系模式可合并。将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:学生(学号,专业号,院系号,姓名,性别,出生日期,身份证号,入学时间,政治面貌,家庭住址,籍贯,邮政编码,民族),此为学生实体对应的关系模式。教师(教工号,姓名,性别,职称,所属院系,电话),此为老师实体对应的关系模式。课程(课程号,课程名,学分),此为课程实体对应的关系模式。院系(院系号,院系名称,院长名),此为院系实体对应的关系模式。选修(学号,课程号,成绩),此为选修关系对应的关系模式。授课(课程号,教工号,课时),此为老师授课关系对应的关系模式。开设(专业号,课程号),此为专业开设课程关系对应的关系模式。2.4.2物理模型 将生成的概念模型通过单击PowerDesigner11工具菜单栏上的Tools选项,再选择Generate Physical Data Model选项,就可以转换为物理模型第三章 功能分析 数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。它相当于软件工程中的代码编写和程序调试的阶段。学生基本信息表(主要描述一些学生入学前的基本信息):学生基本信息表结构图教师(管理员)基本信息表(主要描述教师的一些基本信息):教师基本信息表结构图院系信息表(主要描述学校中各个院系的一些基本信息): 院系信息表结构图专业信息表(主要描述学生选择专业的信息):专业信息表结构图课程信息表(主要描述学校开设的课程的基本信息):图 5-5 课程信息表结构图第四章 系统实现 数据库实施阶段包括两项重要的工作,一项是数据的载入,另一项是应用程序的编码和调试。由于本次课程设计没有进行应用程序的开发,因此对于后一项工作在这里就不做描述了。具体输入的一部分数据如下图所示:输入学生基本信息:学生部分基本信息数据图输入教师(管理员)基本信息:教师基本信息数据图输入课程基本信息:课程信息数据图输入院系基本信息:院系基本信息数据图输入专业信息:专业信息数据图输入学生选课信息:学生选课信息数据图输入教师授课信息:教师授课基本信息数据图20第五章 调试过程中的问题及系统测试情况5.1调试过程中的问题1、登录窗体错误:(1)表名、数据库名不一致 (2)符号格式不对,主要指中英文半角和全角 (3)是否有空格 (4)单词写错2、添加学籍信息窗体:单词写错,注意细节3、查询成绩信息窗体程序写错,不清楚程序的意思,应该弄懂每个程序的表达和语法。5.2登陆界面:5.3登陆界面与数据库链接:/* * To change this template, choose Tools | Templates * and open the template in the editor. */package Demo;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;/* * * author Administrator */public class Login extends JFrame implements ActionListener JPanel pnlLogin; JLabel lblUserName,lblPassword,P; JButton btnLogin,btnExit; JTextField txtUserName,txtlbldl; JPasswordField pwdPassword; Dimension dsSize; Toolkit toolkit=Toolkit.getDefaultToolkit(); public Login() super(系统名); pnlLogin=new JPanel(); this.getContentPane().add(pnlLogin); pnlLogin.setLayout(null); lblUserName=new JLabel(用户名(U):); lblPassword=new JLabel(密码:); txtUserName=new JTextField(20); pwdPassword=new JPasswordField(20); btnLogin=new JButton(登录(L); btnLogin.setMnemonic(L); btnExit=new JButton(退出(X); btnExit.setToolTipText(退出系统); btnExit.setMnemonic(X); btnLogin.addActionListener(this); btnExit.addActionListener(this); Icon logol=new ImageIcon(图片1); P=new JLabel(logol); P.setBounds(0,0,315,120); pnlLogin.add(P); pnlLogin.setBackground(Color.blue); lblUserName.setBounds(10,125,90,25); txtUserName.setBounds(120,125,180,25); lblPassword.setBounds(10,155,90,25); pwdPassword.setBounds(120,155,180,25); btnLogin.setBounds(20,185,80,25); btnExit.setBounds(220,185,80,25); lblUserName.setForeground(Color.BLACK); lblUserName.setBackground(Color.WHITE); lblPassword.setForeground(Color.BLACK); lblPassword.setBackground(Color.WHITE); pnlLogin.add(lblUserName); pnlLogin.add(txtUserName); pnlLogin.add(lblPassword); pnlLogin.add(pwdPassword); pnlLogin.add(btnLogin); pnlLogin.add(btnExit); setResizable(false); setSize(315,245); setVisible(true); dsSize=toolkit.getScreenSize(); setLocation(dsSize.width/2-this.getWidth()/2,dsSize.height/2-this.getHeight()/2); Image img=toolkit.getImage(图片2); setIconImage(img); Override public void actionPerformed(ActionEvent ae) if(ae.getSource()=btnLogin) String jusername =txtUserName.getText().trim(); char s = pwdPassword.getPassword(); String jpassword = new String(s); if (jusername.equals() | jpassword.equals() JOptionPane.showMessageDialog(this, 对不起,请输入用户名或密码., 错误!,JOptionPane.ERROR_MESSAGE); else try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /System.out.println(加载驱动程序成功); catch(Exception e) System.out.println(无法加载驱动程序); try Connection conn = DriverManager.getConnection(jdbc:odbc: *, sa, ); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( select Sno,shenfen from Student where Sno=+jusername+); if (rs.next() if (rs.getString(shenfen).equals(jpassword) JOptionPane.showMessageDialog(null, 登陆成功); new zhuProgram(); super.setVisible(false); else JOptionPane.showMessageDialog(this, 对不起,密码错误,请重新输入,登陆失败, JOptionPane.ERROR_MESSAGE); else JOptionPane.showMessageDialog(this, 用户名不存在,请重新输入, 错误!,JOptionPane.ERROR_MESSAGE); rs.close(); stmt.close(); catch(SQLException e)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能工厂通风系统设计与安装一体化服务合同
- 2025年度五星级酒店美容美发服务与会员积分兑换合同
- 2025年度企业内部培训师选聘与技能提升服务合同
- 2025年度城市绿化工程项目承包合同(2025年度)
- 2025年度城市桥梁建设安全培训及咨询服务协议
- 2025年金融数据共享与保密协议模板
- 2025年新能源汽车电池更换及保养服务合作协议范本
- 2025年生态茶园基地茶叶直销合作协议
- 2025年互联网设备批发与零售合作协议书
- 2025年度环保型医用氧气采购与排放达标服务合同
- 专题:根据首字母填空 六年级英语下册期末复习考点培优专项鲁教版(五四学制)(含答案解析)
- 2025年驻村帮扶培训课件
- 嵌入式系统设计与开发-基于ARM Cortex-A9和Linux 课件 第10章 ARM-Linux软件开发基础
- 产品生命周期管理制度
- 颅脑外伤麻醉病例分析
- 疗休养基地管理制度
- 电针参数优化研究-洞察及研究
- 头皮按摩的好处促进头发生长
- 蛇咬伤急救处理流程
- 陕西省特种设备隐患排查清单(2025年)
- 货款转让协议书
评论
0/150
提交评论