课程设计.docx

上传人:b****7 文档编号:10411892 上传时间:2023-02-11 格式:DOCX 页数:22 大小:284.59KB
下载 相关 举报
课程设计.docx_第1页
第1页 / 共22页
课程设计.docx_第2页
第2页 / 共22页
课程设计.docx_第3页
第3页 / 共22页
课程设计.docx_第4页
第4页 / 共22页
课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

课程设计.docx

《课程设计.docx》由会员分享,可在线阅读,更多相关《课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

课程设计.docx

课程设计

JAVA程序设计课程设计报告

 

课题:

学生信息管理系统

专业班级:

芙蓉计0701班

学号:

07120103

姓名:

陈袁

指导教师:

何青老师

 

评阅意见:

 

评定成绩:

指导老师签名:

年月日

 

目录

 

1、课程设计的目的…………………………………………………………………………(03)

2.、需求分析…………………………………………………………………………………(03)

2.1、系统简介……………………………………………………………………………(03)

2.2、数据流图……………………………………………………………………………(04)

2.3、数据字典……………………………………………………………………………(06)

3、数据库概念结构设计……………………………………………………………………(05)

4、数据库逻辑结构设计……………………………………………………………………(09)

4.1、数据的设计………………………………………………………………………(08)

4.2、更能结构图………………………………………………………………………(09)

5、数据库实施………………………………………………………………………………(10)

5.1、建立数据库…………………………………………………………………………(10)

5.2、Java程序源代码……………………………………………………………………(13)

6、系统的实施运行结果……………………………………………………………………(19)

6.1、登陆界面……………………………………………………………………………(19)

7、心得与体会………………………………………………………………………………(20)

8、参考文献…………………………………………………………………………………(21)

学习信息管理系统

一、课程设计的目的

①、达到对数据库理论知识的巩固加深,提高动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

②、掌握与实践在SQLSever2000中建立数据源、表、相关属性;

③、学习设计和编写数据库的课程设计,掌握数据库设计的基本步骤;

④、掌握数据库与Java程序之间的链接;

⑤、在Java程序中编写SQL语句对数据库进行查询、添加、修改、删除等一系列的操作。

二、需求分析

2.1系统简介

本系统是一个学生管理系统,主要应用于大学的学生管理。

由于对系统的分析可能不够全面,只能是模拟一下学生管理系统。

每个学生都有一个学号,且没有相同的,所以可以以学号为帐号,这样,同学们就可以自行登陆学生管理系统了,并可以对密码进行更改。

老师也要进行登陆,所以,还要给分配老师帐号,密码,同样,老师可以自己更改密码。

输入帐号,密码,无误后,并可登陆了。

老师登陆后与学生登陆后有不同的权限。

学生登陆后,可以修改自己的登陆密码,可以查看个人信息,考完试后查看自己的考试成绩。

而老师则可以把学生的成绩输入进来,以便学生查询自己的考试成绩,老师也可查看学生的学籍,当然也可以修改自己的帐号密码。

另外,本系统还设立了唯一的一个管理员,他有的权限最高,可以对此系统所有用户、所有学生学籍以及学生成绩进行增删改查四种操作。

目前,对需求进行分析,能想到的基本功能就这些了,这些功能基本能够实现学生管理,对于系统的不足,我们将不断对其进行改进。

2.2数据流图

 

2.2.2管理员页面结构图

2.2.3教师登陆页面结构

2.2.4学生登录界面结构图

 

2.3数据字典

用户表:

users

字段名

类型

是否为Null

大小

说明

no

Varchar

No

50

用户名

password

Varchar

Yes

50

用户密码

rank

Int

Yes

4

用户等级

学生表:

student

字段名

类型

是否为Null

大小

说明

sno

Varchar

No

50

学号

sna

Varchar

Yes

50

姓名

class

Varchar

Yes

50

班级

birth

Char

Yes

10

出生年月

sex

Char

Yes

10

性别

add

Varchar

Yes

50

家庭住址

tel

Char

Yes

50

电话号码

state

Char

Yes

10

备注

成绩表:

score

字段名

类型

是否为Null

大小

说明

sno

Varchar

No

50

学号

sna

varchar

Yes

50

姓名

course

Varchar

