999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

零配置分布式傳票翻打測試系統研究

2018-03-04 07:03:20施茂祺魏旻
電腦知識與技術 2018年36期

施茂祺 魏旻

摘要:傳票翻打是財經工作者必備的一項基本功,也是部分財經類專業的必備技能,并被列入全國高職會計技能比賽的正式項目。為更好組織日常教學及訓練,該研究在分析專業教師和學生的實際需求的基礎上,采用客戶機/服務器模型,研發了傳票翻打測試軟件。經實證應用,效果良好,設計思路和采用的技術手段可行,具有一定的普遍性、適用性和較高的應用推廣價值。

關鍵詞:零配置分布式;傳票翻打;Client/Server

中圖分類號:TP3? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)36-0058-02

1 問題的提出

傳票翻打,或稱傳票算,是指在經濟核算過程中,對各類單據、發票或憑證進行匯總計算的一種方法。一般使用加減計算,它是加減運算在實際工作中的具體應用,可以為會計核算、財會分析、統計報表提供及時、準確、可靠的基礎數字,是財經工作者必備的一項基本功,并被列入全國高職會計技能比賽的正式項目。

傳票本分為兩種:

第一種是訂本式傳票,是在傳票的左上角裝訂成冊,一般在比賽中使用。

第二種活頁式,全國會計技能大賽采用。

筆者所在學院為財經類院校,傳票翻打是學院許多專業學生的必備技能,因此,亟需一款供日常教學及訓練用傳票翻打測試軟件。經與相關專業教師共同探討和分析,確定自己研發的傳票翻打測試系統必須具備的以下功能和特點:

1) 系統分為教師端和學生端兩部分;

2) 學生端供學生練習與測試,接受學生輸入的傳票上的數據并實時匯總,考慮到學生練習時要求手、腦、眼并用,故學生端應能提供學生一些提示信息,譬如翻打進度、速度、正確率等等;

3) 教師端是控制端,教師可在教師端批量導入、導出學生名單、試題,也可現場編撰題目并布置測試題,統一設置測試時間,實時監控每一名學生的測試情況,收集并導出學生考試成績;

4) 性能要求,參考本院實際班級人數以及合班上課的需求,要求系統至少能夠同時支持150人左右同時進行測試。

2 系統實現的關鍵重點、難點說明

根據上面系統需求分析, 筆者確定該系統的實現軟件為客戶機/服務器模型,又稱為Client/Server體系結構。服務器Server通常采用高性能的工作站或PC小型機,并采用Client/Server架構數據庫系統,如Sybase? Oracle或SQL? Server,負責供多個用戶共享其信息和功能??蛻舳薈lient部分通常負責執行前臺功能,如與用戶交互,數據處理等。這種架構由多臺計算機構成,它們有機地組合在一起,協同完成整個應用,并達到使系統中的軟件、硬件資源得到最大限度的利用。

本系統服務器端即為教師端,而客戶端即為學生端。但是一般Client/Server結構系統在應用前都需要進行系統部署、設置和調試工作,很多情況下,Client/Server架構數據庫也需要進行一系列參數設置和環境設置,譬如連接時數據庫就至少需要配置連接字符串。由于網絡環境不同,連接字符串并非固定不變的,因此往往專業人員上門進行部署和測試。

考慮到本系統用戶為會計類專業教師,讓他們去安裝和部署Client/Server架構數據庫存在諸多的困難,因此,本系統在總體架構為Client/Server模型的基礎上,后臺數據庫卻選擇了桌面模型數據庫Access。之所以選擇Access,是因為微軟公司已經將其數據庫引擎Jet內置到Windows操作系統之中,完全免安裝。但是桌面型數據庫應用于網絡環境,相比Client/Server架構的數據庫,如SQL? Server,由于整個數據庫都需要傳輸到客戶端進行處理,造成網絡帶寬的巨大浪費,使得性能低下,支持客戶端的數量有限。為此,筆者考慮研究實現一個分布式框架,該分布式框架可將桌面架構數據庫虛擬為Client/Server架構數據庫,并可實現零配置,其具備以下特點:

1) 該框架適用于小型分布式程序。

