城市公交查询系统-学位论文_第1页
城市公交查询系统-学位论文_第2页
城市公交查询系统-学位论文_第3页
城市公交查询系统-学位论文_第4页
城市公交查询系统-学位论文_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

河南工业职业技术学院毕业论文(设计) 河南工业职业技术学院软件学院毕业设计说明书题目:城市公交查询系统编号

河南工业职业技术学院软件学院毕业设计任务书

课题名称

城市公交查询系统

负责人签字:年月日

内容和要求:1.本系统要求实现以下功能:(1)实现预定功能。(2)实现公交管理。(3)实现公交资料管理。(4)实现多种形式的查询、统计管理工作。2.操作界面友好,方便用户使用,尽可能使用户在使用时简便、快捷,随时得到操作的提示,不至于使用户出现误操作导致数据被破坏或使系统瘫痪。3.考虑系统的安全性和可维护性,要设置有不同权限的用户。不同权限的用户只能在不同的操作环境中进行操作,以防出现不良后果。4.此设计应提交的资料有:(1)管理系统软件;(2)答辩使用的幻灯片;(3)毕业设计说明书。包括毕业设计任务书、前言、目录、摘要(300-500字)、正文(含需求分析、总体设计、数据库设计、模块设计、软件测试等)、程序代码、结束语、参考文献等,共10000字。指导教师(签字):年月日

摘要我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。在此背景下,我开发了这个应用程序城市公交查询系统。本次设计,首先我考虑了公交运营的实际情况和不同公交乘客的实际要求,分析了此系统应该具有的功能;其次对系统的主要功能模块进行了详细地描述,其中主要包括二个模块查询模块(包括按线路查询、按站点查询和按两站点查询)和管理更新模块(包括公交站点管理和公交线路管理),最后结合系统开发阶段和调试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得的经验。关键词:公交,ASP.NET,查询,B/S结构,数据库

