C語言-藥品管理系統(tǒng)_第1頁
C語言-藥品管理系統(tǒng)_第2頁
C語言-藥品管理系統(tǒng)_第3頁
C語言-藥品管理系統(tǒng)_第4頁
C語言-藥品管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上C語言-藥品管理系統(tǒng)專心-專注-專業(yè) 作者: 日期:XX大學(xué)信息科學(xué)與工程學(xué)院課程設(shè)計(jì)報(bào)告書 課 題: 藥品信息管理系統(tǒng) 姓 名: 專 業(yè): 電 子 信 息 工 程 年 級(jí): 2 0 1 3 級(jí) 指導(dǎo)老師: 時(shí) 間: 目錄引言-1一、系統(tǒng)概述-2二、需求分析-2 1、系統(tǒng)需求-2 2、開發(fā)環(huán)境-3三、詳細(xì)設(shè)計(jì)-4四、所遇到的問題和分析解決-10五、系統(tǒng)特色及關(guān)鍵技術(shù)-11六、結(jié)論及心得體會(huì)-11七、附錄(源代碼)-12參考文獻(xiàn)-17 引言通過本課程設(shè)計(jì),使自己更加系統(tǒng)地理解和掌握數(shù)據(jù)結(jié)構(gòu)的基本概念;能自如地根據(jù)實(shí)際要求,設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并運(yùn)用C或C+語言實(shí)現(xiàn)所設(shè)計(jì)

2、的算法,編寫較大型的程序,分析和解決實(shí)際應(yīng)用問題,進(jìn)一步加深、鞏固所學(xué)專業(yè)課程的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)自己綜合分析問題和解決問題的能力。掌握C語言或C+語言獨(dú)立的編寫、調(diào)試應(yīng)用程序和進(jìn)行其它相關(guān)設(shè)計(jì)的技能。此項(xiàng)目主要是考察我們對(duì)結(jié)構(gòu)體、數(shù)組、文件等具體操作,以及對(duì)C語言語法的掌握,所以做成此項(xiàng)目要求比較高的設(shè)計(jì)要求,對(duì)整體有很熟悉的概括,同時(shí)調(diào)試過程也是很重要的,對(duì)程序界面的要求也比較高,要設(shè)計(jì)的合理同時(shí)也要美觀一點(diǎn),能夠人性化的描述清楚你的各個(gè)功能,一目了然,對(duì)其他用戶使用本程序簡(jiǎn)單易懂,這才能成本程序或本系統(tǒng)是成功的。這個(gè)設(shè)計(jì)能夠練習(xí)我們的理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方

3、法,掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法,學(xué)會(huì)調(diào)試一個(gè)比較長(zhǎng)的程序的基本方法,同時(shí)掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力。 1、 系統(tǒng)概述 1、課程設(shè)計(jì)應(yīng)完成的工作 (1)編寫算法 (2)算法測(cè)試,并有具體的測(cè)試結(jié)果和結(jié)果分析 (3)撰寫課程報(bào)告,內(nèi)容包括: 封面 目錄 課程設(shè)計(jì)報(bào)告正文 使用說明 參考文獻(xiàn) 2、總體設(shè)計(jì)工作(包含幾大功能模塊) (1)按藥品編號(hào)查詢 (2)按藥品名稱查詢 (3)按藥品價(jià)格查詢(4)按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序 (5)按總分降序(選擇)排序 (6)退出2、 需求分析 1、系統(tǒng)需求(1) 問題描述: 該系統(tǒng)實(shí)現(xiàn)對(duì)若干個(gè)大藥品的種類進(jìn)行管理。至少包括以下信息: 藥品編號(hào)、名稱、

4、價(jià)格、功效。 (2)功能要求:1使用中文菜單,界面設(shè)計(jì)和用戶輸入輸出要人性化些;2具有數(shù)據(jù)刪除功能,能最終從文件中刪除;3排序功能,根據(jù)自己設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)排序算法4具有多種查詢(如按編號(hào)查詢、按名稱查詢、按價(jià)格查詢等)及輸出功能;5藥品信息的修改(比如修改藥品名稱,修改藥品的編號(hào)) (3)說明: 功能各方面越完善越好 自定義的數(shù)據(jù)結(jié)構(gòu)可以使用數(shù)組,鏈表,樹等,然后根據(jù)不同的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)不同的排序,查找算法。其中,排序算法至少有兩種,可以使用多種數(shù)據(jù)結(jié)構(gòu)來存放數(shù)據(jù),然后在其上使用不同的排序算法。 若用數(shù)組,必須動(dòng)態(tài)分配空間。(4)、輸入輸出的形式本系統(tǒng)是一個(gè)藥品成績(jī)管理系統(tǒng),采用VC+6

