排隊(duì)叫號(hào)系統(tǒng)軟件畢業(yè)設(shè)計(jì)_第1頁(yè)
排隊(duì)叫號(hào)系統(tǒng)軟件畢業(yè)設(shè)計(jì)_第2頁(yè)
排隊(duì)叫號(hào)系統(tǒng)軟件畢業(yè)設(shè)計(jì)_第3頁(yè)
排隊(duì)叫號(hào)系統(tǒng)軟件畢業(yè)設(shè)計(jì)_第4頁(yè)
排隊(duì)叫號(hào)系統(tǒng)軟件畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、排隊(duì)叫號(hào)系統(tǒng)軟件設(shè)計(jì) 摘 要36 / 37醫(yī)院作為向患者提供醫(yī)療護(hù)理服務(wù)的機(jī)構(gòu)在公民的日常生活中起著舉足輕重的作用,隨著門診就診患者的增多原有的人工導(dǎo)醫(yī)管理系統(tǒng)已經(jīng)無(wú)法滿足現(xiàn)在的就診要求。為了減少患者就診排隊(duì)的等待時(shí)間,本文提出了一種依托于網(wǎng)絡(luò)平臺(tái)技術(shù)的智能門診導(dǎo)醫(yī)系統(tǒng),目的是節(jié)省患者排隊(duì)時(shí)間、提高患者就診效率、輔助提高醫(yī)療服務(wù)質(zhì)量,最終為患者看病創(chuàng)造一個(gè)良好的就診環(huán)境。排隊(duì)叫號(hào)系統(tǒng)主要分為患者自助取號(hào)模塊、實(shí)時(shí)就診情況顯示模塊、醫(yī)生叫號(hào)模塊組成:患者自助取號(hào)模塊主要作用是在患者完成掛號(hào)前往就診時(shí),首先由自助服務(wù)終端讀取當(dāng)前患者的編號(hào)信息,然后為患者下發(fā)打印當(dāng)前排隊(duì)等候;實(shí)時(shí)就診情況顯示模塊的

2、作用是導(dǎo)醫(yī)系統(tǒng)將即將接受診治的患者信息依據(jù)事先發(fā)好的進(jìn)行排序,然后在候診區(qū)外的大屏幕上顯示出來;醫(yī)生叫號(hào)模塊主要的作用是當(dāng)醫(yī)生完成當(dāng)前病患的診斷工作后,由醫(yī)生利用叫號(hào)終端發(fā)出指令,然后在候診區(qū)域進(jìn)行廣播,叫下一位患者前去診室就診。為實(shí)現(xiàn)上述功能本文主要介紹了醫(yī)院智能醫(yī)院導(dǎo)醫(yī)系統(tǒng)的意義與作用、系統(tǒng)的整體設(shè)計(jì)流程、系統(tǒng)的詳細(xì)設(shè)計(jì)方法以與系統(tǒng)的實(shí)現(xiàn)情況:硬件方面依托于醫(yī)院現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)、計(jì)算機(jī)數(shù)據(jù)管理平臺(tái)外加輔助終端進(jìn)行分發(fā)、就診顯示、叫號(hào)等工作;軟件方面采用C語(yǔ)言,在Linux環(huán)境下編譯,后臺(tái)數(shù)據(jù)庫(kù)文件進(jìn)行患者信息的錄入、顯示、呼叫等功能,界面簡(jiǎn)單易于操作。關(guān)鍵詞:門診,排隊(duì)叫號(hào),計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫(kù)

3、,C語(yǔ)言。AbstractHospital as providing medical care to patients with institutions play a decisive role in the daily lives of citizens in the patients at the clinic, with the increase of the original manual guide medical management system has been unable to meet the medical requirements now. In order to

4、reduce the waiting time of patients with queuing, the intelligent outpatient presents a depends on network platform technology guide medical system, the purpose is to save the patients waiting time, improve efficiency, help patients to improve the quality of medical service, the final treatment to c

5、reate a good environment for treatment for patients.Intelligent medical guidance system is mainly divided into patients self-service module, display module, real-time diagnosis doctor calling module: Patients self-service module mainly in patients completed the registration to the treatment, first r

6、ead the number information current patient by the self-service terminal, and then were issued to print the current queue number; real-time diagnosis display module is used for guiding system will be acceptable to patients based on the information of diagnosis and treatment of prior good number sorte

7、d, then in the waiting area outside the big screen; the doctor called module main function is when the doctor to complete the current disease diagnosis, doctors use a directive issued by the the terminal, and then broadcast in the waiting area, called the next patient to the consulting room.In order

8、 to realize the above functions this paper introduces intelligent hospital clinic medical system, the significance and function of the overall system design process, system design and system implementation: Hardware Based on the existing network structure, the hospital computer data management platf

9、orm and auxiliary terminal number distribution, medical display, called the work; software using C language design of the host computer operation interface, with links to information database input, display, call and other functions, the interface is simple and easy to operate.Keywords:Outpatient, Q

