java课程设计任务书2文档格式.docx
《java课程设计任务书2文档格式.docx》由会员分享,可在线阅读,更多相关《java课程设计任务书2文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
(2)系统设计:
20分;
(3)编程调试:
(4)回答问题:
(5)论文撰写:
30分。
5)参考文献:
(1)丁振凡.Java语言实用教程(第2版)[M].北京邮电大学出版社.2008.1
(2)丁振凡.Java语言实用教程实验指导(第2版)[M].北京邮电大学出版社.2008.1
(3)杨树林等.Java语言最新实用案例教程(第2版)[M].清华大学出版社.2010.7
6)课程设计进度安排
1.准备阶段(4学时):
选择设计题目、了解设计目的要求、查阅相关资料
2.程序模块设计分析阶段(4学时):
程序总体设计、详细设计
3.代码编写调试阶段(8学时):
程序模块代码编写、调试、测试
4.撰写论文阶段(4学时):
总结课程设计任务和设计内容,撰写课程设计论文
学生签名:
2010年12月20日
课程设计(论文)评审意见
(1)学习态度(10分):
优( )、良( )、中( )、一般( )、差( );
(2)系统设计(20分):
优()、良( )、中( )、一般( )、差( );
(3)编程调试(20分):
(4)回答问题(20分):
(5)论文撰写(30分):
评阅人:
职称:
讲师
2010年12月25日
摘要
随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。
学生管理正在逐步迈向管理信息现代化。
但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。
学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的的工作。
面对庞大的信息量,这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。
本学生学籍管理系统的开发与运行环境如下:
开发环境:
WindowsXP
数据库管理系统:
Access2007
运行环境:
目 录
一、课程设计任务及要求1
1.课设题目1
2.设计任务1
3.设计要求1
4.扩展功能1
二、需求分析2
1.功能需求分析2
三、设计思路4
1.工作原理4
2.功能规划4
四、详细设计5
1.系统设计5
2.数据库设计6
3.界面设计7
4.系统实现8
五、运行调试与分析讨论13
1.运行调试13
2.分析讨论17
六、设计体会与小结19
七、参考文献20
课程设计任务及要求
1.课设题目
课设题目:
学籍管理系统
2.设计任务
完成设计基于数据库的学籍管理系统,通过JAVA图形界面的设计,使用户可以加入学生的基本信息,并可对加入的信息进行修改、查询和删除,设计GUI界面使操作更加方便、清晰、条理化、自动化。
在上机实践的同时,去培养自己的实际分析问题、编程和动手能力,提高自己的综合素质。
激发自己的学习兴趣,正确理解和接受需要重点掌握的知识点,使自己更加进一步了解JAVA的各个方面的知识。
3.设计要求
主窗体的设计(学籍管理系统窗体)
录入学生基本信息的(录入学生信息窗体)
修改学生基本信息的功能(修改学生信息窗体)
查询学生基本信息的功能(按学号查询学生信息窗体)
删除学生基本信息的功能(删除学生信息窗体)
菜单设计
事件响应的处理
Access数据库的连接,创建数据表,在表中插入信息,并对其修改,查询以及删除表中信息的具体实现
4.扩展功能
在主窗体中的菜单选项中,增加一个退出的菜单子项,使退出窗体更加地人性化、方便快捷。
在查询窗体中增加查询全部学生信息按钮,当按下时,显示出一个包含所有学生学生基本信息的窗体。
当按下录入、修改、查询、删除等按钮时,显示出来一个提示信息窗口,询问用户是否继续进行操作等。
需求分析
1.功能需求分析
本系统是设计基于数据库的学生信息管理,系统进行数据库设计首先必须准确了解也分析用户需求(包括数据和处理)。
目的是为学籍管理数据库系统的设计打下牢牢的基础,是数据库开发的重要文件依据,主要为数据库设计人员使用,是用户和系统分析员的项目依据文件。
系统分析的主要任务是从用户角度出发,用户是指系统管理员。
而系统的主要功能是:
建立一个主窗体,带有录入、修改、查询、删除学生信息的功能,并成功的连接数据库,将录入的信息保存在所建的表中,通过所建表的访问,对其内容进行修改,查询,删除。
主要的功能描述如下:
1)学籍管理系统窗体
建立一个“菜单选项”的菜单项,通过对其菜单子项的访问,分别进入录入学生信息、修改学生信息、查询学生信息、删除学生信息窗口体。
对菜单子项“退出”进行注册监听,使其实现关闭窗口的功能。
在窗体上添加一个名叫“欢迎使用学生信息管理系统的标签,使其显示在正中间,并把窗体的背景色设为浅灰色,前景色设为红色。
2)录入学生信息窗体
在窗体的面板中设置学号、姓名、性别、专业、年级、出生标签以及其相对应的输入文本框。
在面板中添加录入、重置按钮。
按下录入按钮时,能够把输入的信息添加到数据表中;
按下重置按钮时,将文本框中的信息全部清空,回到初使状态。
3)修改学生信息窗体
在窗体的面板中设置输入要修改信息的学号、(新)姓名、(新)性别、(新)专业、(新)年级、(新)出生标签以及其相对应的输入文本框。
在面板中添加修改、录入修改、重置按钮。
当提交的学号存在时,按下修改按钮,录入修改变成可执行状态;
按下录入修改按钮时,能够把输入的信息添加到数据表中;
4)查询学生信息窗体
在窗体的面板中设置请输入要查询的学号、姓名、性别、专业、年级、出生标签以及其相对应的输入文本框。
在面板中添加查询、查询全部学生信息按钮。
当提交的学号存在时,按下查询按钮,在各个文本框中将显示该学号相应的信息;
当按下查询全部学生信息按钮时,在另一个新建窗口中将显示数据表中所有学生的信息。
5)删除学生信息窗体
在窗体的面板中设置输入要删除的学号、姓名、性别、专业、年级、出生标签以及其相对应的输入文本框。
在面板中添加删除按钮。
当提交的学号存在时,按下删除按钮,将删除数据表中该学号学生的相关信息。
6)数据库的相关操作
编写的程序能够成功的与Access数据库相连。
分析各窗体中标签的具体位置,合理的建立一个新的数据表。
能够对数据表进行插入、修改、查询、删除等操作。
设计思路
1.工作原理
通过对GUI界面的设计,菜单子项、按钮的注册与监听,文本框(获取数据getText()、输入数据setText()、设置是否可编辑setEnabled()),单选按钮(获取按钮的标识getState()、设置按钮的状态setState()),数据库的连接,数据表的建立以及其相关操作(插入信息、修改信息、查询信息、删除信息)等原理,使学籍管理系统能够具体的实现其各种功能。
2.功能规划
将所编的程序连接到Access数据库,并创建student数据表,可以对该表进行插入、修改、查询、删除操作。
学籍管理系统窗体当作用户刚运行程序时的界面,用户通过窗体可以访问到录入、修改、删除学生信息窗体。
用户能够在录入学生信息窗体中录入学生信息,并保存在所建的student表中,当按下录入按钮时,设置一个对话框询问用户是否继续操作。
用户能够在修改学生信息窗体中修改学生信息,并将新输入的内容替代student表中的内容。
当按下修改按钮时,若输入的学号不存在时,弹出一个对话框提示用户该学号学生不存在,并询问用户是否继续操作;
当所输入的学号存在时,将录入修改按钮设为可用状态;
按下录入修改按钮时,提示用户学生信息修改成功,并弹出一个对话框询问用户是否继续操作。
用户能够在查询学生信息窗体中查询自己所需要的信息。
当按下查询按钮时,若输入的学号不存在时,弹出一个对话框提示用户该学号学生不存在,并询问用户是否继续操作,如果存在时,将在本文框中显示出该学号学生的信息;
当按下查询全部学生信息按钮时,弹出一个窗体显示student表中所有学生的信息。
用户能够在删除学生信息窗体中删除学生信息。
当按下删除按钮时,若输入的学号不存在时,弹出一个对话框提示用户该学号学生不存在,并询问用户是否继续操作,如果存在时,将在删除该学号学生的信息,并显示在本文框中,同时询问用户是否继续操作。
详细设计
1.系统设计
1)系统体系结构设计
一般要确定系统的体系结构,主要模块,系统运行环境(如操作系统、数据库),开发平台及语言。
本系统主要运行在windows系列平台上,数据库使用Access,使用eclipse开发系统。
系统体系结构如下图4-1所示:
图形界面
(AWT)
数据访问
(JDBC)
数据库
(ACCESS)
客户端服务端
图4-1系统体系结构图
图形界面层(采用java的AWT设计)负责与用户交互,数据访问层主要根据业务逻辑层的请求通过JDBC/SQL存取数据库。
数据库使用ACCESS,可根据情况使用其他数据库(如SQLServer),客户端基本不做修改,仅有的少量修改也只在数据访问层。
客户端与服务端在物理上可以运行在一台机器上,也可以分别运行在不同机器上。
2)系统功能模块、主要类以及其相关方法
系统功能模块如下图4-2所示:
图4-2系统功能模块图
主要类以及其相关方法:
表4-1主要类以及其相关方法表
MyFrame
Panelfaceplate(Panelf)定义面板
voidkeyin(Strings)录入信息
voidmodify(Strings)修改信息
voidall_inquiry(Strings)查询全部学生信息
voidinquiry(Strings)按学号查询学生信息
voiddelete(Strings)删除信息
voidwindowClosing(WindowEvente)关闭窗口
voidInprompt(Strings)录入提示窗口
voidask(Strings)所找学号不存在时的提示窗口
voidNuprompt(Strings)所找学号存在时的提示窗口
voidactionPerformed(ActionEvente)对按钮监听的具体实现
2.数据库设计
数据库设计主要是根据分析和概要设计中发现的对象和类,确定哪些对象需要持久保存,然后将对象属性及对象间关系转化成关系表。
通过对题目要求的分析,将学号、姓名、性别、专业、年级、出生的信息保存在数据表student表中,表的具体格式如下:
表4-2student表的具体格式表
名称
学号
姓名
性别
专业
年级
生日
数据类型
STRING
以下是数据student表创建的主要代码:
Stringurl="
jdbc:
odbc:
mystudent"
;
Stringsql="
createtablestudent"
+"
(学号STRING,"
姓名STRING,"
性别STRING,"
专业STRING,"
年级STRING,"
生日STRING)"
3.界面设计
界面设计主要是根据功能要求构建界面,界面中的每个元素均应有其作用,以支持功能的实现,界面设计还要考虑到界面风格的一致、符合一般window应用GUI的规范。
设计应简洁实用,避免在细节上(如字体、颜色)耗费时间。
图4-3学籍管理系统窗体图图4-4录入学生信息窗体图
图4-5修改学生信息窗体图图4-6查询学生信息窗体图
图4-7删除学生信息窗体图
4.系统实现
1)数据库访问:
对数据库的基本操作是:
增、删、改、查,数据库连接的建立、关闭,对student表的插入、修改、查询、删除数据,其中的难点是访问数据库的异常处理和参数化SQL,现举例如下:
、获取数据库连接与关闭的代码:
//mystudent为数据源名称
try{
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
//加载驱动类型
}
catch(java.lang.ClassNotFoundExceptione){
System.err.println(e.getMessage());
}
Connectioncon=DriverManager.getConnection(url,"
"
null);
System.out.println("
Connectionsucceed!
con.close();
catch(SQLExceptionex){
Message:
+ex.getMessage());
该代码针对JdbcOdbcDriver驱动,ODBC源名为mystudent,没有进行口令验证。
、插入代码
从录入学生信息的窗体中输入信息,获得文本框中的数据,保存在student表中。
nu=number.getText();
//获取学号
na=name.getText();
//获取姓名
sex="
//定义性别
sp=speciality.getText();
//获取专业
gr=grade.getText();
//获取年级
bi=birthday.getText();
//获取生日
if(cg1.getState())sex="
男"
if(cg2.getState())sex="
女"
Stringurl="
try{
Connectioncon=DriverManager.getConnection(url,"
Statementstmt=con.createStatement();
Stringsql="
INSERTINTOstudent(学号,姓名,性别,专业,年级,生日)VALUES('
+nu+"
'
'
+na+"
+sex+"
+sp+"
+gr+"
+bi+"
)"
stmt.executeUpdate(sql);
Inprompt("
提示信息"
System.out.println("
学生信息录入成功"
stmt.close();
con.close();
}
catch(SQLExceptionex){
System.out.println(ex.getMessage());
}
、修改代码
先判断输入的学生学号student是否存在,若存在继续操作,不存在时弹出提示信息窗口。
Stringnum=number.getText();
SELECT*FROMstudentwhere学号='
+num+"
ResultSetrs=stmt.executeQuery(sql);
intcount=0;
while(rs.next()){
nu=rs.getString("
学号"
na=rs.getString("
姓名"
sex=rs.getString("
性别"
sp=rs.getString("
专业"
gr=rs.getString("
年级"
bi=rs.getString("
生日"
++count;
}
if(count==0){
ask("
该学生不存在"
else
bu4.setEnabled(true);
con.close();
catch(SQLExceptionex){
2)主窗体的设计
通过构造函数创建一个窗体,在其创建一个空菜单条m,并创建菜单项(菜单选项)加到m中,在菜单项上添加菜单子项(录入学生信息、修改学生信息、查询学生信息、删除学生信息、退出)并对它们注册给动作事件接口。
MyFrame(Strings){
super(s);
MenuBarm=newMenuBar();
//菜单栏对象
Menufi=newMenu("
菜单选项"
//菜单对象
MenuItem[]file=
{
newMenuItem("
录入学生基本信息"
newMenuShortcut(KeyEvent.VK_A)),//快捷键为ctrl+A
修改学生基本信息"
newMenuShortcut(KeyEvent.VK_S)),//快捷键为ctrl+S
查询学生基本信息"
newMenuShortcut(KeyEvent.VK_D)),//快捷键为ctrl+D
删除学生基本信息"
n
ewMenuShortcut(KeyEvent.VK_F)),//快捷键为ctrl+F
退出"
)
};
setMenuBar(m);
m.add(fi);
for(inti=0;
i<
file.length;
i++){
fi.add(file[i]);
file[0].addActionListener(this);
file[1].addActionListener(this);
file[2].addActionListener(this);
file[3].addActionListener(this);
file[4].addActionListener(this);
setSize(500,500);
setVisible(true);
addWindowListener(newcloseWin());
}
3)主要面板的设计
通过对各个窗体的分析,发现其姓名、性别、专业、年级、出生在窗体中的分布都有共同之处,因此可以定义一个面板将这些内容规划好,在定义录入、修改、查询、删除等方法时可以直接调用该面板,可以节省许多代码与运行的速度。
publicPanelfaceplate(Panelf)//定义面板
{
f.setSize(500,500);
f.setVisible(true);
f.setLayout(null);
f.setBackground(Color.lightGray);
la2.setLocation(70,120);
la2.setSize(50,30);
f.add(la2);
name.setLocation(130,120);
name.setSize(280,30);
f.add(name);
la3.setLocation(130,160);
la3.setSize(50,30);
f.add(la3);
cg2.setLocation(240,160);
cg2.setSize(40,30);
f.add(cg2);
la5.setLocation(70,200);
la5.setSize(50,30);
f.add(la5);
speciality.setLocation(130,200);
speciality.setSize(280,30);
f.add(speciality);
la4.setLocation(70,240);
la4.setSize(50,30);
f.add(la4);
grade.setLocation(130,240);
grade.setSize(280,30);
f.add(grade);