数据库Java课程设计完整版文档格式.docx
- 文档编号:16203498
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:22
- 大小:307.58KB
数据库Java课程设计完整版文档格式.docx
《数据库Java课程设计完整版文档格式.docx》由会员分享,可在线阅读,更多相关《数据库Java课程设计完整版文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
1、系统简介
本系统是一个学生管理系统,主要应用于大学的学生管理。
由于对系统的分析可能不够全面,只能是模拟一下学生管理系统。
每个学生都有一个学号,且没有相同的,所以可以以学号为帐号,这样,同学们就可以自行登陆学生管理系统了,并可以对密码进行更改。
老师也要进行登陆,所以,还要给分配老师帐号,密码,同样,老师可以自己更改密码。
输入帐号,密码,无误后,并可登陆了。
老师登陆后与学生登陆后有不同的权限。
学生登陆后,可以修改自己的登陆密码,可以查看个人信息,考完试后查看自己的考试成绩。
而老师则可以把学生的成绩输入进来,以便学生查询自己的考试成绩,老师也可查看学生的学籍,当然也可以修改自己的帐号密码。
另外,本系统还设立了唯一的一个管理员,他有的权限最高,可以对此系统所有用户、所有学生学籍以及学生成绩进行增删改查四种操作。
目前,对需求进行分析,能想到的基本功能就这些了,这些功能基本能够实现学生管理,对于系统的不足,我们将不断对其进行改进。
2、数据流图
3、数据字典
用户表:
user
字段名
类型
是否Null
大小
说明
no
varchar
No
50
用户名
password
Yes
用户密码
rank
int
4
用户等级
学生学籍表:
student
sno
学号
sna
姓名
class
班级
birth
Char
10
出生年月
sex
性别
add
家庭住址
tel
char
电话号码
state
备注
学生成绩表:
score
varchar
course
课程名
term
学期
grade
float
8
分数
notes
Int
教师表:
teacher
类型
tno
教师工号
tname
教师姓名
所教课程名
三、数据库概念结构设计
E-R图
四、数据库逻辑结构设计
a)数据的设计(其中划横线的为主关键字)
1.学生(学号,姓名,性别,地址,电话,班级,生日,简历)
2.成绩(学号,姓名,课程名,学期,成绩,备注)
3.用户(用户名,密码,级别)
b)功能结构图
图4-1添加功能结构图
图4-2修改功能结构图
图4-3删除成绩功能结构图
图4-4删除学籍功能结构图
图4-5修改密码功能结构图
图4-6删除用户功能结构图图4-7查看功能结构图
五、系统的实施运行结果
1、登陆界面。
系统运行后即可看到此界面,用户类型有学生、老师和管理员三种,默认为学生。
若是其他用户类型登陆就先点击下拉条选择相应类型,然后输入用户名和密码,验证正确后就可进入其相应界面了。
图5-1登陆界面
2、管理员相关功能界面
管理员的权限最高,可以对此系统所有用户、所有学生学籍以及学生成绩进行增删改查四种操作。
图5-2管理员相关功能界面
(1)
图5-2管理员相关功能界面
(2)
图5-2管理员相关功能界面(3)
3、学生修改密码界面
学生登陆后点击账号菜单中的更改密码选项即可在此界面下进行修改密码操作了。
图5-3学生修改密码界面
4、管理员添加学生成绩界面
管理员登陆后点击成绩管理菜单中的添加成绩选项就可进行输入成绩的操作。
图5-4管理员添加学生成绩界面
5、老师添加学生成绩界面
老师登陆后点击成绩菜单中的添加成绩选项就可进行输入成绩的操作。
图5-5老师添加学生成绩界面
6、管理员修改学生学籍或成绩界面
管理员点击学籍管理或成绩管理的相应修改选项后,都可进入界面
(1),输入要修改的学号后点击确定按钮,就会显示界面
(2),调出该学生的相关记录,修改完成后再点击确定按钮就写回数据库了。
图5-6管理员修改学生记录界面
(1)
图5-6管理员修改学生记录界面
(2)
六、总结
本次课程设计虽然临近期末,一定程度上影响了大家的复习进度,但这特殊时刻却反而激起了我们的积极性,一心想着要快些做出来,给自己多留些时间复习。
我们小组四个人有三台手提电脑,这就是我们的优势,我们每天聚集在教室,工作直到晚上九点,连中晚饭都是两个人去食堂买过来!
正因为如此,我们都收获颇丰。
在此过程中我学到了好多书本上学不到的东西,在这之前我甚至不知道数据库的具体概念,但现在,我已经熟练掌握了数据库的建立、数据源的配置以及增删改查的SQL语句的使用,当然还有用JAVA进行数据库编程的各种技巧等等。
当然这努力的过程总不是那么顺利,我碰到了好多问题,最典型的一个就是进行记录插入和修改时的SQL语句的格式问题,我问了好多同学都没能解决,这个花了我们好多精力,当然最终还是解决了!
没解决的地方也还有几个,像修改时,我读出一条记录并修改后就没法读出第二条了,但我还是会找时间解决它的!
我做的这一块还存在很多缺陷,功能不够完善,不能一次修改多条记录,修改或插入点击确定以后没有任何提示信息等等。
相信我能尽快完善它。
参考文献:
[1]王珊等.《数据库系统原理教程》清华大学出版社.2002年;
[2]《数据库系统原理》王能斌电子工业出版社;
[3]《java语言程序设计》李尊朝中国铁道出版社;
附录系统部分源代码
publicvoidinsertuserwindow()//添加用户窗口
{
inti;
StringuserProperty[]={"
请输入用户名:
"
"
请输入密码:
请输入等级:
};
for(i=0;
i<
3;
i++)
userInsertLabel[i]=newJLabel(userProperty[i]);
userInsertText[i]=newJPasswordField(50);
c.add(userInsertLabel[i]);
userInsertLabel[i].setBounds(50,i*50+50,110,30);
c.add(userInsertText[i]);
userInsertText[i].setBounds(170,i*50+50,130,30);
}
c.add(userConfirmButton);
userConfirmButton.setBounds(80,220,60,40);
c.add(userCancelButton);
userCancelButton.setBounds(180,220,60,40);
}
publicvoidinsertstudentwindow()
StringstudentProperty[]={"
学号:
姓名:
班级:
生日:
性别:
地址"
电话:
备注:
8;
studentInsertLabel[i]=newJLabel(studentProperty[i]);
studentInsertText[i]=newJTextField(50);
c.add(studentInsertLabel[i]);
studentInsertLabel[i].setBounds(50,i*50+50,110,30);
c.add(studentInsertText[i]);
studentInsertText[i].setBounds(170,i*50+50,130,30);
c.add(studentConfirmButton);
studentConfirmButton.setBounds(80,(i+1)*50+50,60,40);
c.add(studentCancelButton);
studentCancelButton.setBounds(180,(i+1)*50+50,60,40);
publicvoidinsertscorewindow()//添加成绩窗口
StringscoreProperty[]={"
课程名:
学期:
成绩:
6;
scoreInsertLabel[i]=newJLabel(scoreProperty[i]);
scoreInsertText[i]=newJTextField(50);
c.add(scoreInsertLabel[i]);
scoreInsertLabel[i].setBounds(50,i*50+50,110,30);
c.add(scoreInsertText[i]);
scoreInsertText[i].setBounds(170,i*50+50,130,30);
c.add(scoreConfirmButton);
scoreConfirmButton.setBounds(80,400,60,40);
c.add(scoreCancelButton);
scoreCancelButton.setBounds(180,400,60,40);
publicvoidmodifystudentwindow()//修改学生学籍窗口
{
c.add(modifyStudentLabel);
modifyStudentLabel.setBounds(50,50,200,30);
c.add(modifyStudentText);
modifyStudentText.setBounds(300,50,130,30);
c.add(modifyStudentConfirmButton);
modifyStudentConfirmButton.setBounds(100,150,60,40);
c.add(modifyStudentCancelButton);
modifyStudentCancelButton.setBounds(250,150,60,40);
//当登陆时获取其用户名,在此处写sql语句修改其密码;
publicvoiduserButton()//添加用户核心代码
try
{Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
catch(ClassNotFoundExceptionce)
{System.out.println("
SQLException:
+ce.getMessage());
try
Connectioncon=DriverManager.getConnection("
jdbc:
odbc:
xs"
Statementstmt=con.createStatement();
stmt.executeUpdate("
insertintousersvalues('
+userInsertText[0].getText()+"
'
'
+userInsertText[1].getText()+"
+Integer.parseInt(userInsertText[2].getText())+"
)"
stmt.close();
con.close();
catch(SQLExceptione)
+e.getMessage());
publicvoidstudentButton()//添加学生学籍核心代码
insertintostudentvalues('
+studentInsertText[0].getText()+"
+studentInsertText[1].getText()+"
+studentInsertText[2].getText()+"
+studentInsertText[3].getText()+"
+studentInsertText[4].getText()+"
+studentInsertText[5].getText()+"
+studentInsertText[6].getText()+"
+studentInsertText[7].getText()+"
publicvoidscoreButton()//添加学生成绩核心代码
insertintoscorevalues('
+scoreInsertText[0].getText()+"
+scoreInsertText[1].getText()+"
+scoreInsertText[2].getText()+"
+scoreInsertText[3].getText()+"
+Float.parseFloat(scoreInsertText[4].getText())+"
+Integer.parseInt(scoreInsertText[5].getText())+"
}
publicvoidgetSno(inta)//修改功能核心代码
inti,b=0;
b=a;
//此处要删除原先的记录
if(b==0){insertstudentwindow();
//调出学生学籍记录窗口
Stringsno=modifyStudentText.getText();
modifyStudentText.setText("
"
if(modifyStudentText!
=null){
try{Class.forName("
}
catch(ClassNotFoundExceptionce){System.out.println("
+ce.getMessage());
try{
Connectioncon=DriverManager.getConnection("
Statementstmt=con.createStatement();
Stringsql;
sql="
select*fromstudentwheresno='
+sno+"
;
ResultSetrs1;
rs1=stmt.executeQuery(sql);
while(rs1.next())
{
for(i=0;
{
studentInsertText[i].setText(rs1.getString(i+1));
}
}
rs1.close();
stmt.close();
con.close();
}
catch(SQLExceptionf){System.out.println("
+f.getMessage());
}
}}
if(b==1){insertscorewindow();
//调出修改学生成绩窗口
select*fromscorewheresno='
ResultSetrs2;
rs2=stmt.executeQuery(sql);
while(rs2.next())
scoreInsertText[i].setText(rs2.getString(i+1));
rs2.close();
if(b==2){insertuserwi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 Java 课程设计 完整版