AbstractThedevelopmentofthebuspassengerinformationsystemisinalevelthatfallbehindofthecityinourcountry.Thelargepartofpassengerscanacquirefewwaysoftheinformation.Soit'spracticalforustodevelopcity'sbuspassengerinformationsysteminordertoresolvingthisproblem.Forthispurpose,Idesignthisapplicationprocedurebuscircuitsearchsystem.Fromthisdesign,First,Ianalyzedthepresentconditionofthebuspassengerinformationanddifferentpeople'sneeds,inordertoknowwhatfunctionsthisequipmentshouldcontain.Second,Idescribethesystem’smainfunctionmodulesindetail,thesefunctionscanbedividedintotwopartssearchsystem(Accordingtothelinesearch、stationsearchandbetweentwostationssearch)andmanagementupdatesystem(BusstationmanagementandBuslinemanagement).Atlastaccordingtotheproblemsthathappenedintheperiodofusing,Isummedupsomewaystoimprovethesystem,andsomeexperiencesthatIcanhavefromthisresearch.Keywords:Bus,ASP.NET,Search,StructureofB/S,Database毕业设计河南工业职业技术学院毕业论文(设计) 实体属性关系图车次信息实体属性关系图车次信息车辆序号车次号经过站点信息夏季发车时间夏季结束时间票价冬季结束时间冬季发车时间管理员信息管理员密码备注管理员帐号管理员姓名4.联系定义E-R模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。5、设计全局E-R模式所有局部E-R模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部E-R模式,而且必须合理地表示一个完整、一致的数据库概念结构。1)确定公共实体类型为了给多个局部E-R模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键枕认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部E-R模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部E-R模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。4)全局E-R模式的优化在得到全局E-R模式后,为了提高数据库系统的效率,还应进一步依据处理需求对E-R模式进行优化。一个好的全局E-R模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。本系统的E-R模型如图3.3.1-2所示线路车次线路车次票价站点时间1:n1:11:11:1图3.3.1-2ER模型图4.1.2表设计考虑系统的实际需要,系统需要公交信息表,管理员表。1.公交信息表(Bus)公交信息表存储公交线路的详细信息,字段说明如表3-1所示Bus表的字段说明编号字段名称字段类型字段说明1BusIDnvarchar车次号主键2Detailntext车次经过站点3A_STimentext夏季发车时间4W_STimentext冬季发车时间5A_ETimentext夏季结束时间6W_ETimentext冬季结束时间7T_Valueint票价8Sortint车序号CREATETABLEbus(BusIDnvarcharPrimarykey,DetailntextNotNull,A_STimentext,W_STimentext,A_ETimentext,W_ETimentext,T_ValueintNotNull,SortintNotNull) 其中Detail存放车次的站点信息,其格式为××××->×××->×××。2.管理员表管理员表存储管理员的详细信息,字段说明如表3-1所示编号字段名称字段类型字段说明1ManagerIDnvrchar管理员编号2TrueNamenvrchar管理员姓名3Passwordnvrchar密码4Commentnvrchar备注CREATETABLEmanager(ManagerIDnvrcharPrimarykey,TrueNamenvrcharNotNull,PasswordnvrcharNotNull,Commentnvrchar)4.2系统部分模块设计无锡公交线路查询系统总体上可分为普通查询模块(包括清晰站点查询、清晰线路查询、清晰换乘查询)、高级查询模块(包括模糊车次查询、模糊站点查询、模糊线路查询、模糊换乘查询),后台管理模块(包括删除线路、修改线路、添加线路等功能)。4.2.1普通查询模块1.线路查询首先用户准备查询公交线路,在下拉菜单中选择选择公交车次号,启动车次查询,系统从数据库中读取公交车次信息,在新窗口中显示车次经过的站点等详细信息。选择查询的站点用户准备查询公交站点信息选择查询的站点用户准备查询公交站点信息启动站点查询显示站点信息查询结果从数据库中读取站点信息站点查询流程图选择公交车次号用户准备查询公交线路信息启动车次查询显示车次信息查询结果从数据库中读取公交车次信息线路查询流程图 2.站点查询首先用户准备查询站点信息,在下拉菜单中选择选择要查询的站点,启动站点查询,系统从数据库中读取公交站点信息,在新窗口中显示经过该站点的公交线路的详细信息。3.换乘查询首先用户准备查询换乘信息,在下拉菜单中选择选择起始站点和到达站点,启动换乘查询,系统首先判断是否有直达车,如果有直达车直接给出换乘信息,如没有直达车则在数据库中查找换乘线路和中转站,再给出换乘信息,在新窗口中显示显示换乘信息查询结果。选择起始站点选择起始站点用户准备查询线路换乘信息选择到达站点显示换乘信息查询结果在数据库中查找换乘线路和中转站启动换乘查询判断是否有直达车生成换乘信息换乘查询流程图YN4.2.1高级查询模块1.车次查询首先用户准备查询公交车次,在文本框中输入公交车次号,系统判断输入车次号是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动车次查询,系统从数据库中读取公交车次信息,在新窗口中显示车次经过的站点等详细信息提示错误信息提示错误信息要求重新输入检验输入是否有效输入查询的车次用户准备查询公交车次信息启动车次查询显示车次信息查询结果从数据库中读取车次信息模糊车次查询流程图YN2.模糊站点查询首先用户准备查询公交站点,在文本框中输入查询的站点关键字,系统判断输入关键字是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动模糊查询,系统从数据库中读取与站点关键字匹配的站点,在新窗口中显示所有与输入关键字匹配的所有站点。提示错误信息提示错误信息要求重新输入检验输入是否有效输入查询的站点关键字用户准备查询公交站点信息启动模糊查询显示站点信息查询结果从数据库中读取与站点关键字匹配的站点模糊站点查询流程图YN3.模糊线路查询首先用户准备查询公交站点,在文本框中输入查询的站点关键字,系统判断输入关键字是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动模糊查询,系统从从数据库中读取经过与站点关键字匹配的站点的线路,在新窗口中显示所有与输入关键字匹配的所有线路,即与关键字相关的车次及详细信息。提示错误信息提示错误信息要求重新输入检验输入是否有效输入查询的站点关键字用户准备查询公交线路信息启动模糊查询显示线路信息查询结果从数据库中读取经过与站点关键字匹配的站点的线路模糊线路查询流程图YN 4.模糊换乘查询首先用户准备查询公交站点,在文本框中输入查询的站点关键字,系统判断输入关键字是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动模糊查询,系统从数据库中读取与关键字匹配的站点,然后启动换乘查询,系统先判断是否有直达车,如果有直达车直接给出换乘信息,如没有直达车则在数据库中查找换乘线路和中转站,再给出换乘信息,在新窗口中显示显示换乘信息查询结果。模糊换乘查询流程图用户准备查询线路换乘信息模糊换乘查询流程图用户准备查询线路换乘信息输入起始站点和到达站点关键字显示线路信息查询结果在数据库中查找换乘线路和中转站启动换乘查询判断是否有直达车生成换乘信息检验输入是否有效提示错误信息要求重新输入YNNY4.2.3后台管理模块管理员维护整个系统,管理员输入用户名和密码后,登陆后台管理系统,在后台管理系统,管理员可以进行添加车次信息,修改车次信息,删除车次信息等操作。输入用户名和密码登录后台管理系统输入用户名和密码登录后台管理系统管理员要进行后台管理添加车次信息修改车次信息删除车次信息退出后台管理系统后台管理流程图5系统的实现5.1普通查询模块系统主页即是普通查询模块,是由homepage.jsp页面实现,它包括了站点查询子模块、线路查询子模块和换乘查询子模块。如图所示。主页核心是把数据库中的车次和站点取出来,在下拉列表中显示。主要采用了ResultSet.getString()方法,首先设置两个数据库结果集(ResultSet)result1、result2.和两个数组busid[]、all_station[],分别存放车次号和站点名,因为站点采用××××->×××->×××的方式存在数据库中所以采用StringTokenizerstr=newStringTokenizer(detail,"->");方法将站点取出来存入all_station[],然后遍历数组在下拉列表中显示。其核心代码如下:while(result1.next()) {busid[i]=result1.getString("BusID"); i++; } result1.close();//把车次查询的车次号存入busid[]中。while(result2.next()) {//把每一条记录放入临时变量detail中 detail=result2.getString("Detail"); StringTokenizerstr1=newStringTokenizer(detail,"->"); //对每一条记录的每一个站点进行比较 while(str1.hasMoreTokens()) {mark=0;//恢复mark的值,以便比较下一条记录 StringTokenizerstr2=newStringTokenizer(str1.nextToken(),""); station2=str2.nextToken(); //注:count是随着程序的执行而不断的增加 for(intk=0;k<count&&mark==0;k++) { //当站点相同时用mark的值来结束循环, if(station2.indexOf(all_station[k])!=-1||all_station[k].indexOf(station2)!=-1) {mark=1; flag=0; } else flag=1;//如果全都不相同时,用flag值来跟踪 } //把不重复的站点放入数组中,count加一, if(flag==1) {all_station[count]=station2; count++;}} } result2.close();Arrays.sort(all_station,cmp);//遍历数据库,把所有站点不重复地放入数组all_station[]数组中5.1.1车次查询子模块用户进入系统后,可以从“请选择车次”下拉列表中得到数据库中的所有车次,选中要查询的车次号,然后点击查询,即可显示该车次经过的所有站点。例如查询756路车。结果如图所示。用户点击“查询”,触发submit事件,将得到的数据“query1”传递"resultquery1.jsp”进行车次查询,"resultquery1.jsp”主要是通过StringBusID=request.getParameter("query1");得到所选中的线路,然后用statement="select*frombuswhereBusID='"+BusID+"'";result=sql.executeQuery(statement);从数据库中查出车次经过的所有站点。最后用while(result.next()){Stringbusid=result.getString("BusID"); StringDetail=result.getString("Detail");a_startime=result.getString("A_STime"); a_endtime=result.getString("A_ETime"); w_startime=result.getString("W_STime"); w_endtime=result.getString("W_ETime");t_value=result.getInt("T_Value"); StringTokenizerstr1=newStringTokenizer(Detail,"->"); while(str1.hasMoreTokens()) {stations[count]=str1.nextToken(); count++; }在页面中显示该车次经过的所有站点。 5.1.2站点查询子模块用户可以从“请选择站点”下拉列表中得到数据库中的所有站点,选中要查询的站点,然后点击查询,即可显示所有经过要查询站点的车次号和经过的所有站点,其中要查询的站点在结果中高亮显示。例如,查询南禅寺(朝阳广场),结果如图所示。用户点击“查询”,触发submit事件,将得到的数据“query2”传递"resultquery2.jsp”进行站点查询,"resultquery2.jsp”主要是通过StringBusID=request.getParameter("query2");得到所选中的站点,然后用statement="select*frombuswhereDetailLIKE'%"+Station+"%'orderbySortASC";result=sql.executeQuery(statement);从数据库中查出所有经过要查询站点的车次号和经过的所有站点。最后通过while(result.next()) {StringBusID=result.getString("BusID"); StringDetail=result.getString("Detail"); StringTokenizerstr1=newStringTokenizer(Detail,"->"); count=0;while(str1.hasMoreTokens()) {stations[count]=str1.nextToken(); count++;}显示所有经过要查询站点的车次号和经过的所有站点5.1.3换乘查询子模块用户可以从“请选择起始站”和“请选择到达站”下拉列表中得到数据库中的所有站点,选中要查询的起始站和到达站,然后点击查询,即可显示所有到达的途径,如果没有直达车,将为你建议若干中转站。例如南禅寺到国家软件园有直达车,结果如图所示。例如国家软件园(菱湖大道)到蠡湖广场没有直达车,要进行换乘,结果如图所示。用户点击“查询”,触发submit事件,将起始站点“S_query3”和到达站点“E_query3”传递到到"resultquery3.jsp”进行车次查询,"resultquery3.jsp”得到要查询的起始站和到达站后,首先判断是否有直达车,如果有直达车直接给出换乘信息,如没有直达车则在数据库中查找换乘线路和中转站,再给出换乘信息,在新窗口中显示显示换乘信息查询结果。当有直达车时con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_bus","root","root"); sql1=con.createStatement();//从数据库中找出所有含有起始站和终止站的数据 Stringcondition1="select*frombuswhereDetailLIKE'%"+S_Station+"%"+E_Station+"%'ORDetailLIKE'%"+E_Station+"%"+S_Station+"%'orderbySortASC"; result1=sql1.executeQuery(condition1); //把结果放在数组Result1[i]中 while(result1.next()) { Result1[i]=result1.getString("BusID"); Detail[i]=result1.getString("Detail"); i++; } result1.close();之后输出查询结果。当没有直达车需要转车时,询代码如下。//查询所有包含有起始站,而不包含终点站的车次信息 sql2=con.createStatement(); Stringcondition2="select*frombuswhereDetailLIKE'%"+S_Station+"%'ANDDetailNOTLIKE'%"+E_Station+"%'"; result2=sql2.executeQuery(condition2); while(result2.next()) { S_BusID[j]=result2.getString("BusID"); S_Detail[j]=result2.getString("Detail"); j++; } result2.close();//关闭第二个结果集 //查询所有包含有终点站,不包含起始站的车次信息 sql3=con.createStatement(); Stringcondition3="select*frombuswhereDetailLIKE'%"+E_Station+"%'ANDDetailNOTLIKE'%"+S_Station+"%'"; result3=sql3.executeQuery(condition3); while(result3.next()) { E_BusID[h]=result3.getString("BusID"); E_Detail[h]=result3.getString("Detail"); h++; } result3.close();//关系第三个结果集 //把要转车的信息放Result2系列的数组 for(k=0;k<j;k++) {//初始临时变量,对S_Detail[]中的每一个元素进行比较 detail1=S_Detail[k]; //把detail1用'->'符号区分StringTokenizerstr1=newStringTokenizer(detail1,"->"); //对S_Detail[]中的每一个元素的每一个站点进行比较 while(str1.hasMoreTokens()) { station1=str1.nextToken();//初始临时变量 //取出E_Detail[]数组中的每一个元素 for(n=0;n<h;n++) {detail2=E_Detail[n];//定义临时变量 StringTokenizerstr2=newStringTokenizer(detail2,"->"); //取出E_Detail[]数组中的每一个元素的每一个站点 while(str2.hasMoreTokens()) {station2=str2.nextToken(); //把结果存储到结果集中 if(station1.equals(station2)) { Result2_ID1[count]=S_BusID[k]; Result2_tan[count]=station1; Result2_ID2[count]=E_BusID[n]; count++; } } } } }之后输出转乘车次1,转乘车次2,以及中转站信息。5.2高级查询模块高级查询模块由advancequery.jsp页面实现,在主页上点击高级搜索即可进入高级查询模块,包括车次查询、模糊站点查询、模糊线路查询、模糊换乘查询),它与普通查询的区别是可以模糊查询,也就是不完全匹配,用户只需输入站点名称和部分字符信息,系统便会给出与此相关的所有站点信息。页面如图所示。因为车次查询子模块、模糊站点查询子模块、模糊线路查询子模块之间都有联系,所以写在了一个文件中resultadvance1.jsp中,在resultadvance1.jsp通过Stringkeyword=request.getParameter("advance1");得到“advance1”,然后通过if(method.equals("按站点查询")){},elseif(method.equals("按路线查询")){},elseif(method.equals("按车次查询")){}来区分三种查询模块。5.2.1车次查询子模块用户进入界面后,可以输入要查询的车次号,然后选择查询方式,选择“按车次查询”,点击查询,即可显示该车次经过的所有站点。例如查询9路车。结果如图所示。在车次查询子模块中通过statement="select*frombuswhereBusID='"+BusID+"'";result=sql.executeQuery(statement);从数据库中查出车次经过的所有站点。遍历后显示出来。核心代码如下:intid=Integer.parseInt(keyword);Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); statement="select*frombuswhereSort="+id+""; result=sql.executeQuery(statement); if(!result.next()) {response.sendRedirect("errorquery1.jsp"); } else {result.previous(); //显示站点的详细信息while(result.next()){ StringDetail=result.getString("Detail");a_startime=result.getString("A_STime"); a_endtime=result.getString("A_ETime"); w_startime=result.getString("W_STime"); w_endtime=result.getString("W_ETime");t_value=result.getInt("T_Value"); StringTokenizerstr1=newStringTokenizer(Detail,"->"); while(str1.hasMoreTokens()) {stations[count]=str1.nextToken(); count++; } } }5.2.2模糊站点查询子模块用户进入高级查询界面后,可以输入要查询站点的关键字,然后选择查询方式,选择“按站点查询”,点击查询,即可显示包括该关键字的所有站点。例如输入关键字“软件园”。结果如图所示。在站点模糊查询子模块首先用StringTokenizer方法得到所有站点存入all_station[],然后用for(inti=0;i<count;i++) {if(all_station[i].indexOf(keyword)!=-1) {relation[countrelation]=all_station[i]; countrelation++; } } result.close();和all_station[]中的数据匹配,匹配成功的即为要查询的站点。5.2.3模糊线路查询子模块用户进入高级查询界面后,可以输入要查询站点的关键字,然后选择查询方式,选择“按路线查询”,点击查询,即可显示经过包括该关键字的站点的车次信息。例如输入关键字“菱湖”。结果如图所示。在线路模糊查询子模块是在模糊站点查询的基础上,得到与关键字匹配的站点名,然后再进行一次站点查询,得到经过包括该关键字的站点的车次信息。5.2.4模糊换乘查询用户可以在“起点”和“目的”文本框中输入起始站点和目的站点的关键字,然后点击查询,即可显示所有到达的途径,如果没有直达车,将为你建议若干中转站。例如“起点”和“目的”文本框分别输入软件园、南禅寺,结果如图所示。该模块是前几个模块综合起来的,首先通过模糊查询得到起始站点和目的站点,然后判断是否有直达车,如果有直达车直接给出换乘信息,如没有直达车则在数据库中查找换乘线路和中转站,再给出换乘信息,在新窗口中显示显示换乘信息查询结果。5.3后台管理模块系统管理员通过管理员登录输入用户名和密码登入管理员界面,管理员直接可以数据进行操作,如删除线路、修改线路、添加线路。管理员登录界面如图所示:用户单击“登录”按钮触发事件submit,跳转到logincheck.jsp界面进行验证,该事件实现用户登录的验证过程。如果用户输入是正确的,用户可以登录到系统中,否则页面弹出密码错误对话框或用户角色所属错误对话框。 sql.executeQuery(condition)从数据库获取合法用户的ID数据,返回结果为对象.其的关键代码如下:Stringtarget; StringManager=request.getParameter("username"); Stringpwd=request.getParameter("password"); Stringusr=Manager; session.setAttribute("Manager",Manager); Statementsql=null; Connectioncon=null; ResultSetre=null; try{Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundExceptione){} try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_bus","root","root"); sql=con.createStatement(); Stringcondition="select*fromManagerwhereManagerID='"+usr+"'andPassword='"+pwd+"'"; re=sql.executeQuery(condition); if(re.next()){ response.sendRedirect("Update/updateSet.htm"); } else{%> <spanclass="style2"><strong>你输入的用户名或密码不正确!请重新输入</strong><ahref="javascript:history.back();"class="style1">返回修改</a></span><%} re.close(); } catch(Exceptione) {}登录成功后的界面如图所示:5.3.1添加车次车次的属性比较多,如车辆序号、车次经过站点、夏季发车时间、夏季结束时间、冬季发车时间、冬季结束时间、票价、车序号等信息,所以添加车次的过程比较复杂。添加车次功能由页面add.jsp页面实现,checkadd.Jsp文件为它的隐藏代码,对添加的信息进行验证。一条线路至少包含下面几个属性:车辆序号、车次经过站点、夏季发车时间、夏季结束时间、冬季发车时间、冬季结束时间、票价、车序号等。因此它的运行界面如图所示。添加车次页面上有一个很大的输入框,用来输入车次经过站点,该输入框以多行的形式显示数据;站点的格式是“站点1->站点2->站点3”,添加站点页面使用Javascript控件规范用户输入信息的格式;车次号必须是小于10个字段,票价必须是不大于三位数的数字,排序号必须是不大于五位数的数字,站点之间请以"->"符号连接,时间格式为18:30,单击“添加”按钮可以添加该车次Javascript代码为:<scriptlanguage="JavaScript">functioncheckdata(){busid=document.add.busid.value; detail=document.add.detail.value; a_startime=document.add.a_startime.value; a_endtime=document.add.a_endtime.value; w_startime=document.add.w_startime.value; w_endtime=document.add.w_endtime.value;t_value=document.add.t_value.value;value=document.add.value.value; if(busid==""||busid.length>10) {alert("请正确输入车次号,车次号必须是小于10个字段!"); returnfalse; }if(t_value==""||isNaN(t_value)||parseInt(t_value)<0) {alert("请正确输入票价,票价必须是不大于三位数的数字!"); returnfalse; }if(value==""||isNaN(value)||parseInt(value)<0) {alert("请正确输入排序号,排序号必须是不大于五位数的数字!"); returnfalse; } if(detail==""||(detail.indexOf('->')==-1)) {alert('请正确输入站点信息,站点之间请以"->"符号连接!'); returnfalse; } if(a_startime==""||(a_startime.indexOf(':')==-1)) {alert("请正确输入夏季发车时间,格式为18:30!") ; returnfalse; }if(a_endtime==""||(a_endtime.indexOf(':')==-1)) {alert("请正确输入夏季结束时间,格式为18:30!") ; returnfalse;} if(w_startime==""||(w_startime.indexOf(':')==-1)) {alert("请正确输入冬季发车时间,格式为18:30!") ; returnfalse;} if(w_endtime==""||(w_endtime.indexOf(':')==-1)) {alert("请正确输入冬季结束时间,格式为18:30!") ; returnfalse;} }</script>5.3.2修改车次修改车次功能由modify.jsp页面实现,它的代码隐藏文件为checkmodify.jsp文件。通过while(result.next()) {busid[i]=result.getString("BusID"); i++; }将所有车次列表显示,点击修改将跳转至“display.jsp”界面,“display.jsp”显示车次的详细信息,与添加车次界面类似。通过con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_bus","root","root"); Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); statement="select*frombuswhereBusID='"+busid+"'"; result=sql.executeQuery(statement); if(result.next()) { detail=result.getString("Detail"); //out.println(detail); a_startime=result.getString("A_STime");

温馨提示

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

评论

0/150

提交评论