学籍管理系统内含源代码.docx
《学籍管理系统内含源代码.docx》由会员分享,可在线阅读,更多相关《学籍管理系统内含源代码.docx(51页珍藏版)》请在冰豆网上搜索。
学籍管理系统内含源代码
XX学院计算机科学与技术系
实验报告
课程名称
程序设计基础实验
(2)
实验项目
应用系统的面向对象设计与分析
实验类型
综合性实验
完成人
所在班级
指导教师
完成日期
2009年11月30日
实验报告正文
一.实验报告简表
实验课题名称
学籍管理系统
综合性实验项目
应用系统的面向对象设计与分析
服务课程
程序设计基础实验
(2)
实验小组组长
指导教师
参与实验人员及其在实验课题中承担的主要任务(包括组长)
学号
小组成员姓名
班级
在实验课题中的主要作用
二.设计内容与要求
设计内容:
设计基于文件结构的学籍管理系统
设计要求:
(1)录入学生基本信息的功能界面
(2)修改学生基本信息的功能界面
(3)查询学生基本信息的功能界面
(4)删除学生基本信息的功能界面
三.总体设计,包括需求分析、功能描述、设计工具与运行环境、类及类间关系描述等
a、Student.java:
程序的入口。
初始化主界面,使主界面位于屏幕中间,且用户不能改变其大小。
b、MainFrame.java:
程序的主界面。
由菜单、登陆界面和操作选项所构成。
其中菜单的“文件”中各操作项必须在登陆后方可选择,输入用户名和密码点击“进入”,提示登陆成功之后(用户名和密码在数据库的Admin表中,如果用户填的密码或用户名错误或没填都会产生相应的警告框),登陆界面消失,出现“添加信息”、“修改信息”、“信息查询”和“删除信息”四个按钮,且菜单中的操作项也被激活。
点击要操作的按钮或菜单项,进入要操作的界面(窗口出现在屏幕左上角)。
c、AddInf.java:
添加信息界面。
按照要求添入基本信息,如果用户填错或没填,提示错误信息(如不能添加已经注册的学号)。
填写完整后,点击“增加”按钮,将信息加入数据库的BaseInf表中。
d、ChangeInf.java:
修改信息界面。
按照提示输入要修改信息的学生学号,点击“下一步”(如果数据库无此学号,则提示“无此对应信息”),从数据库中将该学生的完整信息读出,用户修改之后点击“修改”即可。
注意:
为了防止意外,修改学生信息时,程序禁止了对学号的修改。
(为了程序设计方便和代码重用,修改信息的代码是先删此该生所有信息,再将修改后的信息全部添加到数据库,这也是数据库修改的原理)
e、SeachInf.java:
查询信息界面。
输入要查询的学生的学号或姓名(也可两项都填写),点击“查询”,将提示“查无对应信息”或将查询到的学生完整信息显示出来,如果有多条对应信息,“下一条”按钮可选,单击之后可查看下一满足条件的信息,查找准确的学生信息。
f、DelInf.java:
删除信息界面。
输入要删除信息的学生的学号,单击“下一步”,程序给出该生的完整信息,点击“删除”,提示是否确定删除对话框,仔细查看信息确认无误后,单击“确定”完成删除,否则单击“取消”。
四.详细设计,包括类图及代码等
Student.java:
importjavax.swing.UIManager;
importjava.awt.*;
publicclassStudent{
booleanpackFrame=false;
publicStudent(){
MainFrameframe=newMainFrame();
if(packFrame){
frame.pack();
}
else{
frame.validate();
}
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
DimensionframeSize=frame.getSize();
if(frameSize.height>screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width){
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,
(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
publicstaticvoidmain(String[]args){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exceptione){
e.printStackTrace();
}
newStudent();
}
}
MainFrame.java:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
publicclassMainFrameextendsJFrame{
booleanlogin=false;
JPanelcontentPane;
JMenuBarjMenuBar1=newJMenuBar();/*菜单条*/
JMenujMenuFile=newJMenu();/*菜单项*/
JMenujMenuHelp=newJMenu();/*菜单项*/
JMenuItemjMenuFileExit=newJMenuItem();/*菜单子项*/
JMenuItemjMenuHelpAbout=newJMenuItem();/*菜单子项*/
JMenuItemjMenuItem1=newJMenuItem();/*菜单子项*/
JMenuItemjMenuItem2=newJMenuItem();/*菜单子项*/
JMenuItemjMenuItem3=newJMenuItem();/*菜单子项*/
JMenuItemjMenuItem4=newJMenuItem();/*菜单子项*/
JMenuItemjMenuItem5=newJMenuItem();/*菜单子项*/
Labellabel1=newLabel();/*标签*/
Labellabel2=newLabel();/*标签*/
Labellabel3=newLabel();/*标签*/
Labellabel4=newLabel();/*标签*/
Buttonbutton1=newButton();/*按钮*/
Buttonbutton2=newButton();/*按钮*/
Buttonbutton3=newButton();/*按钮*/
Buttonbutton4=newButton();/*按钮*/
Buttonbutton5=newButton();/*按钮*/
TextFieldtextField1=newTextField();/*文本框*/
TextFieldtextField2=newTextField();/*文本框*/
publicMainFrame(){/*构造函数*/
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try{
jbInit();
}
catch(Exceptione){
e.printStackTrace();
}
}
privatevoidjbInit()throwsException{/*初始化*/
contentPane=(JPanel)this.getContentPane();/*初始化一个容器*/
contentPane.setLayout(null);
contentPane.setEnabled(false);/*设置是否启用该组件FALSE表示不启用*/
contentPane.setOpaque(true);/*该组件绘制其边界内的所有像素*/
contentPane.setPreferredSize(newDimension(1,1));/*设置组建的首选大小*/
contentPane.setRequestFocusEnabled(true);/*提供一个关于此JComponent是否应该获得焦点的提示*/
this.setForeground(Color.black);
this.setResizable(false);/*设置此窗体为不可由用户调整大小*/
this.setSize(newDimension(400,300));/*调整窗口大小宽为400高为300*/
this.setTitle("学籍管理系统");
jMenuBar1.setEnabled(true);
jMenuBar1.setBorderPainted(true);/*如果该属性为true并且按钮有边框,则绘制该边框*/
jMenuFile.setVerifyInputWhenFocusTarget(true);/*设置该值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器*/
jMenuFile.setActionCommand("文件");
jMenuFile.setText("文件");
jMenuHelp.setText("帮助");
jMenuFileExit.setText("退出");
jMenuFileExit.addActionListener(newMainFrame_ActionAdapter(this));
jMenuHelpAbout.setText("关于");
jMenuHelpAbout.addActionListener(newMainFrame_ActionAdapter(this));
label1.setFont(newFont("Dialog",1,15));
label1.setText("用户:
");
label1.setBounds(newRectangle(123,25,49,16));
label2.setFont(newFont("Dialog",1,15));
label2.setText("密码:
");
label2.setBounds(newRectangle(123,62,49,16));
textField1.setText("");
textField1.setBounds(newRectangle(192,24,62,18));
textField2.setEchoChar('*');
textField2.setText("");
textField2.setBounds(newRectangle(192,61,62,18));
button1.setLabel("进入系统");
button1.setFont(newFont("Dialog",1,15));
button1.setBounds(newRectangle(150,104,101,22));
button1.addActionListener(newMainFrame_ActionAdapter(this));
label3.setFont(newFont("Dialog",1,15));
label3.setForeground(Color.red);
label3.setText("请选择操作项");
label3.setVisible(false);
label3.setBounds(newRectangle(158,92,84,16));
button2.setFont(newFont("Dialog",1,15));
button2.setLabel("添加信息");
button2.setVisible(false);
button2.setBounds(newRectangle(74,136,97,33));
button3.setFont(newFont("Dialog",1,15));
button3.setLabel("修改信息");
button3.setVisible(false);
button3.setBounds(newRectangle(226,136,97,33));
button4.setFont(newFont("Dialog",1,15));
button4.setLabel("信息查询");
button4.setVisible(false);
button4.setBounds(newRectangle(74,185,97,33));
button5.setFont(newFont("Dialog",1,15));
button5.setLabel("删除信息");
button5.setVisible(false);
button5.setBounds(newRectangle(226,185,97,33));
jMenuItem1.setText("添加信息");
jMenuItem2.setText("信息查询");
jMenuItem3.setText("修改信息");
jMenuItem4.setText("删除信息");
jMenuItem5.setText("帮助");
label4.setFont(newFont("Dialog",1,30));
label4.setText("学籍管理系统");
label4.setVisible(false);
label4.setBounds(newRectangle(70,37,261,33));
jMenuFile.add(jMenuItem1);
jMenuItem1.setEnabled(false);
jMenuItem1.addActionListener(newMainFrame_ActionAdapter(this));
jMenuItem2.setEnabled(false);
jMenuFile.add(jMenuItem2);
jMenuItem2.addActionListener(newMainFrame_ActionAdapter(this));
jMenuItem3.setEnabled(false);
jMenuFile.add(jMenuItem3);
jMenuItem3.addActionListener(newMainFrame_ActionAdapter(this));
jMenuItem4.setEnabled(false);
jMenuFile.add(jMenuItem4);
jMenuItem4.addActionListener(newMainFrame_ActionAdapter(this));
jMenuFile.add(jMenuFileExit);
jMenuHelp.add(jMenuItem5);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
contentPane.add(label1,null);
contentPane.add(label2,null);
contentPane.add(textField1,null);
contentPane.add(textField2,null);
contentPane.add(label3,null);
contentPane.add(button2,null);
button2.addActionListener(newMainFrame_ActionAdapter(this));
contentPane.add(button4,null);
button4.addActionListener(newMainFrame_ActionAdapter(this));
contentPane.add(button3,null);
button3.addActionListener(newMainFrame_ActionAdapter(this));
contentPane.add(button5,null);
button5.addActionListener(newMainFrame_ActionAdapter(this));
contentPane.add(button1,null);
contentPane.add(label4,null);
this.setJMenuBar(jMenuBar1);
}
publicvoidjMenuFileExit_actionPerformed(ActionEvente){
System.exit(0);
}
publicvoidjMenuHelpAbout_actionPerformed(ActionEvente){
}
protectedvoidprocessWindowEvent(WindowEvente){
super.processWindowEvent(e);
if(e.getID()==WindowEvent.WINDOW_CLOSING){
jMenuFileExit_actionPerformed(null);
}
}
voidbutton1_actionPerformed(ActionEvente){
Stringuser=textField1.getText().trim();
Stringpass=textField2.getText().trim();
try{
Stringstrurl=
"jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=DataBase/student.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectionconn=DriverManager.getConnection(strurl);
Statementstmt=conn.createStatement();
if(user.equals("")||pass.equals(""))
JOptionPane.showMessageDialog(null,"用户名或密码不能为空","警告",
JOptionPane.WARNING_MESSAGE);
else{
ResultSetrs=stmt.executeQuery("select*fromadminwhereusername='"+
user+"'ANDpassword='"+pass+"'");
if(rs.next()){
JOptionPane.showMessageDialog(null,"登陆成功");
login=true;
label1.setVisible(false);
textField1.setVisible(false);
label2.setVisible(false);
textField2.setVisible(false);
button1.setVisible(false);
label3.setVisible(true);
label4.setVisible(true);
button2.setVisible(true);
button3.setVisible(true);
button4.setVisible(true);
button5.setVisible(true);
jMenuItem1.setEnabled(true);
jMenuItem2.setEnabled(true);
jMenuItem3.setEnabled(true);
jMenuItem4.setEnabled(true);
}
else
JOptionPane.showMessageDialog(null,"登陆失败","警告",
JOptionPane.WARNING_MESSAGE);
}
}
catch(Exceptioneg)
{
eg.printStackTrace();
}
}
}
classMainFrame_ActionAdapterimplementsActionListener{
MainFrameadaptee;
MainFrame_ActionAdapter(MainFrameadaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==adaptee.jMenuFileExit)
adaptee.jMenuFileExit_actionPerformed(e);
elseif(e.getSource()==adaptee.jMenuItem1||
e.getSource()==adaptee.button2){
AddInfaddInf=newAddInf();
addInf.setSize(400,300);
addInf.setVisible(true);
}
elseif(e.getSource()==adaptee.jMenuItem3||
e.getSource()==adaptee.button3){
ChangeInfchangeInf=newChangeInf();
changeInf.setSize(400,300);
changeInf.setVisible(true);
}
elseif(e.getSource()==adaptee.jMenuItem2||
e.ge