JAVA实验报告.docx
《JAVA实验报告.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
JAVA实验报告
JAVA实验报告
所属课程:
JAVA
班级:
姓名:
学号:
一、设计思路
随着社会经济的发展,入学的同学越来越多,为方便对同学学籍信息的的管理,设计学籍管理软家来管理本班级同学的学籍信息。
该软件应支持添加、删除、修改、查询功能。
并且查询功能分为两种情况显示查询的结果:
查询方式主要是支持学号查询,例如:
输入“111”,则显示该学生的信息。
运用流式、卡片、整体布局方式对系统的主界面和各功能界面进行设计;通过连接数据库的方式来实现对数据的存储;各功能实现时访问数据库,并对数据信息进行读取,运用Java语句对其进行输出,学号查询时显示在文本框中;管理员登录、管理员添加信息,系统提示功能用来提醒用户的错误操作和输入时的错误信息,提醒用户进行改正
二、具体实现
该系统中的信息存储在数据库中,并实现以下各功能:
管理员登录:
管理员帐号admin,密码:
12345,进行增删查改。
添加功能:
添加数据信息,当有新同学进入是可以添加该同学的信息。
通过文本框读入添加信息,连接数据库后储存数据。
精确查询:
输入要查询同学的学号,显示出该同学的信息。
通过文本框读入要查找的信息,用SQL语句在数据库中进行查找。
删除功能:
该功能和精确查询功能在同一功能模块中实现,有于删除同学信息并更新数据库信息。
修改功能:
当同学的信息改变时,用此功能更新同学信息。
通过对数据库信息的更新保存最新信息。
每种功能通过一个类来实现:
类分分为主类、精确查询类、修改类、添加类、增加类。
主类(Info_manager)实现系统主界面以及和各功能界面的连接;精确查询类(SearchStudent)实现对数据库中数据的精确查询;修改类(MdifyStudent)实现对数据的修改更新;添加类(AddStudent)向数据库中添加新数据;删除类(DeleteStudent)实现对数据的删除。
该系统需要用数据库来实现对信息的存储,每次对信息的操作都要访问数据库,并对数据库的信息作相应的读入和取出。
该系统流程图如下:
图1系统流程图
图2程序流程图
三、运行调试与分析讨论
系统的详细设计代码请查阅附带的代码。
以下仅对各个界面进行截图展示:
图3系统登录界面
图4系统主要界面
图6添加信息的界面
图8查询界面
运行JAVA程序中的Infor_Manager文件,显示系统的主界面,如图三所示,主界面有进入其他子功能的按钮,选择相应的按钮便可进入相应的功能。
添加号码功能如图四所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否添加。
修改号码功能如图五所示,首先输入要修改的人姓名,点击开始修改,在下面的文本框现实当前数据库内所存该人的信息,同时录入修改键变化为可点击,在文本框内输入要修改的学号,点击录入修改,系统将新信息录如数据库。
点击精确查询按钮,将弹出查询对话框,
输入学号便可以精确查询到此人的所有学籍信息。
查询如图七所示,将显示数据库中所存的所有号码信息。
四、设计体会与小结
自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对GUI组键的应用有了更深入的认识与掌握,另外还学到了一些新东西,比如JAVA的SWING、AWT包,以前是没有接触过的,可是通过这次课程设计使得我们对这个包更了解。
通过与数据库的连接掌握了Java与数据库的连接技术。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
五、参考文献
[1]朱福喜,尹为民等编著.Java语言与面向对象程序设计.武汉:
武汉大学出版社,2002.12
[2]冯军,程超等编著.JBuilder9.0程序设计.北京:
中国水利水电出版社,2004.5
[3]丁振凡,黎章等编著.Java语言实用教程..北京:
北京邮电大学出版社,2005.8
[4]何桥,李肃义等编著.Java程序设计简明教程.北京:
中国水利水电出版社,2004.9
六、附录
程序的主要代码:
主界面模块主要代码登录界面Info_Manager.java
publicclassInfo_ManageextendsFrameimplementsActionListener{
JLabelJLUserName=newJLabel("用户名:
");//创建一个标签对象,现实用户名
JLabelJLPaw=newJLabel("密码:
");//创建一个标签对象,现实密码
JTextFieldJTUserName=newJTextField();//创建一个密码框对象
JPasswordFieldJPsw=newJPasswordField();//创建一个对象框对象
JButtonJB1=newJButton("登录");//创建按钮对象
JButtonJB2=newJButton("取消");
publicInfo_Manage(){
this.setTitle("学籍管理系统");//设置窗口的显示标题
this.setLayout(null);
JLUserName.setBounds(100,40,100,20);//设置姓名标签显示的大小和位置
this.add(JLUserName);//将组件添加到容器中
JTUserName.setBounds(200,40,80,20);//设置姓名输入对话框标签的大小和位置
this.add(JTUserName);
JLPaw.setBounds(100,100,60,20);//设置密码标签显示的大小和位置
this.add(JLPaw);//将组件添加到容器中
JPsw.setBounds(200,100,80,20);//设置密码框的大小和位置
this.add(JPsw);//将组件添加到容器中
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);
}
});
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
newInfo_Manage();
}
publicvoidactionPerformed(ActionEvente)//单机登录时的事件处理
{
if(e.getSource()==JB1){
Stringname=JTUserName.getText();//获取用户名
Stringpassword=newString(JPsw.getPassword());//获取密码
if((name!
=null&&(name.equals("admin")))
&&(password!
=null&&password.equals("12345")))//判断用户名和密码是否匹配
{
newStudent_manage();//主页打开
this.setVisible(false);//隐藏该登录窗口
}
//取消按钮
//elseif(e.getSource()==JB2)
//{
//System.exit(0);
//}
else{
JOptionPane.showMessageDialog(null,"对不起!
亲,您输入的用户名或密码有误,请重新输入");
}
}
}
}
管理功能模块主要代码Student_manage.java
publicclassStudent_manageextendsJFrameimplementsActionListener{
//设置选项信息
JMenuBarjmb=newJMenuBar();
JMenuMessage=newJMenu("学生信息");
JMenuItemItem1=newJMenuItem("增加学籍信息");
JMenuItemItem2=newJMenuItem("删除学籍信息");
JMenuItemItem3=newJMenuItem("修改学籍信息");
JMenuItemItem4=newJMenuItem("查询学籍信息");
JMenuexit=newJMenu("系统");
JMenuItemItem5=newJMenuItem("系统信息");
JMenuItemItem6=newJMenuItem("退出");
//JPanelpanel=newJPanel();//设置图像面板
//Stringurl="D:
\\Systems\\title.jpg";//图像添加
publicStudent_manage(){
super("管理界面");
//JLabelimg=newJLabel(newImageIcon(url));//图像添加
//img.setBounds(0,0,500,100);//图像添加
//panel.add(img);//图像添加
this.setSize(500,400);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setJMenuBar(jmb);
jmb.add(Message);
jmb.add(exit);
//添加到组件
Message.add(Item1);
Message.add(Item2);
Message.add(Item3);
Message.add(Item4);
Item1.addActionListener(this);
Item2.addActionListener(this);
Item3.addActionListener(this);
Item4.addActionListener(this);
//设置退出
exit.add(Item5);
exit.add(Item6);
Item5.addActionListener(this);
Item6.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==Item1){
AddStudentad=newAddStudent();
}elseif(e.getSource()==Item2){
DeleteStudentds=newDeleteStudent();
}elseif(e.getSource()==Item3){
ModifyStudentms=newModifyStudent();
}elseif(e.getSource()==Item4){
SearchStudentss=newSearchStudent();
}elseif(e.getSource()==Item5){
//System.out.println("我的学籍管理系统");
JOptionPane.showMessageDialog(null,"亲,欢迎访问我的学籍管理系统");
}else{
System.exit(0);
}
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
newStudent_manage();
}
}
增加模块代码主要代码AddStudent.java
publicclassAddStudentextendsJFrameimplementsActionListener{
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="";
publicAddStudent(){
this.setTitle("添加学生学籍信息");
this.setLayout(null);
JL.setFont(newFont("TimesRoman",Font.BOLD,24));//设置字体和颜色
JL.setForeground(Color.red);
JL.setFont(newFont("宋体",Font.PLAIN,19));
JL.setBounds(100,30,200,40);
this.add(JL);
//以下为设置前面所创建的标签和文本框,以按照顺序显示
JLNumber.setBounds(100,80,100,20);
this.add(JLNumber);
JTNumber.setBounds(200,80,80,20);
this.add(JTNumber);
JLName.setBounds(100,120,60,20);
this.add(JLName);
JTName.setBounds(200,120,80,20);
this.add(JTName);
JLSex.setBounds(100,160,100,20);
this.add(JLSex);
JRB1.setBounds(200,160,40,20);
JRB2.setBounds(300,160,40,20);
this.add(JRB1);
this.add(JRB2);
BG.add(JRB1);
BG.add(JRB2);
JL2.setBounds(100,200,80,20);
this.add(JL2);
JT2.setBounds(200,200,80,20);
this.add(JT2);
JLClass.setBounds(100,240,60,20);
this.add(JLClass);
JTClass.setBounds(200,240,80,20);
this.add(JTClass);
JL1.setBounds(100,280,60,20);
this.add(JL1);
JT1.setBounds(200,280,80,20);
this.add(JT1);
JBAdd.setBounds(80,320,90,20);
this.add(JBAdd);
JBAdd.addActionListener(this);
JBNext.setBounds(190,320,90,20);
this.add(JBNext);
JBNext.addActionListener(this);
JBExit.setBounds(300,320,90,20);
this.add(JBExit);
JBExit.addActionListener(this);
this.setBounds(10,10,500,400);
this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==JBAdd){
Stringsnumber=JTNumber.getText();//获取文本框中所输入的信息
Stringsname=JTName.getText();//获取文本框中所输入的信息
Stringsclass=JTClass.getText();//获取文本框中所输入的信息
Stringssex="女";//获取文本框中所输入的信息
if(JRB1.isSelected())
ssex="男";
else
ssex="女";
Stringscollect=JT1.getText();
Stringsbir=JT2.getText();
sql="select*fromstudentwhereid='"+snumber+"'";//根据ID对数据库信息进行查询
try{
Class.forName("com.mysql.jdbc.Driver");//使用数据源进行数据库连接
Connectioncon=(DriverManager
.getConnection("jdbc:
mysql:
//localhost/student_info?
user=root&password=root"));//数据源名称student_info
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);//传入sql语句,执行查询
if(rs.next())
//如果有查询结果,则提示该号已经存在,否则执行数据库写入
JOptionPane.showMessageDialog(null,"该号已经存在");
else{
//将文本框中所有的输入信息都写入到数据库中,
sql="insertintostudentvalues('"+snumber+"','"
+sname+"','"+sclass+"','"+ssex+"','"
+scollect+"','"+sbir+"')";
//执行SQL语句,并将返回值赋值给i
inti=stmt.executeUpdate(sql);
if(i>0)
//判断如果i小于0,则说明添加成功,返回相应的提示信息
JOptionPane.showMessageDialog(null,"添加成功");
else
//否则提示添加失败
JOptionPane.showMessageDialog(null,"添加失败");
}
}catch(Exceptionee){
}
}
if(e.getSource()==JBNext){
JTNumber.setText(null);
JTName.setText(null);
JTClass.setText(null);
JT1.setText(null);
JT2.setText(null);
}
if(e.getSource()==JBExit){
setVisible(false);
}
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedm