//寫了兩個小時啊,兄弟,要采納我啊
10年積累的網(wǎng)站設(shè)計制作、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有西豐免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
//Site(站點類)
package?transit;
import?java.util.ArrayList;
import?java.util.List;
public?class?Site
{
private?Integer?id;?//?給每個站點分配一個ID
private?String?name;?//?站點的名字
private?ListRoute?list;?//?經(jīng)過該站點的線路
public?Site()
{
super();
}
public?Site(Integer?id,?String?name)
{
super();
this.id?=?id;
this.name?=?name;
this.list?=?new?ArrayListRoute();
}
public?Integer?getId()
{
return?id;
}
public?void?setId(Integer?id)
{
this.id?=?id;
}
public?String?getName()
{
return?name;
}
public?void?setName(String?name)
{
this.name?=?name;
}
public?ListRoute?getList()
{
return?list;
}
public?void?setList(ListRoute?list)
{
this.list?=?list;
}
//?添加線路
public?boolean?addRoute(Route?route)
{
return?this.getList().add(route);
}
//?刪除線路
public?boolean?removeRoute(Route?route)
{
return?this.getList().remove(route);
}
@Override
public?String?toString()
{
return?name;
}
@Override
public?boolean?equals(Object?obj)
{
if?(obj?instanceof?Site)
{
Site?s?=?(Site)?obj;
return?this.id?==?s.getId()??this.name.equals(s.getName());
}
return?false;
}
}
//線路類
package?transit;
import?java.util.ArrayList;
import?java.util.Date;
import?java.util.List;
public?class?Route
{
private?Integer?id;?//?給每個線路分配一個ID
private?String?name;?//?線路名稱
private?ListSite?list;?//?線路所包含的站點
private?Date?startDate;?//?發(fā)班時間,從首站點算起
private?Date?endDate;?//?收班時間,從首站點算起
public?Route()
{
super();
}
public?Route(Integer?id,?String?name,?Date?startDate,?Date?endDate)
{
super();
this.id?=?id;
this.name?=?name;
this.startDate?=?startDate;
this.endDate?=?endDate;
this.list?=?new?ArrayListSite();
}
public?Integer?getId()
{
return?id;
}
public?void?setId(Integer?id)
{
this.id?=?id;
}
public?String?getName()
{
return?name;
}
public?void?setName(String?name)
{
this.name?=?name;
}
public?ListSite?getList()
{
return?list;
}
public?void?setList(ListSite?list)
{
this.list?=?list;
}
public?Date?getStartDate()
{
return?startDate;
}
public?void?setStartDate(Date?startDate)
{
this.startDate?=?startDate;
}
public?Date?getEndDate()
{
return?endDate;
}
public?void?setEndDate(Date?endDate)
{
this.endDate?=?endDate;
}
public?boolean?isHasThisSite(Site?site)
{
for?(Site?l_site?:?this.getList())
{
if?(l_site.equals(site))
{
return?true;
}
}
return?false;
}
//?添加站點,成功返回true
public?boolean?addSite(Site?site)
{
return?this.getList().add(site);
}
//?移除站點,成功返回true
public?boolean?removeSite(Site?site)
{
return?this.getList().remove(site);
}
@Override
public?String?toString()
{
return?name;
}
}
//公交系統(tǒng)類
package?transit;
import?java.util.ArrayList;
import?java.util.List;
public?class?TransitSystem
{
/**
*?1)增加、修改、刪除一個條公交線路信息。
*?2)增加、修改、刪除公交站點信息。
*?3)按條件顯示公交線路信息(條件有按線路名稱、途經(jīng)車站等)。
*/
private?ListRoute?routeList?;??//系統(tǒng)所管理的線路
private?ListSite?siteList;??//系統(tǒng)所管理的站點
public?TransitSystem(){
routeList?=?new?ArrayListRoute();
siteList?=?new?ArrayListSite();
}
//增加一條線路
public?void?addRoute(Route?route){
if(!routeList.add(route)){
throw?new?RuntimeException("系統(tǒng)中已存在該線路");
}
}
//修改一條線路
public?void?updateRoute(Route?route){
//根據(jù)route?的id?獲取已存在系統(tǒng)中的route
Route?l_route?=?getRoute(route.getId());
if(l_route!=null){
//注入值
l_route.setName(route.getName());
l_route.setList(route.getList());
l_route.setStartDate(route.getStartDate());
l_route.setEndDate(route.getEndDate());
}else{
throw?new?RuntimeException("線路id不匹配,無法修改");
}
}
//獲取該系統(tǒng)中的線路,根據(jù)id獲取
public?Route?getRoute(Integer?id){
Route?route2?=?null;
for?(Route?route?:?this.getRouteList())
{
if(route.getId().equals(id)){
route2?=?route;
}
}
return?route2;
}
//刪除一條線路,根據(jù)對象刪除
public?void?removeRoute(Route?route){
if(!this.getRouteList().remove(route)){
throw?new?RuntimeException(route.getId()+"線路不存在");
}
}
//增加一條公交站點
public?void?addSite(Site?site){
if(!this.siteList.add(site)){
throw?new?RuntimeException(site.getId()+"站點已存在");
}
}
//刪除一條公交站點
public?void?removeSite(Site?site){
if(!this.getSiteList().remove(site)){
throw?new?RuntimeException(site.getId()+"站點不存在");
}
}
//修改一條公交站點
public?void?updateSite(Site?site){
//根據(jù)route?的id?獲取已存在系統(tǒng)中的route
Site?l_site?=?getSite(site.getId());
if(l_site!=null){
//注入值
l_site.setName(site.getName());
l_site.setList(site.getList());
}else{
throw?new?RuntimeException("站點id不匹配,無法修改");
}
}
//獲取該系統(tǒng)中的公交站點,根據(jù)id獲取
public?Site?getSite(Integer?id){
Site?site2?=?null;
for?(Site?site?:?this.getSiteList())
{
if(site.getId().equals(id)){
site2?=?site;
}
}
return?site2;
}
//按線路名稱查詢公交線路信息
public?Route?getRouteByName(String?name){
for?(Route?route?:?this.getRouteList())
{
if(route.getName().equals(name)){
return?route;
}
}
return?null;
}
//根據(jù)途經(jīng)車站查詢公交線路
public?ListRoute?getRouteBySite(Site?site){
return?site.getList();
}
public?ListRoute?getRouteList()
{
return?routeList;
}
public?void?setRouteList(ListRoute?routeList)
{
this.routeList?=?routeList;
}
public?ListSite?getSiteList()
{
return?siteList;
}
public?void?setSiteList(ListSite?siteList)
{
this.siteList?=?siteList;
}
}
//測試類
package?transit;
import?java.text.ParseException;
import?java.text.SimpleDateFormat;
import?java.util.Date;
import?java.util.List;
import?java.util.Random;
public?class?_Test
{
public?static?void?main(String[]?args)?throws?ParseException
{
TransitSystem?system?=?new?TransitSystem();
SimpleDateFormat?format?=?new?SimpleDateFormat("hh:MM");
Date?startDate?=?format.parse("07:30");
Date?endDate?=?format.parse("22:30");
//?向系統(tǒng)中添加10條線路,20個站點
for?(int?i?=?0;?i??20;?i++)
{
if?(i??10)
{
system.addRoute(new?Route(i,?"線路"?+?i,?startDate,?endDate));
}
system.addSite(new?Site(i,?"站點"?+?i));
}
ListSite?siteList?=?system.getSiteList();
//?為系統(tǒng)中的站點添加線路
for?(Route?route?:?system.getRouteList())
{
//?每條線路?隨機添加N個站點
int?n?=?new?Random().nextInt(siteList.size());
for?(int?i?=?0;?i??n;?i++)
{
//?每個站點也是隨機,如重復(fù),則添加失敗
int?x?=?new?Random().nextInt(siteList.size());
if?(!route.isHasThisSite(siteList.get(x)))
{
route.addSite(siteList.get(x));
//?同時該站點也添加該線路
siteList.get(x).addRoute(route);
}
}
}
//?查詢所有的線路所包含的站點
for?(Route?route?:?system.getRouteList())
{
System.out
.println(route.getName()?+?"?:對應(yīng)的站點集合:"?+?route.getList());
}
//?查詢所有的站點對應(yīng)的線路
for?(Site?site?:?system.getSiteList())
{
System.out.println("站點"?+?site.getName()?+?"?:對應(yīng)的線路集合:?"
+?site.getList());
}
}
}
你說的java源代碼是指編譯成的class文件前的java文件。
當(dāng)我們運行.java文件時,它會被系統(tǒng)編譯成.class文件,例如Test.java編譯之后就是Test.class,
源文件就是指Test.java文件,
一般部署項目時,有.class文件就可以發(fā)布運行了,但是如果想修改這個系統(tǒng),.class是不能修改的,要有.java文件才能修改
也可以上網(wǎng)去下反編譯軟件,就是能把.class文件大部分還原成.java文件的工具,但不是100%還原,而且如果不是正版的,小心有毒啊,什么的。
package com.regex;
import java.io.*;
import java.net.URLDecoder;
import java.util.regex.*;
public class Regex {
private int REMARK=0;
private int LOGIC=0;
private int PHYSIC=0;
boolean start=false;
/**
* @param args
*/
public static void main(String[] args) { //測試方法
// TODO Auto-generated method stub
Regex re=new Regex();
re.regCount("Regex.java");
System.out.println("remark Line: "+re.REMARK);
System.out.println("logic Line: "+re.LOGIC);
System.out.println("physic Line: "+re.PHYSIC);
}/**
* @author BlueDance
* @param s
* @deprecated count
*/
public void regCount(String s){
String url=null;
try {
url=URLDecoder.decode(this.getClass().getResource(s).getPath(),"UTF-8");
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
try {
BufferedReader br=new BufferedReader(new FileReader(new File(url)));
String s1=null;
while((s1=br.readLine())!=null){
PHYSIC++;
if(CheckChar(s1)==1){
REMARK++;
System.out.println("純注釋行:"+s1);
}
if(CheckChar(s1)==2){
LOGIC++;
REMARK++;
System.out.println("非純注釋行:"+s1);
}
if(CheckChar(s1)==3)
LOGIC++;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
/**
*
* @param s
* @return int
* @version check s
*/
public int CheckChar(String s){
String s1=null;
if(s!=null)
s1=s.trim();
//System.out.println(regCheck(s1,re));
if(regCheck(s1,"(//.*)")) //判斷//開頭的為純注釋行
return 1;
if(regCheck(s1,"(.*[;{})] *//.*)")) //判斷不是//開頭的非純注釋行
return 2;
if(regCheck(s1,"(//*.*)")){ //判斷/*開頭的純注釋行
start=true;
return 1;
}
if(regCheck(s1,"(.*[;{})]//*.*)")){ //判斷不是/*開頭的非純注釋行
start=true;
return 2;
}
if(regCheck(s1,"(.* */*/)")){ //判斷*/結(jié)尾的純注釋行
start=false;
return 1;
}
if(regCheck(s1,"(.* */*/.*)")!strCheck(s1)){ //判斷不是*/結(jié)尾的非純注釋行
if(strCheck(s1)){
start=false;
return 2;
}
}
if(start==true) //狀態(tài)代碼,start即/*開始時start=true*/結(jié)束時為false
return 1;
return 3;//ssssllll
}//aeee
/**
*
* @param s
* @param re
* @return boolean
*/
public boolean regCheck(String s,String re){ //正則表達試判斷方法
return Pattern.matches(re,s);
}
public boolean strCheck(String s){ //中間有*/的字符判斷 此方法最關(guān)鍵
if(s.indexOf("*/")0){
int count=0;
String y[]=s.split("/*/");
boolean boo[]=new boolean[y.length];
for (int i = 0; i y.length-1; i++) {
char c[]=y[i].toCharArray();
for (int j = 0; j c.length; j++) {
if(c[j]=='\\'c[j+1]=='"'){
count++;
}
}
if(count%2==0){
if(countNumber("\"",y[i])%2!=0){
boo[i]=true;
}else{
boo[i]=false;
}
}else{
if(countNumber("\"",y[i])%2==0){
boo[i]=true;
}else{
boo[i]=false;
}
}
}
for(int i=0;iboo.length;i++){
if(!boo[i])
return false;
}
return true;
}
return false;
}
public int countNumber(String s,String y){ //此方法為我前面寫的字符串出現(xiàn)次數(shù)統(tǒng)計方法,不懂的可以看我前面的文章
int count=0;
String [] k=y.split(s);
if(y.lastIndexOf(s)==(y.length()-s.length()))
count=k.length;
else
count=k.length-1;
if(count==0)
System.out.println ("字符串\""+s+"\"在字符串\""+y+"\"沒有出現(xiàn)過");
else
return count;
return -1;
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GoodLucky extends JFrame implements ActionListener{
JTextField tf = new JTextField(); //實例化一個文本域
//設(shè)置兩個按鈕
JButton b1 = new JButton("開始");
JButton b2 = new JButton("停止");
boolean isGo = false;
//構(gòu)造函數(shù)
public GoodLucky(){
b1.setActionCommand("start");//在開始按鈕上設(shè)置一個動作監(jiān)聽 start
JPanel p = new JPanel(); //實例化一個可視化容器
//將兩個按鈕添加到可視化容器上面,用add方法
p.add(b1);
p.add(b2);
//在兩個按鈕上增加監(jiān)聽的屬性,自動調(diào)用下面的監(jiān)聽處理方法actionPerformed(ActionEvent e),如果要代碼有更好的可讀性,可用內(nèi)部類實現(xiàn)動作
//監(jiān)聽處理。
b1.addActionListener(this);
b2.addActionListener(this);
//將停止按鈕設(shè)置為不可編輯(即不可按的狀態(tài))
b2.setEnabled(false);
this.getContentPane().add(tf,"North"); //將上面的文本域放在面板的北方,也就是上面(上北下南左西右東)
this.getContentPane().add(p,"South"); //將可視化容器pannel放在南邊,也就是下面
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置用戶在此窗體上發(fā)起 "close" 時默認執(zhí)行的操作,參數(shù)EXIT_ON_CLOSE是使用 System exit 方法退出應(yīng)用程序。僅在應(yīng)用程序中使用
this.setSize(300,200); //設(shè)置面板大小,寬和高
this.setLocation(300,300); //設(shè)置面板剛開始的出現(xiàn)的位置
Cursor cu = new Cursor(Cursor.HAND_CURSOR); //用指定名稱創(chuàng)建一個新的定制光標對象,參數(shù)表示手狀光標類型
this.setCursor(cu); //為指定的光標設(shè)置光標圖像,即設(shè)置光標圖像為上面所創(chuàng)建的手狀光標類型
this.setVisible(true); //將面板可視化設(shè)置為true,即可視,如果為false,即程序運行時面板會隱藏
tf.setText("welcome you! "); //設(shè)置面板的標題為歡迎
this.go(); //調(diào)用go方法
}
public void go(){
while(true){ //這里是死循環(huán),也就是說用戶不點擊停止按鈕的話他一直循環(huán)出現(xiàn)隨機數(shù),直到用戶點擊停止按鈕循環(huán)才能推出,具體流程在actionPerformed方法中控制。
if(isGo == true){ //上面所定義的isGo的初始值為false,所以程序第一次到此會跳過
String s = ""; //設(shè)置空字符串
for(int j = 1; j = 7;j++){ //產(chǎn)生7個隨機數(shù)
int i = (int)(Math.random() * 36) + 1;//每個隨機數(shù)產(chǎn)生方式,這里定義靈活,可以自由定義隨機數(shù)產(chǎn)生的方式
if(i 10){
s = s + " 0" + i; //如果產(chǎn)生的隨機數(shù)小于10的話做處理:這里就牽扯到一個重要的概念,簡單敘述一下:
/*
當(dāng)一個字符串與一個整型數(shù)項相加的意思是連接,上面的s = s + " 0" + i的意思是字符串s鏈接0再連接整型i值,而不會導(dǎo)致0和整型的i相加,
產(chǎn)生的效果為s0i,由于s為空字符串(上面定義過的),所以當(dāng)i小于零時,在個位數(shù)前面加上0,比如產(chǎn)生的隨機數(shù)i為7的話,顯示效果為 07.
*/
}else{
s = s + " " + i; //如果產(chǎn)生的隨機數(shù)比10打的話,那么加上空格顯示,即數(shù)字和數(shù)字之間有個空格
}
//以上循環(huán)循環(huán)七次,以保證能出現(xiàn)7個隨機數(shù)
}
tf.setText(s); //將產(chǎn)生的隨機數(shù)全部顯示在文本域上,用文本域?qū)ο髏f調(diào)用它的設(shè)置文本的方法setText(String)實現(xiàn)。
}
//以下為線程延遲
try{
Thread.sleep(10); //線程類同步方法sleep,睡眠方法,括號里的單位為ms。
}catch(java.lang.InterruptedException e){
e.printStackTrace(); //異常捕獲,不用多說。
}
}
}
//以下是上面設(shè)置的事件監(jiān)聽的具體處理辦法,即監(jiān)聽時間處理方法,自動調(diào)用
public void actionPerformed(ActionEvent e){ //傳入一個動作事件的參數(shù)e
String s = e.getActionCommand(); //設(shè)置字符串s來存儲獲得動作監(jiān)聽,上面的start
/*
以下這個條件語句塊的作用為:用戶點擊開始后(捕獲start,用方法getActionCommand()),將命令觸發(fā)設(shè)置為true,從而執(zhí)行上面的go方法中的循環(huán)體(因為循環(huán)體中要求isGo參數(shù)為true,而初始為false)。
執(zhí)行循環(huán)快產(chǎn)生隨機數(shù),并將開始按鈕不可編輯化,而用戶只可以使用停止按鈕去停止。如果用戶按下停止時,也就是沒有傳入?yún)?shù)“start”的時候,
執(zhí)行else語句塊中的語句,isGo設(shè)置為false,將不執(zhí)行上面go中的循環(huán)語句塊,從而停止產(chǎn)生隨機數(shù),并顯示,并且把開始按鈕設(shè)置為可用,而把
停止按鈕設(shè)置為不可用,等待用戶按下開始再去開始新一輪循環(huán)產(chǎn)生隨機數(shù)。
*/
if(s.equals("start")){ //如果捕獲到start,也就是用戶觸發(fā)了動作監(jiān)聽器,那么下面處理
isGo = true; //設(shè)置isGo為true
b1.setEnabled(false); //將開始按鈕設(shè)置為不可用
b2.setEnabled(true); //將停止按鈕設(shè)置為可用
}else{
isGo = false; //將isGo設(shè)置為false,isGo為循環(huán)標志位
b2.setEnabled(false); //設(shè)置停止按鈕為不可用(注意看是b2,b2是停止按鈕)
b1.setEnabled(true); //設(shè)置開始按鈕為可用
}
}
public static void main(String[] args){
new GoodLucky(); //產(chǎn)生類的實例,執(zhí)行方法
}
}
首先看你要做成客戶端還是web形勢
要是客戶端你要根據(jù)你想應(yīng)用的平臺,比如s60或者mobile等,學(xué)習(xí)相應(yīng)的知識。當(dāng)然java(j2me)是通用的,所有支持java的手機都能用(基本上所有手機都支持)。
要是web呢,就要看看wap的相關(guān)知識,還要準備好空間和域名,租一個就行。
這個系統(tǒng)你要有公交的數(shù)據(jù),這個數(shù)據(jù)不知道你怎么獲得,但是必須要有才能做。常用的sql語句增刪改查(select、insert、delete、update)就夠了。
還有,你要做成地圖的形式還是文本框查詢的形式?地圖的形式你還要弄到地圖的數(shù)據(jù)……不是那么簡單的事情。當(dāng)然你可以看看Google和mapabc等提供沒有相關(guān)接口,調(diào)用它們的接口你會省很多事。
這個系統(tǒng)說實話確實不是很容易做的,你要是有基礎(chǔ)還好。先看J2ME吧,先做個簡單的,再一步步完善,也可以看看有沒有相關(guān)的書。
這個你看 那里的,有的地方的公交公司有webserver接口,你直接調(diào)用查詢
在Eclipse中查看JDK類庫的源代碼
設(shè)置:
1.點 “window”- "Preferences" - "Java" - "Installed JRES"
2.此時"Installed JRES"右邊是列表窗格,列出了系統(tǒng)中的 JRE 環(huán)境,選擇你的JRE,然后點邊上的 "Edit...", 會出現(xiàn)一個窗口(Edit JRE)
3.選中rt.jar文件的這一項:“c:\program files\java\jre_1.5.0_06\lib\rt.jar”?
點 左邊的“+” 號展開它
4.展開后,可以看到“Source Attachment:(none)”,點這一項,點右邊的按鈕“Source Attachment...”, 選擇你的JDK目錄下的 “src.zip”文件
5.一路點"ok",結(jié)束。
dt.jar是關(guān)于運行環(huán)境的類庫,主要是swing的包?
tools.jar是關(guān)于一些工具的類庫?
rt.jar包含了jdk的基礎(chǔ)類庫,也就是你在java doc里面看到的所有的類的class文件
使用:
可以在 Java 源代碼編輯器或代碼片段編輯測試窗中選擇類型、方法或字段的名稱,然后對元素的定義打開編輯器。
在 Java 編輯器中,選擇類型、方法或字段的名稱。您也可以僅僅在名稱中單擊一次。?
執(zhí)行下列其中一項操作:?
1.從菜單欄中,選擇瀏覽 打開聲明?
2.從編輯器的彈出菜單中,選擇打開聲明?
3.按 F3 鍵,如下圖
分享標題:java公交系統(tǒng)源代碼,公交小程序源碼
本文網(wǎng)址:http://jinyejixie.com/article46/hsijhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、App設(shè)計、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計公司、營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)