JAVA大数据库课程设计_第1页
JAVA大数据库课程设计_第2页
JAVA大数据库课程设计_第3页
JAVA大数据库课程设计_第4页
JAVA大数据库课程设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生选课管理系统的设计与实现一、课程设计目的通过这次的设计,主要是做出一个小型的管理系统,来加强对JAVA所学知识的巩固和融会贯通,可以说是对一个学期所学知识的一个小结,加深对JAVA数据库的理解。二、需求分析 功能需求分析:该系统具备管理学生信息、课程信息、选课信息的功能:用户通过输入账号和密码进下该系统后,可以进行一些基础维护(学生信息维护、课程信息维护、选课信息维护)。全部都可以进行增加、修改、删除、模糊查询。三、数据项:1表admin (用户表)FieldTypeNullKeyComme ntUsern amechar(10)PRI用户名passwordchar(10)密码NameCh

2、ar(10)用户昵称2表S (学生信息表)FieldTypeNullKeyComme ntSnon varchar(50)PRI学号Sn amen varchar(50)姓名Sxn varchar(50)系别3表C (课程信息表)FieldTypeNullKeyComme ntCnon varchar(50)PRI课号Cn amen varchar(50)课名4表SC (学生信息表)FieldTypeNullKeyComme ntCnon varchar(50)PRI课号Snon varchar(50)PRI学号Cn varchar(50)成绩四、系统功能描述该小型系统主要是用于管理学生及课程

3、的基本信息,主要功能包括四方面的: 1管理学生信息,其中包括添加,删除,修改等操作。2管理课程信息,其中包括添加,删除,修改等操作。3管理选课信息,其中包括添加,删除,修改等操作。4查询信息,其中包括查询学生信息,查询课程信息,查询选课信息等操作。五、代码分析连接数据库方法: 这是java连接数据库的驱动,有关数据库的操作都要用到他。public staticCo nn ection CONN()Stri ng driverName =com.microsoft.sqlserver.jdbc.SQLServerDriver;/ 加载 JDBC 驱动Stri ng dbURL =jdbc:sql

4、server:/localhost:1433;DatabaseName=student; /连接服务器和数据库 test ,此处student是数据库名String userName =sa ;/ 默认用户名String userPwd =mima ;/ 密码Conn ecti on dbC onn=n ull ;try Class. forName (driverName);dbC onn = DriverMa nager.getC onn ecti on(dbURL, userName, userPwd);System. out .println(Connection Successful

5、!);/如果连接成功 控制台输岀 Conn ection Successful! catch (Excepti on e) e.pri ntStackTrace();retur n dbC onn;用户登录界面 user.java:登录时,凡是账号密码未填写、输入错误账号密码都会提出错误提示框。在填写好账号密码后,会读取数据库里admin表,并查询其输入是否存在,若无误,则登录到用户界面。publicclass Userexte ndsJFrameprivate JLabel use , password ;private JTextField k1 ; / 用户名输入框 private JP