10、ueue and call the name,Computer network,Database,C language.目 錄排隊(duì)叫號(hào)系統(tǒng)軟件設(shè)計(jì)IAbstractII目 錄IV第1章 緒 論V1.1 課題背景與意義V1.2國(guó)能外發(fā)展趨勢(shì).1.2.1 國(guó)應(yīng)用情況VI1.2.1 國(guó)應(yīng)用情況VI第2章 排隊(duì)叫號(hào)系統(tǒng)整體設(shè)計(jì)VIII2.1 整體設(shè)計(jì)框架VIII2.2.1 患者自助取號(hào)功能IX2.2.2 實(shí)時(shí)就診情況顯示功能IX2.2.3 醫(yī)生呼叫就診患者功能X3.1 前臺(tái)軟件功能介紹123.1.1 客戶端排號(hào)功能實(shí)現(xiàn)過程123.1.2 服務(wù)器叫號(hào)功能實(shí)現(xiàn)過程123.2 界面設(shè)計(jì)過程133.3 主要實(shí)

11、現(xiàn)代碼133.2 后臺(tái)數(shù)據(jù)庫(kù)25總 結(jié)28致30參考文獻(xiàn)31附 錄A33第1章 緒 論1.1課題設(shè)計(jì)的背景與意義醫(yī)院作為向患者提供醫(yī)療護(hù)理服務(wù)的機(jī)構(gòu)在公民的日常生活中起著舉足輕重的作用。隨著社會(huì)的進(jìn)步與公民健康意識(shí)的提高,人們對(duì)自身的健康問題尤為關(guān)心,無(wú)論大病小病只要身感不適大部分人都會(huì)去醫(yī)院求助醫(yī)生,這就導(dǎo)致醫(yī)院的醫(yī)療水平、醫(yī)療環(huán)境等問題在醫(yī)患關(guān)系中變得尤為突出?;颊咄ǔOMプ詈玫尼t(yī)院找最好的大夫,同時(shí)也希望在一個(gè)舒適、安靜的環(huán)境中完成整個(gè)就醫(yī)過程。現(xiàn)階段我國(guó)的醫(yī)療機(jī)構(gòu)主要有以下幾種情況,小型醫(yī)院由于醫(yī)生的水平以與檢查設(shè)備的限制,通常都是醫(yī)生等待患者,而大型醫(yī)院通常都是患者排隊(duì)等待醫(yī)生的診

12、治,無(wú)論是門診看病還是各種檢查每個(gè)環(huán)節(jié)通常都是大排長(zhǎng)龍,去醫(yī)院看病到檢查通常要好幾天才可以完成整個(gè)過程,在這樣大規(guī)模的就診來訪量的前提下,醫(yī)院很難為患者提供一個(gè)良好的就醫(yī)環(huán)境。為了解決候診區(qū)域人員混亂、嘈雜等問題,本文提出了一種依托于網(wǎng)絡(luò)平臺(tái)技術(shù)的智能門診導(dǎo)醫(yī)系統(tǒng),目的是節(jié)省患者排隊(duì)時(shí)間、提高患者就診效率、輔助提高醫(yī)療服務(wù)質(zhì)量,最終為患者看病創(chuàng)造一個(gè)安靜文明的就診環(huán)境。1.2 國(guó)外研究現(xiàn)狀以與發(fā)展趨勢(shì)1.2.1 國(guó)應(yīng)用情況排隊(duì)叫號(hào)系統(tǒng)現(xiàn)階段在國(guó)應(yīng)用比較廣泛,經(jīng)由1998年到2001年起步階段、2001到2003年發(fā)展階段至今高速發(fā)展階段,逐漸應(yīng)用在銀行、電信等行業(yè)的業(yè)務(wù)窗口處使用。例如在銀行,

13、通常儲(chǔ)戶在自助終端根據(jù)自己辦理的業(yè)務(wù)類型(存取款業(yè)務(wù)、VIP大客戶業(yè)務(wù)等)取得排隊(duì)紙,紙上通常顯示儲(chǔ)戶獲取的排隊(duì)、儲(chǔ)戶之前還有多少用戶在辦理業(yè)務(wù)等,如遇到企業(yè)與個(gè)人VIP大客戶,系統(tǒng)還會(huì)為其安排優(yōu)先辦理。這種排隊(duì)叫號(hào)終端的應(yīng)用,很好的緩解了銀行窗口單位業(yè)務(wù)量大,排隊(duì)混亂的問題,既提升了銀行的服務(wù)質(zhì)量也保證了每位儲(chǔ)戶辦理業(yè)務(wù)的安全性。1.2.2 國(guó)外應(yīng)用情況排隊(duì)叫號(hào)技術(shù)最早出現(xiàn)在歐美等國(guó)家,導(dǎo)醫(yī)技術(shù)初始階段主要是分診護(hù)士對(duì)患者人工呼叫,隨著科技的進(jìn)步、計(jì)算機(jī)技術(shù)的不斷發(fā)展,智能導(dǎo)醫(yī)系統(tǒng)應(yīng)用逐漸廣泛,目前已具備多種功能如語(yǔ)音提示、語(yǔ)音呼叫、呼叫終端綜合顯示平臺(tái);發(fā)號(hào)功能也有觸摸屏取號(hào)、按鍵取號(hào)、特

