




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、吉首大學(xué)信息科學(xué)與工程學(xué)院10級(jí)計(jì)算機(jī)科學(xué)與技術(shù)課程設(shè)計(jì)電信運(yùn)營支撐系統(tǒng)-信息采集系統(tǒng)班 級(jí): 計(jì)科一班 指導(dǎo)老師: 杰普-郭 苗 小組名稱: “ HelloWorld ” 姓名學(xué)號(hào)組長曾亞菲20104042011組員肖行20104042057組員陳高20104042001組員戴盛20104042009組員陳照希20104042007組員張英杰20104042051組員吳江偉20104042059組員尋天梁20104042003組員高其顯20104042067組員周云林20104042021一 設(shè)計(jì)目的1. 培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)理論知識(shí)分析和解決實(shí)際問題的能力。2. 鍛煉學(xué)生的獨(dú)立工作能力,也
2、是對前期理論與實(shí)踐教學(xué)效果的檢驗(yàn)。3. 通過課程設(shè)計(jì)使學(xué)生對信息采集系統(tǒng)的知識(shí)有全面的掌握和應(yīng)用,對管理信息系統(tǒng)設(shè)計(jì)有初步的認(rèn)識(shí)。二 設(shè)計(jì)內(nèi)容運(yùn)用所學(xué)的知識(shí)設(shè)計(jì)一個(gè)信息采集系統(tǒng)三 設(shè)計(jì)平臺(tái)Java編譯平臺(tái),Oracle數(shù)據(jù)庫四 設(shè)計(jì)過程1. BackUPImpl類:package com.briup.util.impl;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOu
3、tputStream;import java.util.Properties;import com.briup.util.BackUP;public class BackUPImpl implements BackUPprivate String parent = "back_temp"Overridepublic void init(Properties properties) / TODO Auto-generated method stubOverridepublic void store(String key, Object data, boolean flag)
4、throws Exception / TODO Auto-generated method stubFile file = new File(parent);if(!file.exists()file.mkdir();File f2 = new File(file,key);FileOutputStream fos = new FileOutputStream(f2,flag);ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(data);oos.close();fos.close();Overridepu
5、blic Object load(String key, boolean flag) throws Exception / TODO Auto-generated method stubFile file = new File(parent);if(!file.exists()return null;File f2 = new File(file,key);if(!f2.exists()return null;FileInputStream fis = new FileInputStream(f2);ObjectInputStream ois = new ObjectInputStream(f
6、is);Object data = ois.readObject();ois.close();fis.close();if(flag=BackUP.LOAD_REMOVE)f2.delete();return data;public static void main(String args) throws Exception /BackUPImpl back = new BackUPImpl();/back.store("a.txt", "成功不?", BackUP.STORE_OVERRIDE);/Object obj = back.load(&quo
7、t;a.txt", BackUP.LOAD_REMOVE);/System.out.println(obj);2. ServerImpl類:package com.briup.woss.server.impl;import java.io.IOException;import java.io.ObjectInputStream;import .ServerSocket;import .Socket;import java.util.Collection;import java.util.Properties;import com.briup.util.BIDR;import com.
8、briup.util.BackUP;import com.briup.util.impl.BackUPImpl;import com.briup.woss.server.Server;public class ServerImpl implements Server private int port = 8899;private BackUP back = new BackUPImpl();private ServerSocket ss = null;Overridepublic void init(Properties properties) / TODO Auto-generated me
9、thod stubOverridepublic void revicer() throws Exception / TODO Auto-generated method stubss = new ServerSocket(port);Socket s = ss.accept();ObjectInputStream ois = new ObjectInputStream(s.getInputStream();Collection<BIDR> col = (Collection<BIDR>)ois.readObject();/把之前發(fā)送失敗并保存在serverBack文件,
10、讀到obj類中(在讀取數(shù)據(jù)同時(shí),保留備份文件。)Object obj = back.load("serverBack",BackUP.LOAD_UNREMOVE);if(obj!=null)Collection<BIDR> col2 = (Collection<BIDR>)obj;col.addAll(col2);/數(shù)據(jù)入庫trySystem.out.println("開始入庫。");new DBStoreImpl().saveToDB(col);System.out.println("入庫結(jié)束。");catc
11、h(Exception e)e.printStackTrace();/ 把發(fā)送失敗的數(shù)據(jù)備份到serverBack文件(在保存數(shù)據(jù)時(shí),覆蓋原來的文件。)back.store("serverBack", col, BackUP.STORE_OVERRIDE);ois.close();s.close();Overridepublic void shutdown() / TODO Auto-generated method stubtry ss.close(); catch (IOException e) / TODO Auto-generated catch blocke.pr
12、intStackTrace();public static void main(String args) throws Exception ServerImpl server = new ServerImpl();server.revicer();3. ClientImpl類:package com.briup.woss.client.impl;import java.io.ObjectOutputStream;import .Socket;import java.util.Collection;import java.util.Properties;import com.briup.util
13、.BIDR;import com.briup.util.BackUP;import com.briup.util.impl.BackUPImpl;import com.briup.woss.client.Client;public class ClientImpl implements Client / private String server_ip = ""private int port = 8899;private BackUP back = new BackUPImpl();Overridepublic void init(Properties
14、properties) / TODO Auto-generated method stubOverridepublic void send(Collection<BIDR> collection) throws Exception / TODO Auto-generated method stubtrySocket socket = new Socket(server_ip,port);ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream();/把之前發(fā)送失敗并保存在clientBack文件,讀
15、到obj類中(在讀取數(shù)據(jù)同時(shí),保留備份文件。)Object obj = back.load("clientBack",BackUP.LOAD_UNREMOVE);if(obj!=null)Collection<BIDR> col = (Collection<BIDR>)obj;collection.addAll(col);oos.writeObject(collection);oos.close();socket.close();catch(Exception e)e.printStackTrace();/ 把發(fā)送失敗的數(shù)據(jù)備份到clientBack
16、文件(在保存數(shù)據(jù)時(shí),覆蓋原來的文件。)back.store("clientBack", collection, BackUP.STORE_OVERRIDE);public static void main(String args) throws Exception ClientImpl client = new ClientImpl();GatherImpl gather = new GatherImpl();Collection<BIDR> col = gather.gather();client.send(col);System.out.println(&q
17、uot;客戶端發(fā)送完畢.");4. DBStoreImpl類:package com.briup.woss.server.impl;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.util.Collection;import java.util.Properties;import com.briup.util.BIDR;import com.briup.woss.server.DBSto
18、re;public class DBStoreImpl implements DBStoreprivate String url = "jdbc:oracle:thin:localhost:1521:xe"private String driver = "oracle.jdbc.driver.OracleDriver"private String user = "system"private String password = "123"Overridepublic void init(Properties pro
19、perties) / TODO Auto-generated method stubOverridepublic void saveToDB(Collection<BIDR> collection) throws Exception / TODO Auto-generated method stub/1.注冊驅(qū)動(dòng)Class.forName(driver);/2.獲取連接Connection conn = DriverManager.getConnection(url, user, password);PreparedStatement pstmt = null;int i = 0;
20、/批處理循環(huán)控制標(biāo)志int k = 0;System.out.println("已經(jīng)執(zhí)行到這啦11111");for(BIDR bidr : collection)int day = bidr.getLogin_date().getDate();if(day!=i)if(pstmt!=null)pstmt.executeBatch();pstmt.close();/ifi = day;String sql = "insert into " +"t_detail_"+day+" values(?,?,?,?,?,?)"
21、;pstmt = conn.prepareStatement(sql);/if/給參數(shù)賦值pstmt.setString(1, bidr.getAAA_login_name();pstmt.setString(2, bidr.getLogin_ip();pstmt.setDate(3, new Date( bidr.getLogin_date().getTime() ) );pstmt.setDate(4, new Date( bidr.getLogout_date().getTime() ) );pstmt.setString(5, bidr.getNAS_ip();pstmt.setInt
22、(6, bidr.getTime_deration();System.out.println("已經(jīng)執(zhí)行到這啦222222");/批處理pstmt.addBatch();/每一千條入庫一次if( (k+)%1000 = 0)pstmt.executeBatch();/forpstmt.executeBatch();if(pstmt!=null)pstmt.close();if(conn!=null)conn.close();5. GatherImpl類:package com.briup.woss.client.impl;import java.io.BufferedRea
23、der;import java.io.File;import java.io.FileReader;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Properties;import com.briup.util.BIDR;import com.briup.util.BackUP;import com.briup.
24、util.impl.BackUPImpl;import com.briup.woss.client.Gather;public class GatherImpl implements Gatherprivate String src_file = "radwtmp/radwtmp_test"private String nas_ip = ""/用來保存只有上線沒有下線信息的人的信息private Map<String, BIDR> map = new HashMap<String, BIDR>();/用來保存有上
25、線并且有下線信息的人的信息private List<BIDR> list = new ArrayList<BIDR>();private BackUP back = new BackUPImpl();private Long k = 0L;Overridepublic void init(Properties properties) / TODO Auto-generated method stubOverridepublic Collection<BIDR> gather() throws Exception /把之前發(fā)送失敗并保存在clientBack文
26、件,讀到obj類中(在讀取數(shù)據(jù)同時(shí),保留備份文件。)Object obj=back.load("mapFile", BackUP.LOAD_UNREMOVE);if(obj!=null)/將上次未成功匹配的數(shù)據(jù)加到本次的map集合中map.putAll(Map<String,BIDR>)obj);/將上次讀取的字節(jié)數(shù)取出來Long skip = (Long)back.load("skip", BackUP.LOAD_UNREMOVE);FileReader fr = new FileReader(new File(src_file);Buff
27、eredReader br = new BufferedReader(fr);if(skip!=null)br.skip(skip);elseskip = 0L;String str = null;while(str=br.readLine()!=null)skip += str.length()+1;String info = str.split("|");if("7".equals(info2)/如果獲取的字符串是7就代表是上線信息,/新建數(shù)據(jù)對象BIDR bidr = new BIDR();bidr.setAAA_login_name(info0.
28、substring(1);bidr.setNAS_ip(nas_ip);Timestamp login_date = new Timestamp(Long.parseLong(info3)*1000);bidr.setLogin_ip(info4);bidr.setLogin_date(login_date);map.put(info4, bidr);else if("8".equals(info2)k+;/既有上線信息又有下線信息的人數(shù)統(tǒng)計(jì)BIDR bidr = map.remove(info4);Timestamp logout_date = new Timestamp
29、(Long.parseLong(info3)*1000);bidr.setLogout_date(logout_date);long begin = bidr.getLogin_date().getTime();int time_duration = (int)(Long.parseLong(info3)*1000-begin);System.out.println(time_duration);bidr.setTime_deration(time_duration);list.add(bidr);/將本次沒有下線信息匹配的數(shù)據(jù)保存下來back.store("mapFile"
30、;, map, BackUP.STORE_OVERRIDE);back.store("skip", skip, BackUP.STORE_OVERRIDE);System.out.println("既有上線信息又有下線信息的人數(shù)為:"+ k +"人");return list;/public static void main(String args) throws Exception /GatherImpl gather = new GatherImpl();/Collection<BIDR> col = gather.gather();/System.out.println("采集到的完整的數(shù)據(jù):"+col.size();/五 設(shè)計(jì)結(jié)果及測試六 設(shè)計(jì)總結(jié) 在這次一周的程序設(shè)計(jì)培訓(xùn)上,通過這次的講解我們深深地體會(huì)到自己的不足與掌握程序?qū)懛ê挽`活運(yùn)用的重要性。經(jīng)過此次的課程培訓(xùn),我們明顯感覺到在學(xué)校學(xué)習(xí)到的東西是無法滿足與我們將來走
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年廣告設(shè)計(jì)師調(diào)研技巧試題及答案
- 廣告設(shè)計(jì)師考試時(shí)尚與廣告的結(jié)合試題及答案
- 關(guān)于紡織行業(yè)未來發(fā)展的考試試題及答案
- 基本衛(wèi)生法規(guī)試題及答案
- 服裝導(dǎo)購考試題及答案
- 提高紡織品檢驗(yàn)員考試通過率試題及答案
- 廣告設(shè)計(jì)師考試品牌差異化策略試題及答案
- 湖北省電賽試題及答案
- 童年小學(xué)生試題及答案
- 廣告設(shè)計(jì)師需掌握的核心概念試題及答案
- 急性ST段抬高型心肌梗死溶栓治療專家共識(shí)2024解讀
- 服務(wù)消費(fèi)券發(fā)放的精細(xì)化實(shí)施方案
- 2025年國家電力安全知識(shí)競賽題庫及答案(共50題)
- 團(tuán)結(jié)協(xié)作青春展新姿
- 給幼兒園講醫(yī)療知識(shí)
- 2024年共青團(tuán)入團(tuán)考試題庫及答案
- 2024年《BIM技術(shù)介紹》課件
- 核心素養(yǎng)視域下小學(xué)道德與法治生活化教學(xué)策略探究
- 人教版八年級(jí)下《生命.生態(tài).安全》教案
- 有理數(shù)的加減混合運(yùn)算教學(xué)設(shè)計(jì) 人教版
- 中職學(xué)生心理健康教育專題講座
評(píng)論
0/150
提交評(píng)論