张纪华面向对象课程设计报告.docx
- 文档编号:12149196
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:26
- 大小:929.58KB
张纪华面向对象课程设计报告.docx
《张纪华面向对象课程设计报告.docx》由会员分享,可在线阅读,更多相关《张纪华面向对象课程设计报告.docx(26页珍藏版)》请在冰点文库上搜索。
张纪华面向对象课程设计报告
《面向对象课程设计》
课程设计报告
课程设计题目:
学生信息管理系统
学生姓名:
张纪华
专业:
信息管理与信息系统
班级:
1230601
学号:
201230060116
指导教师:
司红伟老师
2014年06月26日
一、设计目的:
本程序用于用户对少量学生信息进行简单的管理,本程序针对于对安全系数要求不高,操作不是很复杂的小型客户开发。
本程序可以实现对学生信息的录入、查询、修改、删除等操作,同时支持查看所有学生信息,功能完善,界面简洁美观,布局合理,操作简便,简单易用,任何人可轻松操作。
同时,本程序对系统要求配置较低,运行速度快,而却对数据库管理要求较低。
本程序数据库采用office2007版本的access数据库(.accdb)进行数据存储,该数据库可实现关系较为简单的数据管理。
二、设计任务:
2.1任务说明
设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。
要求如下:
(1)具有简单的录入,查询和修改功能。
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等修改;
(3)使用文件存储数据。
(也可用数据库)
(4)学生个人信息必须包括:
学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。
(5)具有对姓名,出生日期和身份证号进行简单校验的功能。
2.2系统目标
软件开发的意图便于用户对学生的管理,方便查看学生的情况。
如用户对学生基本信息进行录入、查询、修改、删除等。
2.3使用范围
本系统仅针对用户对少量学生进行信息管理。
2.4功能要求
1录入学生基本信息的功能
2查询学生基本信息的功能
3修改学生基本信息的功能
4删除学生基本信息的功能
5显示所有学生信息的功能
三、设计内容:
3.1界面构建
1、为了便于各种操作,软件采用多窗口的模式。
用户可在不同窗口进行相应操作(录入、查询、修改、删除、显示所有学生省信息)。
2、主窗口是用户进行各种操作的平台,具体操作在各个独立功能窗口中完成。
3、主窗口的主要功能位于菜单中,菜单为进入各个功能窗口的唯一通道。
4、当用户在进行个别录入、删除或错误输入操作时,会弹出相应对话框提示用户。
如当录入成功或删除成功,弹出成功以及相应的简明信息提示当,当录入、删除失败以及输入不当是,弹出错误以及简单的错误原因提示用户重新操作。
5、界面布局尽量合理,各组件位置分布均匀美观。
4、程序代码及运行效果:
4.1主类代码
/*主类代码*/
packageTest;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
classMyPanelextendsJPanel{
Imageimg=Toolkit.getDefaultToolkit().getImage("c:
/a.jpg");
publicvoidpaint(Graphicsg){
g.drawImage(img,0,0,this);
}
}
publicclassMainFormextendsJFrameimplementsActionListener
{
JMenumSystem=newJMenu("系统");
JMenuItemmExit=newJMenuItem("退出");
JMenumOperate=newJMenu("数据操作");
JMenuItemmAdd=newJMenuItem("添加");
JMenuItemmDel=newJMenuItem("删除");
JMenuItemmModify=newJMenuItem("修改");
JMenumQuery=newJMenu("查询");
JMenuItemmName=newJMenuItem("按姓名查询");
JMenuBarmBar=newJMenuBar();
MainForm()
{
super("学生成绩管理系统");
setSize(875,583);
mSystem.add(mExit);
mOperate.add(mAdd);
mOperate.add(mDel);
mOperate.add(mModify);
mQuery.add(mName);
mBar.add(mSystem);
mBar.add(mOperate);
mBar.add(mQuery);
setJMenuBar(mBar);
mExit.addActionListener(this);
mAdd.addActionListener(this);
mDel.addActionListener(this);
mModify.addActionListener(this);
mName.addActionListener(this);
setContentPane(newMyPanel());
setVisible(true);
}
publicvoidactionPerformed(ActionEventae){
if(ae.getSource()==mExit)
System.exit(0);
elseif(ae.getSource()==mAdd)
newAddForm().setVisible(true);
elseif(ae.getSource()==mDel)
newDeleteForm().setVisible(true);
elseif(ae.getSource()==mModify)
newModifyForm().setVisible(true);
elseif(ae.getSource()==mName)
newQueryForm().setVisible(true);
newQueryForm().setVisible(true);
}
publicstaticvoidmain(String[]args){
newMainForm();
}
}
4.1.1运行效果:
4.2修改数据:
/*修改数据*/
packageTest;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassModifyFormextendsJFrameimplementsActionListener
{
JLabellabName=newJLabel("姓名:
");
JLabellabData=newJLabel("年龄:
");
JLabellabScore=newJLabel("成绩:
");
JTextFieldtxtName=newJTextField(20);
JTextFieldtxtData=newJTextField(18);
JTextFieldtxtScore=newJTextField(20);
JButtonbtnModify=newJButton("修改");
JButtonbtnCancel=newJButton("取消");
JButtonbtnQuery=newJButton("查询");
JPanelpan=newJPanel();
JPanelpan1=newJPanel();
JPanelpan2=newJPanel();
JPanelpan3=newJPanel();
JPanelpan4=newJPanel();
Connectioncon;
Statementsql;
ResultSetrs;
ModifyForm()
{
super("修改数据");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labData);
pan2.add(txtData);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnModify);
pan4.add(btnCancel);
pan.setLayout(newGridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnQuery.addActionListener(this);
btnModify.addActionListener(this);
btnCancel.addActionListener(this);
btnModify.setEnabled(true);
txtData.setEditable(true);
txtScore.setEditable(true);
setVisible(true);
txtName.requestFocus();
}
publicvoidactionPerformed(ActionEventae){
if(ae.getSource()==btnCancel){
dispose();
}elseif(ae.getSource()==btnQuery){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundExceptione){
}
try{con=DriverManager.getConnection("jdbc:
odbc:
学生信息","","");
sql=con.createStatement();
rs=sql.executeQuery("select*from学生信息where姓名='"+txtName.getText()+"'");
if(rs.next()){
txtName.setText(rs.getString("姓名"));
txtData.setText(newInteger(rs.getInt("年龄")).toString());
txtScore.setText(newInteger(rs.getInt("成绩")).toString());
btnModify.setEnabled(true);
txtData.setEditable(true);
txtScore.setEditable(true);
}else{
System.out.println("不存在该记录!
");
btnModify.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtData.setText("");
txtData.setEditable(false);
txtScore.setEditable(false);
}
}catch(SQLExceptione){
}
}elseif(ae.getSource()==btnModify){
try{
System.out.println("Update学生信息set年龄='"+txtData.getText()+"',成绩="+txtScore.getText()+"where姓名='"+txtName.getText()+"'");
sql.executeUpdate("Update学生信息set年龄='"+txtData.getText()+"',成绩="+txtScore.getText()+"where姓名='"+txtName.getText()+"'");
System.out.println("记录修改完毕!
");
btnModify.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtData.setText("");
txtData.setEditable(false);
txtScore.setEditable(false);
con.close();
}catch(SQLExceptione){
}
}
}
publicstaticvoidmain(String[]args){
newModifyForm();
}
}
4.2.1运行效果(修改前):
4.2.2运行效果(修改后):
4.3删除数据:
/*删除数据*/
packageTest;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassDeleteFormextendsJFrameimplementsActionListener
{
JLabellabName=newJLabel("姓名:
");
JLabellabData=newJLabel("年龄:
");
JLabellabScore=newJLabel("成绩:
");
JTextFieldtxtName=newJTextField(20);
JTextFieldtxtData=newJTextField(18);
JTextFieldtxtScore=newJTextField(20);
JButtonbtnDelete=newJButton("删除");
JButtonbtnCancel=newJButton("取消");
JButtonbtnQuery=newJButton("查询");
JPanelpan=newJPanel();
JPanelpan1=newJPanel();
JPanelpan2=newJPanel();
JPanelpan3=newJPanel();
JPanelpan4=newJPanel();
Connectioncon;
Statementsql;
ResultSetrs;
DeleteForm()
{
super("删除数据");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labData);
pan2.add(txtData);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnDelete);
pan4.add(btnCancel);
pan.setLayout(newGridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnQuery.addActionListener(this);
btnDelete.addActionListener(this);
btnCancel.addActionListener(this);
btnDelete.setEnabled(false);//取消删除按钮的功能
txtData.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
publicvoidactionPerformed(ActionEventae)
{
if(ae.getSource()==btnCancel)
{
dispose();
}
elseif(ae.getSource()==btnQuery){//实现查询功能
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundExceptione){
}
try{con=DriverManager.getConnection("jdbc:
odbc:
学生信息","","");
sql=con.createStatement();
rs=sql.executeQuery("select*from学生信息where姓名='"+txtName.getText()+"'");
if(rs.next())
{
txtName.setText(rs.getString("姓名"));
txtData.setText(newInteger(rs.getInt("年龄")).toString());
txtScore.setText(newInteger(rs.getInt("成绩")).toString());
btnDelete.setEnabled(true);//使删除按钮功能实现
txtData.setEditable(true);
txtScore.setEditable(true);
}else{
System.out.println("不存在该记录!
");
btnDelete.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtData.setText("");
txtData.setEditable(false);
txtScore.setEditable(false);
}
}catch(SQLExceptione){
}
}
elseif(ae.getSource()==btnDelete)//实现删除功能
{
try
{
System.out.println("Update学生信息set年龄='"+txtData.getText()+"',成绩="+txtScore.getText()+"where姓名='"+txtName.getText()+"'");
sql.executeUpdate("DELETEFROM学生信息where姓名='"+txtName.getText()+"'");
System.out.println("记录删除完毕!
");
btnDelete.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtData.setText("");
txtData.setEditable(false);
txtScore.setEditable(false);
con.close();
}
catch(SQLExceptione){
}
}
}
publicstaticvoidmain(String[]args)
{
newDeleteForm();
}
}
4.3.1运行效果(删除前):
4.3.2运行效果(删除后):
4.4添加数据:
/*添加数据*/
packageTest;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassAddFormextendsJFrameimplementsActionListener
{
JLabellabName=newJLabel("姓名:
");
JLabellabData=newJLabel("年龄:
");
JLabellabScore=newJLabel("成绩:
");
JTextFieldtxtName=newJTextField(20);
JTextFieldtxtData=newJTextField(18);
JTextFieldtxtScore=newJTextField(20);
JButtonbtnAdd=newJButton("添加");
JButtonbtnCancel=newJButton("取消");
JPanelpan=newJPanel();
JPanelpan1=newJPanel();
JPanelpan2=newJPanel();
JPanelpan3=newJPanel();
JPanelpan4=newJPanel();
Connectioncon;
Statementsql;
ResultSetrs;
AddForm()
{
super("添加数据");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labData);
pan2.add(txtData);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnAdd);
pan4.add(btnCancel);
pan.setLayout(newGridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnAdd.addActionListener(this);
btnCancel.addActionListener(this);
btnAdd.setEnabled(true);
txtData.setEditable(true);
txtScore.setEditable(true);
setVisible(tr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 张纪华 面向 对象 课程设计 报告