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

下載本文檔

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

文檔簡介

課程設(shè)計課程名稱程序設(shè)計課程設(shè)計班級與班級代碼2011級信息管理1班專業(yè)信息管理指導(dǎo)教師:胡玉平姓名:藍(lán)俊杰提交日期:2012年6月23日廣東商學(xué)院教務(wù)處制姓名藍(lán)俊杰課程設(shè)計成績評語:評價內(nèi)容不及格及格中良優(yōu)表達(dá)精練,格式準(zhǔn)確,根本無錯別字內(nèi)容完整,思路清晰,結(jié)構(gòu)嚴(yán)謹(jǐn),設(shè)計科學(xué),可操作性強程序能完成課程設(shè)計任務(wù)書所規(guī)定的任務(wù),功能完善,獨立分析和解決問題能力較好。代碼簡潔,算法清晰,可讀性強無抄襲現(xiàn)象且課程設(shè)計報告體會深刻指導(dǎo)教師〔簽名〕年月日說明:指導(dǎo)教師評分后,課程設(shè)計交院〔系〕辦公室保存。課程設(shè)計報告正文的內(nèi)容及排版要求標(biāo)題:單位儀器設(shè)備根本信息管理軟件設(shè)計1系統(tǒng)功能要求:(一級標(biāo)題:黑體、四號)內(nèi)容:單位儀器設(shè)備根本信息管理軟件設(shè)計:采用結(jié)構(gòu)體數(shù)組或文件形式存儲每種設(shè)備的信息,每個儀器設(shè)備應(yīng)包含如下幾方面的信息:設(shè)備編號、設(shè)備名稱、設(shè)備單價、購進(jìn)年代、生產(chǎn)廠家、該設(shè)備數(shù)量、可用性。軟件由主函數(shù)〔含歡送界面〕+以下5個功能模塊組成:〔1〕購進(jìn)功能〔被購進(jìn)設(shè)備數(shù)量增x〕;〔2〕顯示已有設(shè)備;〔3〕報廢功能〔對“可用性”信息為“否”的設(shè)備報廢,被報廢設(shè)備數(shù)減x〕;〔3〕查找功能〔需指定設(shè)備號或設(shè)備名〕;〔5〕統(tǒng)計功能〔統(tǒng)計每種設(shè)備可用數(shù)、不可用數(shù)〕;〔6〕退出程序的運行。2系統(tǒng)總體設(shè)計思想〔1〕開發(fā)與設(shè)計的總體思想內(nèi)容例如:單位儀器設(shè)備根本信息管理軟件算法說明:STEP1預(yù)處理,定義結(jié)構(gòu)體STEP2進(jìn)入歡送界面STEP3選擇某一種功能STEP4根據(jù)提示輸入一個數(shù)字STEP5對于輸入的數(shù)字編輯關(guān)于購進(jìn)、報廢、查找、統(tǒng)計功能的函數(shù)STEP6如果輸入的字母表示退出,退出系統(tǒng)〔2〕系體模塊結(jié)構(gòu)圖歡送界面主菜單歡送界面主菜單購進(jìn)設(shè)備 查找設(shè)備 報廢設(shè)備 修改設(shè)備 顯示程序 保存設(shè)備退出讀取設(shè)備退出讀取設(shè)備〔3〕系統(tǒng)文件及函數(shù)組成、功能(參考P154的表12-1)源文件函數(shù)名或其他成分功能facility.cmain總控函數(shù)select菜單項選擇擇menu_select菜單處理quit結(jié)束運行Facility_add_sum.cshowTable打印表頭show顯示所有的設(shè)備信息addfacility在表尾追加信息facility_Modify_remove.cfindRecord查找到指定的信息seekfacility查詢指定設(shè)備的信息removefacility報廢設(shè)備modifyfacility修改設(shè)備facility.h常數(shù)提供常數(shù)結(jié)構(gòu)聲明設(shè)備結(jié)構(gòu)庫函數(shù)及函數(shù)原型聲明引用庫函數(shù)及函數(shù)facility_save_load.csaveRecords存儲信息loadRecords讀取信息3系統(tǒng)詳細(xì)設(shè)計思想〔1〕函數(shù)的描述內(nèi)容包括:分模塊〔函數(shù)〕簡述其功能;函數(shù)中使用的各變量的類型及作用等〔可參考材P155的寫法〕。1.顯示所有設(shè)備信息函數(shù)函數(shù)原型:voidshow(void)功能:顯示內(nèi)存里的記錄信息參數(shù):void返回值:void工作方式:從頭部開始逐個顯示記錄內(nèi)容。要求:報告是否有記錄及記錄條數(shù)和內(nèi)容。2.購進(jìn)設(shè)備函數(shù)函數(shù)原型:voidaddfacility(void)功能:增加記錄參數(shù):void返回值:void工作方式:從尾部開始逐個追加記錄。要求:將新記錄追加在記錄尾部,并對記錄進(jìn)行計數(shù)。3.顯示所有設(shè)備信息函數(shù)函數(shù)原型:voidshowTable(void)功能:輸出表頭信息參數(shù):void返回值:void工作方式:輸出一行表頭信息。要求:輸出一行表頭信息。4.報廢設(shè)備函數(shù)函數(shù)原型:voidremovefacility(void)功能:把所選的儀器報廢,被報廢設(shè)備數(shù)減x。參數(shù):void返回值:void工作方式:根據(jù)給定的關(guān)鍵字,查找符合的記錄并將報廢的設(shè)備刪除。要求:將報廢的設(shè)備數(shù)減去。5.顯示所有設(shè)備信息函數(shù)函數(shù)原型:intfindRecord(char*target,inttargetType,intfrom)功能:查找指定的記錄參數(shù):char*target:欲查找記錄的某一項與target相同返回值:inttargetType:說明通過哪項來查找,0為編號,1為名稱。intfrom:從第from個記錄開始找。工作方式:根據(jù)給定的關(guān)鍵字,查找符合記錄的序號。要求:找不到那么返回-1.6.查詢指定設(shè)備的信息函數(shù)函數(shù)原型:voidseekfacility(void)功能:查詢指定設(shè)備的信息參數(shù):void返回值:void工作方式:可以按照編號、名稱來查詢要求: 打印查詢到的設(shè)備的信息7.修改設(shè)備信息函數(shù)原型:voidmodifyfacility(void)功能:修改指定設(shè)備的信息參數(shù):void返回值:void工作方式:修改設(shè)備的信息要求:報告是否有記錄及記錄條數(shù)和內(nèi)容8、文件存儲操作函數(shù)函數(shù)原型:intsaveRecords(void)功能:把信息存儲進(jìn)指定文件中參數(shù):int返回值:void工作方式:輸入文件名字并保存要求:有空間存儲9、文件讀取操作函數(shù)函數(shù)原型:intloadRecords(void)功能:從指定文件中讀取出的記錄參數(shù):int返回值:void工作方式:輸入已經(jīng)存在的文件名字來讀取文件中的信息要求:已經(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()功能:接收用戶選擇的命令代碼參數(shù):void返回值:int工作方式:返回命令代碼的整數(shù)值要求:只允許選擇規(guī)定鍵,如果輸入不合要求,那么提醒用戶重新輸入13.結(jié)束程序運行函數(shù)函數(shù)原型:voidquit(void)功能:結(jié)束程序運行參數(shù):void返回值:void工作方式:根據(jù)要求決定在退出前是否將修改的記錄存入文件要求:結(jié)束運行之前,詢問是否對修改的記錄進(jìn)行存儲14.頭文件函數(shù)原型:device.h功能:聲明函數(shù)原型,包含文件及自定義宏和數(shù)據(jù)結(jié)構(gòu)參數(shù):void返回值:void要求:報告是否能正常翻開文件執(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〕購進(jìn)新設(shè)備功能而在于設(shè)備數(shù)量大于100臺和小于100臺的處理上,大于100臺那么直接輸入可用設(shè)備的數(shù)目,而對于小于100臺,那么逐臺輸入每臺的可用性不可用性?!?〕顯示已有設(shè)備〔5〕報廢設(shè)備報廢功能也可以按照名字和編號來報廢,報廢前還會打印出將要被報廢的設(shè)備信息再一次詢問操作者是否要刪除該設(shè)備。〔6〕查找設(shè)備按編號查找按設(shè)備名稱查找〔7〕保存設(shè)備信息〔8〕讀取設(shè)備信息本人在程序設(shè)計中感想本人在程序設(shè)計的課程設(shè)計中感受到:很多的函數(shù)設(shè)計與學(xué)生管理系統(tǒng)還是有挺大的差異的。通過設(shè)置密碼可改變背景和字體顏色的設(shè)計,讓我懂得了C語言還是有很多我沒有了解到的地方,通過互聯(lián)網(wǎng)上的資源我們可以懂得的更多。而遇到不懂的地方就要耐心的讀懂,實在不懂的就要謙虛地問同學(xué)和老師,例如在程序設(shè)計過程中scanf語句與getchar()語句混搭容易出現(xiàn)跳句,需要不斷的修改來完善。將保存文件語句和讀取文件語句穿插也需要注意,當(dāng)記錄為0時直接調(diào)用saveRecord()語句是保存不了的,所以需要再修改。通過實驗讓我更加深刻學(xué)習(xí)到了C語言的好處。5結(jié)束語C語言的程序設(shè)計實驗的成功實驗,靠得不僅僅是自己的努力,還有同學(xué)的幫助,當(dāng)然最重要的還是老師的耐心解答。參考文獻(xiàn)[1]譚浩強,C程序設(shè)計〔第二版〕,北京:清華大學(xué)出版社,2001.1〔左對齊,宋體,五號〕[2]陳朔鷹,C語言程序設(shè)計習(xí)題集,北京:人民郵電出版社,2003.6facility.h#ifndefH_STUDENT_HH//如果沒有定義H_STUDENT_HH,繼續(xù)執(zhí)行#defineH_STUDENT_HH//定義H_STUDENT_HH,可防止重復(fù)編繹#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>//頭文件包含#defineINITIAL_SIZE5 //數(shù)組初始大小#defineINCR_SIZE5 //數(shù)組每次增加的大小//可根椐系統(tǒng)使用需要的常量定義structfacility_info{ charnumber[20]; //設(shè)備編號 charname[20]; //設(shè)備名稱 charmanufactory[20];//設(shè)備生產(chǎn)廠家 charyear[20];//設(shè)備購進(jìn)年代 floatgetnumbers;//設(shè)備購進(jìn)數(shù)目floatusable;//可用設(shè)備 floatprice;//設(shè)備單價};typedefstructfacility_infoSBInfo;//定義一個類型名SBInfo代表定義的結(jié)構(gòu)體shebei_infoexternintnumStus; //記錄的設(shè)備數(shù)externSBInfo*records; //記錄設(shè)備信息的數(shù)組指針externintarraySize; //數(shù)組大小externcharsavedTag;//共享的全局變量定義voidselect(void);intmenu_select(void);voidaddfacility(void);voidmodifyfacility(void);voidshow(void);voidseekfacility(void);voidremovefacility(void);voidquit(void);voidshowTable(void);intfindRecord(char*target,inttargetType,intfrom);intgetIndex(floatsum);intsaveRecords(void);intloadRecords(void);voidcopyRecord(SBInfo*hum,SBInfo*orc);//函數(shù)申明,注意()里必須包含對應(yīng)函數(shù)形參類型#endif//H_STUDENT_HHfacility.c#include"facility.h"#include<conio.h>/***************************初始化**************************/intnumStus=0; //記錄的學(xué)生數(shù)SBInfo*records=NULL; //記錄學(xué)生信息的數(shù)組intarraySize; //數(shù)組大小charch1[15],ch2[15]={"JJ"};charsavedTag=0; //信息是否已保存的標(biāo)志,1為未保存,0為已保存/***************************主函數(shù)**************************/intmain(){ system("color9"); //初始化數(shù)組 records=(SBInfo*)malloc(sizeof(SBInfo)*INITIAL_SIZE);//給數(shù)組分配StuInfo分配INITIAL_SIZE個記錄空間大小 if(records==NULL) { printf("memoryfail!"); exit(-1);//如果內(nèi)存空間不夠分配,退出程序 } arraySize=INITIAL_SIZE;printf("*************************************************************************\n");printf("*callmeJJSINGLEJJBIRTHDAY*\n");printf("*lovelove**handsome19920929*\n");printf("**********\n");printf("*********\n");printf("***QQ:496798140*****\n");printf("***嘿我是藍(lán)俊杰*****\n");printf("***QQQQQQ*********\n");printf("*:150QQQQQQ673798673798*\n");printf("*15593798QQQQQQ*******\n");printf("***\n");printf("****\n");printf("**歡送使用儀器設(shè)備根本信息管理程序**\n");printf("****\n");printf("**設(shè)計者藍(lán)俊杰1251101121**\n");printf("**********\n");printf("**********\n");printf("************\n");printf("**************************************************\n");printf("************************************************\n");printf("******\n");printf("******\n"); printf("\n"); for(;;) {printf("\n進(jìn)入系統(tǒng)的密碼是:"); gets(ch1); if(strcmp(ch1,ch2)==0)break; elseprintf("\nSORRY!密碼錯啦T_T!\n"); } printf("\n\t\t歡送使用設(shè)備管理系統(tǒng)!\t\n"); select();}/***************************菜單處理函數(shù)**************************/voidselect(void){ for(;;){ switch(menu_select()) { case1: addfacility(); break; case2: seekfacility(); break; case3: removefacility(); break; case4: modifyfacility(); break; case5: show(); break; case6: saveRecords(); break; case7: loadRecords(); break;case8: quit(); } }}/*****************************菜單項選擇擇函數(shù)menu_select****************************/intmenu_select(){ chars[2]; intcn=0; printf("\n");printf("\t1.購進(jìn)設(shè)備\n"); printf("\t2.查找設(shè)備\n"); printf("\t3.報廢設(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ù)字對應(yīng)功能選擇,請選1-8:"); for(;;) { gets(s); cn=atoi(s); if(cn<1||cn>8)printf("\n\t輸入錯誤,重選1-8:"); elsebreak; } returncn;}/****************************************結(jié)束運行,退出**參數(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);}facility_add_sum.c#include"facility.h"/*********************打印表頭********************/floatgetnumbers,usenumbers_1,usenumbers_2;floatunusable,usable;voidshowTable(void){ printf("\n\t編號\t名稱\t廠家"); printf("\t年代\t單價\t數(shù)量\t可用數(shù)\n");}/************************顯示所有的設(shè)備信息***********************/voidshow(void){ inti; if(numStus==0) { printf("\n沒有可供顯示的記錄!\n"); return; } showTable(); if(getnumbers<=100) {for(i=0;i<numStus;i++) { //打印設(shè)備的信息 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); } } elseif(getnumbers>100) { for(i=0;i<numStus;i++) { //打印設(shè)備的信息 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); } }}/******************************在當(dāng)前表的末尾增加新的信息*結(jié)果:records中將記錄新的信*息,如果數(shù)組大小不夠,會重*新申請數(shù)組空間*****************************/voidaddfacility(void){ charstr[10]; floatunusable,usable; int j; floatgetnumbers,usenumbers_1; floatprice;if(numStus==0) printf("\n原來沒有記錄,現(xiàn)在建立新表\n"); else printf("\n下面在當(dāng)前表的末尾增加新的信息\n"); while(1)//()中為1表示無條件反復(fù)循環(huán) { printf("您將要添加一組信息,確定嗎?(Y/n)"); gets(str); if(str[0]=='n'||str[0]=='N')//不再添加新的信息 break; if(numStus>=arraySize)//現(xiàn)在的數(shù)組空間缺乏,需要重新申請空間 { records=realloc(records,(arraySize+INCR_SIZE)*sizeof(SBInfo));//新空間大小變?yōu)?arraySize+INCR_SIZE)記錄大小,即在原來根底上增加INCR_SIZE個記錄大小 if(records==NULL) { printf("memoryfailed!"); exit(-1); } arraySize=arraySize+INCR_SIZE;//arraySize修改為新空間可保存的記錄數(shù) } printf("\n請輸入設(shè)備編號:"); gets(records[numStus].number); printf("請輸入設(shè)備名稱:"); gets(records[numStus].name);printf("請輸入設(shè)備購進(jìn)年代:"); gets(records[numStus].year);printf("請輸入設(shè)備生產(chǎn)廠家:");gets(records[numStus].manufactory);printf("請輸入設(shè)備單價:");gets(str); price=(float)atof(str); records[numStus].price=price; printf("購進(jìn)設(shè)備數(shù)量是否大于100臺?(Y/N)"); gets(str); if(str[0]=='y'||str[0]=='Y') { printf("\n請輸入購進(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("請輸入購進(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臺設(shè)備的可用性為:(設(shè)備不可用請輸入0,設(shè)備可用請輸入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++;//輸入一設(shè)備記錄后,設(shè)備數(shù)加1 } printf("\n現(xiàn)在一共有%d條設(shè)備信息\n",numStus); savedTag=1;}facility_Modify_remove.c#include"facility.h"/***************************************************************查找指定的記錄*參數(shù): target:欲查找記錄的某一項與target相同* targetType:說明通過哪一項來查找,0為設(shè)備編號,1為設(shè)備名稱* from:從第from個記錄開始找*返回:找到的記錄的序號,假設(shè)找不到那么返回-1**************************************************************/intfindRecord(char*target,inttargetType,intfrom){inti;for(i=from;i<numStus;i++){if((targetType==0&&strcmp(target,records[i].number)==0)||(targetType==1&&strcmp(target,records[i].name)==0))returni;//如果找到符合條件的記錄,返回記錄號i}return-1;//如果沒有找到,返回-1}/*********************************查詢指定設(shè)備的信息*可以按照設(shè)備編號或名稱來查詢********************************/voidseekfacility(void){ charstr[5]; chartarget[20]; inttype; intcount; inti;if(numStus==0) { printf("\n沒有可供查詢的記錄\n"); return; } while(1){ printf("\n請輸入查詢的方式:〔直接輸入回車鍵那么結(jié)束查詢〕\n"); printf("1.按設(shè)備編號查找\n"); printf("2.按設(shè)備名稱查找\n"); printf("\n選擇:"); gets(str); if(str[0]=='1') { printf("\n請輸入欲查找的設(shè)備編號:"); gets(target); type=0; }elseif(str[0]=='2') { printf("請輸入欲查找的設(shè)備名稱:"); gets(target); type=1; }elsebreak; i=findRecord(target,type,0);//,從0號記錄起查找,查詢項type,查詢目標(biāo)數(shù)據(jù)項target if(i>=0) { //打印查詢到的設(shè)備的信息showTable();} count=0; while(i!=-1) { count++;//查詢到的設(shè)備數(shù)加1 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);//輸出i記錄的各個數(shù)據(jù)項i=findRecord(target,type,i+1);//從i+1條記錄起查找下一條符合條件的記錄 } if(count==0)printf("\n沒有符合條件的設(shè)備!\n");elseprintf("\n一共找到了%d種設(shè)備的信息\n\n",count); }}/*************************刪除指定的記錄************************/voidremovefacility(void){ charstr[5]; chartarget[20]; inttype; inti,j; if(numStus==0) { printf("\n沒有可供刪除的記錄\n"); return; } while(1){ printf("\n請輸入如何找到欲報廢的設(shè)備:〔直接輸入回車鍵那么結(jié)束移除操作〕\n"); printf("1.按設(shè)備編號\n"); printf("2.按設(shè)備名稱\n"); printf("\n選擇:"); gets(str); if(str[0]=='1') { printf("\n請輸入該設(shè)備的編號:"); gets(target); type=0; }elseif(str[0]=='2') { printf("請輸入該設(shè)備的名稱:"); gets(target); type=1; }elsebreak; i=findRecord(target,type,0); if(i==-1)printf("\n沒有符合條件的設(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真的要刪除該設(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;//刪除一條記錄后,保存標(biāo)志變?yōu)?,表示未保存}/******************************************將src指向的一條記錄復(fù)制給dest指向的記錄*****************************************/voidcopyRecord(SBInfo*hum,SBInfo*orc){ strcpy(orc->number,hum->number); strcpy(orc->name,hum->name); strcpy(orc->year,hum->year); strcpy(orc->manufactory,hum->manufactory); orc->price=hum->price; orc->usable=hum->usable; orc->getnumbers=hum->getnumbers;}/**************************修改指定設(shè)備的信息*************************/voidmodifyfacility(void){ charstr[5]; chartarget[20]; inttype; inti,j; floatgetnumbers,usenumbers_1,usenumbers_2,usable,unusable; floatprice; intcount=0;if(numStus==0) { printf("\n沒有可供修改的記錄\n"); return; } while(1){ printf("\n請輸入想要修改的設(shè)備記錄的方式:〔直接輸入回車鍵那么結(jié)束移除操作〕\n"); printf("1.按設(shè)備編號\n"); printf("2.按設(shè)備名稱\n"); printf("\n選擇:"); gets(str); if(str[0]=='1') { printf("\n請輸入該設(shè)備的編號:"); gets(target); type=0; }elseif(str[0]=='2') { printf("請輸入該設(shè)備的名稱:"); gets(target); type=1; }elsebreak; i=findRecord(target,type,0); if(i==-1)printf("\n沒有符合條件的設(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下面請重新輸入該設(shè)備的信息:\n"); printf("\n請輸入設(shè)備編號:"); gets(records[i].number); printf("請輸入設(shè)備名稱:"); gets(records[i].name);printf("請輸入設(shè)備購進(jìn)年代:"); gets(records[i].year);printf("請輸入設(shè)備生產(chǎn)廠家:");gets(records[i].manufactory);printf("請輸入設(shè)備單價:");gets(str); price=(float)atof(str); records[i].price=price; printf("購進(jìn)設(shè)備數(shù)量是否大于100臺?(Y/N)\n"); gets(str); if(str[0]=='y'||str[0]=='Y') { printf("請輸入購進(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("請輸入購進(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臺設(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;}facility_save_load.c#include"facility.h"/***********************************文件存儲操作函數(shù)*結(jié)果:數(shù)組records被保存至指定文件*返回:成功0,失敗-1**********************************/intsaveRecords(){ FILE*fp; charfname[30]; if(numStus==0

溫馨提示

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

最新文檔

評論

0/150

提交評論