![C語言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第1頁](http://file4.renrendoc.com/view/e3753418daea1578f7bccb0327dea9bf/e3753418daea1578f7bccb0327dea9bf1.gif)
![C語言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第2頁](http://file4.renrendoc.com/view/e3753418daea1578f7bccb0327dea9bf/e3753418daea1578f7bccb0327dea9bf2.gif)
![C語言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第3頁](http://file4.renrendoc.com/view/e3753418daea1578f7bccb0327dea9bf/e3753418daea1578f7bccb0327dea9bf3.gif)
![C語言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第4頁](http://file4.renrendoc.com/view/e3753418daea1578f7bccb0327dea9bf/e3753418daea1578f7bccb0327dea9bf4.gif)
![C語言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第5頁](http://file4.renrendoc.com/view/e3753418daea1578f7bccb0327dea9bf/e3753418daea1578f7bccb0327dea9bf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《程序設(shè)計(jì)與算法綜合實(shí)習(xí)I》題目: 個(gè)人物品管理程序班級(jí): 學(xué)生學(xué)號(hào): 學(xué)生姓名: 指導(dǎo)老師: 提交時(shí)間: 2023.05.16成績: 評(píng)分項(xiàng)目得分功能完整性(40分)界面美觀性(10分)設(shè)計(jì)合理性及創(chuàng)新性(20分)答辯表現(xiàn)(20分)報(bào)告撰寫質(zhì)量(10分)華南農(nóng)業(yè)大學(xué)信息學(xué)院《個(gè)人物品管理程序》問題描述1.1問題描述設(shè)計(jì)一個(gè)個(gè)人物品管理程序,該程序具有以下功能:(1)用戶登錄:輸入用戶名和密碼,密碼對(duì)的才允許登錄。(2)錄入個(gè)人物品信息;(3)給定物品名或編號(hào),修改該個(gè)人物品信息;(4)給定物品名或編號(hào),刪除該個(gè)人物品信息;(5)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息;(6)根據(jù)輸入的分類,顯示該分類的所有物品信息;(7)根據(jù)輸入的時(shí)間,查詢過期或3月內(nèi)將過期的物品信息;(8)記錄功能:記錄各分類的物品。(9)新功能:導(dǎo)出個(gè)人物品信息至Excel表格。1.2系統(tǒng)功能分析(1)登錄功能:這是一個(gè)個(gè)人物品管理程序,具有很大的開放性,已經(jīng)注冊的用戶可以直接輸入密碼登陸系統(tǒng),沒有注冊的用戶可以根據(jù)自己的需要注冊賬戶,并輸入個(gè)人物品信息。(2)錄入個(gè)人物品信息:這個(gè)系統(tǒng)設(shè)立錄入的物品信息重要涉及物品的名稱、編號(hào)、價(jià)格、分類、生產(chǎn)日期和過期日期。(3)給定物品名或編號(hào),修改個(gè)人物品信息:要修改物品信息時(shí),輸入物品的編號(hào)或名稱查看物品信息,確認(rèn)無誤后可以選擇相應(yīng)的物品信息進(jìn)行修改。(4)給定物品名或編號(hào),刪除個(gè)人物品信息:要?jiǎng)h除物品信息時(shí),輸入物品的編號(hào)或名稱查看物品信息,確認(rèn)無誤后可以刪除該物品信息。(5)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息:輸入你想查找的物品名或編號(hào),若找到相應(yīng)物品信息,則顯示;否則提醒用戶查找的物品不存在,請(qǐng)重新輸入想要查找的物品名或編號(hào)。(6)根據(jù)輸入的分類,顯示該分類的所有物品信息:若找到則顯示該分類的物品信息,否則提醒用戶該分類不存在。(7)根據(jù)輸入的時(shí)間,查詢已過期或3個(gè)月內(nèi)將過期的物品信息:將物品的過期時(shí)間與輸入時(shí)間作比較,若過期時(shí)間與輸入時(shí)差小于3個(gè)月則輸出相應(yīng)物品信息。(8)記錄功能:記錄各分類的物品信息。(9)導(dǎo)出個(gè)人物品信息至Excel表格:每個(gè)人都可以將自己的物品信息導(dǎo)出至Excel表格,可以對(duì)自己的個(gè)人物品信息一目了然。1.3開發(fā)平臺(tái)及工具介紹我這個(gè)程序是使用Code::Blocks10.05編寫的,它是一個(gè)開放源碼的全功能的跨平臺(tái)C/C++集成開發(fā)環(huán)境,它使用了著名的的圖形界面庫wxWidgets版。它還提供了許多工程模板,涉及控制臺(tái)應(yīng)用、DirectX應(yīng)用和動(dòng)態(tài)鏈接庫等,此外它還支持用戶自定義模板;它支持語法彩色醒目顯示,支持代碼完畢,支持工程管理、項(xiàng)目構(gòu)建、調(diào)試;它還具有靈活而強(qiáng)大的配置功能。系統(tǒng)設(shè)計(jì)2.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)(1)運(yùn)營程序時(shí),一開始我設(shè)立了對(duì)系統(tǒng)進(jìn)行操作的選擇界面,涉及3個(gè)功能,一是登錄系統(tǒng),二是創(chuàng)建新賬戶,三是退出程序。用戶可以根據(jù)自己的實(shí)際情況進(jìn)行選擇,輸入相應(yīng)的操作數(shù)從而選擇不同的功能。我在這里使用了switch-case語句。當(dāng)用戶選擇了登陸系統(tǒng)或創(chuàng)建新賬戶操作時(shí),程序會(huì)規(guī)定輸入賬號(hào)(20個(gè)字符以內(nèi)),以及密碼(10個(gè)字符以內(nèi)),在輸入密碼時(shí)我使用了getch()函數(shù)(在頭文獻(xiàn)conio.h中)隱藏用戶密碼信息,當(dāng)用戶登陸成功或創(chuàng)建新用戶成功時(shí)程序就會(huì)進(jìn)入功能選擇界面;假如用戶選擇退出程序,程序運(yùn)營停止。(2)功能選擇界面,我提供了九個(gè)功能選擇,分別是錄入個(gè)人物品信息、給定物品名或編號(hào),修改該個(gè)人物品信息、給定物品名或編號(hào),刪除該個(gè)人物品信息、根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息、根據(jù)輸入的分類,顯示該分類的所有物品信息、根據(jù)輸入的時(shí)間,查詢已過期或3個(gè)月內(nèi)將過期的物品信息、記錄功能:記錄各分類的物品信息、導(dǎo)出個(gè)人物品信息至Excel表格、退出到登陸界面。根據(jù)用戶輸入的操作數(shù),我使用了switch語句實(shí)現(xiàn)相應(yīng)功能。(3)錄入個(gè)人物品信息:錄入的物品信息涉及物品的名稱、編號(hào)、價(jià)格、分類、生產(chǎn)日期和過期日期。我一方面將信息錄入鏈表中,之后用自定義的保存函數(shù)Save()將信息存入文獻(xiàn)中。(4)給定物品名或編號(hào),刪除個(gè)人物品信息:先輸入要?jiǎng)h除的物品名或編號(hào),之后再通過文獻(xiàn)指針在文獻(xiàn)中找到相應(yīng)物品信息并輸出,用戶擬定無誤后可以自行選擇刪除與否,若刪除再調(diào)用Save函數(shù),否則退回到功能選擇界面。(5)給定物品名或編號(hào),修改個(gè)人物品信息:與刪除個(gè)人物品信息同樣,根據(jù)輸入的物品名或編號(hào),通過文獻(xiàn)指針找到物品信息并輸出,用戶可以根據(jù)自己的需要選擇修改相應(yīng)的信息,在確認(rèn)修改后,通過Save函數(shù)保存信息,放棄修改則退回功能選擇界面。(6)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品的所有信息,這也是通過文獻(xiàn)指針實(shí)現(xiàn)的查找。(7)根據(jù)輸入的分類,顯示該分類的所有物品信息:輸入想查找的分類,使用一個(gè)字符數(shù)組記錄輸入的分類,使用文獻(xiàn)指針對(duì)文獻(xiàn)進(jìn)行只讀操作,將輸入的分類與fgets()讀出的分類比較,若相同則輸出相應(yīng)物品所有信息,直到文獻(xiàn)指針為空。(8)根據(jù)輸入的時(shí)間,查詢已過期或3個(gè)月內(nèi)將過期的物品信息:按照固定的時(shí)間輸入格式(如2023年1月1日則寫成20230101)輸入時(shí)間,再與文獻(xiàn)中的過期時(shí)間比較,通過比較,輸出輸入時(shí)間與過期時(shí)間之差小于3個(gè)月的物品信息。(9)記錄功能:記錄各分類的物品信息,使用文獻(xiàn)指針對(duì)文獻(xiàn)進(jìn)行讀操作,分別記錄不同分類的物品個(gè)數(shù),之后輸出分類信息和相應(yīng)的物品個(gè)數(shù)。(10)導(dǎo)出個(gè)人物品信息至Excel表格:創(chuàng)建新的文獻(xiàn)指針,將鏈表里的信息寫入名為“goods.xls”的Excel文獻(xiàn)里,輸出的時(shí)候涉及跳格符‘\t’和換行符‘\n’符號(hào),保證輸出格式的對(duì)的性。(11)退出到登陸界面,其他用戶可以繼續(xù)使用該系統(tǒng)。2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)我重要定義了用戶信息結(jié)構(gòu)user和物品信息結(jié)構(gòu)Goods,尚有使用了3個(gè)文獻(xiàn),分別用于存放用戶信息和物品信息。用戶信息結(jié)構(gòu)體structuser{charusername[20];charpassword[8];};username是賬號(hào),password是密碼。物品信息結(jié)構(gòu)體typedefstructwp//定義數(shù)據(jù)結(jié)構(gòu){ charname[20];/*名稱*/ charnumber[6];/*編號(hào)*/ charprice[6];/*價(jià)格*/ charcategoty[10];/*分類*/ charMFG[9];/*生產(chǎn)日期*/ charEXP[9];/*過期時(shí)間*/ structwp*next;}Goods;2.3系統(tǒng)各個(gè)函數(shù)及函數(shù)之間關(guān)系設(shè)計(jì) 開始登陸系統(tǒng)2.4界面設(shè)計(jì)(1)開始界面(2)功能選擇界面(3)查找物品界面(4)錄入新物品(5)刪除物品信息界面(6)修改物品信息界面(7)輸出物品分類界面(8)查詢過期物品界面(9)記錄分類信息界面(10)導(dǎo)出物品信息到Excel表格界面3.系統(tǒng)實(shí)現(xiàn)①登陸模塊登錄系統(tǒng)歡迎使用個(gè)人物品管理系統(tǒng)創(chuàng)建新賬戶退出系統(tǒng)選擇相應(yīng)操作,登陸時(shí)用戶名或密碼錯(cuò)誤會(huì)提醒輸入賬號(hào)或密碼錯(cuò)誤,并退回到本界面;創(chuàng)建新賬戶成功后會(huì)提醒創(chuàng)建成功,并退到本界面,只需用剛創(chuàng)建的用戶名和密碼登陸即可,只有用戶和密碼都對(duì)的,才會(huì)提醒登陸成功并跳轉(zhuǎn)到功能選擇界面。②錄入個(gè)人物品信息物品名稱物品編號(hào)物品價(jià)格錄入物品信息物品分類生產(chǎn)日期過期時(shí)間按照提醒輸入相應(yīng)的物品信息。③輸入物品名或編號(hào)之后,程序會(huì)輸入相應(yīng)物品信息,確認(rèn)刪除后才會(huì)刪除相應(yīng)物品信息并保存。物品名稱物品編號(hào)物品價(jià)格刪除物品信息物品分類生產(chǎn)日期過期時(shí)間④修改物品信息:輸入物品名或編號(hào)之后,程序會(huì)輸入相應(yīng)物品信息,可以選擇相應(yīng)信息進(jìn)行修改。列出要修改物品所有信息修改物品信息選擇相應(yīng)信息進(jìn)行修改⑤查找物品信息輸入物品名或編號(hào)查找物品信息列出相應(yīng)物品信息⑥根據(jù)輸入的分類,顯示該分類的所有物品信息輸入物品分類根據(jù)輸入分類顯示物品信息列出相應(yīng)物品信息⑦根據(jù)輸入的時(shí)間,查詢已過期或3個(gè)月內(nèi)將過期的物品信息輸入查詢時(shí)間 查詢過期物品或三個(gè)月內(nèi)過期物品比較輸入的時(shí)間和過期時(shí)間輸出相應(yīng)物品信息⑧記錄功能:記錄各分類的物品信息用不同變量記錄不同分類的物品個(gè)數(shù)記錄各分類的物品信息用文獻(xiàn)指針對(duì)文獻(xiàn)進(jìn)行讀寫 輸出物品分類及相應(yīng)物品個(gè)數(shù)⑨導(dǎo)出個(gè)人物品信息至Excel表格 輸出物品存儲(chǔ)信息項(xiàng)目名稱導(dǎo)出物品信息到Excel表格系統(tǒng)測試(1)設(shè)計(jì)測試用例:登陸賬號(hào)名稱:密碼:123456名稱編號(hào)價(jià)格(元)分類生產(chǎn)日期過期時(shí)間鋼筆1100文具2023010120230101筆芯210文具2023010120230101尺子35文具2023010120230101鉛筆410文具2023010120230101可樂55飲料2023010120230601雪碧65飲料2023010120231001加多寶75飲料2023020120230801水壺850平常用品2023010120230101書910生活用品2023010120230101手表1150用品2023010120230101物品信息:錄入個(gè)人物品信息:名稱:水杯編號(hào):10價(jià)格:50分類:平常用品生產(chǎn)日期:20230101過期時(shí)間:20230101刪除物品信息:名稱:鋼筆編號(hào):01修改個(gè)人物品信息:修改編號(hào)為11的物品名稱為燈查找物品信息:查找編號(hào)為10的物品信息根據(jù)輸入分類輸出該分類所有物品:輸入文具過期物品查詢:輸入時(shí)間為20230101記錄各分類物品個(gè)數(shù);導(dǎo)出物品信息到Excel表格;預(yù)期結(jié)果:全都符合規(guī)定。系統(tǒng)運(yùn)營界面:①登錄系統(tǒng)②錄入個(gè)人物品信息③刪除物品信息④修改個(gè)人物品信息⑤查找物品信息⑥根據(jù)輸入分類輸出該分類所有物品⑦過期物品查詢⑧記錄各分類物品個(gè)數(shù)⑨導(dǎo)出物品信息到Excel表格(3)運(yùn)營結(jié)果與預(yù)期結(jié)果相同??偨Y(jié)剛開始設(shè)計(jì)時(shí)毫無頭緒,代碼也是寫得一團(tuán)糟,感覺自己對(duì)上學(xué)期的內(nèi)容好陌生,所以決定還是先把有關(guān)內(nèi)容看一遍。后來我看了課本和上網(wǎng)查了有關(guān)資料,然后再仔細(xì)地看了一遍題目規(guī)定:信息規(guī)定必須存在文獻(xiàn)里面,并且數(shù)據(jù)操作要用鏈表,所以我將程序設(shè)計(jì)為開始時(shí)讀取文獻(xiàn)信息到鏈表,退出時(shí)再把鏈表信息所有覆蓋寫回文獻(xiàn)里面。但是在實(shí)際操作中發(fā)現(xiàn)自己對(duì)鏈表這一塊還是不太熟悉,所以又去找了一些和鏈表有關(guān)的資料。最后自己就邊摸索著嘗試了一下,最后發(fā)現(xiàn)本來也不是特別難,其實(shí)最大的欠缺就是動(dòng)手能力差。這次的程序設(shè)計(jì),我覺得不僅是讓我復(fù)習(xí)了上學(xué)期學(xué)過的內(nèi)容,更是發(fā)現(xiàn)了自己在學(xué)習(xí)上的許多缺陷和局限性,也是給了自己一個(gè)反省的機(jī)會(huì),我覺得自己在以后的學(xué)習(xí)中必須要將理論與實(shí)際相結(jié)合,在鞏固理論知識(shí)的基礎(chǔ)上一定要將其付諸實(shí)踐,要敢于嘗試,不要讓一次的失敗就讓自己士氣全無。附(源代碼):#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#include<conio.h>structuser//用戶信息{charusername[20];charpassword[8];};typedefstructwp//定義數(shù)據(jù)結(jié)構(gòu){ charname[20];/*名稱*/ charnumber[6];/*編號(hào)*/ charprice[6];/*價(jià)格*/ charcategoty[10];/*分類*/ charMFG[9];/*生產(chǎn)日期*/ charEXP[9];/*過期時(shí)間*/ structwp*next;}Goods;voidNewuser(void)//創(chuàng)建新賬戶{printf("歡迎創(chuàng)建新賬戶!\n");FILE*fp;charp[10];inti=0;voidencrypt(char*mima);//加密算法structusersu;if((fp=fopen("f:\\usermessage","a+"))==NULL){printf("文獻(xiàn)打開失敗!\n");exit(0);}printf("請(qǐng)輸入新賬號(hào):");scanf("%s",su.username);printf("請(qǐng)輸入密碼:");while((p[i]=getch())!='\r'){printf("*");i++;}p[i]='\0';strcpy(su.password,p);encrypt(su.password);fprintf(fp,"%s%s\n",su.username,su.password);if(fclose(fp)){printf("文獻(xiàn)無法關(guān)閉!\n");exit(0);}printf("\n恭喜你成功創(chuàng)建新賬戶!\n");}voidencrypt(char*mima)//加密程序{inti,j;j=strlen(mima);for(i=0;i<j;i++)mima[i]=mima[i]^15;;}intLogin(char*mark)//用戶登錄{system("color0A");structusersu;FILE*fp;inti=0;charusr[30],usr1[30],mima[10],p[10];intcheck=0;printf("請(qǐng)輸入賬號(hào)名稱:");scanf("%s",su.username);printf("請(qǐng)輸入登錄密碼:");while((p[i]=getch())!='\r'){printf("*");i++;}p[i]='\0';strcpy(su.password,p);strcpy(usr,su.username);strcpy(mima,su.password);encrypt(mima);strcat(usr,"");strcat(usr,mima);strcat(usr,"\n");if((fp=fopen("f:\\usermessage","r"))==NULL){printf("Fileopenerror!\n");exit(0);}while(!feof(fp)){fgets(usr1,30,fp);if(strcmp(usr,usr1)==0){check=1;break;}}if(fclose(fp)){printf("Cannotclosethefile\n");exit(0);}if(check==1){printf("\n恭喜你,登陸成功!\n");//登陸成功strcpy(mark,su.username);return1;}else{printf("\n用戶名或密碼錯(cuò)誤,請(qǐng)重新登陸\n");return0;}}voidSave(Goods*h,char*mark)//保存記錄{ FILE*fp; Goods*p;charwp[20]; strcpy(wp,mark); strcat(wp,".dat"); if((fp=fopen(wp,"wb"))==NULL) { printf("Can'topenthefile!\n"); exit(0); } printf("\nSavesuccefully!\n"); p=h; while(p!=NULL) { fwrite(p,sizeof(Goods),1,fp); p=p->next; } fclose(fp);}Goods*Load(char*mark)//讀入記錄{ Goods*p,*q,*h=NULL;charch; FILE*fp;charwp[20]; strcpy(wp,mark); system("cls");strcat(wp,".dat"); if((fp=fopen(wp,"ab+"))==NULL) { printf("Can'topenthefile!\n"); exit(1); } p=(Goods*)malloc(sizeof(Goods)); if(!p) { printf("Memoryoverflow!\n"); returnh; } h=p; ch=fgetc(fp); if(ch==EOF){h=NULL;p->next=NULL;returnh;}rewind(fp); while(!feof(fp)) { if(1!=fread(p,sizeof(Goods),1,fp)) break; p->next=(Goods*)malloc(sizeof(Goods)); if(!p->next) { printf("Memoryoverflow!\n"); returnh; } q=p; p=p->next; } q->next=NULL; fclose(fp); returnh;}voidExcel(char*mark)//新功能,將物品信息導(dǎo)出至Excel表格{system("cls");Goods*p,*head=Load(mark);p=head;FILE*fpex;inti=0;if((fpex=fopen("goods.xls","w"))==NULL){system("color04");printf("文獻(xiàn)導(dǎo)出失??!");exit(0);}fprintf(fpex,"名稱 編號(hào) 價(jià)格(元) 分類 生產(chǎn)日期 過期時(shí)間\n");while(p!=NULL){fprintf(fpex,"%s %s %s %s %s %s\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);p=p->next;i++;}if(fclose(fpex)){printf("Can'tclosethefile!\n");exit(0);}if(i){printf("\n");printf("┏━━━━━━━━━━━━━━┓\n");printf("┃文獻(xiàn)成功導(dǎo)出至“goods.xls”.┃\n");printf("┗━━━━━━━━━━━━━━┛\n");}else{system("color04");printf("\n┏━━━━━━━━━━━━━━━┓\n");printf("┃導(dǎo)出至文獻(xiàn)“goods.xls”失敗!┃\n");printf("┗━━━━━━━━━━━━━━━┛\n");}}voidDeleteGoods(char*mark){//給定物品名或編號(hào),刪除該個(gè)人物品信息system("cls");chars[10];inti=0,a=1,j=0;intk;Goods*p,*q,*head=Load(mark);p=head;while(a==1){printf("輸入要?jiǎng)h除物品名或編號(hào):");scanf("%s",s);while(p!=NULL){i++;if(strcmp(s,p->name)==0)break;if(strcmp(s,p->number)==0)break;p=p->next;};if(p!=NULL){printf("################################################################################");printf("要?jiǎng)h除物品名:");printf("%s\n",p->name);printf("要?jiǎng)h除物品編號(hào):");printf("%s\n",p->number);printf("要?jiǎng)h除物品價(jià)格:");printf("%s\n",p->price);printf("要?jiǎng)h除物品生產(chǎn)日期:");printf("%s\n",p->MFG);printf("要?jiǎng)h除物品分類:");printf("%s\n",p->categoty);printf("要?jiǎng)h除物品過期時(shí)間:");printf("%s\n",p->EXP);printf("################################################################################");a=2;}else{printf("您要?jiǎng)h除的物品不存在!請(qǐng)重新輸入!\n");}}printf("你擬定要?jiǎng)h除該物品的信息嗎?\n1.是2.否\n");scanf("%d",&k);if(k==1){if(i==1)head=head->next;else{p=head;while(p->next&&j<i-2){p=p->next;++j;}if(!(p->next)||j>i-1)exit(0);q=p->next;p->next=q->next;free(q);}Save(head,mark);printf("你已成功刪除該物品信息!\n");}elseprintf("你已取消刪除操作!\n");}voidAddNewGoods(char*mark)//錄入個(gè)人物品信息{system("cls");Goods*p,*head,*s,*q;head=Load(mark);p=q=head;inta=1;s=(Goods*)malloc(sizeof(Goods));printf("┌┬┬┬┬┬┬┬┬┬┐\n");printf("├請(qǐng)輸入新物品信息┤\n");printf("└┴┴┴┴┴┴┴┴┴┘\n");printf("輸入物品名稱:");scanf("%s",s->name);while(a==1){while(q!=NULL){if(strcmp(s->name,q->name)==0)break;q=q->next;};if(q!=NULL){printf("該物品名已存在,請(qǐng)重新輸入物品名:");scanf("%s",s->name);q=head;}else{a=2;q=head;}}printf("輸入物品編號(hào):");scanf("%s",s->number);while(a==2){while(q!=NULL){if(strcmp(s->number,q->number)==0)break;q=q->next;};if(q!=NULL){printf("該物品編號(hào)已存在,請(qǐng)重新輸入物品編號(hào):");scanf("%s",s->number);q=head;}else{a=3;q=head;}}printf("輸入物品價(jià)格(元):");scanf("%s",s->price);printf("日期輸入格式(例:20230101)\n");printf("輸入物品生產(chǎn)日期:");scanf("%s",s->MFG);printf("輸入物品過期日期:");scanf("%s",s->EXP);printf("輸入物品分類:");scanf("%s",s->categoty);s->next=NULL;if(p==NULL){Save(s,mark);}else{while(p->next!=NULL){p=p->next;}p->next=s;Save(head,mark);}}voidSearchGoods(char*mark)//根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息{system("cls");chars[10];printf("輸入物品名或編號(hào):");scanf("%s",s);Goods*head,*q;head=Load(mark);q=head;while(q!=NULL){if(strcmp(s,q->name)==0)break;if(strcmp(s,q->number)==0)break;q=q->next;};if(q!=NULL){printf("物品名:");printf("%s\n",q->name);printf("物品編號(hào):");printf("%s\n",q->number);printf("物品價(jià)格:");printf("%s\n",q->price);printf("物品生產(chǎn)日期:");printf("%s\n",q->MFG);printf("物品過期日期:");printf("%s\n",q->EXP);printf("物品分類:");printf("%s\n",q->categoty);}elseprintf("沒有找到該物品!\n");}voidChangeGoods(char*mark)//給定物品名或編號(hào),修改該個(gè)人物品信息{system("cls");chars[10];intchoice=0;inti=1;intk;printf("輸入要修改物品名或編號(hào):");scanf("%s",s);Goods*head,*p,*q;Goodsw;head=Load(mark);p=q=head;while(p!=NULL){if(strcmp(s,p->name)==0)break;if(strcmp(s,p->number)==0)break;p=p->next;};if(p!=NULL){printf("################################################################################");printf("修改物品基本信息:\n");printf("物品名:");printf("%s\n",p->name);printf("物品編號(hào):");printf("%s\n",p->number);printf("物品價(jià)格:");printf("%s\n",p->price);printf("物品生產(chǎn)日期:");printf("%s\n",p->MFG);printf("物品過期時(shí)間:");printf("%s\n",p->EXP);printf("物品分類:");printf("%s\n",p->categoty);printf("################################################################################");printf("請(qǐng)輸入要修改的物品信息:\n");printf("1.物品名");printf("2.物品編號(hào)\n");printf("3.物品價(jià)格");printf("4.物品生產(chǎn)日期\n");printf("5.物品過期時(shí)間");printf("6.物品分類\n");scanf("%d",&choice);switch(choice){case1:printf("請(qǐng)輸入修改后物品名:");scanf("%s",);while(i==1){while(q!=NULL){if(strcmp(,q->name)==0)break;q=q->next;};if(q!=NULL){printf("該物品名已存在,請(qǐng)重新輸入物品名:");scanf("%s",);q=head;}else{i=2;q=head;strcpy(p->name,);}}break;case2:printf("請(qǐng)輸入修改后的物品編號(hào):");scanf("%s",w.number);{while(q!=NULL){if(strcmp(w.number,q->number)==0)break;q=q->next;};if(q!=NULL){printf("該物品名已存在,請(qǐng)重新輸入物品名:");scanf("%s",w.number);q=head;}else{i=2;q=head;strcpy(p->number,w.number);}}break;case3:printf("請(qǐng)輸入修改后的物品價(jià)格:");scanf("%s",p->price);case4:printf("請(qǐng)輸入修改后的物品生產(chǎn)日期:");scanf("%s",p->MFG);case5:printf("請(qǐng)輸入修改后的物品過期時(shí)間:");scanf("%s",p->EXP);case6:printf("請(qǐng)輸入修改后的物品類別:");scanf("%s",p->categoty);default:printf("輸入錯(cuò)誤!請(qǐng)重新輸入要修改的物品信息:");scanf("%d",&choice);break;}}elseprintf("沒有找到該物品!\n");printf("你擬定修改信息?\n1.是2.否\n");scanf("%d",&k);if(k==1){Save(head,mark);printf("物品信息已完畢修改!\n");}elseprintf("你已取消修改物品信息!\n");}voidSort(char*mark)//根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息{system("cls"); Goods*head,*p,*q,*k; inti=1;head=Load(mark);q=p=k=head; chars[10]; system("cls"); while(i==1){printf("請(qǐng)輸入需要查找的該分類:"); scanf("%s",s); while(q!=NULL){if(strcmp(s,q->categoty)==0)break;q=q->next;};printf("|名稱|編號(hào)|分類|\n");if(q!=NULL){ for(;;) { if((strcmp(p->categoty,s)==0)&&p!=NULL) {printf("|%-10s|%-6s|%-10s|\n",p->name,p->number,p->categoty);} p=p->next; if(p==NULL){i=2;break;} } } else{printf("您輸入的分類不存在,請(qǐng)重新輸入!\n");q=k;}}}voidAllSort(char*mark)//根據(jù)輸入的分類,顯示該分類的所有物品信息{system("cls");Goods*head,*p,*q;charb[10];inti=0;head=Load(mark);p=q=head;typedefstructlb{charcategoty[20];structlb*next;}lb;lb*k,*l,*m,*s,*j;k=(lb*)malloc(sizeof(lb));k->next=NULL;l=(lb*)malloc(sizeof(lb));s=(lb*)malloc(sizeof(lb));j=(lb*)malloc(sizeof(lb));s=k;l=k;if(head==NULL){printf("不存在任何物品!\n");}else{while(p!=NULL){while(l->next!=NULL){j=l->next;if(strcmp(j->categoty,p->categoty)==0){l=s;p=p->next;}elsel=l->next;}m=(lb*)malloc(sizeof(lb));strcpy(b,p->categoty);strcpy(m->categoty,b);m->next=k->next;k->next=m;k=m;l=s;p=p->next;}}printf("物品各分類數(shù)目:\n");while(s->next!=NULL){printf("%s:",s->next->categoty);strcpy(b,s->next->categoty);while(q!=NULL){if(strcmp(b,q->categoty)==0)i++;q=q->next;};if(q==NULL){printf("%d\n",i);i=0;q=head;}s=s->next;}}intatoi(constchar*s)//把字符竄轉(zhuǎn)換成整型數(shù){inta,b,c,d;a=strlen(s);c=s[a-2]-'0';b=s[a-1]-'0';d=c*10+b;returnd;}voidSearchTime(char*mark)//根據(jù)輸入的時(shí)間,查詢過期或3月內(nèi)將過期的物品信息{system("cls");chart[9],t1[5],t2[7],t3[9],t4[5],t5[7],t6[9];inta1,a2,a3,a4,a5,a6;intx,y,z,n,m;Goods*p;system("cls");printf("輸入要查找的時(shí)間:");scanf("%s",t);memcpy(t1,t,4);memcpy(t2,t,6);memcpy(t3,t,8);t1[4]='\0';t2[6]='\0';t3[8]='\0';a1=atoi(t1);a2=atoi(t2);a3=atoi(t3);p=Load(mark);if(p==NULL){printf("你尚未存儲(chǔ)任何物品信息!\n");}else{printf("|名稱|編號(hào)|價(jià)格|分類|生產(chǎn)日期|過期時(shí)間|\n");while(p!=NULL){memcpy(t4,p->EXP,4);memcpy(t5,p->EXP,6);memcpy(t6,p->EXP,8);t4[4]='\0';t5[6]='\0';t6[8]='\0';a4=atoi(t4);a5=atoi(t5);a6=atoi(t6);if(a1>a4){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}else{if(a1==a4){x=a2-a5;if(x>=-2){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}else{if(x==-3){y=a3+30;z=y-a6;if(z>=0){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}}}}else{n=a4-a1;if(n==1){m=a5-12;if((m+a2)<=2){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}else{if((m+a2)==3){if(a6<=a3){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->pri
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 易錯(cuò)題25 古代詩歌閱讀之情感主旨題-不會(huì)見微知著探究主旨高考語文備戰(zhàn)2025年高考易錯(cuò)題(新高考專用)含解析
- 2018安徽道法試卷+答案+解析
- 初級(jí)會(huì)計(jì)實(shí)務(wù)-《初級(jí)會(huì)計(jì)實(shí)務(wù)》??荚嚲?53
- 中國電池預(yù)制艙行業(yè)投資分析、市場運(yùn)行態(tài)勢研究報(bào)告-智研咨詢發(fā)布(2024版)
- 智研咨詢-中國急救中心行業(yè)市場調(diào)查、產(chǎn)業(yè)鏈全景、需求規(guī)模預(yù)測報(bào)告(2024版)
- 智研咨詢發(fā)布:2024年中國心臟脈沖電場消融系統(tǒng)(PFA)行業(yè)市場現(xiàn)狀及投資前景分析報(bào)告
- 基于CSI指紋的抗時(shí)變室內(nèi)定位算法研究
- 基于無人機(jī)高光譜遙感的荒漠草原退化土壤養(yǎng)分反演研究
- 稅務(wù)專業(yè)技能提升
- 二零二五年度文化旅游個(gè)人工程承包合同范本
- 護(hù)理人文知識(shí)培訓(xùn)課件
- 2025年春新人教版數(shù)學(xué)七年級(jí)下冊教學(xué)課件 7.2.3 平行線的性質(zhì)(第1課時(shí))
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測地理試題(含答案)
- 計(jì)劃合同部部長述職報(bào)告范文
- 統(tǒng)編版八年級(jí)下冊語文第三單元名著導(dǎo)讀《經(jīng)典常談》閱讀指導(dǎo) 學(xué)案(含練習(xí)題及答案)
- 風(fēng)光儲(chǔ)儲(chǔ)能項(xiàng)目PCS艙、電池艙吊裝方案
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論