5、.0 編譯器作為開 發(fā)環(huán)境,這個(gè)環(huán)境是我們?cè)趯W(xué)習(xí)C+的平臺(tái)。輸入數(shù)據(jù)類型主要是char、int、float等數(shù)據(jù)類型,輸入內(nèi)容包括:藥品編號(hào)、藥品名稱、藥品價(jià)格、藥品功效。用戶在輸入藥品數(shù)據(jù)時(shí)要保證輸入數(shù)據(jù)格式的正確性,系統(tǒng)不會(huì)自動(dòng)檢測(cè)輸入的數(shù)據(jù)是否正確,輸出形式與輸入形式類似,根據(jù)需要可以選擇顯示輸入的各項(xiàng)內(nèi)容。顯示內(nèi)容包括:藥品編號(hào)、藥品名稱、藥品價(jià)格、藥品功效。2、 開發(fā)環(huán)境Visual C+不僅僅是是一個(gè)C+編譯器,而是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境,這種環(huán)境開發(fā)出來的軟件穩(wěn)定性好、可移植性強(qiáng),可以編制各種各樣的Windows應(yīng)用程序。三、詳細(xì)設(shè)計(jì)1、大概設(shè)計(jì)模塊(

6、1)先編入系統(tǒng)所需的庫函數(shù),從而使程序可運(yùn)行。#include <stdio.h>#include <strong.s>#include <stdlib.h>#include <time.h>#include <conio.h> /文件和標(biāo)準(zhǔn)控制臺(tái)的輸入輸出(2) Main()函數(shù)的設(shè)計(jì) 在main()函數(shù)中主要運(yùn)用switch()-case選擇判斷語句來調(diào)用相關(guān)功能模塊。系統(tǒng)的運(yùn)行是在一個(gè)永真的循環(huán)里進(jìn)行的,只有在主界面并選擇“退出”時(shí),才會(huì)跳出永真循環(huán),并退出程序。(3) 主界面的設(shè)計(jì) 在主界面中包括“輸入藥品信息并保存到文件 讀

7、取文件并輸出藥品信息 插入新藥品信息 修改藥品信息 刪除藥品信息。之所以設(shè)計(jì)這麼一個(gè)主界面,一是因?yàn)槟苁褂脩魧?duì)程序操作的流程更加清晰簡(jiǎn)明,二是保證了用戶同時(shí)只能對(duì)一個(gè)文件進(jìn)行操作系統(tǒng)的要求,保證了系統(tǒng)不會(huì)打開文件紊亂或者出現(xiàn)致命的錯(cuò)誤。再加上相應(yīng)的顏色函數(shù):system(“color 3F”)從而成功使系統(tǒng)界面背景顏色與字體分別變成藍(lán)色與白色。每個(gè)函數(shù)體如下:int main() /主函數(shù)system("color 3F");int c;printf("ttt*nn");printf("ttt 歡迎使用藥品信息管理系統(tǒng)!nn");pr

8、intf("ttt*nn");doprintf("ttt 1->輸入信息n");printf("ttt 2->刪除信息n");printf("ttt 3->查找信息n");printf("ttt 4->瀏覽信息n");printf("ttt 5->退出系統(tǒng)n");printf("請(qǐng)選擇您的操作n");scanf("%d",&c);switch(c)case 1:add();break;case 2:

9、del();break;case 3:search();break;case 4:traverse();break;case 5:break;default:printf("錯(cuò)誤選擇,請(qǐng)重選!n");break;while(c!=5);return 0; 主界面:void add() /錄入藥品int i=0,k,N;printf("t歡迎進(jìn)入藥品信息的錄入!n");printf("t請(qǐng)輸入要錄入信息的藥品的數(shù)量!n");scanf("%d",&N);for(i=1;i<=M;i+) if(stui.

10、flag!=1) k=i;break;for(i=k;i<k+N;i+)stui.flag=1;printf("請(qǐng)輸入第%d個(gè)藥品的編號(hào):",i);scanf("%s",stui-1.bnum);printf("請(qǐng)輸入第%d個(gè)藥品的名稱:",i);scanf("%s",);printf("請(qǐng)輸入第%d個(gè)藥品的價(jià)格:",i);scanf("%s",stui-1.price);printf("請(qǐng)輸入第%d個(gè)藥品的功效:",i);sc

11、anf("%s",stui-1.function); void del() /刪除操作int i,j;char str12;printf("t歡迎進(jìn)入藥品信息的刪除!n");printf("請(qǐng)輸入要?jiǎng)h除信息的編號(hào):");scanf("%s",str); for(i=0;i<=M;i+) if(strcmp(str,stui.bnum)=0) for(j=i;j<=M;j+) stuj=stuj+1; printf("刪除成功!n");for(int n=M;n-) if(stun.f

12、lag=1) stun.flag=0; break; break; if(i=M) printf("無此編號(hào)!n"); void search() /查找操作char str10;int k,i;printf("請(qǐng)輸入要查找藥品的編號(hào):");scanf("%s",str);for(i=0;i<M;i+)if(strcmp(str,stui.bnum)=0)k=i;break;printf("編號(hào):%st名稱:%st價(jià)格:%st功效:%sn",stuk.bnum,,stuk.price,stu

13、k.function); void traverse() /瀏覽操作int k,i;for(i=1;i<=M;i+)if(stui.flag=0)k=i-1;break;for(i=0;i<k;i+)printf("編號(hào):%st名稱:%st價(jià)格:%st功效:%sn",stui.bnum,,stui.price,stui.function); 2、設(shè)計(jì)思想(1)確定語言算法 由于之前都沒有做過類似的設(shè)計(jì),所以一時(shí)間不能夠確定到底使用何種語言來設(shè)計(jì)本系統(tǒng),所以在網(wǎng)上看了一些其他人設(shè)計(jì)的程序,鏈表的、數(shù)組的,C+的,各種各樣的,也不知如何選擇,但是仔

14、細(xì)地看了其中的設(shè)計(jì)思想,最終還是用C和指針數(shù)組的來做,一是覺得本人對(duì)鏈表掌握的不是很熟練,那么在設(shè)計(jì)過程中容易產(chǎn)生不能理解的錯(cuò)誤,耽誤時(shí)間,二是想運(yùn)用C,可以鞏固一下所學(xué)的數(shù)據(jù)結(jié)構(gòu)的知識(shí),之前做實(shí)驗(yàn)的時(shí)候一直用C來做,都沒怎么用所學(xué)的知識(shí),這時(shí)候想練練。就這樣確定了整體的結(jié)構(gòu)算法。(2) 確定程序主要功能模塊 這個(gè)就比較簡(jiǎn)單了,主要是根據(jù)系統(tǒng)設(shè)計(jì)的說明及要求來設(shè)計(jì),從而設(shè)計(jì)了十大功能模塊,有文件操作,有系統(tǒng)維護(hù)功能,排序和統(tǒng)計(jì)功能,有輸入輸出等基本功能,比較人性化,添加了較多的提示語。這個(gè)程序的主要功能時(shí)輸入藥品的功效,名稱,價(jià)格和編號(hào)。(3) 系統(tǒng)結(jié)構(gòu)體的設(shè)計(jì)struct studentch

15、ar bnum12; /編號(hào)char name12; /藥品名稱char price8; /價(jià)格char function100; /功效int flag;stuM;4、 所遇到的問題和分析解決1、 存在的不足本藥品信息管理系統(tǒng)由十大模塊組成,每個(gè)模塊相互聯(lián)系又相互獨(dú)立。這個(gè)藥品信息管理系統(tǒng)存在著很多不足之處,由于自己本身編程能力的問題,這個(gè)系統(tǒng)可以實(shí)現(xiàn)的功能非常有限。只能實(shí)現(xiàn)藥品信息管理系統(tǒng)最基本的功能,可以進(jìn)行簡(jiǎn)單的輸入、輸出藥品信息,查詢和修改藥品信息。而且在每個(gè)模塊也有不足的地方,比如在輸入藥品資料時(shí),對(duì)每個(gè)信息項(xiàng)沒有嚴(yán)格的規(guī)定,可以輸入任何的字符。這有待以后努力,更詳盡的實(shí)現(xiàn)模塊的功