No

50

课程名

term

Int

Yes

10

学期

grade

Float

Yes

8

分数

notes

Int

Yes

4

备注

教师表:

teacher

字段名

类型

是否为Null

大小

说明

tno

Varchar

No

50

教师工号

tname

Char

Yes

10

教师姓名

course

Varchar

No

50

所教课程名

 

三、数据库概念结构设计

将需求分析阶段所得到的应用程序要首先抽象为信息世界的结构,才能更好的、更准确的用DBMS实现这些需求,数据库的概念设计步骤为:

①、分E-R图

②、合E-R图

③、消除冗余

④、优化图

⑤、设计用户子模式

3.1E-R图

四、数据库逻辑结构设计

4.1数据的设计(其中划横线的为主关键字)

1.学生表(学号,姓名,性别,地址,电话,班级,生日,简历);

Student(sno,sna,class,birth,sex,add,tel,state);

2.成绩表(学号,姓名,课程名,学期,成绩,备注);

Score(sno,sna,course,term,grade,notes);

3.用户表(用户名,密码,级别);

Uers(no,password,rank);

4.教师表(教师工号,教师姓名,所教课程名);

Teacher(tno,tname,course);

4.2功能结构图

4.2.1添加功能图4.2.2修改功能图

4.2.3对学生的相关操作图

 

4.2.4管理员的操作图

五、数据库实施

5.1建立数据库

在SQLSever2000中创建数据库CY03,如图所示

 

Users表的相关截图

建立字段:

给里面添加记录:

Student表的相关截图

建立字段:

给里面添加记录:

 

Teacher表的相关截图

建立字段:

给里面添加记录:

Score表的相关截图

建立字段:

给里面添加记录:

5.2Java程序源代码:

经过我们小组的分工合作,我的职责是实现Teacher这个模块,下面就是我所写的有关Teacher功能的代码:

Teacher.java文件核心代码:

publicstaticvoidpwordButton(){

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();

password='frm.userPassword.getText()'";

password='Login.rs.getString

(2)+"'";

sql1="updateuserssetpassword='"+tex3.getText()+"'whereno='"+Login.username+"'andpassword='"+frm.userpassword+"'";

if(tex2.getText().equals(tex3.getText()))stmt.executeUpdate(sql1);

stmt.close();

con.close();

}catch(SQLExceptione){

System.out.println("SQLException:

"+e.getMessage());

}

}

publicstaticvoidchak(Strings1,Stringsql,Containert){

lbl1.setText(s1);

lbl1.setBounds(60,50,110,30);

t.add(lbl1);

area1.setBounds(60,90,600,300);

area1.setBackground(Color.green);

t.add(area1);

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();

ResultSetrs1=stmt.executeQuery(sql);

ResultSetMetaDatarsmd=rs1.getMetaData();

for(inti=1;i<=rsmd.getColumnCount();i++){

if(i==1)

area1.append(rsmd.getColumnName(i));

else

area1.append("\t"+rsmd.getColumnName(i));

}

area1.append("\n");

while(rs1.next()){

for(inti1=1;i1<=rsmd.getColumnCount();i1++){

area1.append(rs1.getString(i1));

area1.append("\t");

}

for(inti2=1;i2<5;i2++)area1.append("\n");

}

rs1.close();

stmt.close();

con.close();

}catch(SQLExceptione1){

System.out.println("SQLException:

1"+e1.getMessage());

}

t.setVisible(true);

}

publicvoidremoveAll(){

c.removeAll();

c.repaint();

}