14、殊識(shí)別取號(hào)等等。目前國(guó)部分大型醫(yī)院與體檢機(jī)構(gòu)有使用智能導(dǎo)醫(yī)系統(tǒng),越來越多的醫(yī)院、體檢中心有對(duì)這種系統(tǒng)的需求,智能排隊(duì)叫號(hào)功能在導(dǎo)醫(yī)系統(tǒng)中有很好的應(yīng)用前景。1.3 課題目的與意義本課題是人們?cè)谌粘I钪薪?jīng)常遇到的,就像醫(yī)院、銀行等很多服務(wù)部門我們都會(huì)不可避免的親身經(jīng)歷過排隊(duì)的體驗(yàn),這些與我們緊緊相關(guān),設(shè)計(jì)本課題能夠解決我們最直接的日常問題,在當(dāng)今各行各業(yè)的信息化、智能化建設(shè)越來越普與的形勢(shì)下,整個(gè)社會(huì)對(duì)各個(gè)行業(yè)的辦事效率的要求越來越高,既要滿足被服務(wù)人員的服務(wù)需求,又要提升服務(wù)質(zhì)量,提高服務(wù)效率?,F(xiàn)在人們不僅僅要求服務(wù)機(jī)構(gòu)滿足業(yè)務(wù)上的需要,還要求盡量減少人們的等待時(shí)間,而服務(wù)機(jī)構(gòu)本身由于競(jìng)爭(zhēng)的需

15、要,也要求提高其辦事效率和服務(wù)的形象。通過排隊(duì)叫號(hào)系統(tǒng),解決了上述很多繁雜的問題,為人們創(chuàng)造了一個(gè)良好的環(huán)境,有利于社會(huì)的發(fā)展進(jìn)步4。通過本課題,我對(duì)之前所學(xué)的知識(shí)進(jìn)行了鞏固,使我在所學(xué)的微型計(jì)算機(jī)原理、單片機(jī)課程、C語(yǔ)言等的基礎(chǔ)上實(shí)現(xiàn)對(duì)實(shí)際問題的分析、研究和具有初步解決此類問題的能力,能夠?qū)ΜF(xiàn)代生活中的智能化過程控制技術(shù)有著進(jìn)一步的了解,并為今后從事工業(yè)控制領(lǐng)域的相關(guān)工作提供幫助??梢?,研究本課題具有很大的實(shí)際意義。1.4 課題的研究容智能門診導(dǎo)醫(yī)系統(tǒng)主要分為患者自助取號(hào)模塊、實(shí)時(shí)就診情況顯示模塊、醫(yī)生叫號(hào)模塊組成:患者自助取號(hào)模塊主要作用是在患者完成掛號(hào)前往就診時(shí),首先由自助服務(wù)終端讀取當(dāng)

16、前患者的編號(hào)信息,然后為患者下發(fā)打印當(dāng)前排隊(duì)等候;實(shí)時(shí)就診情況顯示模塊的作用是導(dǎo)醫(yī)系統(tǒng)將即將接受診治的患者信息依據(jù)事先發(fā)好的進(jìn)行排序,然后在候診區(qū)外的大屏幕上顯示出來;醫(yī)生叫號(hào)模塊主要的作用是當(dāng)醫(yī)生完成當(dāng)前病患的診斷工作后,由醫(yī)生利用叫號(hào)終端發(fā)出指令,然后在候診區(qū)域進(jìn)行廣播,叫下一位患者前去診室就診。為實(shí)現(xiàn)上述功能本文主要介紹了醫(yī)院智能門診導(dǎo)醫(yī)系統(tǒng)的意義與作用、系統(tǒng)的整體設(shè)計(jì)流程、系統(tǒng)的詳細(xì)設(shè)計(jì)方法以與系統(tǒng)的實(shí)現(xiàn)情況:硬件方面依托于醫(yī)院現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)、計(jì)算機(jī)數(shù)據(jù)管理平臺(tái)外加輔助終端進(jìn)行分發(fā)、就診顯示、叫號(hào)等工作;軟件方面采用C語(yǔ)言設(shè)計(jì),后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行患者信息的錄入、顯示、呼叫等功能,界面簡(jiǎn)單易于

17、操作。有效緩解了醫(yī)生工作受患者影響、患者就診、檢查雜亂無(wú)序等問題。第2章 排隊(duì)叫號(hào)系統(tǒng)整體設(shè)計(jì)本章首先對(duì)醫(yī)院的業(yè)務(wù)流程進(jìn)行分析,提取出智排隊(duì)叫號(hào)系統(tǒng)的基本需求,然后依據(jù)需求分析結(jié)果完成系統(tǒng)的整體結(jié)構(gòu)設(shè)計(jì)。為了改善門診就診的環(huán)境,提高醫(yī)院的服務(wù)水平,我們有必要開發(fā)一套智能的醫(yī)導(dǎo)系統(tǒng)來輔助原有的人工醫(yī)導(dǎo)的管理模式,為此我們首先對(duì)醫(yī)院門診部門的工作業(yè)務(wù)流程進(jìn)行分析與調(diào)研,然后從中升華分析出合理的系統(tǒng)需求,在Linux環(huán)境下,按要求編寫所需對(duì)應(yīng)功能的程序。 搭建C/S構(gòu)架(TCP IPV4),根據(jù)流程圖編寫程序,服務(wù)器端建立線程,定義各種需求對(duì)應(yīng)的全局變量。按實(shí)際需求,處理對(duì)應(yīng)數(shù)據(jù)。最后進(jìn)行編譯與調(diào)試

