java课程设计报告学生信息管理系统05152讲解.docx
《java课程设计报告学生信息管理系统05152讲解.docx》由会员分享,可在线阅读,更多相关《java课程设计报告学生信息管理系统05152讲解.docx(25页珍藏版)》请在冰豆网上搜索。
java课程设计报告学生信息管理系统05152讲解
Java网络编程实践
课程设计说明书
课程名称:
JAVA网络编程课程设计
题目:
基于C\S学生信息管理系统
姓名:
赵淳
学号:
201105152
班级:
信息与计算科学1101班
指导教师:
王小刚
兰州交通大学软件科学与工程系
二○一三年十二月二十六日
一、课程设计目的
1.通过JAVA课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类。
2、通过这次课程设计掌握JAVA的编程思想,为后续课程打下基础。
3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。
课程设计的要求
利用学到的编程知识和编程技巧,要求学生:
1、对系统进行功能模块分析、控制模块分析正确
2、系统设计要能完成题目所要求的功能。
3、编程简练,可用,尽可能的使系统的功能更加完善和全面
4、使用说明书、流程图要清楚。
二、解题思路
1、课程设计的题目及简介
有新生来报到,要逐个录入其信息,如:
学生姓名,性别,,出生日期,国籍。
要求设计链表类来实现,并统计学生人数。
文本界面为:
1.添加学生信息
2.删除学生信息
3.查询学生信息
4.修改学生信息
5.学生信息保存
6.退出
2、设计说明
总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体
结构设计合理。
也可根据自己对题目的理解增加新的功能模块。
系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行
看题目要求,每一条记录包括一个学生的姓名、性别、出生日期、国籍。
同时,应具备以下功能:
1、删除功能:
对指定学生的信息进行删除。
2、修改功能:
对指定学生的信息进行修改。
3、查询功能:
选择某种方式并输入该信息查询符合条件的学生信息。
。
6、添加功能:
添加新增学生信息。
7、退出主菜单。
三、分析和设计
各功能模块的实现流程图:
1增加学生信息
判断**学生是否存在,若存在则错误,不存在则添加。
具体流程如下图所示:
流程图
2删除学生信息
删除学生的信息则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务
流程图
3、查询学生信息
按学生的学号进行查询
流程图:
总功能模块图:
四、主要源代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
//主函数、主要类
publicclassJCTX{
publicstaticvoidmain(String[]args){
newFrm_Main();
}
}
//实现类
classFrm_MainimplementsActionListener//throwsIOException
{
publicJFrameframe;
publicContainerc;
publicJMenuBarmenuBar;
publicJMenumainMenu1;
publicJMenumainMenu2;
publicJMenumainMenu3;
publicJMenuItemsubMenu1[]=newJMenuItem[5];
publicJMenuItemsubMenu2[]=newJMenuItem[7];
publicJMenuItemsubMenu3[]=newJMenuItem[2];
JButtontoolBarButton[]=newJButton[8];
publicJToolBartoolBar;
StringstrTip[]={"查询您要找的学生记录...","添加学生记录...","删除已有的学生记录","修改学生记录...",
"使您修改的学生记录生效...","使您添加的学生记录生效...","确认删除当前记录...","退出本系统:
)"};
Stringid=newString();
Stringname=newString();
Stringsex=newString();
Stringbirthday=newString();
Stringaddress=newString();
Stringbirth=newString();
Connectionconn;
ResultSetrs;
Statementst;
PreparedStatementpst;
publicJLabelidL=newJLabel("学号:
");
publicJLabelnameL=newJLabel("姓名:
");
publicJLabelsexL=newJLabel("性别:
");
publicJLabeljlbirth=newJLabel("出生年月:
");
publicJLabeljladdr=newJLabel("籍贯:
");
publicJTextFieldidT=newJTextField();
publicJTextFieldnameT=newJTextField();
publicJTextFieldsexT=newJTextField();
publicJTextFieldjtbirth=newJTextField();
publicJTextFieldjtaddr=newJTextField();
publicFrm_Main(){
frame=newJFrame("学生信息管理系统");
c=frame.getContentPane();
c.setLayout(null);
menuBar=newJMenuBar();
toolBar=newJToolBar();
toolBar.setFloatable(false);
frame.setJMenuBar(menuBar);
frame.setResizable(false);
mainMenu1=newJMenu("管理");
Stringstr1[]={"添加用户","删除用户","查询用户","","退出"};
for(inti=0;i<5;i++){
if(i==3)
mainMenu1.addSeparator();
else{
subMenu1[i]=newJMenuItem(str1[i]);
subMenu1[i].addActionListener(this);
mainMenu1.add(subMenu1[i]);
}
}
menuBar.add(mainMenu1);
mainMenu2=newJMenu("维护学生信息");
Stringstr2[]={"查询记录","添加记录","删除记录","修改记录","提交修改","提交添加",
"确认删除"};
for(inti=0;i<7;i++){
subMenu2[i]=newJMenuItem(str2[i]);
subMenu2[i].addActionListener(this);
mainMenu2.add(subMenu2[i]);
}
menuBar.add(mainMenu2);
mainMenu3=newJMenu("帮助");
Stringstr3[]={"帮助...","关于..."};
for(inti=0;i<2;i++){
subMenu3[i]=newJMenuItem(str3[i]);
subMenu3[i].addActionListener(this);
mainMenu3.add(subMenu3[i]);
}
menuBar.add(mainMenu3);
StringstrToolBar[]={"查询","添加","删除","修改","提交修改","提交添加","确认删除"};
for(inti=0;i<7;i++){
toolBarButton[i]=newJButton(strToolBar[i]);
toolBarButton[i].setToolTipText(strTip[i]);
toolBarButton[i].addActionListener(this);
toolBar.add(toolBarButton[i]);
}
toolBar.setLocation(0,0);
toolBar.setSize(400,30);
c.add(toolBar);
idL.setLocation(35,40);
idL.setSize(40,20);
//idL.setFont(newFont("宋体",Font.BOLD,12));
c.add(idL);
idT.setLocation(90,40);
idT.setSize(200,20);
//idT.setEnabled(false);
c.add(idT);
nameL.setLocation(35,70);
nameL.setSize(40,20);
c.add(nameL);
nameT.setLocation(90,70);
nameT.setSize(200,20);
c.add(nameT);
sexL.setLocation(35,100);
sexL.setSize(40,20);
c.add(sexL);
sexT.setLocation(90,100);
sexT.setSize(200,20);
c.add(sexT);
jlbirth.setLocation(35,160);
jlbirth.setSize(40,20);
c.add(jlbirth);
jtbirth.setLocation(90,160);
jtbirth.setSize(200,20);
c.add(jtbirth);
jladdr.setLocation(35,190);
jladdr.setSize(40,20);
c.add(jladdr);
jtaddr.setLocation(90,190);
jtaddr.setSize(200,20);
c.add(jtaddr);
JLabelinformation=newJLabel("");
information.setFont(newFont("宋体",Font.BOLD,35));
information.setSize(380,110);
information.setLocation(10,210);
c.add(information);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setLocation(200,200);
frame.setVisible(true);
conDB();
}
//以上是设置数据库面版、框架
//以下是连接数据库
publicConnectionconDB(){
Connectioncon=null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundExceptione){
}
try{
con=DriverManager.getConnection(
"jdbc:
sqlserver:
//127.0.0.1:
1433;databaseName=mysql","sa",
"111");
}catch(SQLExceptione){
JOptionPane.showMessageDialog(null,"数据库连接失败");
}
returncon;
}
//以下是关闭数据库
publicvoidcloseDB(){
try{
pst.close();
conn.close();
}catch(SQLExceptione){
JOptionPane.showMessageDialog(null,"数据库关闭失败!
");
}
}
//以下是针对数据库的各种操作
publicvoidactionPerformed(ActionEvente){
conn=conDB();
if(e.getSource()==subMenu3[1]||e.getSource()==toolBarButton[7])
JOptionPane.showMessageDialog(null,"");
if(e.getSource()==subMenu1[0]||e.getSource()==subMenu1[1]
||e.getSource()==subMenu1[2])
JOptionPane.showMessageDialog(null,"");
//查找功能的实现
if(e.getSource()==subMenu2[0]||e.getSource()==toolBarButton[0]){
Stringidid=JOptionPane.showInputDialog("请输入要查找的学生学号");
if(idid.trim()!
=""){
//StringstrSQL="select*fromstudentwhereid=’"+idid+"’";
StringstrSQL="select*fromstudentwhereid=?
";
try{
pst=conn.prepareStatement(strSQL);
pst.setString(1,idid);
rs=pst.executeQuery();
/*st=conn.createStatement();
rs=st.executeQuery(strSQL);*/
intcount=0;
while(rs.next()){
id=rs.getString("id");
name=rs.getString("name");
address=rs.getString("address");
sex=rs.getString("sex");
birth=rs.getString("birthday");
count++;
}
if(count==0)
JOptionPane.showMessageDialog(null,"对不起,没有您要查找的学生!
");
else{
idT.setText(id);
nameT.setText(name);
sexT.setText(sex);
jtaddr.setText(address);
jtbirth.setText(birth);
}
}catch(Exceptionex){
JOptionPane.showMessageDialog(null,"抱歉,程序出现异常!
");
}
}
}
if(e.getSource()==subMenu1[4]){
closeDB();
System.exit(0);
}
if(e.getSource()==subMenu2[1]||e.getSource()==toolBarButton[1]){
JOptionPane.showMessageDialog(null,"请输入要添加的学生信息");
idT.setEnabled(true);
idT.setText("");
nameT.setText("");
sexT.setText("");
jtaddr.setText("");
jtbirth.setText("");
}
if(e.getSource()==toolBarButton[5]||e.getSource()==subMenu2[5]){
if((idT.getText().trim()).equals("")
||(nameT.getText().trim()).equals("")
||(sexT.getText().trim()).equals("")
||(jtaddr.getText().trim()).equals("")
||(jtbirth.getText().trim()).equals(""))
JOptionPane.showMessageDialog(null,"请输入信息再点击提交添加!
");
else{
id=idT.getText();
name=nameT.getText();
sex=sexT.getText();
birthday=jtaddr.getText();
address=jtbirth.getText();
StringstrSQL="insertintostudentvalues(?
?
?
?
?
)";
try{
pst=conn.prepareStatement(strSQL);
pst.setString(1,id);
pst.setString(2,name);
pst.setString(3,sex);
pst.setString(4,address);
pst.setString(5,birthday);
pst.executeUpdate();
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
//e1.printStackTrace();
JOptionPane.showMessageDialog(null,"数据库中已经存在您要添加的学生的学号!
");
return;
}
/*try{
pst.executeUpdate(strSQL);
}catch(Exceptionexx){
JOptionPane.showMessageDialog(null,"数据库中已经存在您要添加的学生的学号!
");
*idT.setText("");nameT.setText("");sexT.setText("");
*birthdayT.setText("");departmentT.setText("");
return;
}*/
JOptionPane.showMessageDialog(null,"恭喜您,添加成功了!
");
}
}
if(e.getSource()==subMenu2[4]||e.getSource()==toolBarButton[4]){
if((idT.getText().trim()).equals("")
||(nameT.getText().trim()).equals("")
||(sexT.getText().trim()).equals("")
||(jtaddr.getText().trim()).equals("")
||(jtbirth.getText().trim()).equals("")){
JOptionPane.showMessageDialog(null,"请输入信息再点击修改!
");
return;
}else{
id=idT.getText();
name=nameT.getText();
sex=sexT.getText();
birthday=jtaddr.getText();
address=jtbirth.getText();
StringstrSQL="updatestudentsetname=?
sex=?
address=?
birthday=?
whereid=?
";
try{
pst=conn.prepareStatement(strSQL);
pst.setString(1,name);
pst.setString(2,sex);
pst.setString(3,address);
pst.setString(4,birthday);
pst.setString(5,id);