有代碼 信管一班 藍(lán)俊杰 單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)_第1頁(yè)
有代碼 信管一班 藍(lán)俊杰 單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)_第2頁(yè)
有代碼 信管一班 藍(lán)俊杰 單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)_第3頁(yè)
有代碼 信管一班 藍(lán)俊杰 單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)_第4頁(yè)
有代碼 信管一班 藍(lán)俊杰 單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

有代碼信管一班藍(lán)俊杰單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)有代碼信管一班藍(lán)俊杰單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)有代碼信管一班藍(lán)俊杰單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)xxx公司有代碼信管一班藍(lán)俊杰單位儀器設(shè)備基本信息管理軟件設(shè)計(jì)文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度課程設(shè)計(jì)課程名稱(chēng)程序設(shè)計(jì)課程設(shè)計(jì)班級(jí)與班級(jí)代碼2011級(jí)信息管理1班專(zhuān)業(yè)信息管理指導(dǎo)教師:胡玉平學(xué)號(hào):姓名:藍(lán)俊杰提交日期:2012年6月23日廣東商學(xué)院教務(wù)處制姓名藍(lán)俊杰課程設(shè)計(jì)成績(jī)?cè)u(píng)語(yǔ):評(píng)價(jià)內(nèi)容不及格及格中良優(yōu)表達(dá)精練,格式準(zhǔn)確,基本無(wú)錯(cuò)別字內(nèi)容完整,思路清晰,結(jié)構(gòu)嚴(yán)謹(jǐn),設(shè)計(jì)科學(xué),可操作性強(qiáng)程序能完成課程設(shè)計(jì)任務(wù)書(shū)所規(guī)定的任務(wù),功能完善,獨(dú)立分析和解決問(wèn)題能力較好。代碼簡(jiǎn)潔,算法清晰,可讀性強(qiáng)無(wú)抄襲現(xiàn)象且課程設(shè)計(jì)報(bào)告體會(huì)深刻指導(dǎo)教師(簽名)年月日說(shuō)明:指導(dǎo)教師評(píng)分后,課程設(shè)計(jì)交院(系)辦公室保存。課程設(shè)計(jì)報(bào)告正文的內(nèi)容及排版要求標(biāo)題:?jiǎn)挝粌x器設(shè)備基本信息管理軟件設(shè)計(jì)1系統(tǒng)功能要求:(一級(jí)標(biāo)題:黑體、四號(hào))內(nèi)容:?jiǎn)挝粌x器設(shè)備基本信息管理軟件設(shè)計(jì):采用結(jié)構(gòu)體數(shù)組或文件形式存儲(chǔ)每種設(shè)備的信息,每個(gè)儀器設(shè)備應(yīng)包含如下幾方面的信息:設(shè)備編號(hào)、設(shè)備名稱(chēng)、設(shè)備單價(jià)、購(gòu)進(jìn)年代、生產(chǎn)廠家、該設(shè)備數(shù)量、可用性。軟件由主函數(shù)(含歡迎界面)+下列5個(gè)功能模塊組成:(1)購(gòu)進(jìn)功能(被購(gòu)進(jìn)設(shè)備數(shù)量增x);(2)顯示已有設(shè)備;(3)報(bào)廢功能(對(duì)“可用性”信息為“否”的設(shè)備報(bào)廢,被報(bào)廢設(shè)備數(shù)減x);(3)查找功能(需指定設(shè)備號(hào)或設(shè)備名);(5)統(tǒng)計(jì)功能(統(tǒng)計(jì)每種設(shè)備可用數(shù)、不可用數(shù));(6)退出程序的運(yùn)行。2系統(tǒng)總體設(shè)計(jì)思想(1)開(kāi)發(fā)與設(shè)計(jì)的總體思想內(nèi)容示例:?jiǎn)挝粌x器設(shè)備基本信息管理軟件算法說(shuō)明:STEP1預(yù)處理,定義結(jié)構(gòu)體STEP2進(jìn)入歡迎界面STEP3選擇某一種功能STEP4根據(jù)提示輸入一個(gè)數(shù)字STEP5對(duì)于輸入的數(shù)字編輯關(guān)于購(gòu)進(jìn)、報(bào)廢、查找、統(tǒng)計(jì)功能的函數(shù)STEP6如果輸入的字母表示退出,退出系統(tǒng)(2)系體模塊結(jié)構(gòu)圖歡迎界面主菜單歡迎界面主菜單購(gòu)進(jìn)設(shè)備 查找設(shè)備 報(bào)廢設(shè)備 修改設(shè)備 顯示程序 保存設(shè)備 退出讀取設(shè)備退出讀取設(shè)備(3)系統(tǒng)文件及函數(shù)組成、功能(參考P154的表12-1)源文件函數(shù)名或其他成分功能main總控函數(shù)select菜單選擇menu_select菜單處理quit結(jié)束運(yùn)行showTable打印表頭show顯示所有的設(shè)備信息addfacility在表尾追加信息findRecord查找到指定的信息seekfacility查詢(xún)指定設(shè)備的信息removefacility報(bào)廢設(shè)備modifyfacility修改設(shè)備常數(shù)提供常數(shù)結(jié)構(gòu)聲明設(shè)備結(jié)構(gòu)庫(kù)函數(shù)及函數(shù)原型聲明引用庫(kù)函數(shù)及函數(shù)saveRecords存儲(chǔ)信息loadRecords讀取信息3系統(tǒng)詳細(xì)設(shè)計(jì)思想(1)函數(shù)的描述內(nèi)容包括:分模塊(函數(shù))簡(jiǎn)述其功能;函數(shù)中使用的各變量的類(lèi)型及作用等(可參考材P155的寫(xiě)法)。1.顯示所有設(shè)備信息函數(shù)函數(shù)原型:voidshow(void)功能:顯示內(nèi)存里的記錄信息參數(shù):void返回值:void工作方式:從頭部開(kāi)始逐個(gè)顯示記錄內(nèi)容。要求:報(bào)告是否有記錄及記錄條數(shù)和內(nèi)容。2.購(gòu)進(jìn)設(shè)備函數(shù)函數(shù)原型:voidaddfacility(void)功能:增加記錄參數(shù):void返回值:void工作方式:從尾部開(kāi)始逐個(gè)追加記錄。要求:將新記錄追加在記錄尾部,并對(duì)記錄進(jìn)行計(jì)數(shù)。3.顯示所有設(shè)備信息函數(shù)函數(shù)原型:voidshowTable(void)功能:輸出表頭信息參數(shù):void返回值:void工作方式:輸出一行表頭信息。要求:輸出一行表頭信息。4.報(bào)廢設(shè)備函數(shù)函數(shù)原型:voidremovefacility(void)功能:把所選的儀器報(bào)廢,被報(bào)廢設(shè)備數(shù)減x。參數(shù):void返回值:void工作方式:根據(jù)給定的關(guān)鍵字,查找符合的記錄并將報(bào)廢的設(shè)備刪除。要求:將報(bào)廢的設(shè)備數(shù)減去。5.顯示所有設(shè)備信息函數(shù)函數(shù)原型:intfindRecord(char*target,inttargetType,intfrom)功能:查找指定的記錄參數(shù):char*target:欲查找記錄的某一項(xiàng)與target相同返回值:inttargetType:表明通過(guò)哪項(xiàng)來(lái)查找,0為編號(hào),1為名稱(chēng)。intfrom:從第from個(gè)記錄開(kāi)始找。工作方式:根據(jù)給定的關(guān)鍵字,查找符合記錄的序號(hào)。要求:找不到則返回-1.6.查詢(xún)指定設(shè)備的信息函數(shù)函數(shù)原型:voidseekfacility(void)功能:查詢(xún)指定設(shè)備的信息參數(shù):void返回值:void工作方式:可以按照編號(hào)、名稱(chēng)來(lái)查詢(xún)要求: 打印查詢(xún)到的設(shè)備的信息7.修改設(shè)備信息函數(shù)原型:voidmodifyfacility(void)功能:修改指定設(shè)備的信息參數(shù):void返回值:void工作方式:修改設(shè)備的信息要求:報(bào)告是否有記錄及記錄條數(shù)和內(nèi)容8、文件存儲(chǔ)操作函數(shù)函數(shù)原型:intsaveRecords(void)功能:把信息存儲(chǔ)進(jìn)指定文件中參數(shù):int返回值:void工作方式:輸入文件名字并保存要求:有空間存儲(chǔ)9、文件讀取操作函數(shù)函數(shù)原型:intloadRecords(void)功能:從指定文件中讀取出的記錄參數(shù):int返回值:void工作方式:輸入已經(jīng)存在的文件名字來(lái)讀取文件中的信息要求:已經(jīng)存在文件可供讀取10.主函數(shù)函數(shù)原型:intmain()功能:控制程序參數(shù):void返回值:void要求:管理菜單命令并完成初始化11.菜單處理函數(shù)函數(shù)原型:voidselect(void)功能:處理選擇的菜單命令參數(shù):void返回值:void工作方式:根據(jù)命令,調(diào)用相應(yīng)函數(shù)要求:給出結(jié)束信息12.菜單選擇函數(shù)函數(shù)原型:intmenu_select()功能:接收用戶(hù)選擇的命令代碼參數(shù):void返回值:int工作方式:返回命令代碼的整數(shù)值要求:只允許選擇規(guī)定鍵,如果輸入不合要求,則提醒用戶(hù)重新輸入13.結(jié)束程序運(yùn)行函數(shù)函數(shù)原型:voidquit(void)功能:結(jié)束程序運(yùn)行參數(shù):void返回值:void工作方式:根據(jù)要求決定在退出前是否將修改的記錄存入文件要求:結(jié)束運(yùn)行之前,詢(xún)問(wèn)是否對(duì)修改的記錄進(jìn)行存儲(chǔ)14.頭文件函數(shù)原型:功能:聲明函數(shù)原型,包含文件及自定義宏和數(shù)據(jù)結(jié)構(gòu)參數(shù):void返回值:void要求:報(bào)告是否能正常打開(kāi)文件執(zhí)行存入操作及存入記錄的條數(shù)15、文件(2)主要函數(shù)流程圖1.voidaddfacility(void)2.voidselect(void)3.voidshow(void)4.intfindRecord(char*target,inttargetType,intfrom)5.voidremovfacility(void)6.voidmodifyfacility(void)調(diào)試結(jié)果:(1)歡迎界面:輸入密碼(2)功能選擇菜單(3)購(gòu)進(jìn)新設(shè)備功能而在于設(shè)備數(shù)量大于100臺(tái)和小于100臺(tái)的處理上,大于100臺(tái)則直接輸入可用設(shè)備的數(shù)目,而對(duì)于小于100臺(tái),則逐臺(tái)輸入每臺(tái)的可用性不可用性。(4)顯示已有設(shè)備(5)報(bào)廢設(shè)備報(bào)廢功能也可以按照名字和編號(hào)來(lái)報(bào)廢,報(bào)廢前還會(huì)打印出將要被報(bào)廢的設(shè)備信息再一次詢(xún)問(wèn)操作者是否要?jiǎng)h除該設(shè)備。(6)查找設(shè)備 按編號(hào)查找按設(shè)備名稱(chēng)查找(7)保存設(shè)備信息(8)讀取設(shè)備信息本人在程序設(shè)計(jì)中感想本人在程序設(shè)計(jì)的課程設(shè)計(jì)中感受到:很多的函數(shù)設(shè)計(jì)與學(xué)生管理系統(tǒng)還是有挺大的差別的。通過(guò)設(shè)置密碼可改變背景和字體顏色的設(shè)計(jì),讓我懂得了C語(yǔ)言還是有很多我沒(méi)有了解到的地方,通過(guò)互聯(lián)網(wǎng)上的資源我們可以懂得的更多。而遇到不懂的地方就要耐心的讀懂,實(shí)在不懂的就要謙虛地問(wèn)同學(xué)和老師,例如在程序設(shè)計(jì)過(guò)程中scanf語(yǔ)句與getchar()語(yǔ)句混搭容易出現(xiàn)跳句,需要不斷的修改來(lái)完善。將保存文件語(yǔ)句和讀取文件語(yǔ)句穿插也需要注意,當(dāng)記錄為0時(shí)直接調(diào)用saveRecord()語(yǔ)句是保存不了的,所以需要再修改。通過(guò)實(shí)驗(yàn)讓我更加深刻學(xué)習(xí)到了C語(yǔ)言的好處。5結(jié)束語(yǔ)C語(yǔ)言的程序設(shè)計(jì)實(shí)驗(yàn)的成功實(shí)驗(yàn),靠得不僅僅是自己的努力,還有同學(xué)的幫助,當(dāng)然最重要的還是老師的耐心解答。參考文獻(xiàn)[1]譚浩強(qiáng),C程序設(shè)計(jì)(第二版),北京:清華大學(xué)出版社,(左對(duì)齊,宋體,五號(hào))[2]陳朔鷹,C語(yǔ)言程序設(shè)計(jì)習(xí)題集,北京:人民郵電出版社,#ifndefH_STUDENT_HH購(gòu)進(jìn)設(shè)備\n"); printf("\t2.查找設(shè)備\n"); printf("\t3.報(bào)廢設(shè)備\n"); printf("\t4.修改設(shè)備信息\n"); printf("\t5.顯示設(shè)備信息\n"); printf("\t6.保存設(shè)備信息\n"); printf("\t7.讀取設(shè)備信息\n"); printf("\t8.退出程序\n"); printf("\n\t左邊數(shù)字對(duì)應(yīng)功能選擇,請(qǐng)選1-8:"); for(;;) { gets(s); cn=atoi(s); if(cn<1||cn>8)printf("\n\t輸入錯(cuò)誤,重選1-8:"); elsebreak; } returncn;}/****************************************結(jié)束運(yùn)行,退出**參數(shù)量void***************************************/voidquit(void){charstr[5];if(savedTag==1){printf("\n是否保存記錄(Y/n)\n");printf("選擇:");gets(str);if(str[0]!='n'&&str[0]!='N')saveRecords();}free(records);printf("\nByeBye啦啦啦啦~\n\n");exit(0);}#include""/*********************打印表頭********************/floatgetnumbers,usenumbers_1,usenumbers_2;floatunusable,usable;voidshowTable(void){ printf("\n\t編號(hào)\t名稱(chēng)\t廠家"); printf("\t年代\t單價(jià)\t數(shù)量\t可用數(shù)\n");}/************************顯示所有的設(shè)備信息***********************/voidshow(void){ inti; if(numStus==0) { printf("\n沒(méi)有可供顯示的記錄!\n"); return; } showTable(); if(getnumbers<=100) {for(i=0;i<numStus;i++) { f\t%.f\t%.f\n",records[i].number,records[i].name,records[i].manufactory,records[i].year,records[i].price,records[i].getnumbers,records[i].usable); } } elseif(getnumbers>100) { for(i=0;i<numStus;i++) { f\t%.f\t%.f\n",records[i].number,records[i].name,records[i].manufactory,records[i].year,records[i].price,records[i].getnumbers,records[i].usable); } }}/******************************在當(dāng)前表的末尾增加新的信息*結(jié)果:records中將記錄新的信*息,如果數(shù)組大小不夠,會(huì)重*新申請(qǐng)數(shù)組空間*****************************/voidaddfacility(void){ charstr[10]; floatunusable,usable; int j; floatgetnumbers,usenumbers_1; floatprice;if(numStus==0) printf("\n原來(lái)沒(méi)有記錄,現(xiàn)在建立新表\n"); else printf("\n下面在當(dāng)前表的末尾增加新的信息\n"); while(1)umber); printf("請(qǐng)輸入設(shè)備名稱(chēng):"); gets(records[numStus].name);printf("請(qǐng)輸入設(shè)備購(gòu)進(jìn)年代:"); gets(records[numStus].year);printf("請(qǐng)輸入設(shè)備生產(chǎn)廠家:");gets(records[numStus].manufactory);printf("請(qǐng)輸入設(shè)備單價(jià):");gets(str); price=(float)atof(str); records[numStus].price=price; printf("購(gòu)進(jìn)設(shè)備數(shù)量是否大于100臺(tái)(Y/N)"); gets(str); if(str[0]=='y'||str[0]=='Y') { printf("\n請(qǐng)輸入購(gòu)進(jìn)設(shè)備數(shù)量:"); gets(str); getnumbers=(float)atof(str); records[numStus].getnumbers=getnumbers; printf("可用設(shè)備的數(shù)量有:"); gets(str); usenumbers_1=(float)atof(str); records[numStus].usable=usenumbers_1; } elseif(str[0]=='n'||str[0]=='N') { printf("請(qǐng)輸入購(gòu)進(jìn)設(shè)備數(shù)量:"); gets(str); getnumbers=(float)atof(str); records[numStus].getnumbers=getnumbers;unusable=0;usable=0; for(j=1;j<=getnumbers;j++) {printf("第%d臺(tái)設(shè)備的可用性為:(設(shè)備不可用請(qǐng)輸入0,設(shè)備可用請(qǐng)輸入1):",j); gets(str); if(str[0]=='0') { unusable=unusable+1; } elseif(str[0]=='1') { usable=usable+1; } }records[numStus].usable=usable; unusable=0;usable=0; }numStus++;umber)==0)||(targetType==1&&strcmp(target,records[i].name)==0))returni;按設(shè)備編號(hào)查找\n"); printf("2.按設(shè)備名稱(chēng)查找\n"); printf("\n選擇:"); gets(str); if(str[0]=='1') { printf("\n請(qǐng)輸入欲查找的設(shè)備編號(hào):"); gets(target); type=0; }elseif(str[0]=='2') { printf("請(qǐng)輸入欲查找的設(shè)備名稱(chēng):"); gets(target); type=1; }elsebreak; i=findRecord(target,type,0);f\t%.f\t%.f\n",records[i].number,records[i].name,records[i].manufactory,records[i].year,records[i].price,records[i].getnumbers,records[i].usable);按設(shè)備編號(hào)\n"); printf("2.按設(shè)備名稱(chēng)\n"); printf("\n選擇:"); gets(str); if(str[0]=='1') { printf("\n請(qǐng)輸入該設(shè)備的編號(hào):"); gets(target); type=0; }elseif(str[0]=='2') { printf("請(qǐng)輸入該設(shè)備的名稱(chēng):"); gets(target); type=1; }elsebreak; i=findRecord(target,type,0); if(i==-1)printf("\n沒(méi)有符合條件的設(shè)備!\n"); while(i!=-1) { showTable(); printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\n",records[i].number,records[i].name,records[i].manufactory,records[i].year,records[i].price,records[i].getnumbers,records[i].usable); printf("\n真的要?jiǎng)h除該設(shè)備嗎(y/N)"); gets(str);if(str[0]=='Y'||str[0]=='y'){ numStus--; for(j=1;j<numStus;j++) { copyRecord(&records[j+1],&records[j]); }}i=findRecord(target,type,i+1);}} savedTag=1;按設(shè)備編號(hào)\n"); printf("2.按設(shè)備名稱(chēng)\n"); printf("\n選擇:"); gets(str); if(str[0]=='1') { printf("\n請(qǐng)輸入該設(shè)備的編號(hào):"); gets(target); type=0; }elseif(str[0]=='2') { printf("請(qǐng)輸入該設(shè)備的名稱(chēng):"); gets(target); type=1; }elsebreak; i=findRecord(target,type,0); if(i==-1)printf("\n沒(méi)有符合條件的設(shè)備!\n"); while(i!=-1) { showTable(); printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\t%.f\n",records[i].number,records[i].name,records[i].manufactory,records[i].year,records[i].price,records[i].getnumbers,records[i].usable); printf("\n確定要修改該設(shè)備的信息嗎(Y/N)"); gets(str); if(str[0]=='y'||str[0]=='Y') { printf("\n下面請(qǐng)重新輸入該設(shè)備的信息:\n"); printf("\n請(qǐng)輸入設(shè)備編號(hào):"); gets(records[i].number); printf("請(qǐng)輸入設(shè)備名稱(chēng):"); gets(records[i].name);printf("請(qǐng)輸入設(shè)備購(gòu)進(jìn)年代:"); gets(records[i].year);printf("請(qǐng)輸入設(shè)備生產(chǎn)廠家:");gets(records[i].manufactory);printf("請(qǐng)輸入設(shè)備單價(jià):");gets(str); price=(float)atof(str); records[i].price=price; printf("購(gòu)進(jìn)設(shè)備數(shù)量是否大于100臺(tái)(Y/N)\n"); gets(str); if(str[0]=='y'||str[0]=='Y') { printf("請(qǐng)輸入購(gòu)進(jìn)設(shè)備數(shù)量:"); gets(str); getnumbers=(float)atof(str); records[i].getnumbers=getnumbers; printf("可用設(shè)備的數(shù)量有:"); gets(str); usenumbers_1=(float)atof(str); records[i].usable=usenumbers_1; printf("不可用設(shè)備的數(shù)量有:"); gets(str); usenumbers_2=(float)atof(str); } elseif(str[0]=='n'||str[0]=='N') { printf("請(qǐng)輸入購(gòu)進(jìn)設(shè)備數(shù)量:"); gets(str); getnumbers=(float)atof(str); records[i].getnumbers=getnumbers; unusable=0;usable=0; for(j=1;j<=getnumbers;j++) {printf("第%d臺(tái)設(shè)備的可用性為:“0”設(shè)備不可用,“1”設(shè)備可用:",j); gets(str); if(str[0]=='0') { unusable=unusable+1; } elseif(str[0]=='1') { usable=usable+1; } }records[i].usable=usable; unusable=0;usable=0; }i=findRecord(target,type,i+1);}elsebreak; } }savedTag=1;}#include""/***********************************文件存儲(chǔ)操作函數(shù)*結(jié)果:數(shù)組records被保存至指定文件*返回:成功0,失

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論