18、。2.1 整體設(shè)計(jì)框架 顯示友好提示提示對(duì)應(yīng)功能 客戶端取號(hào)終端叫號(hào)圖2.1 方案一系統(tǒng)框圖2.2.1 患者自助取號(hào)功能為了解決大型醫(yī)院人工分診混亂嘈雜等問題,根據(jù)醫(yī)生與分診護(hù)士的需求與現(xiàn)有門診接診情況,提出一種患者自助式排隊(duì)候診系統(tǒng),該系統(tǒng)在自助取號(hào)階段應(yīng)該包括以下模塊:(1)患者信息分析功能對(duì)于初診還是復(fù)診的患者系統(tǒng)最好能通過合理的算法給出一個(gè)優(yōu)化的分析方案,合理安排候診區(qū)域的患者排隊(duì)情況。(2)患者取號(hào)排隊(duì)功能患者通過自助系統(tǒng)將就診卡號(hào)掃描后,系統(tǒng)應(yīng)該根據(jù)數(shù)據(jù)庫(kù)中患者就診情況進(jìn)行分析,選擇一個(gè)合適的優(yōu)化算法,對(duì)候診患者的排隊(duì)方式給出一個(gè)最佳的排序建議,據(jù)此判斷結(jié)果由自助終端自動(dòng)打印出患者

19、的排隊(duì)。2.2.2 實(shí)時(shí)就診情況顯示功能(1)診區(qū)外當(dāng)前就診情況顯示提示功能智能門診導(dǎo)醫(yī)系統(tǒng)采用的是患者自助式的刷卡取號(hào)排隊(duì)模式,很大程度上減少了分診護(hù)士的工作量,對(duì)分診以與呼叫患者的工作有系統(tǒng)自動(dòng)分析完成,當(dāng)患者刷卡取號(hào)后,只需要關(guān)注診區(qū)外的屏幕顯示信息,即可知道當(dāng)前患者的就診情況,下一位患者的,當(dāng)前排隊(duì)的總?cè)藬?shù)等信息。(2)護(hù)士對(duì)患者排隊(duì)情況的簡(jiǎn)單維護(hù)功能。由于自助取號(hào)系統(tǒng)的輔助,分診護(hù)士的工作簡(jiǎn)化很多,護(hù)士由原來的分診工作執(zhí)行者轉(zhuǎn)變?yōu)榱伺抨?duì)叫號(hào)系統(tǒng)的維護(hù)者,當(dāng)診區(qū)外的顯示屏顯示出現(xiàn)故障、亂序、無(wú)顯示等情況時(shí),分診護(hù)士應(yīng)該采取相應(yīng)措施,使系統(tǒng)復(fù)位從新工作,如遇護(hù)士無(wú)法修復(fù)的問題,護(hù)士應(yīng)該軟

20、件硬件提供方聯(lián)系進(jìn)行維修。(3)手工分診與優(yōu)先排隊(duì)功能當(dāng)自動(dòng)分診系統(tǒng)運(yùn)行過程中出現(xiàn)故障時(shí),為了使醫(yī)院正常的工作可以進(jìn)行,應(yīng)該由當(dāng)前護(hù)士將自動(dòng)分診切換到人工分診。對(duì)于一些有特殊服務(wù)需求的病患,如老、弱、病、殘、孕等情況,系統(tǒng)應(yīng)該留有VIP模塊,為這些人優(yōu)先安排檢查。2.2.3 醫(yī)生呼叫就診患者功能醫(yī)生呼叫就診患者模塊應(yīng)具備以下功能:(1)自動(dòng)呼叫功能:當(dāng)前患者診治結(jié)束后,有醫(yī)生通過呼叫終端的按鈕直接呼叫下一位就診患者。(2)人工呼叫功能:為醫(yī)生留有權(quán)限,醫(yī)生可以根據(jù)當(dāng)前排隊(duì)信息手動(dòng)選擇下一位被呼叫的患者。此功能應(yīng)用起來要考慮實(shí)際情況,醫(yī)生有權(quán)干預(yù),但是由于醫(yī)生的看診情況實(shí)時(shí)的顯示在候診區(qū)域,因此