16、能。2、 指針數(shù)組的使用就是在插入藥品記錄模塊中,另一個(gè)指針數(shù)組的定義,之前做的時(shí)候沒有注意到這點(diǎn),結(jié)果所做的修改不能夠保存到文件,之后操作的時(shí)候也沒有顯示所做修改的記錄,之后找了資料看了之后才知道,是變量的問題,所以最后作了修改,加了一個(gè)另外的指針數(shù)組。3、 細(xì)節(jié)方面其實(shí)在有些細(xì)節(jié)方面還是要特別注意啊,比如分號(hào)的添加,函數(shù)的返回值等問題,雖然容易改掉,但是很容易養(yǎng)成不好的習(xí)慣,而且還會(huì)浪費(fèi)時(shí)間,所以在一開始寫的時(shí)候就要很仔細(xì),這樣才能保證程序編的精細(xì),同時(shí)若出現(xiàn)很多這樣的錯(cuò)誤的話,在編寫程序的時(shí)候也會(huì)心里煩的,所以在編程的時(shí)候要認(rèn)真仔細(xì)。4、 內(nèi)存的分配問題 對(duì)于初學(xué)者的話對(duì)內(nèi)存的分配和釋放

17、問題是比較抽象的和模糊的問題,在排序是之前就出現(xiàn)了交換數(shù)據(jù)困難的問題,以及內(nèi)存分配空間繁瑣釋放空間不及時(shí)的問題,造成空間的浪費(fèi),使得程序運(yùn)行時(shí)效率較低,因此最后采用了順序存儲(chǔ)記錄的方式,這就能改變前面所出現(xiàn)的問題。5、 較小的問題方面 其余的就沒什么比較大的問題了,基本上只要細(xì)心一點(diǎn)的話就可以正確調(diào)試了。5、 系統(tǒng)特色及關(guān)鍵技術(shù) 其實(shí)在本程序的設(shè)計(jì)過程當(dāng)中,沒有很吸引人的關(guān)鍵技術(shù),因?yàn)槲覀冃〗M的C語言或C+語言都不是學(xué)的很好,所以當(dāng)初設(shè)計(jì)的時(shí)候就只是想把功能都實(shí)現(xiàn)就好了,盡可能的把所要求的功能都編進(jìn)程序,這樣就覺得很滿足了。所以都是設(shè)計(jì)的比較簡(jiǎn)單易懂的語言,這樣能夠使人更明白一些,所以就沒有時(shí)

18、間去細(xì)細(xì)地去設(shè)計(jì)程序。本程序要說有什么值得說的,那就只有人性化這點(diǎn)了,在設(shè)計(jì)成學(xué)的時(shí)候,因?yàn)槲覀兣屡炝?,所以添加了很詳盡的提示,這樣在編程的過程中或調(diào)試的時(shí)候都能夠比較快的運(yùn)行。還有就是盡可能的應(yīng)用了while語句和switch-case語句,這兩個(gè)語句在之前不是很常用,所以在這個(gè)程序中試煉了一下,雖然在編寫的過程中總是出錯(cuò),但還是成功的用好了,也使程序有條理一些。我們也知道可能別人設(shè)計(jì)的程序比我們弄得還要好,但是在我們所學(xué)的知識(shí)中成功的應(yīng)用了這些,我們覺得這就是好事,就是進(jìn)步。6、 結(jié)論及心得體會(huì)組員分工:負(fù)責(zé)查找有關(guān)設(shè)計(jì)藥品管理設(shè)計(jì)程序的資料,并進(jìn)行篩選,并負(fù)責(zé)撰寫課程設(shè)計(jì)模板。組員分工

