数据库课程设计报告书Word格式.docx
- 文档编号:18180950
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:54
- 大小:539.01KB
数据库课程设计报告书Word格式.docx
《数据库课程设计报告书Word格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告书Word格式.docx(54页珍藏版)》请在冰豆网上搜索。
(1)数据库概念结构设计
本系统主要有三个实体:
a、学生实体、选修课两个实体,一个学生可以选修若干门课程,一门课程也可以被多个学生选修,这两个实体集之间是多对多联系,联系上有选课成绩;
b、教师和课程两个实体,一个老师可以教授若干门课程,一门课程也可以被多个老师教授,这两个实体集之间也是多对多联系;
本系统的E-R图如下:
m
n
(2)数据库逻辑结构设计
根据关系模型的转换原则,上面的E—R图可转换为如下所示的关系模型:
学生信息表:
student(学号,姓名,所属院系,课程编号,选修课程,选修成绩)
公选课信息表:
course(课程号,课程名,学分,学时,教师编号)
教师信息表:
teacher(教师编号,教师姓名,所属院系,教授课程号,教授课程名)
根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如下:
表1教师信息表teacher的表结构
主码
列名
数据类型
宽度
是否可为空
PK
教师工号
char
10
教师姓名
是
所属院系
教授课程号
教授课程名
表2学生信息表student的表结构
学号
姓名
是
20
所选课程号
int
4
选修课程
选修成绩
表3公选课信息表course的表结构
课程号
课程名
学分
学时
下面在系统实施阶段就可以物理实现数据库了,本系统使用前面实验已经建好的服务器端SQLServer数据库—yangxu.
三、系统实现
本课程设计是用java结合数据库实现的,其中包含了三个主页面,一是学生登录界面面,二是教师登录界面,三是管理员登陆界面,其中每个界面中都会有按钮进行相应的操作。
1、主界面操作:
Login.java//登录界面(包含学生、教师、管理员三个选项)
2、学生操作界面(student.java):
(1)、主界面
Student.java//选择操作界面(用于选择学生选课、选课查询、课程列表、退出等操作)
(2)、学生选课界面
SSelectCourse.java//显示添加界面(可进行添加、修改等操作)
(3)、选课查询界面
StuSelect1.java//按学号查询用户所选课程
(4)、课程列表界面
CourseList.java//用于显示所有公选课列表
3、教师操作界面(Teacher.java)
(1)、主界面
Teacher.java//显示操作界面(用于教师查询、成绩添加等操作)
(2)查询教师界面
TcSelect1.java//用于查询教师所授课程
(3)教师添加成绩界面
TInsert.java//教师添加学生所选课程的成绩
4、管理员界面(Admin.java)
Admin.java//选择管理对象界面(用于选择管理学生、管理教师、管理课程等操作
(2)、教师管理界面
教师添加TcInsert.java(用于教师的添加或修改)
教师删除TcDelete.java
教师查询TcSelect.java
(3)、学生管理界面
添加学生
StuInsert.java//用于学生的添加和修改
删除学生信息
StuDelete.java//可按学号进行对学生的删除
查询学生信息
StuSelectjava//用于对学生信息的查询
4、课程管理界面(Course.java)
(1)添加课程
CouInsert.java//用于添加修改课程
(2)删除课程
CouDelete.java
(3)课程列表
CourseList.java//显示所有课程
4、具体操作
1、主界面
主要代码:
Login.java
package数据库课程设计;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.io.*;
import.MalformedURLException;
import.URI;
import.URL;
importsun.audio.*;
publicclassLoginextendsJFrame{
JLabellLogin,lKey,lLoginInform;
JTextFieldtextLogin,textKey;
JPasswordFieldpassField;
JButtonbLogin,bCancel;
Choiceidentify;
Containerct=getContentPane();
publicLogin(){
setTitle("
选修课程管理系统"
);
intwidth=getWidth();
intheight=getHeight();
intw=(Toolkit.getDefaultToolkit().getScreenSize().width-width)/2;
inth=(Toolkit.getDefaultToolkit().getScreenSize().height-height)/2;
setLocation(w,h);
JPanelp=newJPanel();
p.setOpaque(false);
ImageIconige=newImageIcon("
D:
//数据库图片//湖工.jpg"
JLabell=newJLabel(ige);
l.setBounds(-100,-100,ige.getIconWidth(),ige.getIconHeight());
getLayeredPane().add(l,newInteger(Integer.MIN_VALUE));
((JPanel)this.getContentPane()).setOpaque(false);
p.setLayout(newFlowLayout(FlowLayout.CENTER,100,25));
lLoginInform=newJLabel("
登陆身份:
"
identify=newChoice();
identify.add("
学生"
教师"
管理员"
p.add(lLoginInform);
p.add(identify);
lLogin=newJLabel("
账号:
p.add(lLogin);
textLogin=newJTextField("
7);
p.add(textLogin);
lKey=newJLabel("
密码:
p.add(lKey);
passField=newJPasswordField(7);
p.add(passField);
bLogin=newJButton("
登陆"
bLogin.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){
booleanflag;
if(identify.getSelectedItem().equals("
)&
&
(textLogin.getText()).equals("
student"
)){
charpass[]=passField.getPassword();
for(inti=0;
i<
6;
){
if(pass[i]==i+1)
flag=true;
else{
flag=false;
break;
}
}
if(flag=true){
dispose();
newStudent().setVisible(true);
}
}
manager"
newAdmin().setVisible(true);
}
if(identify.getSelectedItem().equals("
teacher"
charpass[]=passField.getPassword();
for(inti=0;
if(pass[i]==i+1)
flag=true;
else{
flag=false;
break;
}
if(flag=true){
dispose();
newTeacher().setVisible(true);
else{
setTitle("
输入的账号或者密码有误,重新输入"
}
);
bCancel=newJButton("
退出"
bCancel.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);
});
p.add(bLogin);
p.add(bCancel);
add(p);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,250);
setVisible(true);
publicstaticvoidmain(String[]args){
newLogin();
try{
Filef=newFile("
//音乐//logic.mid"
URIu=f.toURI();
URLr=null;
r=u.toURL();
AudioClipm=Applet.newAudioClip(r);
m.loop();
}catch(MalformedURLExceptione){
e.printStackTrace();
}
}
2、学生操作
(1)学生登陆界面
(2)学生主界面
Student.java
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.*;
importjavax.swing.table.AbstractTableModel;
import数据库课程设计.SelectStu.MyTable;
publicclassStudentextendsJFrame{
JButtonsSelectCourse,sSelect,courseList,sreturn;
publicStudent(){
super("
学生界面"
setLayout(newFlowLayout(FlowLayout.CENTER,100,60));
intwidth=getWidth();
//数据库图片//yangxu.jpg"
JLabell=newJLabel(ige);
l.setBounds(-100,-100,ige.getIconWidth(),ige.getIconHeight());
getLayeredPane().add(l,newInteger(Integer.MIN_VALUE));
((JPanel)this.getContentPane()).setOpaque(false);
sSelectCourse=newJButton("
学生选课"
sSelectCourse.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
newSSelectCourse().setVisible(true);
});
sSelect=newJButton("
选课查询"
sSelect.addActionListener(newActionListener(){
newStuSelect1().setVisible(true);
courseList=newJButton("
课程列表"
courseList.addActionListener(newActionListener(){
newCourseList().setVisible(true);
add(sSelectCourse);
add(sSelect);
add(courseList);
sreturn=newJButton("
返回前页"
sreturn.addActionListener(newActionListener(){
newLogin().setVisible(true);
add(sreturn);
add(p);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,250);
setVisible(true);
publicstaticvoidmain(String[]args){
newStudent();
(3)学生选课界面
SSelectCourse.java
classSSelectCourseextendsJFrame{
JLabell,m,a,q;
JTextFieldtf,tf1,tf2;
JButtonjbut,rt,ud;
publicSSelectCourse(){
setLayout(newFlowLayout(FlowLayout.CENTER,8,40));
//数据库图片//a.jpg"
a=newJLabel("
add(a);
m=newJLabel("
请输入你要添加的学号:
add(m);
tf=newJTextField("
7);
add(tf);
q=newJLabel("
请输入你要添加的姓名:
add(q);
tf1=newJTextField("
add(tf1);
l=newJLabel("
请输入你要添加的课程号:
add(l);
tf2=newJTextField("
add(tf2);
jbut=newJButton("
确定"
jbut.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Connectionconn=null;
try{
StringURL="
jdbc:
microsoft:
sqlserver:
//localhost:
1433;
DatabaseName=yangxu"
;
Stringuser="
system"
//连接数据库的用户名
Stringpassword="
yangxu"
//连接数据库的密码
try{
Class.forName("
com.microsoft.jdbc.sqlserver.SQLServerDriver"
//加载驱动程序
}catch(java.lang.ClassNotFoundExceptione1){
e1.printStackTrace();
try{
conn=DriverManager.getConnection(URL,user,password);
//与url指定的数据源建立连接
}catch(SQLExceptione1){
e1.printStackTrace();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告书