21、醫(yī)生不要無(wú)原因的使用該權(quán)限修改看診順序,避免造成候診區(qū)域的混亂。第3章 排隊(duì)叫號(hào)系統(tǒng)的實(shí)現(xiàn)與測(cè)試本章首先對(duì)醫(yī)院的業(yè)務(wù)流程進(jìn)行分析,提取出智能醫(yī)導(dǎo)系統(tǒng)的基本需求,然后依據(jù)需求分析結(jié)果分別完成系統(tǒng)的前臺(tái)和后臺(tái)的軟件設(shè)計(jì)。3.1 前臺(tái)軟件功能介紹程序中,分別實(shí)現(xiàn)了客戶端和服務(wù)器的排號(hào)功能和叫號(hào)功能,客戶端排號(hào)功能表現(xiàn)為,顯示排序號(hào),排隊(duì)剩余人數(shù)。服務(wù)器端實(shí)現(xiàn)對(duì)不同隊(duì)列的叫號(hào)功能,并在界面顯示對(duì)應(yīng)提示。3.1.1 客戶端排號(hào)功能實(shí)現(xiàn)過程定義初始人數(shù)和排隊(duì)剩余人數(shù),按初始界面提示的不同功能,對(duì)排隊(duì)人數(shù)進(jìn)行累加操作,然后顯示出排隊(duì)序號(hào)和隊(duì)伍中人數(shù)。int counter = 0;int first_per

22、son = 0;int vip_counter = 0;int vip_first_person = 0;初始值都賦值為0。分為正常隊(duì)伍,和vip隊(duì)伍。printf("n");printf("|序號(hào)B%d 排隊(duì)人數(shù)%d|n", vip_counter, vip_counter-vip_first_person-1);printf("n");排隊(duì)序號(hào)的顯示格式和對(duì)應(yīng)數(shù)據(jù)的具體操作。3.1.2 服務(wù)器叫號(hào)功能實(shí)現(xiàn)過程接收客戶端數(shù)據(jù),首先進(jìn)行正常用戶和vip客戶的判斷,然后輸出對(duì)應(yīng)數(shù)據(jù),并顯示相應(yīng)友好提示。printf("請(qǐng)%s&

23、quot;,buf_ret);/write(1, buf_ret, read_ret);printf("號(hào),到服務(wù)窗口n");3.2 界面設(shè)計(jì)過程用printf構(gòu)建簡(jiǎn)單界面,給出對(duì)應(yīng)提示。如圖3.1所示:3.1界面顯示示意圖。3.3 主要實(shí)現(xiàn)代碼主要包塊客戶端和服務(wù)區(qū)兩個(gè)模塊的代碼,并解釋代碼實(shí)現(xiàn)的功能。3.3.1 客戶端主要實(shí)現(xiàn)代碼#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <net

24、db.h>#include <string.h>#include <arpa/inet.h>注釋:導(dǎo)入對(duì)應(yīng)頭文件。#define myperr(x) perror(x);exit(0)注釋:預(yù)定義錯(cuò)誤判斷。void main()int sockfd, ret;sockfd = socket(AF_INET, SOCK_STREAM, 0);if(sockfd = -1)myperr("socket");struct sockaddr_in servaddr;memset(&servaddr, 0, sizeof(servaddr);se

