




已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué) 號(hào): 0120810340402課 程 設(shè) 計(jì)題 目校園導(dǎo)游咨詢管理系統(tǒng)軟件設(shè)計(jì)學(xué) 院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí)計(jì)算機(jī)0804班姓 名王成鵬指導(dǎo)教師杜 薇2012年1月9日課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 王 成 鵬 專業(yè)班級(jí): 計(jì)算機(jī)0804 指導(dǎo)教師: 杜 薇 工作單位: 計(jì)算機(jī)學(xué)院 題目:校園導(dǎo)游咨詢管理系統(tǒng)軟件設(shè)計(jì)初始條件:1預(yù)備內(nèi)容:數(shù)據(jù)結(jié)構(gòu)(圖),軟件工程,面向?qū)ο蟪绦蛟O(shè)計(jì),數(shù)據(jù)庫(kù)技術(shù),編譯原理,可視化編程2實(shí)踐準(zhǔn)備:掌握一種計(jì)算機(jī)高級(jí)語(yǔ)言等相關(guān)的使用。要求完成的主要任務(wù):基本功能要求:(1)設(shè)計(jì)你所在學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。將校內(nèi)各景點(diǎn)的數(shù)據(jù)(景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息)和圖片以圖結(jié)構(gòu)表示并保存于數(shù)據(jù)庫(kù)。(2)為來(lái)訪客人提供任意景點(diǎn)相關(guān)信息的查詢。(3)為來(lái)訪客人提供任意景點(diǎn)的問(wèn)路查詢。(4)測(cè)試數(shù)據(jù):自定。 (5)涉及技術(shù)工具:軟件工程技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、UML工具、Java語(yǔ)言或C#語(yǔ)言等設(shè)計(jì)報(bào)告內(nèi)容應(yīng)說(shuō)明:1. 課程設(shè)計(jì)目的與功能;2. 需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說(shuō)明(功能與框圖);3. 源程序的主要部分;4. 運(yùn)行結(jié)果與運(yùn)行情況分析;5. 自我評(píng)價(jià)與總結(jié)時(shí)間安排:本學(xué)期第17-19周:1. 查閱、消化資料,系統(tǒng)調(diào)查2天2. 系統(tǒng)分析(采用UML工具)3天3. 總體設(shè)計(jì),實(shí)施計(jì)劃(采用UML工具)3天4. 系統(tǒng)開(kāi)發(fā)與實(shí)現(xiàn)(用指定語(yǔ)言工具)5天5. 撰寫(xiě)報(bào)告2天指導(dǎo)教師簽名: 2011年12月25日系主任(或責(zé)任教師)簽名: 年 月 日校園導(dǎo)游咨詢管理系統(tǒng)1. 課程設(shè)計(jì)目的與功能1)設(shè)計(jì)目的:為游客設(shè)計(jì)一個(gè)校園導(dǎo)游咨詢管理系統(tǒng)軟件,幫助游客很好地了解校園景點(diǎn)位置,為觀光帶來(lái)方便。作為導(dǎo)游就是指示景點(diǎn)之間的距離和方向,讓游客很清楚所處的位置,并且能夠很快地找到方向與目的地。軟件是為了簡(jiǎn)單、易用而設(shè)計(jì)的。2)基本功能要求:1.設(shè)計(jì)你所在學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。將校內(nèi)各景點(diǎn)的數(shù)據(jù)(景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息)和圖片以圖結(jié)構(gòu)表示并保存于數(shù)據(jù)庫(kù)。2.為來(lái)訪客人提供任意景點(diǎn)相關(guān)信息的查詢。3.為來(lái)訪客人提供任意景點(diǎn)的問(wèn)路查詢。4.測(cè)試數(shù)據(jù):自定。 5.涉及技術(shù)工具:軟件工程技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、UML工具、Java語(yǔ)言或C#語(yǔ)言等 3)初始條件:1預(yù)備內(nèi)容:數(shù)據(jù)結(jié)構(gòu)(圖),軟件工程,面向?qū)ο蟪绦蛟O(shè)計(jì),數(shù)據(jù)庫(kù)技術(shù),編譯原理,可視化編程2實(shí)踐準(zhǔn)備:掌握一種計(jì)算機(jī)高級(jí)語(yǔ)言等相關(guān)的使用。2. 需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說(shuō)明(功能與框圖)1) 確定問(wèn)題設(shè)計(jì)一個(gè)學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。將校內(nèi)各景點(diǎn)的數(shù)據(jù)(景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息)和圖片以圖結(jié)構(gòu)表示并保存于數(shù)據(jù)庫(kù)中。為來(lái)訪客人提供任意景點(diǎn)相關(guān)信息的查詢。為來(lái)訪客人提供任意景點(diǎn)的問(wèn)路查詢。一個(gè)學(xué)校中的景點(diǎn)不少于10個(gè),每個(gè)景點(diǎn)都有一些相關(guān)的信息,還要有圖片來(lái)形象地表示景點(diǎn)。給出一個(gè)平面圖,表示各個(gè)景點(diǎn)的位置和景點(diǎn)之間的距離。并且把景點(diǎn)以及跟景點(diǎn)相關(guān)的信息保存于數(shù)據(jù)庫(kù)中。利用這個(gè)軟件,游客可以查看到校園的平面圖以及全部的景點(diǎn)。從平面圖中可以看出景點(diǎn)的位置、景點(diǎn)的名稱和景點(diǎn)之間的距離、方向等信息。還附于全部景點(diǎn)的名稱和代碼。利用這個(gè)軟件,游客可以查找每個(gè)景點(diǎn)的相關(guān)信息,如:填入景點(diǎn)的代碼或名稱,顯示景點(diǎn)的圖片和信息等。利用這個(gè)軟件,游客可以查找景點(diǎn)和景點(diǎn)間的最短距離和路徑。如:輸入起點(diǎn)(景點(diǎn)的代號(hào)或名稱)和終點(diǎn)(景點(diǎn)的代號(hào)或名稱),顯示兩景點(diǎn)的圖片和景點(diǎn)間的最短距離和路徑。2) 需求分析對(duì)于需求分析:從導(dǎo)游(管理員)的角度出發(fā),主要可以包括幾個(gè)子功能:校園平面圖的顯示及全部景點(diǎn)、景點(diǎn)查詢、路徑查詢、添加景點(diǎn)、刪除景點(diǎn)、修改景點(diǎn)信息等。從來(lái)訪客人的角度出發(fā),主要可以包括的子功能有:校園平面圖的顯示及全部景點(diǎn)、景點(diǎn)查詢、路徑查詢等。以下為子功能的用例圖,并對(duì)它們進(jìn)行詳細(xì)分析:l 校園平面圖的顯示級(jí)全部景點(diǎn):對(duì)導(dǎo)游和來(lái)訪客人都可見(jiàn),如:校園平面圖、全部景點(diǎn)的代號(hào)和名稱。顯示拓補(bǔ)圖導(dǎo)游或來(lái)訪客人l 景點(diǎn)查詢:導(dǎo)游和來(lái)訪客人都可以輸入景點(diǎn)代號(hào)或名稱進(jìn)行查詢景點(diǎn)的相關(guān)信息(圖片、簡(jiǎn)介等)。景點(diǎn)查詢導(dǎo)游或來(lái)訪客人l 路徑查詢:導(dǎo)游和來(lái)訪客人輸入起點(diǎn)(景點(diǎn)代號(hào)或名稱)和終點(diǎn)(景點(diǎn)代號(hào)或名稱),查詢最短距離和路徑。路經(jīng)查詢導(dǎo)游或來(lái)訪客人l 添加景點(diǎn):只有管理員可以操作,為校園添加新的景點(diǎn)信息到數(shù)據(jù)庫(kù)中。添加景點(diǎn)管理員l 刪除景點(diǎn):只有管理員可以操作,從數(shù)據(jù)庫(kù)中刪除舊的景點(diǎn)信息。刪除景點(diǎn)管理員l 修改景點(diǎn)信息:只有管理員可以操作,在數(shù)據(jù)庫(kù)中修改原有的景點(diǎn)信息。修改景點(diǎn)信息管理員3) 數(shù)據(jù)結(jié)構(gòu)本實(shí)驗(yàn)中用到的數(shù)據(jù)結(jié)構(gòu):圖ADT Graph 數(shù)據(jù)對(duì)象 V:景點(diǎn)頂點(diǎn)集數(shù)據(jù)關(guān)系R:R = VRVR = | v,wV 且 P(v,w),表示從v到w的弧,謂詞P(v,w)定義了弧的意義或信息基本操作 P:CreateGraph(&G,V,VR);初始條件:V是圖的頂點(diǎn)集,VR是圖中弧的集合。操作結(jié)果:按V和VR的定義構(gòu)造圖G。DestroyGraph(&G);初始條件:圖G存在。操作結(jié)果:銷毀圖G。ShortestPath(&G,v1,v2);初始條件:圖G存在,給定起點(diǎn)v1和終點(diǎn)v2。操作結(jié)果:返回起點(diǎn)v1和終點(diǎn)v2的最短距離和路徑。4) 框圖設(shè)計(jì)導(dǎo)游用戶的框圖設(shè)計(jì):主界面退出修改景點(diǎn)信息刪除景點(diǎn)添加景點(diǎn)路經(jīng)查詢景點(diǎn)查詢拓補(bǔ)圖修改刪除添加查詢查詢返回返回返回返回返回來(lái)訪客人的框架設(shè)計(jì):(添加景點(diǎn)、刪除景點(diǎn)和修改景點(diǎn)信息這三項(xiàng)禁用)主界面退出景點(diǎn)查詢拓補(bǔ)圖路經(jīng)查詢查詢查詢返回返回5) 模塊說(shuō)明運(yùn)行環(huán)境說(shuō)明:PC,java sdk,SQL Server 2005,eclipse分塊說(shuō)明(部分):public class ViewDB定義驅(qū)動(dòng);定義數(shù)據(jù)庫(kù);定義用戶名、密碼;加載驅(qū)動(dòng);鏈接數(shù)據(jù)庫(kù);釋放資源、關(guān)閉鏈接;public class SerFrame創(chuàng)建控件;對(duì)控件添加監(jiān)聽(tīng)設(shè)置;控件放入容器;窗口加載容器;監(jiān)聽(tīng)函數(shù)實(shí)現(xiàn);public class ViewQuery創(chuàng)建控件;對(duì)控件添加監(jiān)聽(tīng)設(shè)置;控件放入容器;窗口加載容器;監(jiān)聽(tīng)函數(shù)實(shí)現(xiàn);調(diào)用class ViewDB ,實(shí)現(xiàn)鏈接數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)庫(kù)操作。數(shù)據(jù)庫(kù)模塊說(shuō)明:3. 源程序的主要部分ViewDB.javapackage v_sql;import java.sql.*;public class ViewDB /定義驅(qū)動(dòng)、數(shù)據(jù)庫(kù)名、用戶名、密碼public static final String driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;public static final String url=jdbc:sqlserver:/localhost:1433;Databasename=view;public static final String user=sa;public static final String password=12345;public static Connection con = null;public static ResultSet rs = null;public static Statement st = null;public void initDB()tryClass.forName(driver);catch(java.lang.ClassNotFoundException e)System.out.println(Cant load Driver);trycon=DriverManager.getConnection(url,user,password);st=con.createStatement();catch(SQLException ex)System.out.print(Query is wrong+ex.getMessage();public static void main(String args)ViewDB vdb = new ViewDB();vdb.initDB();String sql = select v_name from tb_view;tryrs=st.executeQuery(sql);if(rs!=null)ResultSetMetaData rsmd = rs.getMetaData();int countCols = rsmd.getColumnCount();for(int i=1;i1) System.out.print(; );System.out.print(rsmd.getColumnLabel(i);System.out.print();while(rs.next()System.out.print(rs.getString(v_name);catch(SQLException ex)System.out.print(Query is wrong+ex.getMessage();finallytryif(rs!=null) rs.close();if(st!=null) st.close();if(con!=null) con.close();catch(SQLException error)error.printStackTrace();RoadQuery.javapackage v_Frame;import java.awt.*;import java.awt.event.*;import javax.swing.*;import .URL;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.*;import v_sql.ViewDB;public class RoadQuery extends JFrame implements ActionListener加載容器與監(jiān)聽(tīng) public void actionPerformed(ActionEvent e)if(e.getActionCommand().equals(查詢) vdb = new ViewDB(); vdb.initDB(); String sql_pic1 = select v_name,v_picture from tb_view where v_id=+rq_text1.getText() + or v_name=+rq_text1.getText()+; String sql_pic2 = select v_name,v_picture from tb_view where v_id=+rq_text2.getText() + or v_name=+rq_text2.getText()+; String origin = new String(); String destination = new String(); int ori=0; int des=0; try vdb.rs = vdb.st.executeQuery(sql_pic1); if(vdb.rs!=null)while(vdb.rs.next()sql_pic1=vdb.rs.getString(v_picture);origin = vdb.rs.getString(v_name); catch(SQLException ex) System.out.print(Query is wrong+ex.getMessage(); try vdb.rs = vdb.st.executeQuery(sql_pic2); if(vdb.rs!=null)while(vdb.rs.next()sql_pic2=vdb.rs.getString(v_picture);destination = vdb.rs.getString(v_name); catch(SQLException ex) System.out.print(Query is wrong+ex.getMessage(); imgUrl = RoadQuery.class.getResource(sql_pic1);/ 獲取圖片資源的路徑 img = Toolkit.getDefaultToolkit().getImage(imgUrl); / 獲取圖像資源 imagePanel1 = new DrawImagePanel(); / 創(chuàng)建圖像面板對(duì)象 imagePanel1.setBounds(40, 100, 150, 150); content.add(imagePanel1); imgUrl = RoadQuery.class.getResource(sql_pic2);/ 獲取圖片資源的路徑 img = Toolkit.getDefaultToolkit().getImage(imgUrl); / 獲取圖像資源 imagePanel2 = new DrawImagePanel(); / 創(chuàng)建圖像面板對(duì)象 imagePanel2.setBounds(300, 100, 150, 150); content.add(imagePanel2); repaint(); String sql = select v_name from tb_view order by v_id; String str = new String14;/,; int s = 0; try vdb.rs = vdb.st.executeQuery(sql); if(vdb.rs!=null)while(vdb.rs.next()sql=vdb.rs.getString(v_name);strs+=sql;catch(SQLException ex)System.out.print(Query is wrong+ex.getMessage(); int path= new int ss; for(int i=0;is;i+) for(int j=0;js;j+) pathij=-1; if(origin.equals(stri) ori=i; if(destination.equals(stri) des=i; sql = select w_name1,w_name2,w_length from tb_way; try vdb.rs = vdb.st.executeQuery(sql); if(vdb.rs!=null) int i=0,j=0; String name1 = new String(); String name2 = new String();while(vdb.rs.next()name1 = vdb.rs.getString(w_name1);name2 = vdb.rs.getString(w_name2);for(int k=0;ks;k+)if(strk.equals(name1) i=k;if(strk.equals(name2) j=k;pathij=Integer.parseInt(vdb.rs.getString(w_length);pathji=pathij;catch(SQLException ex)System.out.print(Query is wrong+ex.getMessage(); int shortestPaht = ShortestPath.getShortPath(path,ori,des); for (int i = 0; i shortestPaht.length; i+) System.out.print(節(jié)點(diǎn) +(ori+1)+ 到節(jié)點(diǎn) + (i + 1) + 的最短距離是 + shortestPahti + t); System.out.println(路徑為: + ShortestPath.getSPath(i); if (ShortestPath.getKeepPath().equals(ShortestPath.getSPath(i) rq_showroad.setText(節(jié)點(diǎn)+(ori+1)+到節(jié)點(diǎn)+(des+1)+的最短距離是 + shortestPahti + n路徑為:+ShortestPath.getKeepPath(); System.out.println(ShortestPath.getKeepPath(); else if (e.getActionCommand().equals(返回)this.setVisible(false);ShortestPath.javapackage v_Frame;import java.util.LinkedList; import java.util.List; /* * 單源最短路徑問(wèn)題 * * author Sailor * */ class ShortestPath private static String showPath = ,; private static String keeppath = ; / 返回圖的最短路徑 public static int getShortPath(int path,int origin,int destination) LinkedList savePath = new LinkedList();/ 用于保存已添加進(jìn)來(lái)的節(jié)點(diǎn) int mark = 1; int shortestPath = new intpath.length; for (int i = 0; i shortestPath.length; i+) shortestPathi = -1; savePath.add(getsPath(origin); /savePath.add(new Integer(0); /確定源點(diǎn) if (savePath.size() = 1) int num = savePath.getLast().intValue(); int minIndex = 0; for (int j = 0; j = 0) showPathj = (origin+1) + - + (j + 1); if(destination=j) keeppath = showPathj; else showPathj = 無(wú)通路; if(destination=j) keeppath = showPathj; minIndex = getAddIndex(savePath, shortestPath); savePath.add(minIndex); if (savePath.size() 1) while (mark shortestPath.length+1) / savePath.size()lenth+1 當(dāng)有不可到達(dá)的點(diǎn)是將要出現(xiàn)死循環(huán) int num = savePath.getLast().intValue(); int minIndex = 0; for (int j = 0; j = 0) if (shortestPathj + (j + 1); if(destination=j) keeppath = showPathj; else if (shortestPathnum + pathnumj + (j + 1); if(destination=j) keeppath = showPathj; minIndex = getAddIndex(savePath, shortestPath); if (minIndex 0) savePath.add(minIndex); mark+; return shortestPath; / 獲得加入到保存路徑的節(jié)點(diǎn) public static int getAddIndex(List list, int num) int index = 0; for (int i = 0; i 0 & index = 0) index = i;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)核桃種植深加工項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 中國(guó)散射通信設(shè)備項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 中國(guó)計(jì)算機(jī)視覺(jué)項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 中國(guó)觀賞魚(yú)項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 2025盛工園林機(jī)械買(mǎi)賣合同
- 2025合同履行過(guò)程中擔(dān)保若干規(guī)定「全文」
- 中國(guó)感知智能項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 中國(guó)吊竹梅項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 礦井Face完整性評(píng)價(jià)指標(biāo)體系-洞察闡釋
- 乒乓球規(guī)則考試題及答案
- 事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度
- 孕前口腔檢查精講課件
- 白描課件講義整理
- 人教版九年級(jí)英語(yǔ)第七單元Unit7 SectionB第二課時(shí)
- 進(jìn)度計(jì)劃?rùn)M道圖及施工進(jìn)度網(wǎng)絡(luò)圖140天工期
- 石油化工建設(shè)工程項(xiàng)目監(jiān)理規(guī)范SH/T3902017附錄A和B表格中文版
- 華聯(lián)學(xué)院日語(yǔ)能力考試N5試題二及參考答案
- 尊法、學(xué)法、守法、用法分析
- Q∕GDW 12075-2020 架空輸電線路防鳥(niǎo)裝置技術(shù)規(guī)范
- EN60745標(biāo)準(zhǔn)理解
- 車輛轉(zhuǎn)手合同范本
評(píng)論
0/150
提交評(píng)論