版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号1202014-2015学年第一学期《数据库系统概论》课程设计报告题目:长途汽车信息管理系统专业:计算机科学与技术班级:班姓名:指导教师:成绩:计算机与信息工程系2014年10月12日目录TOC\o"1-5"\h\z\o"CurrentDocument"1设计内容及要求 1\o"CurrentDocument"1.1设计内容 1\o"CurrentDocument"1.2设计任务及具体要求 1\o"CurrentDocument"2原理及分析 2\o"CurrentDocument"2.1需求分析 2\o"CurrentDocument"2.2系统功能简介 2\o"CurrentDocument"2.3程序框图 3\o"CurrentDocument"3设计过程和程序代码 5\o"CurrentDocument"3.1数据库表格的设计概述 5\o"CurrentDocument"3.2数据库表格的实现过程 6\o"CurrentDocument"3.3程序的构造方法及其实现 15\o"CurrentDocument"3.4数据库与Java程序的链接 24\o"CurrentDocument"4设计结果与分析 25\o"CurrentDocument"4.1设计结果截图 25\o"CurrentDocument"4.2设计结果分析 28\o"CurrentDocument"5小结 29\o"CurrentDocument"参考文献 30\o"CurrentDocument"致谢 31附录:源程序 321设计内容及要求1.1设计内容本次课程设计名称为长途汽车信息管理系统,用户登录后主要实现对线路信息,汽车信息,售票信息,乘客信息进行基本操作的功能。该系统功能主要包括以下几个模块:(1) 充分利用所学过的数据库的相关知识建立长途汽车信息管理系统所需的数据库。(2)对线路信息(包括出发地、目的地、出发时间、所需时间等)汽车信息(最大载客量、汽车类型、剩余座位等)售票信息(包括售票情况、票价)乘客信息(包括姓名、年龄、性别等)的查询、添加和删除操作。(3) 进行详细的功能设计后,在Java中利用JDBC连接数据库技术对数据库中数据进行操作,并能进行多表之间的链接与查询操作。1.2设计任务及具体要求(1) 设计任务:长途汽车信息管理系统运用在汽车站部门的系统工具, 方便此系统部门的工作人员的工作,该系统主要根据此部门的特点建立的,是记录和查询汽车站信息的的依据。随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,长途汽车站信息管理系统在人们的日常生活中发挥着越来越重要的作用。 本系统实现了汽车线路信息,汽车信息,票务信息的查询和管理,以满足人们的需求。(2) 具体要求:车站管理员可以在线路信息管理、汽车信息管理等模块对车站线路信息、票价信息、乘客信息等进行管理。管理员首先建立相应模块的信息数据库,输入原始的线路、汽车、车票、乘客信息,当有新数据需要添加或者需要对已有的信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路、汽车、车票、乘客的详细信息。2原理及分析2.1需求分析长途汽车信息管理数据库系统是面向所有汽车的数据管理系统, 其目的是使乘车有序化,规范化,简单化,易于车站人员的管理,查询。本系统主要包括以下几个模块:乘客信息、汽车信息、线路以及车票的信息这四个功能模块基本实现设计本系统的目的,从而可以进一步满足车站对乘客乘车管理的要求。长途汽车信息管理系统运用在汽车站和火车站等车站部门的系统工具, 方便此系统部门的工作人员的工作,该系统主要根据此部门的特点建立的,是记录和查询汽车站信息的的依据。早期的长途汽车站信息主要是人工记录和人工管理的, 不仅不容易记录,而且还不容易保存。随着计算机的不断普及和软件系统的不断发展加上信息系统开发的迫切需求,计算机长途汽车站信息管理系统应运而生了。随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,长途汽车站信息管理系统在人们的日常生活中发挥着越来越重要的作用。 本系统实现了汽车线路信息,汽车信息,票价信息的查询和管理,满足人们的需求。2.2系统功能简介在Java中利用ODB(访问技术操作数据库,建立到数据库中的映射类,在对话框类中通过引用映射类完成对数据库的操作。程序分为登陆界面,选择界面,线路信息界面,汽车信息界面,车票信息这几个主体界面。使用时应先知道管理员帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,退出程序菜单选项。所需时间等,可以对它们进行添加,查询,删除,其中线路信息界面包括包括出发地、目的地、出发时间、修改,返回主菜单的操作;汽车信息和车票信息的界面与其类似。需要特别说明的是,当对数据进行操作时,在查询框内输入提示数据内容,对话框的表中和提示栏中都会出现所查询的数据,我们可以在提示栏中对数据进行删除和修改操作。2.3程序框图(1)数据库E—R图线路信息图:汽车信息图:图1-2汽车信息图车票信息图:乘客信息图:图1-4乘客信息图(2)长途汽车信息管理系统功能模块图图1-5系统功能模块图3设计过程和程序代码3.1数据库表格的设计概述1实体类型结构汽车线路(出发地,目的地,出发时间,行驶的总时间)汽车(汽车类型,班次,最大载客数,剩余座位)车票(已买票数,剩余票数,票价)乘客(姓名,年龄,性别,民族)2联系类型结构乘坐(汽车班次,类型)供应(数量)行驶(线路)3逻辑设计阶段根据ER模型转换成关系模型的规则,可把上述ER图转换成5个关系模式,从而实现对乘客验证ER模型向关系数据模型的转换,具体如下:汽车线路(出发地,目的地,出发时间,行驶的总时间)汽车(汽车类型,汽车班次,最大载客数,剩余座位数)车票(已买票数,剩余票数,票价)乘客(姓名,年龄,性别,民族)乘坐(所需时间,汽车班次,票价,乘客姓名)冗余问题检查:在各关系模式中,可得出每个关系的属性值都是不可分的, 因此各关系模式都是规范化关系;又可从以上各关系模式中可得每个属性都不传递依赖于各关系模式的候选键,且转换后各个属性值的数据并没有丢失,数据共享率高,所以在ER模型向关系模式转化时不存在冗余问题。3.2数据库表格的实现过程创建汽车线路表用MicrosoftSQL2000Server 数据库系统的Transact-SQL语句定义创建这个表,程序如下:createtableBusline(Sourcechar(20),Destinationchar(20),Startchar(15),Alltimesmallintprimarykey,);将代码写入SQL查询分析器的SQL编辑窗体中,并运行可得创建的Busline表及其属性如图1-6:列皂1數据类型长度char£0Destinationchar20Startchar157Alltimesmallint2图1-6Busline表格属性往表中加数据语句如下:insertintoBuslinevalues('淮南','合肥','8:00','50');insertintoBuslinevalues('淮南','蚌埠','8:30','59');insertintoBuslinevalues('淮南','阜阳','7:30','60');insertintoBuslinevalues('淮南','宿州','8:10','65');insertintoBuslinevalues('淮南','芜湖','7:00','70');insertintoBuslinevalues('淮南','安庆','9:00','71');insertintoBuslinevalues('淮南','桐城','9:50','78');insertintoBuslinevalues('淮南','亳州','8:50','80');insertintoBuslinevalues('淮南','黄山','9:00','100');由以上可得一个表名为”Busline”的数据表就建成了如图1-7:DestinationStartAlltime-寺坝坝坝寺坝坝坝坝一治砖碼头坪坪坪头园园园园北北北龙渊渊沙龙菜萊菜菜:307790000TST9旳315059DestinationStartAlltime-寺坝坝坝寺坝坝坝坝一治砖碼头坪坪坪头园园园园北北北龙渊渊沙龙菜萊菜菜:307790000TST9旳315059507071727375创建汽车表用MicrosoftSQL2000Server 数据库系统的Transact-SQL语句定义创建这个表,程序如下:createtableBus(Typechar(20),Maxpassengersmallint.Turnchar(20)primarykey,Remaindersmallint,);将代码写入SQL查询分析器的SQL编辑窗体中,并运行可得数据空表如图 1-8所示:创建的Bus表及其属性如下:帝设计h帝设计hBus,r「位冒昙中、“(loel)"上往表中加数据语句如下:insertintoBusvalues('大','50','0001','20')insertintoBusvalues('大','50','0002','30')insertintoBusvalues('大','45','0003','15')insertintoBusvalues('中','35','0004','21')insertintoBusvalues('中','35','0005','16')insertintoBusvalues('小','25','0006','5')insertintoBusvalues('小','25','0007','7')insertintoBusvalues('小','25','0008','11')由以上可得一个表名为”Bus”的数据表就建成了如图1-9:縊表"Bus"中的数拐,住置昱■huhu"中、"docsiy上TypeIMaxpassengerTurnRemainderA50000120►50000230450003IS35000421中350005lb中300006Q小25000T3小2500086小25aoog5*创建车票表用MicrosoftSQL2000Server数据库系统的Transact-SQL语句定义创建这个表,程序如下:createtableTicket(Soldsmallint.Remaindersmallint,Pricesmallintprimarykey,);将代码写入SQL查询分析器的SQL编辑窗体中,并运行可得数据空表如图2所示:创建的Ticket表及其属性如下图1-10:苗设计表"Ticket"■位置星*huhurt巳M(Jocal)*上往表中加数据语句如下:insertintoTicketTOC\o"1-5"\h\zvalues('22',3,'15' )insertintoTicketvalues('19','6','16' )insertintoTicketvalues('20','5','18' )insertintoTicketvalues('30','15','26' )insertintoTicketvalues('20','30','27' )insertintoTicketinsertintoTicketvalues('26','4','17' )继续添加数据由以上可得一个表名为"Ticket”的数据表就建成了如图1-11:圮]表,FTicketri由的站.険星“huhu"巳-(local)*1上SoldFri►2231519&162051630IS2620302730202E142130191632228354.创建乘客表用MicrosoftSQL2000Server 数据库系统的Transact-SQL语句定义创建这个表,程序如下:createtablePassenger(Pnamechar(10)primarykey,Psexchar(2),Pracialchar(5),Psagesmallint,);将代码写入SQL查询分析器的SQL编辑窗体中,并运行可得数据空表如图2所示:创建的Passenger表及其属性如下图1-12:往表中加数据语句如下:insertintoPassengervalues('高健','男','汉','23')insertintoPassengervalues('王小明','男','汉','21')insertintoPassengervalues('安妮','女','汉','19')insertintoPassengervalues('张凯','男','汉','21')insertintoPassengervalues('王睿','女','汉','21')insertintoPassengervalues('姚洁','女','汉','20')insertintoPassengervalues('刘佳','女','汉','28')insertintoPassengervalues('杨枫','男','汉','33')insertintoPassengervalues('李勇','男','汉','29')insertintoPassengervalues('王妮','女','汉','25')insertintoPassengervalues('张云','男','汉','37')insertintoPassengervalues('李露','女','汉','23')由以上可得一个表名为”Passenger”的数据表就建成了如图1-13:5.创建Bbtp表用MicrosoftSQL2000Server数据库系统的Transact-SQL语句定义创建这个表,程序如下:createtableBbtp(Alltimesmallint,Turnchar(20),Pricesmallint,Pnamechar(10)primarykey,foreignkey(Alltime)referencesBusline(Alltime),foreignkey(Price)referencesTicket(Price),foreignkey(Turn)referencesBus(Turn),);将代码写入SQL查询分析器的SQL编辑窗体中,并运行可得数据空表如图2所示:创建的Bbtp表及其属性如下图1-14:
往表中加数据语句如下:insertintoBbtpvalues('60','0004','15','高健')insertintoBbtpvalues('50','0005','16','王小明')insertintoBbtpvalues('70','0001','18','安妮')insertintoBbtpvalues('71','0007','15','张凯')insertintoBbtpvalues('78','0003','15','王睿')insertintoBbtpvalues('60','0006','16','姚洁')insertintoBbtpvalues('650','0002','16','刘佳')insertintoBbtpvalues('70','0004','18','杨枫')insertintoBbtpvalues('80','0001','18','李勇')insertintoBbtpvalues('65','0005','18','王妮')insertintoBbtpinsertintoBbtpvalues('70','0001','16',' 李露')由以上可得一个表名为”Bbtp”的数据表就建成了如图1-15:鶴表-BbtpH中的数据・毡置星Fuhf由、■0bcall)"上AlltimeTurnPriceAlltimeTurnPrice►迦000532旳oaos3275000330700002IS5000012S5900043550000128name春健宇承霞明昊立-高李划划王吴张3.3程序的构造方法及其实现因为长途汽车信息管理系统可以实现对不同信息的不同操作,程序中分别构造各个功能模块供信息操作使用,详细设计及主要代码如下:登陆界面代码在此模式下通过输入管理员名及密码,以获取权限,进入各项操作的界面packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.io.*;publicclassdengluextendsJFrameimplementsActionListener欢迎登陆汽车管理系统")欢迎登陆汽车管理系统")姓名");密码");staticJLabeljl2=newJLabel();staticJLabeljl3=newJLabel("staticJLabeljl4=newJLabel("确定");返回");staticJButtonjb仁确定");返回");publicvoidDI(Statementsta){this.st=sta;setSize(300,250);setVisible(true);setLayout(null);jl.setBounds(80,20,200,20);jl3.setBounds(60,60,50,20);jl4.setBounds(60,100,50,20);jl2.setBounds(100,140,200,20);jb1.setBounds(80,180,60,30);jb2.setBounds(160,180,60,30);jt1.setBounds(100,60,100,20);jt2.setBounds(100,100,100,20);add(jl);add(jl2);add(jl3);add(jl4);add(jt1);add(jt2);add(jb1);add(jb2);jb1.addActionListener(this);jb2.addActionListener(this);主操作界面在此模式下,可以实现查询,插入,删除,及总查询等诸多功能。packagechangtu;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassOprationextendsJFrameimplementsActionListener{staticJLabeljl=newJLabel(" 请选择一种操作:");// 定义标签staticJRadioButtonjc仁newJRadioButton(”查询操作");//单选按钮staticJRadioButtonjc2=newJRadioButton("插入操作");staticJRadioButtonjc3=newJRadioButton("删除操作");staticJRadioButtonjc4=newJRadioButton("修改操作");staticJButtonjb仁newJButton(” 确定");//按钮staticJButtonjb2=newJButton(” 返回");staticButtonGroupbg=newButtonGroup();publicstaticintflag;staticCheckch=newCheck();publicvoidxuanze(){setTitle(" 操作选择");//设置界面内容setSize(300,270);〃 界面大小setLayout(null);// 界面布局jl.setBounds(70,10,150,20);〃 设置位置大小jc1.setBounds(60,50,150,20);jc3.setBounds(60,130,150,20);jc4.setBounds(60,170,150,20);jbl.setBounds(80,210,60,20);jb2.setBounds(160,210,60,20);jcl.setSelected(true);// 设为选中bg.add(jcl);bg.add(jc2);bg.add(jc3);bg.add(jc4);add(jl);add(jc1);add(jc2);add(jc3);add(jc4);add(jb1);add(jb2);jc1.addActionListener(this);// 加入事件监听jc2.addActionListener(this);jc3.addActionListener(this);jc4.addActionListener(this);jb1.addActionListener(this);jb2.addActionListener(this);setVisible(true);}汽车查询代码在此模式下输入汽车的某一项信息,可以获得汽车编号、汽车种类、载客量等信息,如输入汽车编号01,便可以显示01车的其他信息。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.io.*;publicclassQchepiaoextendsJFrameimplementsActionListener{Statementst=null;已售\n");JTextAreaja=newJTextArea(”已售\n");JTextFieldjt=newJTextField();JRadioButtonjc仁newJRadioButton(” 查询全部");JRadioButtonjc2=newJRadioButton(” 部分查询");ButtonGroupbg=newButtonGroup();JButtonjb仁newJButton(” 查询");JButtonjb2=newJButton(” 返回");JButtonjb3=newJButton(” 退出");staticOprationop=newOpration();publicvoidQcp(Statementsta){this.st=sta;//Statement 语句传输setSize(400,300);setLayout(nuII);setVisible(true);// 设置界面可见jc1.setBounds(20,20,80,20);jc2.setBounds(20,60,80,20);jt.setBounds(20,100,80,30);jb1.setBounds(30,150,60,30);jb2.setBounds(120,220,60,30);jb3.setBounds(230,220,60,30);bg.add(jcl);bg.add(jc2);add(jcl);add(jc2);add(jt);add(jbl);add(jb2);add(jb3);add(ja);jcl.addActionListener(this);jc2.addActionListener(this);jbl.addActionListener(this);jb2.addActionListener(this);jb3.addActionListener(this);}汽车插入、修改等代码在此模式下,我们可以轻松的实现对汽车的信息的修改, 以及在增加班车后,实现插入该车的信息。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassIchepiaoextendsJFrameimplementsActionListener{Statementst=null;JLabeljl1=newJLabel(" 编号");JLabeljl2=newJLabel(" 售票");JLabeljl3=newJLabel(" 剩余");JLabeljl4=newJLabel(" 已售");JLabeljl5=newJLabel();JTextFieldjt1=newJTextField();JTextFieldjt2=newJTextField();JTextFieldjt3=newJTextField();JTextFieldjt4=newJTextField();JButtonjb仁newJButton(” 插入");JButtonjb2=newJButton(” 返回");JButtonjb3=newJButton(" 修改");staticOprationop=newOpration();publicvoidlcp(Statementsta){this.st=sta;setLayout(null);setSize(300,300);setVisible(true);jl1.setBounds(20,20,80,20);jl2.setBounds(20,60,80,20);jl3.setBounds(20,100,80,20);jl4.setBounds(20,140,80,20);jt1.setBounds(100,20,40,20);jt2.setBounds(100,60,40,20);jt3.setBounds(100,100,40,20);jt4.setBounds(100,140,40,20);jl5.setBounds(100,180,100,20);jb1.setBounds(200,100,60,20);jb2.setBounds(200,140,60,20);jb3.setBounds(200,60,60,20);add(jll);add(jl2);add(jl3);add(jl4);add(jl5);add(jtl);add(jt2);add(jt3);add(jt4);add(jbl);add(jb2);add(jb3);jbl.addActionListener(this);jb2.addActionListener(this);jb3.addActionListener(this);}车票删除代码在此模式下,我们可以删除指定的无用的汽车信息,以便汽车信息的更新packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassDchepiaoextendsJFrameimplementsActionListener{Statementst=null;JTextFieldjt1=newJTextField();JLabeljl1=newJLabel(" 删除的信息”);JLabeljl2=newJLabel();JButtonjb仁newJButton(” 删除");JButtonjb2=newJButton(”返回");staticOprationop=newOpration();publicvoidDcp(Statementsta){this.st=sta;setSize(200,200);setLayout(null);setVisible(true);jl1.setBounds(60,20,100,20);jt1.setBounds(70,40,40,20);jl2.setBounds(40,80,140,20);jb1.setBounds(40,120,60,20);jb2.setBounds(110,120,60,20);add(jl1);add(jl2);add(jb1);add(jb2);add(jt1);jb1.addActionListener(this);jb2.addActionListener(this);}publicvoidactionPerformed(ActionEvente){JButtonjb=(JButton)e.getSource();ResultSetrs=null;if(jb==jb1){try
{Stringst仁"delete{Stringst仁"deletefromchepiaowherebianhao=”'+jt1.getText()+"'or shoupiao=”'+jt1.getText()+"'orshengyu='"+jt1.getText()+"'oryishou='"+jt1.getText()+"'";st.executeUpdate(st1);jl2.setText(" 删除车票信息成功");jl2.setForeground(Color.red);}catch(Exceptione1){System.out.println(e);}}if(jb==jb2){dispose。;// 释放内存op.xuanze();〃调用Opration中xuanze方法}}}3.4数据库与Java程序的链接
图1-16图1-16数据库链接4设计结果与分析4.1设计结果截图长途汽车信息管理系统登录界面编译程序,会出现如图5-1的登陆界面,管理员通过输入管理员姓名和密码,以登录汽车管理系统。就世!登陆汽车管理冢统就世!登陆汽车管理冢统返回踊定返回图1-17登陆界面选择操作界面管理员通过此操作界面可以选择要实现的操作图1-18操作界面选择表界面通过单击查询操作进入这个界面,来选择要查询的信息。-!□!x|诱选择一亍表:®汽车表O车栗表O线路表确定 趣回图1-19选择表界面查询界面图1-20图1-20查询界面部分查询界面二1HJ凶)査询全部・部却违i二1HJ凶)査询全部・部却违i园44图1-21部分查询界面修改、插入界面管理员可以通过该界面来实现插入,修改该系统的信息,如图5-6为插入汽车信息界面。
图1-22修改、插入界面删除界面管理员可以通过该界面,删除无用的信息图1-23删除界面4.2设计结果分析了解长途车站信息系统分析:如需求分析和开发工具选择,功能分配。思画设计方案流程图并具体化:用流程图的形式展现基本编程思想。将流图中的大模块的具体实现思考清楚,并想好实现的代码。编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中将发现总体设计和模块思想会存在很多问题, 需不断改进.如何实现各函数功能,达到预期效果也将是一项繁复的工作。代码的调试:在Java环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。最后修饰:程序可以正确运行之后,在不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化,增强程序的新意与可行性。5小结并安这学期期中学校就特安排我们进行为期二周的数据库的课程设计制作,并安排了指导老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展在此次长途汽车信息管理系统的开发过程中,遇到了许多的问题比如:数据库连接错误,代码、对象方法名错误等,但经过认真思考并在老师和同学的帮助下顺利完成了本次设计,本次课程设计有很多东西值得我思考并总结。通过本次课程设计,使我在制作过程中更加熟练的掌握数据库语言的构造方法及技巧, 并且使我更加熟悉的掌握了Java语言的运用,帮助我复习巩固了Java语言及其功能,提高了我的动手能力和思维能力。并且从中学会了将数据库导入到程序系统中的方法,积攒了许多解决实际问题的宝贵经验.长途汽车信息管理系统主要的实现了对线路信息、汽车信息、车票信息的查询删除和添加功能,用户在登陆界面后可以对其信息进行简单的操作,快速高效的完成人们乘车出行信息的记录,方便了人们的日常生活,这也是我本次课程设计制作的主要目的。最后,在这里郑重的感谢指导老师的帮助,让我得到了许多精彩的收获,也感谢学校提供给我们这次宝贵的实践机会,让我们可以在实践中充分锻炼逻辑思维、动手制作、查漏补缺的能力,理论与实践相结合,以此来提高自己的编程能力和对课本知识的理解,大大提高了对学术研究的态度及个人素质的培养。参考文献丁宝康•数据库实用教程习题解答[M].清华大学出版社.2004年郑玲利.数据原理与应用案例教程[M].清华大学出版社.2008年龙帅•深入浅出SQLServer数据库开发[M].中国青年出版社.2006年04月刘大玮.SQLServer数据库项目案例导航[M].清华大学出版社.2005年⑸丁宝康•数据库实用教程[M].清华大学出版社.2002年09月⑹万常选廖国琼•数据库系统原理与设计•清华大学出版社•2009年王珊萨师煊.数据库系统概论.高等教育出版社•2006年07月黄晓东.Java课程设计案例精编.中国水利水电出版社•2007年01月孙一林彭波.Java网络编程实例[M].清华大学出版社.2003年李宗伟.Java语言描述[M].第2版.机械工业出版社.2009年01月张银鹤.Java开发典型实例[M].电子工业出版社.2009年01月张峋杨三成.Java应用详解[M].中国铁道出版社.2010年11月袁然郑自国.java案例开发集锦[M].电子工业出版社.2005年耿祥义.Java基础教程[M].清华大学出版社.2004年10月王珊萨师煊.数据库系统概论.高等教育出版社.2011年03月致谢经过这一学期的系统学习,我们对数据库有了一定的了解,并且学会了一些常用的操作方法以及熟练应用SQL语言。在这次的课程设计中,我们都有很大的收益但同时也遇到了很多的困难,不过最后我们还是完成了任务。这当中与老师的耐心指导是分不开的。由于我们本身知识的有限性,在遇到困难时,我们不得不上网搜索相关知识点,解决我们的困难。老师的讲解与建议,也给了我们不少的帮助。我们课程设计的完成,主要归功于老师的耐心指导与讲解,感谢一直给予我帮助和支持的老师,也感谢本院系给我这次程序设计的机会,让我在本次课程设计中得到了最大的收获,今后我会继续学习,争取做到最好。附录1:源程序
packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.io.*;publicclassdengluextendsJFrameimplementsActionListener欢迎登陆汽车管理系统");欢迎登陆汽车管理系统");姓名");密码");确定");返回");staticJLabeljl3=newJLabel("staticJLabeljl4=newJLabel("staticJButtonjb仁newJButton(”staticJButtonjb2=newJButton("staticJTextFieldjt1=newJTextField();staticJTextFieldjt2=newJTextField();staticOprationop=newOpration();Statementst;publicvoidDl(Statementsta){this.st=sta;setSize(300,250);setVisible(true);setLayout(null);jl.setBounds(80,20,200,20);jl3.setBounds(60,60,50,20);jl4.setBounds(60,100,50,20);jl2.setBounds(100,140,200,20);jb1.setBounds(80,180,60,30);jb2.setBounds(160,180,60,30);jtl.setBounds(100,60,100,20);jt2.setBounds(100,100,100,20);add(jl);add(jl2);add(jl3);add(jl4);add(jtl);add(jt2);add(jbl);add(jb2);jbl.addActionListener(this);jb2.addActionListener(this);}publicstaticvoidmain(Stringargs[]){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(Exceptione){System.out.println(” 连接失败!");return;}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:changtu","sa","");Statementstmt=con.createStatement();newdenglu().Dl(stmt);catch(Exceptione){System.out.println(e);}}publicvoidactionPerformed(ActionEvente){Objects=e.getSource();ResultSetrs;if(s.equals(jb1)){try{rs=st.executeQuery("selectxingmin,mimafrommanager");while(rs.next()){Stringa=rs.getString("xingmin");Stringb=rs.getString("mima");if(a.equals(jt1.getText())&&b.equals(jt2.getText())){dispose();op.opration();}}jl2.setText(" 姓名或密码错误!");jl2.setForeground(Color.red);}catch(Exceptione1){System.out.println(e);}if(s.equals(jb2)){System.exit(O);}}}(2)主操作界面在此模式下,可以实现查询,插入,删除,及总查询等诸多功能。packagechangtu;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassOprationextendsJFrameimplementsActionListener{staticJLabeljl=newJLabel(" 请选择一种操作:");// 定义标签staticJRadioButtonjc仁newJRadioButton(”查询操作");//单选按钮staticJRadioButtonjc2=newJRadioButton("插入操作");staticJRadioButtonjc3=newJRadioButton("删除操作");staticJRadioButtonjc4=newJRadioButton("修改操作");staticJButtonjb仁newJButton(” 确定");//按钮staticJButtonjb2=newJButton(” 返回");staticButtonGroupbg=newButtonGroup();publicstaticintflag;staticCheckch=newCheck();publicvoidxuanze()setTitle(" 操作选择");//设置界面内容setSize(300,270);〃 界面大小setLayout(null);// 界面布局jl.setBounds(70,10,150,20);〃 设置位置大小jcl.setBounds(60,50,150,20);jc2.setBounds(60,90,150,20);jc3.setBounds(60,130,150,20);jc4.setBounds(60,170,150,20);jb1.setBounds(80,210,60,20);jb2.setBounds(160,210,60,20);jc1.setSelected(true);〃 设为选中bg.add(jc1);bg.add(jc2);bg.add(jc3);bg.add(jc4);add(jl);add(jc1);add(jc2);add(jc3);add(jc4);add(jb1);add(jb2);jc1.addActionListener(this);// 加入事件监听jc2.addActionListener(this);jc3.addActionListener(this);jc4.addActionListener(this);jb1.addActionListener(this);jb2.addActionListener(this);setVisible(true);}publicintgetState(){returnflag;}publicstaticvoidopration(){newOpration().xuanze();}publicvoidactionPerformed(ActionEvente){Objects=e.getSource();〃 事件源if(s.equals(jb1)){if(jc1.isSelected()){flag=1;setVisible(false);ch.ch();}elseif(jc2.isSelected()){flag=2;setVisible(false);ch.ch();}elseif(jc3.isSelected()){flag=3;setVisible(false);ch.ch();}elseif(jc4.isSelected()){flag=4;setVisible(false);ch.ch();}}if(s.equals(jb2)){System.exit(O);}}}汽车查询代码在此模式下输入汽车的某一项信息,可以获得汽车编号、汽车种类、载客量等信息,如输入汽车编号01,便可以显示01车的其他信息。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.io.*;publicclassQchepiaoextendsJFrameimplementsActionListenerStatementst=null;JTextAreaja=newJTextArea(”编号 售票剩余已售\n");剩余JTextFieldjt=newJTextField();JRadioButtonjc仁newJRadioButton(” 查询全部");JRadioButtonjc2=newJRadioButton(” 部分查询");ButtonGroupbg=newButtonGroup();JButtonjb仁newJButton(” 查询");JButtonjb2=newJButton(” 返回");JButtonjb3=newJButton(” 退出");staticOprationop=newOpration();publicvoidQcp(Statementsta){this.st=sta;//Statement 语句传输setSize(400,300);setLayout(nuII);setVisible(true);// 设置界面可见jc1.setBounds(20,20,80,20);jc2.setBounds(20,60,80,20);jt.setBounds(20,100,80,30);jb1.setBounds(30,150,60,30);jb2.setBounds(120,220,60,30);jb3.setBounds(230,220,60,30);ja.setBounds(120,20,250,200);bg.add(jc1);bg.add(jc2);add(jc1);add(jc2);add(jt);add(jb1);add(jb2);add(jb3);add(ja);jcl.addActionListener(this);jc2.addActionListener(this);jbl.addActionListener(this);jb2.addActionListener(this);jb3.addActionListener(this);}publicvoidactionPerformed(ActionEvente){Objects=e.getSource();ResultSetrs=null;Stringa1;if(s.equals(jb1)){if(jc1.isSelected()){try{rs=st.executeQuery("selectbianhao,shoupiao,shengyu,yishoufromchepiao");ja.setText("");ja.setText(”编号 售票 剩余 已售\n");while(rs.next()){Stringa=rs.getString("bianhao");Stringb=rs.getString("shoupiao");Stringc=rs.getString("shengyu");Stringd=rs.getString("yishou");ja.append(a+""+b+""+c+""+d+"\n");}}catch(Exceptione1){System.out.println(e);}}if(jc2.isSelected()){try{ja.setText("");ja.setText(” 编号 售票剩余 已售\n");rs=st.executeQuery("selectbianhao,shoupiao,shengyu,yishou from chepiao wherebianhao='"+jt.getText()+"' or shoupiao='"+jt.getText()+"'orshengyu=”'+jt.getText()+"'oryishou='"+jt.getText()+"”');while(rs.next()){Stringa=rs.getString("bianhao");Stringb=rs.getString("shoupiao");Stringc=rs.getString("shengyu");Stringd=rs.getString("yishou");ja.append(a+""+b+""+c+""+d+"\n");}}catch(Exceptione1){System.out.println(e);}if(s.equals(jb2)){dispose。;op.xuanze();}if(s.equals(jb3)){System.exit(O);}}}汽车插入、修改等代码在此模式下,我们可以轻松的实现对汽车的信息的修改, 以及在增加班车后,实现插入该车的信息。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassIchepiaoextendsJFrameimplementsActionListener{Statementst=null;JLabeljl1=newJLabel(" 编号");JLabeljl2=newJLabel(" 售票");JLabeljl3=newJLabel(" 剩余");JLabeljl4=newJLabel(" 已售");JLabeljl5=newJLabel();JTextFieldjt2=newJTextField();JTextFieldjt3=newJTextField();JTextFieldjt4=newJTextField();JButtonjb仁newJButton(” 插入");JButtonjb2=newJButton(” 返回");JButtonjb3=newJButton(" 修改");staticOprationop=newOpration();publicvoidlcp(Statementsta){this.st=sta;setLayout(null);setSize(300,300);setVisible(true);jl1.setBounds(20,20,80,20);jl2.setBounds(20,60,80,20);jl3.setBounds(20,100,80,20);jl4.setBounds(20,140,80,20);jt1.setBounds(100,20,40,20);jt2.setBounds(100,60,40,20);jt3.setBounds(100,100,40,20);jt4.setBounds(100,140,40,20);jl5.setBounds(100,180,100,20);jb1.setBounds(200,100,60,20);jb2.setBounds(200,140,60,20);jb3.setBounds(200,60,60,20);add(jl1);add(jl2);add(jl3);add(jl4);
add(jl5);add(jtl);add(jt2);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国移动黑龙江公司校园招聘高频重点提升(共500题)附带答案详解
- 商务、清洗服务行业相关投资计划提议
- 2025中国电建集团武汉重工装备限公司招聘14人高频重点提升(共500题)附带答案详解
- 2025中国电信湖北神农架林区招聘7人高频重点提升(共500题)附带答案详解
- 2025中国建筑股份限公司海拓工程分公司校园招聘高频重点提升(共500题)附带答案详解
- 2025中国华西企业限公司招聘221人高频重点提升(共500题)附带答案详解
- 2025中共中山市委党校第六期招聘高层次人才9人(2025年)高频重点提升(共500题)附带答案详解
- 2025下半年陕西延安市事业单位招聘工作人员385人高频重点提升(共500题)附带答案详解
- 2025下半年山东高速基础设施建设限公司社会招聘6人高频重点提升(共500题)附带答案详解
- 2025上海徐汇市场监督管理局招聘派遣制工作人员15人历年高频重点提升(共500题)附带答案详解
- 商场用电安全培训
- 《中小学教育惩戒规则(试行)》宣讲培训
- 结清货款合同范例
- 挂靠装修公司合同范例
- 2021年四川省凉山州九年级中考适应性考试理科综合(试卷)
- 骨科疼痛的评估及护理
- 【MOOC】概率论与数理统计-南京邮电大学 中国大学慕课MOOC答案
- 2024年度软件开发分包合同技术要求与交底2篇
- 湖南省邵阳市2023-2024学年高一上学期拔尖创新人才早期培养竞赛(初赛)数学试题 含解析
- 2024年执业药师资格继续教育定期考试题库附含答案
- 微短剧制作手册专业版
评论
0/150
提交评论