2) 原生框架,不依賴當前流行的Java、.Net虛擬機運行時環境,這樣才能保證無需任何配置,拷貝到電腦上即可使用。

3) 將桌面型或嵌入式數據庫轉換為Client/Server架構數據庫,服務器端無需安裝數據庫服務器,如SQL? Server,客戶端無需單獨安裝數據庫驅動,并且做到網絡線路上只有請求流和結果流,能更有效地利用網絡帶寬,從而達到高性能。

4) 程序員使用本框架開發軟件簡單易用,如同開發桌面型數據庫一樣簡單。

3 實現思路

3.1 整體結構

如圖1所示,Client通過自定義協議向Server發送請求,Server監測Client連接請求,為每一個Client連接請求生成一個服務線程,考慮到每一個連接都需要一定的系統開銷,所以Server自己維護連接歸入池中。因此,線程池負責分配管理和釋放Client連接,允許系統重復使用一個現有連接,而不是重新建立一個。

該線程是衍生的會話線程,其內封裝了客戶端IP、端口號、Client發送的數據包等大量信息。同樣,為提高性能,系統在啟動時一次性生成一定數量的數據訪問對象(ADO),并放入對象池中。當程序需要一個新的對象時,如果對象池中有空閑對象,則立即返回,否則才創建新的該類對象。當一個對象不再被使用時,應該將其放回對象池,以便程序后來使用。并提供了一組方法用于與客戶端通信,其原型形如:

class? CClientThread:CThread

private:

bool? FTS;

void*FChunkbuf;

bool? Fiskeepalive;

char*Fpeekbuffev;

string GlobalPeerIpAddress;

int? GlobalPeerPort;

public:

bool? Connect();

bool? Listen();

int? Sendbuf(const? void*buf,int? count);

int? Write(char? c);

int? Write(const? string? s);

int? Write(void *buf,int? len);

int? Read(void *buf,int? len);

int? ReadInt()

bool? SaveTo(CStream* stream,unsigned? timeout);

bool? SaveTo(File? handle, unsigned? timeout);

3.2 網絡協議的設計

Client/Server是一種請求-響應模型,在一次完整的通信過程中,Client與Server之間將完成以下步驟:

1) 建立TCP連接,通過socket建立Client與Server之間的TCP連接。

2) Client向Server端發送命令,與http協議類似,命令存放在協議報文頭信息中。

3) Client發送協議報文信息。Client在發送請求命令之后,還要以協議報文的形式向服務器發送請求的具體參數。

4) Server應答,Server會向Client返回響應,主要是響應狀態碼。

5) Server返回協議報文,發送Client所請求的實際數據。

本系統設計了如下,一些整數作為協議頭信息:

1) CTSLOGIN=1;成功登陸標記;

2) CRESPOK=1;返回狀態碼,‘1表示響應成功;

3) CRESPFAULT=2;返回狀態碼,‘2表示響應失敗;

4) CRESULTOK=0;返回結果正確;

5) CRESULTNO=0;返回結果錯誤;

6) DISONN=0;斷開連接;

7) EXESQL=1;執行SQL結句;

8) OPENSQL=2;打開SQL結句;

9) LINKTEST=2;連接測試;

10) ACTIVEPACK=4;激活包。

3.3 系統的運作流程

如圖2所示,Server和Client內部存在一個工作循環,Server是一個監聽循環,在循環內Server通過讀取客戶端請求協議頭信息得知請求意圖,這將觸發Server做出不同的響應動作,其邏輯通過偽碼說明如下:

switch(IHead) {? //對協議頭信息進行判斷

case? EXESQL:? // //執行一條SQL語句 更新或者執行

Llen = ClientThread→Socket→ReadInteger;

LSQl = ClientThread→Socket→ReadStr(Llen);

ADOQuery→SQL.Clear;

ADOQuery→SQL→Add(LSQl);

ADOQuery→Execute;

break;

case? OPENSQL:? //執行一個查詢語句

Llen = ClientThread→Socket→ReadInteger;

LSQl = ClientThread→Socket→ReadStr(Llen);

ADOQuery→SQL.Clear;

ADOQuery→SQL→Add(LSQl);

ADOQuery→Open();

break;

}