25、rvaddr.sin_family = AF_INET;servaddr.sin_port = htons(short)4008);注釋:IPV4地址結(jié)構(gòu),并轉(zhuǎn)換成16位網(wǎng)絡(luò)字節(jié)序struct hostent* server;server = gethostbyname("");if(server = NULL)herror("gethostbyname");exit(0);servaddr.sin_addr.s_addr = *(uint32_t*)server->h_addr;/inet_pton(AF_INET, "

26、;69", &servaddr.sin_addr.s_addr);ret = connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr);注釋:給出固定地址結(jié)構(gòu)參數(shù)。if(ret = -1)myperr("connect");char buf128;char buf_ret1024;注釋:定義傳遞數(shù)組。int read_ret;while(1)/scanf("%s", buf);/write(sockfd, buf, strlen(buf);p

27、rintf("*n");printf("按回車開始下一個(gè)n");printf("*n");注釋:客戶端給出提示界面。getchar();注釋:接收回車。memset(buf_ret, 0, sizeof(buf_ret);注釋:讀寫前,清空數(shù)組。read_ret = read(sockfd, buf_ret, sizeof(buf_ret);printf("請(qǐng)%s",buf_ret);/write(1, buf_ret, read_ret);printf("號(hào),到服務(wù)窗口n");注釋:顯示對(duì)應(yīng)友

28、好提示。fflush(stdout);注釋:釋放空間。3.3.2 服務(wù)器主要實(shí)現(xiàn)代碼#include <stdio.h>#include <unistd.h>#include <arpa/inet.h>/#include <netdb.h>#include <pthread.h>#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <stdlib.h>#define myperr(x) perro

29、r(x);exit(0)注釋:頭文件導(dǎo)入。int counter = 0;int first_person = 0;int vip_counter = 0;int vip_first_person = 0;int flg = 0;注釋:定義全局變量。void main()int sockfd,sel;pid_t pid_s;pid_s = fork();注釋:創(chuàng)建子進(jìn)程。if(pid_s = 0)while(1)printf("tttt*盛京醫(yī)院*n");printf("ttttttt請(qǐng)選擇所需服務(wù)n");printf("tttt1.普通掛號(hào)

30、2.辦理住/出院 3.取藥 4.復(fù)診 5.VIP會(huì)員n");printf("tttt*盛京醫(yī)院*n");注釋:完成界面顯示功能。scanf("%d",&sel);注釋:接收選擇選號(hào)。if(sel > 2)/超級(jí)選項(xiàng)flg = 1;getchar();vip_counter+;printf("n");printf("n");printf("n");printf("|序號(hào)B%d 排隊(duì)人數(shù)%d|n", vip_counter, vip_counter-vip

31、_first_person-1);printf("n");printf("n");printf("n");注釋:vip數(shù)據(jù)處理過程。elsegetchar();counter+;printf("n");printf("n");printf("n");printf("|序號(hào)A%d 排隊(duì)人數(shù)%d|n", counter, counter-first_person-1);printf("n");printf("n");pr

32、intf("n");注釋:正常數(shù)據(jù)處理過程。else if(pid_s > 0)int sockfd, nsock;int ret;struct sockaddr_in servaddr, cliaddr;/struct hostent* hostall;sockfd = socket(AF_INET, SOCK_STREAM, 0);if(sockfd = -1)myperr("socket");memset(&servaddr, 0, sizeof(servaddr);servaddr.sin_family = AF_INET;serv

33、addr.sin_port = htons(short)4008);/hostall = gethostbyname();servaddr.sin_addr.s_addr = INADDR_ANY;ret = bind(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr);注釋:與客戶端構(gòu)架連接。if(ret = -1)myperr("bind");ret = listen(sockfd, 100);if(ret = -1)myperr("listen");int len;pthread_t

34、tid;注釋:創(chuàng)建線程,以與實(shí)現(xiàn)要球功能。/while(1)/len = sizeof(cliaddr);nsock = accept(sockfd, (struct sockaddr*)&cliaddr, &len);void* fun(void* arg);void* funB(void* arg);if(flg = 0)pthread_create(&tid, NULL, fun, (void*)nsock);elsepthread_create(&tid, NULL, funB, (void*)nsock);/注釋:現(xiàn)成實(shí)現(xiàn)函數(shù)實(shí)現(xiàn)。void* fun(

35、void* arg)int nsock = (int)arg;char buf128,num64;int read_ret;pid_t pid;while(1)memset(num, 0, sizeof(num);sprintf(num, "A%d", first_person);write(nsock, num, strlen(num);first_person+;void* funB(void* arg)int nsock = (int)arg;char buf128,num64;int read_ret;pid_t pid;/while(1)/memset(num,

36、0, sizeof(num);sprintf(num, "B%d", vip_first_person);write(nsock, num, strlen(num);vip_first_person+;/3.2 后臺(tái)數(shù)據(jù)庫(kù)文件存儲(chǔ)數(shù)據(jù),服務(wù)器與客戶端對(duì)同一文件進(jìn)行讀寫,完成數(shù)據(jù)的存儲(chǔ),更新以與保存。軟件運(yùn)行時(shí),要依托數(shù)據(jù)庫(kù)文件,如果服務(wù)器與客戶端不能正常訪問數(shù)據(jù)庫(kù)文件,系統(tǒng)會(huì)報(bào)出對(duì)應(yīng)錯(cuò)誤。 以下代碼塊是用來連接數(shù)據(jù)庫(kù)的通訊過程,要連接MYSQL,必須建立MYSQL實(shí)例,通過mysql_init初始化方能開始進(jìn)行連接.typedef struct st_mysql NET n

37、et; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for SSL */ char *host,*user,*passwd,*unix_socket, *server_version,*host_info,*info,*db; unsigned int port,client_flag,server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigne

38、d long thread_id; /* Id for connection in server */ my_ulonglong affected_rows; my_ulonglong insert_id; /* id if insert on table with NEXTNR */ my_ulonglong extra_info; /* Used by mysqlshow */ unsigned long packet_length; enum mysql_status status; MYSQL_FIELD *fields; MEM_ROOT field_alloc; my_bool f

39、ree_me; /* If free in mysql_close */ my_bool reconnect; /* set to 1 if automatic reconnect */ struct st_mysql_options options; char scramble_buff9; struct charset_info_st *charset; unsigned int server_language; MYSQL;這個(gè)結(jié)構(gòu)代表返回行的一個(gè)查詢的(SELECT, SHOW, DESCRIBE, EXPLAIN)的結(jié)果。返回的數(shù)據(jù)稱為“數(shù)據(jù)集”,用過數(shù)據(jù)庫(kù)的朋友應(yīng)該對(duì)數(shù)據(jù)庫(kù)中查詢后

40、得到的結(jié)果集不會(huì)陌生,在C的API里對(duì)應(yīng)的就是MYSQL_RES了,從數(shù)據(jù)庫(kù)讀取數(shù)據(jù),最后就是從MYSQL_RES中讀取數(shù)據(jù)。typedef struct st_mysql_res my_ulonglong row_count; unsigned int field_count, current_field; MYSQL_FIELD *fields; MYSQL_DATA *data; MYSQL_ROWS *data_cursor; MEM_ROOT field_alloc; MYSQL_ROW row; /* If unbuffered read */ MYSQL_ROW current_

41、row; /* buffer to current row */ unsigned long *lengths; /* column lengths of current row */ MYSQL *handle; /* for unbuffered reads */ my_bool eof; /* Used my mysql_fetch_row */ MYSQL_RES;總 結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在是生活中可以說得是無(wú)處不在。因此作為二十

42、一世紀(jì)的大學(xué)來說掌握計(jì)算機(jī)開發(fā)技術(shù)十分重要的。我的題目是文章處理系統(tǒng)的設(shè)計(jì),對(duì)于我們這些新手來說,這是很大的考驗(yàn),我一千次一萬(wàn)次的問自己,怎么才能找到課堂所學(xué)與實(shí)際應(yīng)用的最佳結(jié)合點(diǎn)?怎么才能讓自己的程序在篇幅上簡(jiǎn)單,在使用價(jià)值上豐富?怎樣讓自己的業(yè)余更靠近專業(yè)?怎樣讓自己的計(jì)劃更具有序性,而不會(huì)忙無(wú)一用?機(jī)會(huì)是老師,學(xué)校,以與無(wú)數(shù)代教育工作者給的,而能力是自己的,耐性是需要的。經(jīng)過自己的琢磨,聽取了師姐,師兄們的建議,還查閱了很多書籍,才做到了心中有數(shù),才了解了C語(yǔ)言課程設(shè)計(jì)的真正用意培養(yǎng)自學(xué)能力,養(yǎng)成程序編輯的好習(xí)慣。我從來不相信車到山前必有路的說法,認(rèn)為那只是懶惰者自尋懶惰的借口,我要積極

43、,要把握,要努力?;仡櫰鸫舜握n程設(shè)計(jì),至今我仍感慨頗多,的確,從從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握

44、得不夠牢固,比如說結(jié)構(gòu)體通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在郭老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在郭老師的身上我學(xué)得到很多實(shí)用的知識(shí),在次我表示感!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感在課程設(shè)計(jì)過程中,我學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒,黑夜過去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過程中,先有我的各個(gè)子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的關(guān)鍵。老天不會(huì)讓我

45、太過順利,他在這最后的時(shí)刻設(shè)置的障礙,是要考驗(yàn)我的能力,他要置我于死地?在這個(gè)問題的解決上,我打了退堂鼓,我不能忍受長(zhǎng)時(shí)間的無(wú)功而反,時(shí)間正在消磨我的意志。沒有了柳暗花明的一天,那么我怎么能說經(jīng)受住了考驗(yàn)?老師的那句話,她說:人力有所不能與,然而,人的精神是不會(huì)敗倒的。我鼓起勇氣,到處問,到處查資料,黃天不負(fù)有心人,在一篇文章上,終于看到了我所特別要求的函數(shù),我實(shí)現(xiàn)了組合是關(guān)鍵的理論。不得不說這是精神的勝利,是永不言敗的精神讓我的程序重見天日。給我指點(diǎn)迷津的老師。6月18日,我們的課程設(shè)計(jì)結(jié)束了,但是它留給我的印象是不可磨滅的。無(wú)論我以后會(huì)不會(huì)涉與到C語(yǔ)言程序編譯的研究,我想,我至少掌握了一種

46、系統(tǒng)的研究方法,我們學(xué)習(xí)的目的就在于運(yùn)用,我們運(yùn)用這種研究方法的時(shí)候會(huì)很多,我最后要感課程設(shè)計(jì),它的確教會(huì)我很多。致 本次畢業(yè)設(shè)計(jì)的主要容已經(jīng)完成,首先要非常感我的指導(dǎo)老師老師。從最初的選題到最后的論文的定稿,都是在老師的精心指導(dǎo)下才得以順利完成的,在這個(gè)過程中,老師投入了大量的精力,給予我很多有益的指導(dǎo)和幫助,經(jīng)常督促我獨(dú)立思考,但也為我指點(diǎn)迷津,耐心講解,幫助我開拓研究思路,并積極地鼓勵(lì)我,給我完成設(shè)計(jì)的很大信心,老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、敏銳的學(xué)術(shù)思維、精益求精的工作態(tài)度、樸實(shí)、隨和的生活作風(fēng)以與忘我的敬業(yè)精神是我終生學(xué)習(xí)的榜樣,以后在工作中,我也會(huì)時(shí)刻提醒自己,以此要求自己。還要感所有的任課

47、老師,在四年來對(duì)我們學(xué)習(xí)和生活的幫助,另外,在完成畢業(yè)設(shè)計(jì)的過程中,還得到很多同學(xué)的支持和幫助,我在每個(gè)人的身上都學(xué)到了很多,不管是學(xué)習(xí),還是做人。在此,謹(jǐn)向老師和同學(xué)致以衷心的感和崇高的敬意!最后,感母校對(duì)我的培養(yǎng),給我提供了這樣好的環(huán)境度過我人生中美好的四年,現(xiàn)在即將揮別我的學(xué)校、老師、同學(xué),還有我四年的大學(xué)生活,雖然依依不舍,但是我擁有著知識(shí)、友誼,對(duì)未來的路,我充滿了信心。在這里,也祝愿所有的老師,同學(xué)一切都好,母校越來越輝煌。參考文獻(xiàn)1 .海同信息科技 C高級(jí)編程.2 偉濤. 淺談醫(yī)院門診排隊(duì)叫號(hào)系統(tǒng)的建設(shè)與應(yīng)用J, 中國(guó)醫(yī)院建筑與裝備, 2007, 8(6): 40-42.3 顏雨

48、春. 數(shù)字化醫(yī)院建設(shè)與管理M, : 科學(xué)技術(shù), 2010.4 吳曉澄. 門診排隊(duì)叫號(hào)系統(tǒng)的研究與實(shí)現(xiàn)J, 中國(guó)醫(yī)療前沿, 2009, 4(20): 116.5 Leszek AMaciaszek. 需求分析與系統(tǒng)設(shè)計(jì)M, : 機(jī)械工業(yè),2009.6 SatzingerJ, JacksonR, BurdS. 系統(tǒng)分析與設(shè)計(jì)M, : 機(jī)械工業(yè), 2009.7 夏宏斌, 王志勇. 利用分診排隊(duì)系統(tǒng)優(yōu)化門診就醫(yī)流程J, 醫(yī)學(xué)信息, 2008, 21(3): 301-303.8 溫昱. 軟件架構(gòu)設(shè)計(jì)M, :電子工業(yè), 2007.9朱歲松. 醫(yī)院信息化建設(shè)與管理M, : 軍事醫(yī)科, 2005 .10 蔡駿

49、,王艷春,董澤芳。單片機(jī)原理與應(yīng)用技術(shù)M。:清華大學(xué)。2006(2007重?。?11 佳文工作室.Visual Basic 6.0編程實(shí)例.電子工業(yè),2006:251358逸之,(Visual Basic與RS232串行通訊控制.中國(guó)青年,2000:1621412彥鋒,許小榮.VB網(wǎng)絡(luò)與遠(yuǎn)程控制編程實(shí)例教程.希望電子,2007:8793.13 田學(xué)鋒.計(jì)算機(jī)通信與RS-232接口實(shí)用指南.電子工業(yè),2006:7880.14 田文勝,陽(yáng),學(xué)勤.Visual Basic編程指南.清華大學(xué),2003:410421.15 逸之,(Visual Basic與RS232串行通訊控制.中國(guó)青年,2000:1

50、621416 .宮云戰(zhàn). 軟件測(cè)試M, : 國(guó)防工業(yè),2006. 17 Cem Kaner, James Bach, Bret Pettichord. 軟件測(cè)試經(jīng)驗(yàn)與教訓(xùn)M, : 機(jī)械工業(yè), 2004.附 錄AC語(yǔ)言的發(fā)展頗為有趣。它的原型ALGOL 60語(yǔ)言。 1963年,劍橋大學(xué)將ALGOL 60語(yǔ)言發(fā)展成為CPL(Combined Programming Language)語(yǔ)言。 1967年,劍橋大學(xué)的Matin Richards 對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語(yǔ)言。 1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語(yǔ)言”

51、。意思是將CPL語(yǔ)言煮干,提煉出它的精華。并且他用B語(yǔ)言寫了第一個(gè)UNIX操作系統(tǒng)。 而在1973年,B語(yǔ)言也給人“煮”了一下,美國(guó)貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BGPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。 為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie 發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本可移植的C語(yǔ)言編譯程序。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,從而使C語(yǔ)言成為目前世界上流行最廣泛的高級(jí)程序

52、設(shè)計(jì)語(yǔ)言。 1988年,隨著微型計(jì)算機(jī)的日益普與, 出現(xiàn)了許多C語(yǔ)言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語(yǔ)言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國(guó)國(guó)家標(biāo)準(zhǔn)研究所(ANSI)為C語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn), 成為現(xiàn)行的C語(yǔ)言標(biāo)準(zhǔn) 3.C語(yǔ)言的主要特點(diǎn) 。C語(yǔ)言發(fā)展迅速, 而且成為最受歡迎的語(yǔ)言之一, 主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件, 如DBASE PLUS、DBASE 都是由C 語(yǔ)言編寫的。用C語(yǔ)言加上一些匯編語(yǔ)言子程序, 就更能顯示C語(yǔ)言的優(yōu)勢(shì)了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。 附 錄BC語(yǔ)言操作mysql數(shù)據(jù) 常用函數(shù)所需頭文件: #include <mysql/mysql.h>功能: 獲得或初始化一個(gè)MYSQL結(jié)構(gòu)函數(shù)原型: MYSQL *mysql_init(MYSQL *mysql)函數(shù)返回值: 一個(gè)被始化的MYSQL*句柄備注: 在存不足的情況下,返回NULL所需頭文件: #include <mysql/mysql.h>函數(shù)功能: 關(guān)閉一個(gè)服務(wù)器連接,并釋放與連接相關(guān)的存函數(shù)原型: void mysql_close(MYSQL *mysql);函數(shù)傳入值: MYSQL:類型的指針函數(shù)返回值: 無(wú)所需頭文件:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論