6、asswordFieldk2 ; / 密码输入框privateJButtonb1 , b2 ;/登录窗口 public User(JFrame f)super (系统登录);Container c=getC onten tPa ne();c.setLayout( new FlowLayout();use =new JLabel(user name:);use .setFont( new Font( Serif ,Font. PLAIN ,20); password =new JLabel( password: );password .setFont(new Font( Serif,Font.P

7、LAIN ,20);k1 =new JTextField(12);k2 = new JPasswordField(12);b1 =new JButton(登录);b2 =new JButton(退岀);/设置登录方法BHan dler b=new BHa ndler();EXIT d= new EXIT();bl .addActionListener(b);b2 .addActionListener(d);/添加控件c.add( use);c.add( k1 );c.add( password );c.add( k2);c.add( b1);c.add( b2);setBou nds(600,

8、300,250,150); setVisible( true );EXIT_ON_CLOSE );课程管理、选课管理都能添加、修改、删除setResizable( false ); setDefaultCloseOperati on( JFrame./主函数 public static void main( Str in g args) User f1= new User( new JFrame();效果图:圍紊统登录Ljusername:password: |登录 退出用户界面:Menu.java用户界面能菜单栏有4个一级菜单,学生管理 数据,分别操作数据库里的 S表(学生),C表(课程),

9、SC表(选课)。查询管理则可进行三 个表的查询。import java.awt.*;import java.awt.eve nt.*;import javax.swi ng.*;public class Menu exte nds JFrame impleme nts Actio nListe nerAddstu增加学生界面;Updatastu修改学生界面;Delstu删除学生界面;AddC增加课程界面;DelC删除课程界面;UpdateC修改课程界面;AddSC增加选课界面;DelSC删除选课界面;UpdateSC修改选课界面;Selstu学生查询界面;JPa nel pCe nter;Ca

10、rdLayout card=n ull;JLabel label=null;JMenuBar mb=new JMenuBar(); 菜单栏JMenu m1=new JMenu(” 学生管理);JMe nultem add仁 new JMen ultem(add1);JMe nultem updata仁 new JMe nultem(updata1);JMe nultem delete仁 new JMe nultem(delete1);JMenu m2=new JMenu(” 课程管理);JMen ultem add2=new JMen ultem(add2);JMe nultem updata

11、2=new JMe nultem(updata2);JMe nultem delete2=n ew JMe nultem(delete2);JMenu m3=new JMenu(” 选课管理);JMen ultem add3=new JMen ultem(add3);JMe nultem updata3=new JMe nultem(updata3);JMe nultem delete3=n ew JMe nultem(delete3);JMenu m4=new JMenu(” 查询管理);JMenultem 学生查询=new JMenultem(” 查询信息”);JMenultem m5=n

12、ew JMenultem(” 系统退出”);Font t=new Fon t (sa nerif,Fo nt. PLAIN,12);public Menu ()this.setTitle(”学生选课管理系统”);try UlMa nager.setLookA ndFeel(UIMa nager.getSystemLookA ndFeelClassName(); catch(Exception e)System.err.println(” 不能设置外观:+e);组合菜单addMe nu1();addMe nu2();addMe nu3();addMe nu4();addJMe nuBar();s

13、etJMe nuBar(mb);label=new JLabel(选课管理系统 ”,JLabel.CENTER);label.setFont(new Font(宋体,Font.BOLD,36);label.setHorizo ntalTextPositio n(Swi ngCo nsta nts.CENTER);label.setForegro un d(Color.red);点击事件add1.addAct ion Liste ner(this);updata1.addAct ion Liste ner(this);delete1.addAct ion Liste ner(this);m5.a

14、ddActio nListe ner(this);add2.addAct ion Liste ner(this);delete2.addAct ion Liste ner(this);updata2.addAct ion Liste ner(this);add3.addAct ion Liste ner(this);delete3.addAct ion Liste ner(this);updata3.addAct ion Liste ner(this);学生查询.addActionListener(this);card=new CardLayout();pCe nter=new JPa nel

15、();pCe nter.setLayout(card);增加学生界面=n ew Addstu();修改学生界面=n ew Updatastu();删除学生界面=new Delstu();增加课程界面=n ew AddC();删除课程界面=n ew DelC();修改课程界面=n ew UpdateC();增加选课界面=new AddSC();删除选课界面=new DelSC();修改选课界面=new UpdateSC();学生查询界面=new Selstu();pCenter.add(欢迎界面,label);pCenter.add(”增加学生界面,增加学生界面);pCenter.add(”修改

16、学生界面,修改学生界面);pCenter.add(”删除学生界面,删除学生界面);pCenter.add(”增加课程界面,增加课程界面);pCenter.add(”删除课程界面,删除课程界面);pCenter.add(”修改课程界面,修改课程界面);pCenter.add(”增加选课界面,增加选课界面);pCenter.add(”删除选课界面,删除选课界面);pCenter.add(”修改选课界面,修改选课界面);pCenter.add(”学生查询界面,学生查询界面);add(pCe nter,BorderLayout.CENTER);validate();setVisible(true);s

17、etBou nds(400,150,400,280);setDefaultCloseOperatio n(JFrame.EXIT_ON_CLOSE);addWi ndowListe ner( new Win dowAd apter() 关闭程序时的操作 public void wi ndowClos in g(Wi ndowEve nt e)System.exit(O););validate();private void addJMe nuBar() mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5); private void add

18、Me nu4() m4.add(学生查询);m4.setFont(t);private void addMe nu3() m3.add(add3);m3.add(updata3);m3.add(delete3);m3.setF on t(t);private void addMenu2() /将菜单加入到菜单栏中m2.add(add2);m2.add(updata2);m2.add(delete2);m2.setFo nt(t); private void addMe nu1() m1.add(add1);m1.add(updata1);m1.add(delete1);m1.setFo nt(

19、t); public void action Performed(Acti onEvent e)Object obj=e.getSource();if(obj=m5)System.exit(0); elseif(obj=add1)card.show(pCenter,增加学生界面); elseif(obj=updata1) card.show(pCenter,修改学生界面); elseif(obj=delete1) card.show(pCenter,删除学生界面); elseif(obj=add2) card.show(pCenter,增加课程界面); elseif(obj=delete2)

20、card.show(pCenter,删除课程界面); elseif(obj=updata2) card.show(pCenter,修改课程界面); elseif(obj=add3) card.show(pCenter,增加选课界面); elseif(obj=delete3) card.show(pCenter,删除选课界面); elseif(obj=updata3) card.show(pCenter,修改选课界面); elseif(obj=学生查询) card.show(pCenter,学生查询界面); public static void main(String args) new Men

21、u();效果图:迤学弐旗勰訣卜口 I回学生管理 课程管理 选课管運 查询管理系统退岀选课管理系统添加界面:AddC.java/AddSC.java/Addstu.java都会提示无法添添加数据时,若遇到必须信息未填写、不能重复的信息在数据库中已存在,加及其错误原因。import java.awt.*;import javax.swi ng.*;import java.sql.*;importjava.awt.eve nt.*;public class AddC exte nds JPa nel impleme ntsActi on Liste nerJTextField 课号,课名;JButt

22、 on 录入;public AddC()tryUlMa nager.setLookA ndFeel(UlMa nager.getSystemLookA ndFeelClassName(); catch (Exception e)System.err .println(课号=new JTextField(12);课名=new JTextField(12);录入=new JButton(录入);录入.addActionListener(this );不能设置外观+e);Box box1=Box.createHoriz on talBox();/横放boxBox box2=Box.createHor

23、iz on talBox();Box box3=Box.createHoriz on talBox();Box box4=Box.createHoriz on talBox();box1.add( new JLabel(box1.add(课号);box2.add( new JLabel( box2.add( 课名); box4.add( 录入);课号:);课名:);Box boxH=Box. createVerticalBox();/竖放boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box. cr

24、eateVerticalGlue();JPa nel messPa nel=new JPa nel();messPa nel.add(boxH);setLayout( new BorderLayout();add(messPa nel,BorderLayout.CENTER);validate。;效果图:添加界面:UpdateC.java/UpdateSC.java /Updatestu.java先查找你想要修改的项目,若修改的信息包括号码(学号、课号),则会进行查询,如果修改后的号码已存在,以及修改后必须的信息变成空都会提示无法修改和其错误原因。此外, 若修改C表或则S表,会连同SC表中对应

25、的信息一起修改。import java.awt.*;importjava.awt.eve nt.*;importimportpublicjava.sql.*;javax.swi ng.*;impleme ntsActio nListe nerclass UpdateCexte ndsJPa nelString save =n ullJTextField 课号1 ,课号,课名;JButton修改,查找;public UpdateC()UIMa nager.setLookA ndFeel(UlMa nager. catch (Exception e)System. 课号 1 = new JText

26、Field(12); 课号=new 课名=new 修改=new 查找=newJTextField(12);JButt on(Box box1=Box.err .println(JTextField(12);JButton(修改“);查找“);createHoriz on talBoxBox box2=Box.createHoriz on talBoxBox box3=Box.createHoriz on talBoxBox box4=Box.createHoriz on talBoxgetSystemLookA ndFeelClassName不能设置外观:+e);();();/横放box();

27、();();box1.add(new JLabel(课号:,JLabel.CENTER);box1.add(课号);box2.add(new JLabel(课名:,JLabel.CENTER);box2.add(课名);box3.add(修改);box5.add(new JLabel(课号:,JLabel.CENTER);box5.add(课号1);box5.add(查找);修改.addActionListener(this );查找.addActionListener(this );Box boxH=Box.createVerticalBox();/竖放boxBox box5=Box.cre

28、ateHoriz on talBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box. createVerticalGlue();JPa nel picPa nel=new JPa nel();JPa nel messPa nel=new JPa nel();messPa nel.add(box5);picPa nel.add(boxH);setLayout( new BorderLayout();JSplitPa ne splitV=newJSplitPa ne(JSplitPa ne.ad

29、d(splitV,BorderLayout.VERTICAL_SPLIT ,messPa nel,picPa nel); CENTER);/分割tryvalidate。;删除界面:DeIC.java/DelSC.java /Deltu.javaSC表中对先查找你想要删除的项目,然后删除,此外,若删除C表或则S表的内容,会连同应的信息一起修改。import java.awt.*;importjava.awt.eve nt.*;import java.sql.*;importjavax.swi ng.*;public class DelCexte ndsJPa nelimpleme ntsActi

30、o nListe nerStri ngsave =n ull ;JTextField 课号1 ,课号,课名;JButton 删除,查找;public tryDelC()UIMa nager. setLookA ndFeel catch (Exception e)System.(UIMa nager.getSystemLookA ndFeelClassNameerr .println( 不能设置外观:+e);();课号 1 = new JTextField(12);课号=new JTextField(12);课名=new JTextField(12);删除=new JButton(删除);查找=

31、new JButton(查找);Box box1=Box.Box box2=Box.Box box3=Box.Box box4=Box.createHoriz on talBox createHoriz on talBox createHoriz on talBox createHoriz on talBox();横放 box();();();box1.add(new JLabel(课号:,JLabel.CENTER);box1.add(课号);box2.add(new JLabel(课名:,JLabel.CENTER);box2.add(课名);box4.add(删除);box5.add(n

32、ew JLabel(课号:,JLabel.CENTER);box5.add(课号1);Box box5=Box.createHoriz on talBox();box5.add( 查找);Box boxH=Box. createVerticalBox boxH.add(boxl);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box. createVerticalGlue 删除.addActionListener(this );查找.addActionListener(this );JPa nel picPa nel=new JPa

33、 nel();();/ 竖放 box();JPa nel messPa nel= new JPa nel(); messPa nel.add(box5);picPa nel.add(boxH);setLayout( new BorderLayout();JSplitPa ne splitV=newJSplitPa ne(JSplitPa ne. add(splitV,BorderLayout. validate。;VERTICAL_SPLIT ,messPa nel,picPa nel); CENTER);/分割查询界面:Selsto.java可以以任意条件模糊查找相关的表。import ja

34、va.awt.*;import java.awt.eve nt.*;import java.sql.*;importjavax.sw in g.*;public class Selstuexte ndsJPa nelimpleme ntsActio nListe nerJTextField学号,姓名,系别;JButton查找;JTextField课号,课名;JButt on查找 1 ;JTextField课号1,学号1 ,成绩;JButt on查找 2;public Selstu ()学号= new JTextField(12);姓名=new JTextField(12); 系别= new J

35、TextField(12); 课号= new JTextField(12); 课名=new JTextField(12); 课号 1=new JTextField(12); 学号 1=new JTextField(12); 成绩= new JTextField(12);查找= new JButt on( 查找 1 =new JButt on( 查找 2=new JButt on(查找学生信息“);查找课程信息“);查找选课信息“);Box box1=Box.createHoriz on talBox();/横放boxBox box2=Box.createHoriz on talBox();Bo

36、x box4=Box.createHoriz on talBox();Box box5=Box.createHoriz on talBox();Box box6=Box.createHoriz on talBox();box1.add(new JLabel(学号:,JLabel.CENTER);box1.add(学号);box1.add(new JLabel(姓名:,JLabel.CENTER);box1.add(姓名);box1.add(new JLabel(系别:,JLabel.CENTER);box1.add(系别);box2.add(查找);box4.add(new JLabel(课号

37、:,JLabel.CENTER);box4.add(课号);box4.add(new JLabel(课名:,JLabel.CENTER);box4.add(课名);box6.add(查找1);box5.add(new JLabel(课号:,JLabel.CENTER);box5.add(课号1);box5.add(new JLabel(学号:,JLabel.CENTER);box5.add(学号1);box5.add(new JLabel(成绩:,JLabel.CENTER);box5.add(成绩);box7.add(查找2);Box box7=Box.createHoriz on talB

38、ox();createVerticalBox();/ 竖放 boxBox boxH1=Box. boxH1.add(box1); boxH1.add(box2); boxH1.add(Box.Box boxH2=Box. boxH2.add(box4); boxH2.add(box6); boxH2.add(Box.Box boxH3=Box.createVerticalGlue createVerticalBoxcreateVerticalGlue createVerticalBox();();/ 竖放 box();();/ 竖放 boxboxH3.add(box5);boxH3.add(b

39、ox7);boxH3.add(Box. createVerticalGlue();查找.addActi on Liste ner(this );查找 1 .addActio nListe ner(this );查找 2 .addActio nListe ner(this );JPa nel messPa nel=new JPa nel();JPa nel picPa nel=new JPa nel();JPa nel threePa nel=new JPa nel();messPa nel.add(boxH1);picPa nel.add(boxH2);threePa nel.add(boxH

40、3);setLayout( new BorderLayout();JSplitPa ne splitV=new/分割JSplitPa ne(JSplitPa ne.VERTICAL_SPLIT,messPa nel,picPa nel);add(splitV,BorderLayout.CENTER);JSplitPa ne splitV1=new/分割JSplitPa ne(JSplitPa ne.VERTICAL_SPLIT ,splitV,threePa nel);add(splitV1,BorderLayout.CENTER);validate。;效果图:下面是java的源代码,总共有

41、15个类。分别是 AddC.java , AddSC.java , Addstu.java ,Delstu.java,DelC.java, DelSC.java,Menu.java,SelC.java,SelSC.java,Selstu.java,Student.java, Updatastu.java,UpdateC.java, UpdateSC.java, User.java。因为本人太懒,所以一些类名的错误没有修改,也没有优化系统,总之还算是能运行的,数据库用的是sql2005,如果用别的数据库就要改驱动,具体自己上网百度吧。如果自己有空, 优化一下还是很好滴AddC.jaba :imp

42、ort java.awt.*;import javax.swi ng.*;import java.sql.*;import java.awt.eve nt.*;public class AddC exte nds JPa nel impleme nts Acti on Liste nerJTextField课号,课名;JButton 录入;public AddC()try UIMa nager.setLookA ndFeel(UIMa nager.getSystemLookA ndFeelClassName(); catch(Exception e)System.err.println(不能设

43、置外观:+e);课号=new JTextField(12);课名=new JTextField(12);录入=new JButton(录入);录入.addActionListener(this);Box box仁Box.createHorizontalBox(); 横放 boxBox box2=Box.createHoriz on talBox();Box box3=Box.createHoriz on talBox();Box box4=Box.createHoriz on talBox();box1.add(new JLabel(课号:);box1.add(课号);box2.add(new

44、 JLabel(课名:);box2.add(课名);box4.add(录入);Box boxH=Box.createV erticalBox(); 竖放 boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPa nel messPa nel=new JPa nel();messPa nel.add(boxH);setLayout (new BorderLayout();add(messPa nel,BorderLayout.CENTER);valida

45、te();public void acti on Performed(Act ion Eve nt c)Object obj=c.getSource();if(obj=录入)if(课号.getText().equals(川课名.getText().equals()JOptionPane.showMessageDialog(this,学生信息请填满再录入!” );Stateme nt stmt=n ull;ResultSet rs=n ull,rs 1=n ull;Stri ng sql,sql1;sql仁select * from C where Cno=+ 课号.getText()+”; s

46、ql=insert into C values(+ 课号.getText()+,+ 课名.getText()+);tryCo nn ection dbC onn仁 CONN();stmt=(Stateme nt)dbCo nn l.createStateme nt(ResultSet.TYPE_SCROLL_INSENSITIVE,Resu ltSet.CONCUR_READ_ONL Y);rs1=stmt.executeQuery(sql1);if(rs1.next()JOptionPane.showMessageDialog(this,该课号以存在,无法添加);elsestmt.execu

47、teUpdate(sql);JOptionPane.showMessageDialog(this,添加成功);rs1.close();stmt.close(); catch(SQLExcepti on e)System.out.pri nt(SQL Excepti on occur.Message is:+e.getMessage();连接数据库方法public static Conn ection CONN()String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver;/加载 JDBC 驱动Stri ng dbURL =

48、jdbc:sqlserver:/localhost:1433; DatabaseName=stude nt;/ 连接服 务器和数据库testStri ng userName = sa; / 默认用户名 String userPwd = hua ngjiwei;密码Connection dbC onn=n ull;try Class.forName(driverName);dbC onn = DriverMa nager.getC onn ectio n(dbURL, userName, userPwd);System.out.pri ntl n( Co nn ection Successful

49、!);如果连接成功控制台输出Connection Successful! catch (Exceptio n e) e.pri ntStackTrace();retur n dbC onn;AddSC.java :import java.awt.*;import javax.swi ng.*;import java.sql.*;import java.util.*;import javax.sw in g.filechooser.*;import java.io.*;import java.awt.eve nt.*;public class AddSC exte nds JPa nel imp

50、leme nts Actio nListe nerJTextField课号,学号,成绩;JButton 录入;public AddSC()try UIMa nager.setLookA ndFeel(UIMa nager.getSystemLookA ndFeelClassName(); catch(Exception e)System.err.println(不能设置外观:+e);课号=new JTextField(12);学号=new JTextField(12);成绩=new JTextField(12);录入=new JButton(录入);录入.addActionListener(t

51、his);Box box仁Box.createHorizontalBox(); 横放 boxBox box2=Box.createHoriz on talBox();Box box3=Box.createHoriz on talBox();Box box4=Box.createHoriz on talBox();box1.add(new JLabel(课号:);box1.add(课号);box2.add(new JLabel(学号:);box2.add(学号);box3.add(new JLabel(成绩:);box3.add(成绩);box4.add(录入);Box boxH=Box.createV erticalBox(); 竖放 boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPa nel messPa nel=new JPa nel();messPa nel.add(boxH);setLayout (new BorderLayout();add(messPa nel,BorderLayout.CENTER);validate();public void acti on Performed(Act ion Eve nt c)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论