Java面向对象程序设计课程设计报告.docx
- 文档编号:25362150
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:36
- 大小:226.66KB
Java面向对象程序设计课程设计报告.docx
《Java面向对象程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计课程设计报告.docx(36页珍藏版)》请在冰豆网上搜索。
Java面向对象程序设计课程设计报告
2021-2021学年第2学期经济管理学院理论教学
成绩评定表
理论教学工程
面向对象程序设计
专业
信息管理与信息系统
学生姓名
班级学号
评
语
成绩
日期
课程理论任务书
学院
经济管理学院
专业
信息管理与信息系统
姓名
学号
15040602
15040602
1504060222
课程名称
面向对象程序设计
设计题目
学生信息管理系统
程序设计
设计要求与任务:
使用任意一款JAVA开发工具开发一个实用的应用系统,如记事本、计算器、绘图软件、JSP网站或者MIS。
可以采取B/S或者C/S形式。
此次设计的详细要求还包括:
〔1〕根据课程设计时间选择适当规模大小的设计题目,分小组进展设计。
〔2〕小组组长为组员分配任务,根据合理的安排,按照软件开发的流程及方法,踏实地开展课程设计活动。
〔3〕课程设计包括开发编码和撰写相关文档。
最后提交详细的课程设计报告。
〔4〕开发出可上机运行的JAVA应用,并上机测试。
工作方案与进度安排:
第1-3天:
布置任务、分组、粗略调查、选题、可行性研究、系统规划。
第4-6天:
深化调研、系统分析、建立数据逻辑模型、系统设计、建立数据物理模型
第7-9天:
系统施行、程序设计、系统调试。
第9-10天:
应用测试、整理资料、撰写报告、准备验收
指导老师(签字):
年月日
专业负责人〔签字〕:
年月日
学院院长〔签字〕:
年月日
摘要
信息技术的快速开展的同时也带来了社会各个行业的开展。
它的开展已经深化到社会的各个角落。
作为社会开展的前沿技术,各行各业只要对其合理的进展运用,必将会带来宏大的便捷。
成功的运用信息技术将为各类学校学生信息管理带来无限便利。
作为计算机应用的一局部,使用学生信息管理系统对学生档案进展管理,有着手工管理所无法比较的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、本钱低等,大地进步学生档案管理的效率。
本文介绍了系统开发的全过程。
该系统以Windows为操作平台,Java为开发语言,Access为数据库,Eclipse为开发工具,使用JDBC技术进展连接,实现了在可视化的根底上,利用数据库进展后台管理。
系统由学生和老师根本信息添加、学生和老师根本信息查询、学生和老师根本信息删除、学生和老师根本信息修改及退出系统等功能模块组成,根本功能较全面。
用户界面友好、明晰、操作简便,易学易用;系统可读性好,易于维护、更新,平安性较好。
采用传统下拉菜单功能选择,方便、快捷、一目了然,并且在一个窗体中进展操作,可视化强。
采用链入数据库进展存储,可动态进展查看、操作,这样的系统可修改性较强。
关键字:
面向对象;Eclipse;JDBC
1前言
学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一局部。
近几年来,国家政策的调整,我国高等院校大规模扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。
其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于标准化,管理效率也不高。
目前我国各类高等院校中还有相当一局部学生档案管理还停留在纸介质的根底上,中、小学对学生档案的管理更是落后,这样的管理机制严重浪费人力和物力,已经不能适应时代开展的要求。
计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。
这种传统的手工管理形式必然被以计算机为物质根底的信息管理方法所取代。
作为计算机应用的一局部,使用学生信息管理系统对学生档案进展管理,有着手工管理所无法比较的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、本钱低等。
这些优点可以极大地进步学生档案管理的效率,也是学校向科学化、正规化管理开展的必要条件。
1.2设计目的
对学生信息管理系统,目的是为了对学校的学生信息管理工作进展系统的管理,以进步工作效率。
通过程序设计,开发出学生信息管理系统代替相应的手工管理。
学生信息管理系统可为用户提供充足的信息和快捷的查询手段,不但可以实现老师、学生的信息录入、修改与删除,而且可以实现学生成绩的信息录入、修改与删除,同时可以对所有的信息进展查询,实现学校的标准化管理。
2需求分析
开发一个系统前,首先应该对该系统要实现的功能进展整体的分析和规划,确保在开发过程中不会出现重大缺陷和破绽。
因此,在软件开发的过程中应严格按照软件工程的流程进展系统的分析与设计。
该系统是学生管理系统,应以学生信息为中心,组织相关程序构造。
通过分析可知,学生信息管理系统的主要业务应有:
学生根本信息管理、老师根本信息管理、学生成绩管理、用户管理等。
通过业务需求分析可知,该系统主要有三类用户:
学生,老师和系统管理员。
因此,该系统的功能可分为学生信息管理、老师信息管理和成绩管理,详细有以下几个方面:
(1)学生:
可以对每个学生的信息进展添加、修改、删除和查询。
(2)成绩:
可以对每个学生所学科目的成绩进展添加、删除、修改和查询。
(3)老师:
可以对每个老师的信息进展添加、删除、修改和查询。
2.2.1学生信息
学生信息主要存储了学生的根本情况,包括学号、姓名、性别、所在班级、所在学院等信息。
一个学号可唯一确定一名学生。
学生信息集中进展管理,方便进展相关根本信息的查询、修改、删除等活动,大大简化了手续。
2.2.2老师信息
老师信息主要存储了老师的根本情况,包括老师编号、姓名、性别、职称、所在学院等信息。
一个老师编号可唯一确定一名老师。
老师信息集中进展管理,方便进展查询、修改、删除和人事变动等活动,大大简化了手续。
2.2.3成绩管理
成绩管理的对象是学生所学科目的相应成绩,对成绩进展集中管理,方便了学生查询成绩、老师添加、查询和修改成绩,加快了查询速度,进步了准确率,大大简化了手续。
图2-1学生信息管理系统功能模块图
3数据库设计
3.1Java连接数据库
3.1.1关系数据库概述
关系数据库,是建立在关系数据库模型根底上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,用二维表格形式来表述实体与实体之间关系。
有3种完好性约束:
实体完好性、参照完好性和用户自定义完好性,其中实体完好性和参照完好性是关系数据库中必不可少的完好性条件,分别表述为主属性不为空和一表或多表之间具有某种对应关系、互相制约。
3.1.2通过JDBC访问数据库
JDBC由Java编程语言编写的类和接口组成,是实现Java与各种数据库连接的关键,提供了将Java与数据库连接起来的程序接口,使用户可以以SQL的形式编写访问恳求,然后传给数据库,其结果再由这一接口返回,从而实现对数据库中数据操作的目的。
3.2数据库与根本表设计
由于该系统数据量不大,采用了Access作为数据库,所建的系统数据库名为“student1〞。
通过需求分析、概念设计与逻辑设计,可知该系统数据库应涉及到以下根本表:
班级表、学生表、老师表,详细构造如下:
(1)班级表〔班级编号,班级名称,所属学院,班级人数〕
该表用于保存班级信息,其数据字典如表3-1所示:
表3-1班级表数据字典
字段名称
数据类型
说明
班级编号
varchar〔20〕
主键
班级名称
varchar〔20〕
所属学院
varchar〔20〕
班级人数
int
(2)学生表〔学号,姓名,性别,出生日期,班级编号〕
该表用于存储学生的根本信息,其数据字典如表3-2所示:
表3-2学生表数据字典
字段名称
数据类型
说明
学号
varchar〔20〕
主键
姓名
varchar〔20〕
性别
varchar〔20〕
属性域为“男〞,“女〞
出生日期
data
班级编号
varchar〔20〕
外键,参照班级表中
班级编号
(3)老师表〔老师编号,姓名,性别,职称,所属学院,出生日期〕
该表用于存储老师的根本信息,其数据字典如表3-3所示:
表3-3老师表数据字典
字段名称
数据类型
说明
老师编号
varchar〔20〕
主键
姓名
varchar〔20〕
性别
varchar〔20〕
属性域为“男〞,“女〞
出生日期
data
职称
varchar〔20〕
所属学院
varchar〔20〕
(4)课程表〔课程号,课程名,学分〕
该表用于存储学生可学课程的根本信息,其数据字典如表3-4所示:
表3-4课程表数据字典
字段名称
数据类型
说明
课程号
varchar〔20〕
主键
课程名
varchar〔20〕
学分
int
(5)成绩表〔学号,课程号,成绩,老师编号〕
该表用于存储学生可学课程的成绩情况,其数据字典如表3-5所示:
表3-5课程表数据字典
字段名称
数据类型
说明
学号
varchar〔20〕
外键,参照学生表中
学号
课程号
varchar〔20〕
外键,参照课程表中
课程编号
成绩
int
老师编号
varchar〔20〕
外键,参照老师表中
老师编号
4系统设计与施行
EclipseJavaNeon3
出于稳定性与便利性的考量,本设计选用了EclipseJavaNeon3作为程序的开发环境,Eclipse是著名的跨平台的自由集成开发环境〔IDE〕,最初由OTI和IBM两家公司的IDE产品开发组创立,它本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵敏性。
使用时可清楚的发现错误,并能根据相应规那么进展修改,大大简化了程序检查工作。
由于packageexplorer的存在,使得随时查找文件变得非常方便。
同时又提供有很便利的数据库连接方式。
EclipseJavaNeon3具有以下四大优点:
〔1〕从编写、查错、编译、帮助等等各方面为Java语言贴身定做。
〔2〕可无限扩展的强大插件功能。
〔3〕众多公司、厂商、组织支持。
〔4〕开放,自由,免费。
4.2构造设计
该系统用于对学生的根本信息与学生的成绩进展管理,主要包括添加、修改和删除学生与老师根本信息,录入、修改和删除学生的成绩,查询学生和老师的根本信息,为了方便,全部操作均在界面中完成。
由此,将该系统构造设计为登录模块、学生模块、老师模块,对应于学生与老师这两类主要用户。
由于涉及界面设计,因此调用了java.awt.*、java.awt.event.*、javax.swing.*、java.util.*、javax.swing.event.*、java.sql.*等包。
4.3文件组织构造
学生信息管理系统中使用的根目录文件夹是“nnn〞,其文件组织构造图如图4-1所示:
图4-1工程文件组织构造图
4.4登录模块
登录模块使进入学生信息管理系统的第一个界面,相当于一个网站的主页。
4.4.1设计设想
该系统是学生信息管理系统,用户为三类:
学生、老师和系统管理员,可在相应的权限范围内查询和更新系统数据。
因此,不同的用户在登录时需有不同的角色选项,此外,还应有各自的用户名和密码。
4.4.2实现登录模块
〔1〕要生成一个界面,可应用AWT知识。
设置其名字为学生信息管理系统;设置布局管理器为〔null〕布局管理器,这样方便往其中放组件;设置窗口大小和位置,还要设置窗口可见性。
〔2〕生成界面后,接下来就需要实现每个功能,在设计设想中提到的第一个功能就是要对操作对象的身份进展选择,这里要用下拉列表的形式进展选择,也可以用单项选择按钮来完成这个功能。
在这项功能中,首先要选择身份,所以要定义一个JLabel来说明,定义完JLabel后,就需要定义一个JComoBox,也就是下拉列表框。
〔3〕输入用户名和密码。
需要用两个JLabel来指明需要输入用户名和密码。
输入用户名需要定义一个JTextField,也就是单文本框。
同时输入文本,但输入密码和输入用户名是不一样的,它需要定义成JPasswordField,它的输出结果为“*****〞这样的形式。
〔4〕创立两个按钮,一个是登录按钮,另一个是取消登录按钮,用来输入的用户名和密码及选择的身份进展提交。
当然要对登录按钮事件进展事件监听,首先要验证用户名和密码是否正确并对上,然后根据选择的身份来选择需要进入那个界面,其代码如下:
publicclassInfo_ManageextendsFrameimplementsActionListener{
JLabelJLUserName=newJLabel("用户名");
JLabelJLPaw=newJLabel("密码");
JLabelJLP=newJLabel("角色");
JTextFieldJTUserName=newJTextField();
JPasswordFieldJPsw=newJPasswordField();
JTextFieldjt=newJTextField(10);
Stringstr[]={"学生","老师","管理者"};
JComboBoxJCB=newJComboBox(str);
JButtonJB1=newJButton("登录");
JButtonJB2=newJButton("取消");
publicInfo_Manage(){
this.setTitle("学生信息管理系统");
this.setLayout(null);
JLUserName.setBounds(100,40,100,20);
this.add(JLUserName);
JTUserName.setBounds(200,40,100,20);
this.add(JTUserName);
JLPaw.setBounds(100,100,100,20);
this.add(JLPaw);
JPsw.setBounds(200,100,80,20);
this.add(JPsw);
JCB.setBounds(200,150,100,20);
this.add(JCB);
JLP.setBounds(100,150,100,20);
this.add(JLP);
JB1.setBounds(100,200,60,20);
this.add(JB1);
JB1.addActionListener(this);
JB2.setBounds(200,200,60,20);
this.add(JB2);
JB2.addActionListener(this);
this.setVisible(true);
this.setBounds(10,10,400,250);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
JCB.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
inth=JCB.getSelectedIndex();
if(h==0)student_managesm=newstudent_manage();
elseif(h==1)teacher_managetm=newteacher_manage();
}
});
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==JB1){
Stringname=JTUserName.getText();
Stringpassword=newString(JPsw.getPassword());
if((name!
=null&&(name.equals("1")))
&&(password!
=null&&(password.equals("1")))){
newstudent_manage();}
else{
}
}
}
}
其运行结果如图4-2所示:
4.5学生信息模块
中选择“学生〞时,单击“登录〞按钮就可以进入学生信息管理系统了,其信息量很大,详细如下所述:
4.5.1设计设想
进入了学生信息管理系统,就可以对摸个学生的信息进展输入、修改和删除,也能对同学的信息进展查询和对程序进展查询。
当打算分开时,还要有一个选项用来退出学生信息管理系统。
4.5.2实现学生信息模块主界面
根据设计设想,首先要搭建一个界面,然后吧学生信息操作的每一局部分为3大块,分别是信息、查询、和其他,并把他们做成菜单形式,最后将对信息的输入,修改和删除做成子菜单添加到信息菜单下;将查询信息和查询成绩添加到查询菜单下;将突出添加到其他菜单下,并把他做成子菜单放在一个菜单下,这样做是为了假如以后需要更多的功能,可以很方便的进展添加。
创立菜单需要的定义JMenu,创立子菜单需要定义JMenuItem,并且要指明是添加到哪个菜单下面,下面是学生管理模块主界面的局部代码
classstudent_manageextendsJFrameimplementsActionListener{
JMenuBarjm=newJMenuBar();
JMenujm1=newJMenu("信息");
JMenuItemjmi1=newJMenuItem("增加信息");
JMenuItemjmi2=newJMenuItem("删除信息");
JMenuItemjmi3=newJMenuItem("修改信息");
JMenujm2=newJMenu("查询");
JMenuItemjmi21=newJMenuItem("根本信息查询");
JMenuItemjm22=newJMenuItem("成绩查询");
JMenujm3=newJMenu("其他");
JMenuItemjmi31=newJMenuItem("退出");
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jmi1)newAddStudent();
if(e.getSource()==jmi2)newDeleteStudent();
if(e.getSource()==jmi3)newGetStudent();
if(e.getSource()==jmi21)newSetStudent();
if(e.getSource()==jmi31)newUsingExit().setVisible(true);
if(e.getSource()==jm22)newSetGrade();
}
}
其运行结果如图4-3所示:
每个子菜单都对应着一个操作界面,接下来对每一个子菜单进展讲解。
中选择信息菜单下的“增加信息〞子菜单时,将弹出如下图的界面,它调用了AddStudent.java类实现该功能。
通过对“增加信息〞这一子菜单设置监听,弹出界面。
AddStudent.java的代码如下:
classAddStudentextendsJFrameimplementsActionListener{
JLabelJL=newJLabel("添加根本信息",JLabel.CENTER);
JLabelJLNumber=newJLabel("学号");
JTextFieldJTNumber=newJTextField();
JLabelJLName=newJLabel("姓名");
JTextFieldJTName=newJTextField();
JLabelJLClass=newJLabel("班级");
JTextFieldJTClass=newJTextField();
JLabelJLsex=newJLabel("性别");
ButtonGroupBG=newButtonGroup();
JRadioButtonJRB1=newJRadioButton("男");
JRadioButtonJRB2=newJRadioButton("女");
JLabelJL1=newJLabel("学院");
JTextFieldJT1=newJTextField();
JLabelJL2=newJLabel("生日");
JTextFieldJT2=newJTextField();
JButtonJBAdd=newJButton("添加");
JButtonJBNext=newJButton("重置");
JButtonJBExit=newJButton("退出");
Stringsql="";
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==JBAdd){
Stringsnumber=JTNumber.getText();
Stringsname=JTName.getText();
Stringsclass=JTClass.getText();
Stringssex="女";
if(JRB1.isSelected())
ssex="男";
Stringscollect=JT1.getText();
Stringsbir=JT2.getText();
sql="select*fromstudentwhereid='"+snumber+"'";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncot=DriverManager.getConnection(
"jdbc:
odbc:
student1","","");
Statementstm=cot.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())
JOptionPane.showMessageDialog(null,"该号码已存在!
");
else{
sql="insertintostudentvalues('"+snumber+"','"
+sname+"',
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计 课程设计 报告