19、:對(duì)篩選后得到的資料,運(yùn)用C語言在Microsoft Visual C+ 6.0環(huán)境中進(jìn)行編寫一個(gè)藥品管理系統(tǒng)程序,和對(duì)程序進(jìn)行調(diào)試,作出修改,最后對(duì)程序進(jìn)行測(cè)試,得出運(yùn)行結(jié)果,和對(duì)課程設(shè)計(jì)的內(nèi)容進(jìn)行修改和補(bǔ)充。 程序設(shè)計(jì)時(shí)所面臨的問題:在藥品刪除的程序的實(shí)現(xiàn)中,當(dāng)輸入多組藥品信息后,在多組藥品進(jìn)行刪除時(shí),程序只能正確刪除第一組藥品信息,而不能正確刪除第二組及之后的藥品信息。最后正確的解決是通過修改for(j=i;j<=M;j+) stuj=stuj+1;printf("刪除成功!n");for(int n=M;n-) if(stun.flag=1)stun.flag

20、=0;break;break;中的for(j=i;j<=M;j+) stuj=stuj+1;才使刪除操作可以正常實(shí)現(xiàn)了。 經(jīng)過幾天多次的程序修改,程序終于可以正確運(yùn)行了,雖然有些疲憊,但還是有很多的收獲的,像計(jì)算機(jī)組成原理的課設(shè)一樣,讓我們我又一次鞏固了所學(xué)到的知識(shí),之前的學(xué)習(xí)只是停留在理論基礎(chǔ)上,現(xiàn)在通過我們自己動(dòng)手操作試驗(yàn)后,才是真正的理解及體會(huì)。C也學(xué)了近一年,有很多知識(shí)都是似懂非懂,通過平時(shí)上機(jī)操作,也了解了一些,但讓我們有了更深的理解和更好的認(rèn)識(shí),則是在這次的課設(shè)上,之前的困惑也通過這次的課設(shè)解決了一些,雖然還是不能夠全面的理解,但是有進(jìn)步就很高興。 在課程設(shè)計(jì)之前,因?yàn)橛辛司C

21、合實(shí)驗(yàn)的經(jīng)驗(yàn)與教訓(xùn),明白了寫代碼這一步是非常重要的,因?yàn)楫?dāng)你把代碼輸進(jìn)去之后,并編譯讓其運(yùn)行,發(fā)現(xiàn)通過不了,再來檢查出問題,是很費(fèi)費(fèi)力的事情,因此分析和規(guī)劃代碼是很重要的,最重要的是要把邏輯結(jié)構(gòu)寫好,這樣就不會(huì)出現(xiàn)大問題,寫代碼就要先找出核心的內(nèi)容,用多種方法來實(shí)現(xiàn)核心部分,這樣可以盡可能的避免發(fā)現(xiàn)邏輯或編譯不支持的錯(cuò)誤。 7、 附錄(源代碼)#include<stdio.h>#include<string.h>#include<stdlib.h>#define M 100struct studentchar bnum12;char name12;char

22、price8;char function100;int flag;stuM;void add();void del();void search();void traverse();int main()system("color 3F");int c;printf("ttt*nn");printf("ttt 歡迎使用藥品信息管理系統(tǒng)!nn");printf("ttt*nn");doprintf("ttt 1->輸入信息n");printf("ttt 2->刪除信息n"

23、;);printf("ttt 3->查找信息n");printf("ttt 4->瀏覽信息n");printf("ttt 5->退出系統(tǒng)n");printf("請(qǐng)選擇您的操作n");scanf("%d",&c);switch(c)case 1:add();break;case 2:del();break;case 3:search();break;case 4:traverse();break;case 5:break;default:printf("錯(cuò)誤選擇

24、,請(qǐng)重選!n");break;while(c!=5);return 0;void add()int i=0,k,N;printf("t歡迎進(jìn)入藥品信息的錄入!n");printf("t請(qǐng)輸入要錄入信息的藥品的數(shù)量!n");scanf("%d",&N);for(i=1;i<=M;i+) if(stui.flag!=1) k=i;break;for(i=k;i<k+N;i+)stui.flag=1;printf("請(qǐng)輸入第%d個(gè)藥品的編號(hào):",i);scanf("%s",stui-1.bnum);printf("請(qǐng)輸入第%d個(gè)藥品的名稱:",i);scanf("%s",);printf("請(qǐng)輸入第%d個(gè)藥品的價(jià)格:",i);scanf("%s",stui-1.price);printf("請(qǐng)輸入第%d個(gè)藥品的功效:",i);scanf("%s",stui-1.function); void del()int i,j;char str12;printf("t歡迎進(jìn)入藥品信息的刪除!n&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論