classHandler1implementsActionListener{

publicvoidactionPerformed(ActionEvente){

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptionce){

System.out.println("SQLException:

"+ce.getMessage());

}

try{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

xs");

JMenuItemmi=(JMenuItem)e.getSource();

if(mi==changpw){removeAll();changpassword(c);c.repaint();}

if(mi==lookxj){

removeAll();

s2="查看学籍:

";

sql1="SELECT*FROMstudent";

chak(s2,sql1,c);

c.repaint();}

if(mi==looksc){

removeAll();

s2="查看成绩:

";

sql1="SELECT*FROMscore";

chak(s2,sql1,c);

c.repaint();}

if(mi==insert){

removeAll();

s2="插入成绩:

";

sql1="SELECT*FROMstudentwheresno='"+Login.username+"'";

chak(s2,sql1,c);c.repaint();

}

if(mi==clo){

k.setVisible(false);

Login.frm.setVisible(true);

Login.frm.userName.setText(null);

Login.frm.userPassword.setText(null);

}

con.close();

}catch(SQLExceptione1){

System.out.println("SQLException:

1"+e1.getMessage());

}

}

}

classHandler2implementsActionListener{

publicvoidactionPerformed(ActionEvente){

JButtonmi1=(JButton)e.getSource();

if(mi1==passwordButton)

pwordButton();

if(mi1==passwordbutton){

k.setVisible(false);

}

}

}

publicvoiddeleteScoreConfirm(){

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptionce){

System.out.println("SQLException:

aaa"+ce.getMessage());

}

try{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

xs");

Statementstmt=con.createStatement();

Stringsql;

Stringusername1,username2;

username1=deleteScoreText1.getText();

username2=deleteScoreText2.getText();

if(username2!

=null&&username1!

=null){//判断两次输入学号是否相等

sql="select*fromscorewheresno='"+username1

+"'andcourse='"+username2+"'";

ResultSetrs1=stmt.executeQuery(sql);

if(rs1.next()){//存在需要删除的学生的课程信息则删除之

stmt.executeUpdate("deletefromscorewheresno='"

+username1+"'andcourse='"+username2+"'");

JOptionPane.showMessageDialog(null,"删除学生成绩成功");

deleteStudentInformationText1.setText(null);

deleteStudentInformationText2.setText(null);

rs1.close();

}else{

JOptionPane.showMessageDialog(null,"您所要删除的学生的课程成绩不存在");

deleteStudentInformationText1.setText(null);

deleteStudentInformationText2.setText(null);

}

rs1.close();

}

else{

JOptionPane.showMessageDialog(null,"请输入要删除成绩的学生的相应信息");

deleteStudentInformationText1.setText(null);

deleteStudentInformationText2.setText(null);

}

stmt.close();

con.close();

}catch(SQLExceptionf){

System.out.println("SQLException:

abc"+f.getMessage());}

}

六、系统的实施运行结果

6.1登陆界面。

系统运行后即可看到此界面,用户类型有学生、老师和管理员三种,默认为学生。

若是其他用户类型登陆就先点击下拉条选择相应类型,然后输入用户名和密码,验证正确后就进入其相应界面了。

6.1老师登陆界面

6.2教师修改密码

6.3教师查看学籍

6.4老师添加学生成绩

七、心得与体会

第十九周我们班上进行了一次大型的数据库系统设计,虽然临近期末,马上就要考试了,一定程度上影响了大家的复习,但这特殊时刻反而激起了我们的积极性,一心想着要快些做出来,给自己多留些时间复习。

首先我们第一天就确定了自己的题目,并且在图书馆、网上、书中寻找资料和例题,正因为如此,我们都收获颇丰。

在此过程中我学到了好多书本上学不到的东西,在这之前我甚至不知道数据库的具体概念,但现在,我已经熟练掌握了数据库的建立、数据源的配置以及增删改查的SQL语句的使用,当然还有用JAVA进行数据库编程的各种技巧等等,更是对JAVA语言的学习。

当然我也碰到了好多问题,最典型的就是Java怎样与数据库连接,还有就是进行记录插入和修改时的SQL语句的格式问题,这个花了我们好多精力,当然最终还是解决了!

没解决的地方也还有几个,希望自己在以后的学习过程中能够虚心、多问的精神陪伴着自己的学习生涯。

然而,这个系统功能还不够完善,还存在很多的欠缺,毕竟是自己亲手做的第一个系统嘛,课程设计一次很好的动手实践的好机会,更够让我们在课本上学习到得知识得以应用在自己的日常生活中,学以致用,这才是最重要的。

我们应该认真的对待每一次的课程设计,认真的去完成,对我们经验的积累,是很重要的。

八、参考书目

[1]王珊等.《数据库系统原理教程》清华大学出版社.2002年;

[2]《数据库系统原理》王能斌电子工业出版社;

[3]《java语言程序设计》李尊朝中国铁道出版社;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1