软件课程设计.docx
- 文档编号:16501174
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:35
- 大小:284.85KB
软件课程设计.docx
《软件课程设计.docx》由会员分享,可在线阅读,更多相关《软件课程设计.docx(35页珍藏版)》请在冰点文库上搜索。
软件课程设计
软件课程设计
中南民族大学
软件课程设计报告
电子信息工程学院2012级
通信工程专业
题目学生学籍管理系统
学生。
。
学号2012214
指导教师老师
2015年5月29日
学生学籍管理系统
摘要:
该软件可实现对学生学籍的管理,并存储到数据库中,列表展示所采集的数据。
关键字:
学生数据存储Java编程
1引言
随着现代社会的快速发展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作,学习和生活的各个方面。
为了适应时代的发展,本次课程设计的主要任务是设计一个学生学籍管理系统并完成一些基本操作。
2设计依据及框图
2.1设计平台
本系统采用了eclipse开发工具,使用Java语言架设用户界面;使用eclipse建立与数据库的连接设计。
2.2设计思想
为了更好的管理学生的学籍信息,特地利用现在所学的eclipse软件与相关数据库设计一个集管理员,教师和学生的关于学籍的查看,修改,删除与添加一系列功能的学籍管理系统。
在eclipse中利用JDBC连接到数据库SQLserver2014,从而达到数据的管理与存储,用eclipse写功能的Java语言,从而跟简单的在界面操作数据库。
2.3设计框图、用户界面
用户界面
如图所示,这是系统的登录界面,登录分为管理员,老师,学生。
2.4数据库表结构
本系统采用Java语言建立对数据库的管理如下:
3各模块功能及主要模块的流程图
3.1各模块功能简介
添加信息模块
主要功能:
当用户输入想要添加的相关学生的信息,只需要直接点击添加按钮进入添加信息界面,填上相关的信息即可通过Java程序进行添加并存储到数据库。
查询信息模块
主要功能:
当用户需要查询学生的相关信息时,只需要输入名字,Java程序即可运行并从数据库中提出相关信息显示在界面中。
主要功能:
当用户需要修改相关信息时,在信息界面点击修改时,Java程序即可就会调出相关信息,用户就可以修改,修改完成后,会直接把修改后的信息存储到数据库中。
主要功能:
当用户需要删除信息是,直接点击删除按钮,Java程序会直接把相关信息从数据库中删除掉。
3.2主要流程图
管理员学生
老师
删除信息
查询信息
修改信息
添加信息
添加信息
修改信息
删除信息
查询信息
4软件调试分析
经过多次调试,在开发时主要遇到以下问题:
Eclipse与数据库的连接以及相关配置环境
编写java代码与数据库的连接时,总是显示会有加载驱动成功,但是连接不到数据库,编码中发现,这是由于数据库的相关配置环境没有设置好。
在编写Java程序时,应该与SQLserver中的表的名称相同,这样才能够直接在eclipse中利用Java语句结合SQL语言完成对数据的相关操作。
5结语
5.1结论与讨论
通过这段时间的学习,并且在老师的帮助下,最后完成了这个课程设计,虽然还有很多的不足之处。
在这段时间里,我们遇到过不少的问题,使得总是原地踏步,但经过看书与问老师,我们最终解决遇到的问题,并且也是学习到了很多相关的知识。
通过这次课程设计,使我们解决问题的能力得到了提高,知识得到丰富,技能得到提高。
参考文献
[1].张桂珠刘丽陈爱国Java面向对象程序设计(第2版)北京邮电大学出版社[2]毕广吉.Java程序设计实例教程[M].北京:
冶金工业出版社,2007年
[1]何玉洁.数据库原理与应用(第3版)[M].北京:
机械工业出版社,2010.8
附录
程序代码:
入口程序:
Student.Java
packagepkg;
import
import
importjava.sql.*;
//importscreen
publicclassstudent
{
booleanpackFrame=false;
//JFrameframe=newJFrame();
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
packagepkg;
importjava.awt.*;
import
import
import
publicclassMainframeextendsJFrameimplementsActionListener
{
staticMainframes;
staticJPanelpan=newJPanel();
staticJLabellabel1=newJLabel("用户");
staticJLabellabel2=newJLabel("密码");
staticJTextFieldtextField1=newJTextField();
staticJPasswordFieldpassword=newJPasswordField();
staticJButtonbutton1=newJButton("进入系统");
staticJRadioButtonradioButton1=newJRadioButton("管理员",true);//“管理员”初始状态被选中
staticJRadioButtonradioButton2=newJRadioButton("学生");
staticJRadioButtonradioButton3=newJRadioButton("教师");
ButtonGroupbuttonGroup=newButtonGroup();
publicMainframe()
{
JLabellabel=newJLabel(newImageIcon("E:
\\pictures\\bg.jpg"));
label.setSize(400,400);
pan.add(label);
pan.setLayout(null);
pan.setSize(400,400);
this.setTitle("学籍管理系统");
this.setSize(400,400);
this.setLayout(null);
label1.setBounds(100,25,49,20);
textField1.setBounds(155,24,120,20);
label2.setBounds(100,62,49,20);
password.setBounds(155,61,120,20);
button1.setBounds(150,200,101,22);
radioButton1.setBounds(105,120,80,20);
radioButton2.setBounds(180,120,60,20);
radioButton3.setBounds(240,120,60,20);
button1.addActionListener(this);
buttonGroup.add(radioButton1);
buttonGroup.add(radioButton2);
buttonGroup.add(radioButton3);
this.add(radioButton1);
this.add(radioButton2);
this.add(radioButton3);
this.add(label1);
this.add(label2);
this.add(textField1);
this.add(password);
this.add(button1);
this.add(pan);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//TODOAuto-generatedconstructorstub
}
publicstaticvoidmain(String[]args)
{
newMainframe();//TODOAuto-generatedmethodstub
}
publicvoidactionPerformed(ActionEvente)
{
if(radioButton1.isSelected())//管理员
{
if(textField1.getText().equals("asd")&&password.getText().equals("123"))
{
interfacb=newinterfac();
this.dispose();
JOptionPane.showMessageDialog(null,"登陆成功");
}elseif("".equals(textField1.getText())||"".equals(password.getText()))
{
JOptionPane.showMessageDialog(null,"用户名或密码不能为空");
}else{
JOptionPane.showMessageDialog(null,"用户名或密码输入有误");
}
}if(radioButton2.isSelected())//学生
{
try{
Class.forName();
}
catch(ClassNotFoundExceptionce)
{
JOptionPane.showMessageDialog(s,ce.getMessage());
}
try{
Connectioncon=DriverManager.getConnection("jdbc:
sqlserver:
//localhost:
1433;DatabaseName=Student","sa","123");
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery("select*frompasswordwhere用户='"+textField1.getText()+"'and密码='"+password.getText()+"'");
if(textField1.getText().equals("用户")||password.getText().equals("密码"))
{
JOptionPane.showMessageDialog(this,"用户名或密码不可为空!
");
}
elseif(rs.next())
{
newinterfac();
}
else
{JOptionPane.showMessageDialog(this,"您的输入有误");}
stmt.close();
}
catch(SQLExceptionse)
{
JOptionPane.showMessageDialog(s,se.getMessage());
}
}
}
}
主窗体设计:
Interface.Java:
packagepkg;
publicclassinterfacextendsJFrameimplementsActionListener
{
staticJMenuBarjMenuBar=newJMenuBar();//菜单条
staticJMenujMenuFile=newJMenu("文件");//菜单项
staticJMenujMenuExit=newJMenu("退出");
staticJMenuItemjMenuItem1=newJMenuItem("添加信息");//菜单子项
staticJMenuItemjMenuItem2=newJMenuItem("修改信息");
staticJMenuItemjMenuItem3=newJMenuItem("信息查询");
staticJMenuItemjMenuItem4=newJMenuItem("删除信息");
staticJLabellabel3=newJLabel("请选择操作项");
staticJLabellabel4=newJLabel("学籍管理系统");
staticJButtonbutton2=newJButton("添加信息");
staticJButtonbutton3=newJButton("修改信息");
staticJButtonbutton4=newJButton("信息查询");
staticJButtonbutton5=newJButton("删除信息");
publicinterfac()
{
this.setTitle("学籍管理系统");
this.setLayout(null);
this.setSize(400,400);
label3.setBounds(158,92,98,33);
label3.setFont(newFont("Dialog",Font.PLAIN,15));
label4.setFont(newFont("Dialog",Font.BOLD,20));
label4.setBounds(157,37,280,40);
button2.setBounds(74,136,97,33);
button3.setBounds(226,136,97,33);
button4.setBounds(74,185,97,33);
button5.setBounds(226,185,97,33);
this.add(button2);
this.add(button3);
this.add(button4);
this.add(button5);
this.add(label3);
this.add(label4);
setJMenuBar(jMenuBar);
jMenuFile.add(jMenuItem1);//”文件“菜单项中加入子菜单
jMenuFile.add(jMenuItem2);
jMenuFile.add(jMenuItem3);
jMenuFile.add(jMenuItem4);
jMenuBar.add(jMenuFile);//将菜单项加入菜单条
jMenuBar.add(jMenuExit);
button2.addActionListener(this);//本窗口向按钮事件源注册
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
jMenuItem1.addActionListener(this);//本窗口菜单子项注册
jMenuItem2.addActionListener(this);
jMenuItem3.addActionListener(this);
jMenuItem4.addActionListener(this);
jMenuExit.addActionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//TODOAuto-generatedconstructorstub
}
publicstaticvoidmain(String[]args)
{
interfaca=newinterfac();//TODOAuto-generatedmethodstub
}
publicvoidactionPerformed(ActionEvente)//按钮事件的处理
{
if(e.getSource()==jMenuExit)
{
System.exit(0);
}
elseif(e.getSource()==jMenuItem1||e.getSource()==button2)
{
try{
tja=newtj();
}
catch(Exceptionee){}
}
elseif(e.getSource()==jMenuItem2||e.getSource()==button3)
{
try{
xga=newxg();
}
catch(Exceptioned){}
}
else
if(e.getSource()==jMenuItem3||e.getSource()==button4)
{
try{
cxa=newcx();
}
catch(Exceptionec){}
}
else
if(e.getSource()==jMenuItem4||e.getSource()==button5)
{
try{
sca=newsc();
}catch(Exceptiones){}
}
}
}
添加信息:
tj.java:
packagepkg;
import
importjava.awt.*;
import
import
publicclasstjextendsJFrameimplementsActionListener
{
statictjs;
staticJLabellabel1=newJLabel("学号:
");
staticJTextFieldtextField1=newJTextField("");
staticJLabellabel2=newJLabel("姓名:
");
staticJTextFieldtextField2=newJTextField("");
staticJLabellabel3=newJLabel("性别:
");
staticJTextFieldtextField7=newJTextField("");
staticJLabellabel4=newJLabel("出生日期:
");
staticJTextFieldtextField3=newJTextField("");
staticJLabellabel5=newJLabel("政治面貌:
");
staticJTextFieldtextField8=newJTextField("");
staticJLabellabel6=newJLabel("籍贯");
staticJTextFieldtextField4=newJTextField("");
staticJLabellabel7=newJLabel("系别:
");
staticJTextFieldtextField9=newJTextField("");
staticJLabellabel8=newJLabel("专业:
");
staticJTextFieldtextField5=newJTextField("");
staticJButtonbutton1=newJButton("增加");
publictj()
{
this.setTitle("增加学生信息");
this.setLayout(null);
this.setSize(400,400);
label1.setBounds(30,11,51,33);
textField1.setBounds(86,16,74,22);
label2.setBounds(162,11,51,33);
textField2.setBounds(192,16,44,22);
label3.setBounds(241,11,70,33);
textField7.setBounds(275,15,50,25);
label4.setBounds(31,53,55,33);
textField3.s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 课程设计