3.4 結果集的返回

Client/Server架構的數據庫,可根據Client查詢請求返回相應的結果集,避免了在網絡上傳播無效數據,有效地利用了網絡帶寬,提高了系統性能。本系統采用了流處理機制(Stream)對數據集對象(ADO)序列化和反序列化,利用AdoDataSet數據集SaveToFile方法將數據集保存到文件中,再通過內存流(MemoryStream)緩存在內存中,使用 ZIP壓縮算法在壓縮內存流中的數據后返回給Client,Client收到響應數據后進行反序列化即可還原出該數據集對象(ADO)。由于網絡上傳輸的數據是經過壓縮的,進一步提高了系統性能。

4 結束語

本系統開發完成后,一直應用于江西財經職業學院會計及相關專業教學之中,并選作了近幾年江西省大學生會計技能競賽軟件,效果良好,證明其設計思路和采用的技術手段是可行的,具有一定的普遍性和適用性以及較高的推廣價值。

參考文獻:

[1] 劉向東.基于Client/Server結構的數據庫系統設計[J].電腦知識與技術,2018,14(11):8-10.

[2] 孟繁榮.中職傳票翻打技能比賽有效訓練的實踐及研究[J].科教導刊:中旬刊,2016(04):42-43.

[3] 狄慶貴.基于Client/Server技術的質量信息管理系統[J].中國管理信息化,2017,20(10):50-51.

[通聯編輯:張薇]

主站蜘蛛池模板: 精品国产成人高清在线| 99人妻碰碰碰久久久久禁片| 欧美h在线观看| www.亚洲色图.com| 制服无码网站| 99视频在线看| 99久久精彩视频| 国产特一级毛片| 日韩黄色在线| 久久综合九九亚洲一区| 国产精品视频猛进猛出| 日韩一级毛一欧美一国产| 成人精品亚洲| 欧美一级高清视频在线播放| 久久久精品无码一二三区| a级毛片免费播放| 国产视频久久久久| 中文字幕人妻无码系列第三区| 亚洲一级毛片在线播放| 国产杨幂丝袜av在线播放| 中文天堂在线视频| 亚洲欧美日本国产综合在线| 欧美国产日韩一区二区三区精品影视| 日本亚洲欧美在线| 巨熟乳波霸若妻中文观看免费 | 国产麻豆aⅴ精品无码| 国产成人高清在线精品| 永久天堂网Av| 日韩在线播放中文字幕| 色播五月婷婷| 久久综合九九亚洲一区| 欧美午夜网| 国产69囗曝护士吞精在线视频| 婷婷色丁香综合激情| 国产后式a一视频| 毛片网站观看| 亚洲欧洲一区二区三区| 69av在线| 91福利在线看| 伊人久久久久久久| 中文国产成人精品久久一| 国产一级妓女av网站| 国产福利在线免费观看| 性视频一区| 日韩欧美视频第一区在线观看| 欧美一区中文字幕| 亚洲人成网站色7777| 久久黄色毛片| 2022国产91精品久久久久久| 国产毛片高清一级国语 | 久久99蜜桃精品久久久久小说| 欧美人与动牲交a欧美精品| 国产农村1级毛片| 97超级碰碰碰碰精品| 天堂在线www网亚洲| 日韩a级片视频| 国产大全韩国亚洲一区二区三区| 91啦中文字幕| 精品国产一区91在线| 日韩黄色在线| 99偷拍视频精品一区二区| 嫩草国产在线| 97在线碰| 亚洲无线一二三四区男男| 国产永久免费视频m3u8| 国产簧片免费在线播放| 制服丝袜无码每日更新| 婷婷久久综合九色综合88| 国产一区二区三区在线观看免费| 无码精品一区二区久久久| 性视频久久| 91在线精品免费免费播放| 日本成人在线不卡视频| 国产日韩精品一区在线不卡| 国产剧情国内精品原创| 色香蕉影院| yjizz视频最新网站在线| 国产成人夜色91| 欧美在线天堂| 一级爱做片免费观看久久| 欧美一区二区自偷自拍视频| 国产97视频在线观看|