C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)個(gè)人物品管理程序_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序設(shè)計(jì)與算法綜合實(shí)習(xí)I個(gè)人物品管理程序題目班級(jí):學(xué)生學(xué)號(hào): 學(xué)生姓名: 指導(dǎo)老師:歡迎下載36提交時(shí)間:2015.05.16成績(jī):評(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.1問題描述 設(shè)計(jì)一個(gè)個(gè)人物品管理程序,該程序具有以下功能:(1 )用戶登錄:輸入用戶名和密碼,密碼正確才允許登錄。(2)錄入個(gè)人物品信息;(3)給定物品名或編號(hào),修改該個(gè)人物品信息;(4)給定物品名或編號(hào),刪除該個(gè)人物品信息;(5)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息;(6 )根據(jù)輸

2、入的分類,顯示該分類的所有物品信息;(7) 根據(jù)輸入的時(shí)間,查詢過(guò)期或3月內(nèi)將過(guò)期的物品信息;(8)統(tǒng)計(jì)功能:統(tǒng)計(jì)各分類的物品。(9) 新功能:導(dǎo)出個(gè)人物品信息至Excel表格。1.2系統(tǒng)功能分析(1)登錄功能:這是一個(gè)個(gè)人物品管理程序,具有很大的開放性,已經(jīng)注冊(cè)的用戶可以 直接輸入密碼登陸系統(tǒng),沒有注冊(cè)的用戶可以根據(jù)自己的需要注冊(cè)賬戶,并輸入個(gè)人物品 信息。(2)錄入個(gè)人物品信息:這個(gè)系統(tǒng)設(shè)置錄入的物品信息主要包括物品的名稱、編號(hào)、價(jià) 格、分類、生產(chǎn)日期和過(guò)期日期。(3)給定物品名或編號(hào),修改個(gè)人物品信息:要修改物品信息時(shí),輸入物品的編號(hào)或名 稱查看物品信息,確認(rèn)無(wú)誤后可以選擇對(duì)應(yīng)的物品信息

3、進(jìn)行修改。(4)給定物品名或編號(hào),刪除個(gè)人物品信息:要?jiǎng)h除物品信息時(shí),輸入物品的編號(hào)或名 稱查看物品信息,確認(rèn)無(wú)誤后可以刪除該物品信息。(5)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息:輸入你想查找的物品名 或編號(hào),若找到對(duì)應(yīng)物品信息,則顯示;否則提示用戶查找的物品不存在,請(qǐng)重新輸入想 要查找的物品名或編號(hào)。(6)根據(jù)輸入的分類,顯示該分類的所有物品信息:若找到則顯示該分類的物品信 息,否則提示用戶該分類不存在。(7) 根據(jù)輸入的時(shí)間,查詢已過(guò)期或3個(gè)月內(nèi)將過(guò)期的物品信息:將物品的過(guò)期時(shí)間與輸入時(shí)間作比較,若過(guò)期時(shí)間與輸入時(shí)差小于3個(gè)月則輸出對(duì)應(yīng)物品信息。(8 )統(tǒng)計(jì)功能:統(tǒng)計(jì)各分類的物

4、品信息。(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)境,它使用了著名的的圖形界面庫(kù)wxWidgets版。它還提供了許多工程模板,包括控制臺(tái)應(yīng)用、DirectX應(yīng)用和動(dòng)態(tài)鏈接庫(kù)等,另外它還支持用戶自定義模板;它支持語(yǔ)法彩色醒目顯示,支持代碼完成,支持工程管理、項(xiàng)目構(gòu)建、調(diào)試;它還具有靈活 而強(qiáng)大的配置功能。1.系統(tǒng)設(shè)計(jì)2.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)(1) 運(yùn)行程序時(shí),一開始我設(shè)置了對(duì)系統(tǒng)進(jìn)

5、行操作的選擇界面,包括3個(gè)功能,一是 登錄系統(tǒng),二是創(chuàng)建新賬戶,三是退出程序。用戶可以根據(jù)自己的實(shí)際情況進(jìn)行選擇,輸入對(duì)應(yīng)的操作數(shù)從而選擇不同的功能。我在這里使用了switch-case語(yǔ)句。當(dāng)用戶選擇了登陸系統(tǒng)或創(chuàng)建新賬戶操作時(shí),程序會(huì)要求輸入賬號(hào)(20個(gè)字符以內(nèi)),以及密碼(10個(gè)字符以內(nèi)),在輸入密碼時(shí)我使用了getch()函數(shù)(在頭文件 conio.h中)隱藏用戶密碼信息,當(dāng)用戶登陸成功或創(chuàng)建新用戶成功時(shí)程序就會(huì)進(jìn)入功能選擇界面;如果用戶選擇退出 程序,程序運(yùn)行停止。(2)功能選擇界面,我提供了九個(gè)功能選擇,分別是錄入個(gè)人物品信息、給定物品名 或編號(hào),修改該個(gè)人物品信息、給定物品名或編

6、號(hào),刪除該個(gè)人物品信息、根據(jù)輸入的物 品名或編號(hào),顯示查找到的相應(yīng)物品信息、根據(jù)輸入的分類,顯示該分類的所有物品信息、根據(jù)輸入的時(shí)間,查詢已過(guò)期或3個(gè)月內(nèi)將過(guò)期的物品信息、統(tǒng)計(jì)功能:統(tǒng)計(jì)各分類的物品信息、導(dǎo)出個(gè)人物品信息至 Excel表格、退出到登陸界面。根據(jù)用戶輸入的操作 數(shù),我使用了 switch語(yǔ)句實(shí)現(xiàn)相應(yīng)功能。(3)錄入個(gè)人物品信息:錄入的物品信息包括物品的名稱、編號(hào)、價(jià)格、分類、生產(chǎn)日期和過(guò)期日期。我首先將信息錄入鏈表中,之后用自定義的保存函數(shù)Save ()將信息存入文件中。(4)給定物品名或編號(hào),刪除個(gè)人物品信息:先輸入要?jiǎng)h除的物品名或編號(hào),之后再通 過(guò)文件指針在文件中找到相應(yīng)物品

7、信息并輸出,用戶確定無(wú)誤后可以自行選擇刪除與否, 若刪除再調(diào)用Save函數(shù),否則退回到功能選擇界面。(5)給定物品名或編號(hào),修改個(gè)人物品信息:與刪除個(gè)人物品信息一樣,根據(jù)輸入的物 品名或編號(hào),通過(guò)文件指針找到物品信息并輸出,用戶可以根據(jù)自己的需要選擇修改對(duì)應(yīng) 的信息,在確認(rèn)修改后,通過(guò) Save函數(shù)保存信息,放棄修改則退回功能選擇界面。(6)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品的所有信息,這也是通過(guò)文件指 針實(shí)現(xiàn)的查找。(7)根據(jù)輸入的分類,顯示該分類的所有物品信息:輸入想查找的分類,使用一個(gè)字符數(shù)組記錄輸入的分類,使用文件指針對(duì)文件進(jìn)行只讀操作,將輸入的分類與fgets()讀出的分類

8、比較,若相同則輸出對(duì)應(yīng)物品所有信息,直到文件指針為空。(8)根據(jù)輸入的時(shí)間,查詢已過(guò)期或 3個(gè)月內(nèi)將過(guò)期的物品信息:按照固定的時(shí)間輸入格式(如2015年1月1日則寫成20150101 )輸入時(shí)間,再與文件中的過(guò)期時(shí)間比較,通 過(guò)比較,輸出輸入時(shí)間與過(guò)期時(shí)間之差小于3個(gè)月的物品信息。(9)統(tǒng)計(jì)功能:統(tǒng)計(jì)各分類的物品信息,使用文件指針對(duì)文件進(jìn)行讀操作,分別記錄 不同分類的物品個(gè)數(shù),之后輸出分類信息和對(duì)應(yīng)的物品個(gè)數(shù)。(10) 導(dǎo)出個(gè)人物品信息至Excel表格:創(chuàng)建新的文件指針,將鏈表里的信息寫入名為“goods.xls ”的Excel文件里,輸出的時(shí)候包括跳格符t和換行符n符號(hào),保證輸出格式的正確性

9、。(11)退出到登陸界面,其他用戶可以繼續(xù)使用該系統(tǒng)。2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)我主要定義了用戶信息結(jié)構(gòu)user和物品信息結(jié)構(gòu) Goods,還有使用了 3個(gè)文件,分別用于存放用戶信息和物品信息。用戶信息結(jié)構(gòu)體struct userchar user name20;char password8;user name是賬號(hào),password是密碼。物品信息結(jié)構(gòu)體typedef struct wp /定義數(shù)據(jù)結(jié)構(gòu)char name20; /*名稱 */char number6;/*編號(hào) */char price6 ;/* 價(jià)格 */char categoty10; /* 分類 */char MFG9; /*

10、生產(chǎn)日期 */char EXP9; /*過(guò)期時(shí)間 */struct wp *n ext;Goods;2.3系統(tǒng)各個(gè)函數(shù)及函數(shù)之間關(guān)系設(shè)計(jì)開始2.4界面設(shè)計(jì)(1)開始界面卜歡迎使月,戶統(tǒng)薛系霜陸建出 1 Z 3請(qǐng)選擇你的操作:(2)功能選擇界面恭喜你,登陸咸二加葩入!1冬號(hào)名稱=201430330101 外入聲錄密咼主冃圭冃格 表1eXCE 至 -息品息 二在心龍冷口 物口崩品 fs 加改詢出 增望-導(dǎo)息 - -信面 息自甞a類界 信亠每分陸登 掾八i 杳黑鑒 13 5 7 9青選擇味的操佢:(3)查找物品界面:01:1Q0:20140181:20160101文具口鏡價(jià)日日分 韌品品嚴(yán)期品 謝生

11、過(guò)物(4)錄入新物品燈 0臺(tái)15507 口口1匚口0 rm稱號(hào)814元01日日分站產(chǎn)期品SW20生過(guò)物棗品口乂SAAaSaue succefully?(5)刪除物品信息界面H= *.回tt An b 0 0 su0it 5 2 ff- 2刪品編分葉 脾物品品產(chǎn)口覇 口障nnItttHW 涂?jī)?cè)冊(cè)(6)修改物品信息界面ttn筆 01416耳瞼 tt 岡丄000無(wú) 耐M=i=j;= 財(cái)信口錨murihttt信 tttt壽口習(xí)出的tlclQIItt品 料基物 啊品S品斛的 tttt物 I 改(7)輸出物品分類界面具文一瓦K具具具具一 彗文文文文一A I ! II一該的號(hào)我SU1O28304(8) 查詢

12、過(guò)期物品界面心子桑碧多壺表 篇筆尺鉛里加辛手;編號(hào)1碗1911!10Q::02 1;10 ::03115:舊4;:1B:!0S1瀉::0G:15;:071is:IH81再0::091:10 :illI150!口 ce用 類具具具?;罹?弁文文文養(yǎng)飲飲日生用;生產(chǎn)日期120140101IZ0KQ1O1:2Q15Q101!201S018i9201S01dlI201&02O11201413101 :201401O1i2014ai91I過(guò)期時(shí)間!I291691Q1 !2910101:120160101 i :20169101 : ! 20150601 !:20151081 ; J201S08B1 !

13、123169101 !i20160101!120153181 i(9) 統(tǒng)計(jì)分類信息界面 目擻槳:1;1 分 品品 各皿;3用用:1 品具料?;罹?物系日生用(10)導(dǎo)出物品信息到 Excel表格界面3系統(tǒng)實(shí)現(xiàn) 登陸模塊登錄系統(tǒng)歡迎使用個(gè)人物品管理系統(tǒng)創(chuàng)建新賬戶退出系統(tǒng)選擇對(duì)應(yīng)操作,登陸時(shí)用戶名或密碼錯(cuò)誤會(huì)提示輸入賬號(hào)或密碼錯(cuò)誤,并退回到本界 面;創(chuàng)建新賬戶成功后會(huì)提示創(chuàng)建成功,并退到本界面,只需用剛創(chuàng)建的用戶名和密碼登 陸即可,只有用戶和密碼都正確,才會(huì)提示登陸成功并跳轉(zhuǎn)到功能選擇界面。 錄入個(gè)人物品信息物品名稱物品編號(hào)物品價(jià)格錄入物品信息物品分類生產(chǎn)日期過(guò)期時(shí)間按照提示輸入相應(yīng)的物品信息。

14、 輸入物品名或編號(hào)之后,程序會(huì)輸入對(duì)應(yīng)物品信息,確認(rèn)刪除后才會(huì)刪除對(duì)應(yīng)物品信息并保存。物品名稱物品編號(hào)物品價(jià)格刪除物品信息物品分類生產(chǎn)日期過(guò)期時(shí)間 修改物品信息:輸入物品名或編號(hào)之后,程序會(huì)輸入對(duì)應(yīng)物品信息,可以選擇對(duì)應(yīng)信息進(jìn)行修改。列出要修改物品所有信息修改物品信息選擇對(duì)應(yīng)信息進(jìn)行修改 查找物品信息輸入物品名或編號(hào)查找物品信息列出對(duì)應(yīng)物品信息 根據(jù)輸入的分類,顯示該分類的所有物品信息輸入物品分類根據(jù)輸入分類顯示物品信息列出對(duì)應(yīng)物品信息 根據(jù)輸入的時(shí)間,查詢已過(guò)期或3個(gè)月內(nèi)將過(guò)期的物品信息輸入查詢時(shí)間查詢過(guò)期物品或三個(gè)月內(nèi)過(guò)期物品比較輸入的時(shí)間和過(guò)期時(shí)間輸出對(duì)應(yīng)物品信息 統(tǒng)計(jì)功能:統(tǒng)計(jì)各分類的

15、物品信息用不同變量記錄不同分類的物品個(gè)數(shù)統(tǒng)計(jì)各分類的物品信息用文件指針對(duì)文件進(jìn)行讀寫輸出物品分類及對(duì)應(yīng)物品個(gè)數(shù) 導(dǎo)出個(gè)人物品信息至Excel表格輸出物品存儲(chǔ)信息項(xiàng)目名稱 導(dǎo)出物品信息到 Excel表格1.系統(tǒng)測(cè)試(1)設(shè)計(jì)測(cè)試用例:登陸賬號(hào)名稱:201430330101密碼:123456名稱編號(hào)價(jià)格(元)分類生產(chǎn)日期過(guò)期時(shí)間鋼筆1100文具2014010120160101筆芯210文具2015010120160101尺子35文具2014010120160101鉛筆410文具2015010120160101可樂55飲料2015010120150601雪碧65飲料2015010120151001加

16、多寶75飲料2015020120150801水壺850日常用品2014010120160101書910生活用品2014010120160101手表1150用具2014010120150101物品信息:錄入個(gè)人物品信息:名稱:水杯編號(hào):10價(jià)格:50分類:日常用品 生產(chǎn)日期:20140101過(guò)期時(shí)間:20160101刪除物品信息:名稱:鋼筆編號(hào):01修改個(gè)人物品信息:修改編號(hào)為11的物品名稱為燈查找物品信息:查找編號(hào)為10的物品信息根據(jù)輸入分類輸出該分類所有物品:輸入文具過(guò)期物品查詢:輸入時(shí)間為20160101統(tǒng)計(jì)各分類物品個(gè)數(shù);導(dǎo)出物品信息到 Excel表格;預(yù)期結(jié)果:全都符合要求。1.系統(tǒng)運(yùn)

17、行界面:登錄系統(tǒng)輸入賬號(hào)名 = 201130330101恭喜你,登陸成功輸入豊錄密中* 錄入個(gè)人物品信息器龍爲(wèi)杯格(兀)=50歌曬駅跨常膠冀物品分靈IUfftj = 2014B101:20168101Save succef ull/! 刪除物品信息IF:鋼筆品纟附文具0=261&0101你團(tuán)定要?jiǎng)h除該物品的信息嗎?:煌2 .否;01:20140101Save suecef你已成功刪除該物品信息I 修改個(gè)人物品信息修改物品基.也品giSi手表115020140101 30150101 用具盲踣日分 聊品口出嚴(yán)期品 生過(guò)檢品品籍鱷贈(zèng)帶物品名1.1Save siiGGBfull? 物品信息已完成修改

18、? 查找物品信息:10:日常用品:Z0140101:201t0101根據(jù)輸入分類輸出該分類所有物品過(guò)期物品查詢空1-fi-n?x11E-pJ/ij jii編號(hào)i102!163!1價(jià)格110;5ITQ-qR1104:HT空I_ji至白i手-tqI伽!106i!5:5用荃寶 1107!-rk -iZT1*中!If1108 ;5GIF1;研itieJpTlAliHi!朮杯1110iI5U統(tǒng)計(jì)各分類物品個(gè)數(shù)飲料日常用品 生活舄品 用具2010101I王嚴(yán)鬥期 120150181 120140101 i20150101 120153101 1201SSI01 ! 23159201 ;20140101 :

19、20140101 120140101 日常用品:過(guò)期時(shí)間120160101 120160101I201S0C01!2015QS91;2016Q101120160101123150101123140131他詰各分類數(shù)和II-日常用品汀生活用晶注20160101:1導(dǎo)出物品信息到Excel表格寶A稱応子筆樂碧多壺 杯名筆尺鉛可雪加水書燈水BC | DEF元10 !生產(chǎn)日期過(guò)期時(shí)間 20150101 20160101 20140101 20160101 20150101 20160101 20150101 20150601 20150101 20151001 120150201 20150801Si

20、50 日常用品2014010120160101910活用品20140101201601011150 甲亙 20140101 2015碩loT50 20160101日常用品20140101(3)運(yùn)行結(jié)果與預(yù)期結(jié)果相同。1.總結(jié)剛開始設(shè)計(jì)時(shí)毫無(wú)頭緒,代碼也是寫得一團(tuán)糟,感覺自己對(duì)上學(xué)期的內(nèi)容好陌生,所 以決定還是先把有關(guān)內(nèi)容看一遍。后來(lái)我看了課本和上網(wǎng)查了有關(guān)資料,然后再仔細(xì)地看了一遍題目要求:信息要求必 須存在文件里面,而且數(shù)據(jù)操作要用鏈表,所以我將程序設(shè)計(jì)為開始時(shí)讀取文件信息到鏈 表,退出時(shí)再把鏈表信息全部覆蓋寫回文件里面。但是在實(shí)際操作中發(fā)現(xiàn)自己對(duì)鏈表這一 塊還是不太熟悉,所以又去找了一些和

21、鏈表有關(guān)的資料。最后自己就邊摸索著嘗試了一 下,最后發(fā)現(xiàn)原來(lái)也不是特別難,其實(shí)最大的欠缺就是動(dòng)手能力差。這次的程序設(shè)計(jì),我覺得不僅是讓我復(fù)習(xí)了上學(xué)期學(xué)過(guò)的內(nèi)容,更是發(fā)現(xiàn)了自己在學(xué) 習(xí)上的許多缺點(diǎn)和不足,也是給了自己一個(gè)反省的機(jī)會(huì),我覺得自己在以后的學(xué)習(xí)中必須 要將理論與實(shí)際相結(jié)合,在鞏固理論知識(shí)的基礎(chǔ)上一定要將其付諸實(shí)踐,要敢于嘗試,不 要讓一次的失敗就讓自己士氣全無(wú)。附(源代碼)#i nclude#i nclude#in clude#in clude#in cludestruct user/ 用戶信息 char user name20;char password8;;typedef stru

22、ct wp / 定義數(shù)據(jù)結(jié)構(gòu)char name20; /*名稱 */char number6;/*編號(hào) */char price6;/* 價(jià)格 */char categoty10; /* 分類 */char MFG9; /*生產(chǎn)日期 */char EXP9; /*過(guò)期時(shí)間 */struct wp *n ext;Goods;void Newuser(void)/創(chuàng)建新賬戶prin tf(歡迎創(chuàng)建新賬戶!n);FILE *fp;char p10;i nt i=0;void en crypt(char *mima);/加密算法struct user su;if(fp=fope n(f:usermes

23、sage,a+)=NULL)printf(文件打開失敗!n);exit(O);printf(請(qǐng)輸入新賬號(hào):);sca nf(%s,su.user name);printf(請(qǐng)輸入密碼:);while(pi=getch()!=r)prin tf(*);i+;pi=0;strcpy(su.password,p);en crypt(su.password);fpri ntf(fp,%s %sn,su.user name,su.password);if(fclose(fp)printf(文件無(wú)法關(guān)閉!n);exit(O);!n);prin tf(n恭喜你成功創(chuàng)建新賬戶void en crypt(cha

24、r *mima)加密程序int i,j;j=strle n(mima);for(i=0;in ext;fclose(fp);Goods *Load(char *mark)讀入記錄Goods *p,*q,*h=NULL;char ch;FILE *fp;char wp20;strcpy(wp,mark);system(cls);strcat(wp,.dat);if(fp=fope n(wp,ab+)=NULL)pr in tf(Cant ope n thefile!n);exit(1);p=(Goods *)malloc(sizeof(Goods);if(!p)pri ntf(”Memory o

25、verflow!n);return h;h=p;ch=fgetc(fp);if(ch=EOF)h=NULL;p- next=NULL;return h;rewi nd(fp);while(!feof(fp)if(1!=fread(p,sizeof(Goods),1,fp)break;p-n ext=(Goods *)malloc(sizeof(Goods);if(!p-n ext)Memoryprintf(“overflow! n);return h;q=p;p=p-n ext;q- next=NULL;fclose(fp);return h;void Excel(char *mark)新功能

26、,將物品信息導(dǎo)岀至Excel表格system(cls);Goods *p,*head=Load(mark);p=head;FILE *fpex;int i=0;if(fpex=fope n( goods.xls,w)=NULL)system(color 04);printf(文件導(dǎo)岀失?。?;exit(0);fprintf(fpex,名稱 編號(hào)價(jià)格(元) 分類生產(chǎn)日期過(guò)期時(shí)間n);while(p!=NULL)fprintf(fpex,%s %s%s %s %s %sn,p-name,p-number,p-price,p-categoty,p-MFG,p-EXP);p=p-n ext;i+;if

27、(fclose(fpex)printf(Cant close the file!n);exit(0);if(i)prin tf(n);printf(i1n);printf(丨文件成功導(dǎo)岀至“ goods.xls ” . I n“);printf(11n);elsesystem(color 04);n i1n);printf( I 導(dǎo)岀至文件“ goods.xls ” 失?。?I n);pri ntf( 11n);void DeleteGoods(char *mark)給定物品名或編號(hào),刪除該個(gè)人物品信息system(cls);char s10;int i=0,a=1,j=0;int k;Goo

28、ds *p,*q,*head=Load(mark);p=head;while(a=1)prin tf(輸入要?jiǎng)h除物品名或編號(hào):“);scan f(%s,s);while(p匸NULL)i+;if(strcmp(s,p-n ame)=0)break;if(strcmp(s,p-n umber)=0)break;p=p-n ext;if(p!=NULL)prin tf(# #);printf(要?jiǎng)h除物品名:);prin tf(%sn,p_ n ame);prin tf(要?jiǎng)h除物品編號(hào):);prin tf(%sn,p_ nu mber);prin tf(要?jiǎng)h除物品價(jià)格:);prin tf(%sn,p

29、_price);prin tf(要?jiǎng)h除物品生產(chǎn)日期:);prin tf(%sn,p-MFG);prin tf(要?jiǎng)h除物品分類:);prin tf(%sn,p_categoty);prin tf(要?jiǎng)h除物品過(guò)期時(shí)間:”);prin tf(%sn,p-EXP);prin tf(# #);a=2;elseprintf(您要?jiǎng)h除的物品不存在!請(qǐng)重新輸入!n);printf(你確定要?jiǎng)h除該物品的信息嗎?n1.是2.否n);sca nf(%d,&k);if(k=1)if(i=1)head=head-n ext; elsep=head;while(p- next&j next;+j;if(!(p- next

30、)|ji-1)exit(0);q=p-n ext;p-n ext=q _n ext;free(q);Save(head,mark);prin tf(你已成功刪除該物品信息!else prin tf(你已取消刪除操作!n);n);void AddNewGoods(char *mark)錄入個(gè)人物品信息 system(cls);Goods *p,*head,*s,*q;head=Load(mark);p=q=head;i nt a=1; s=(Goods*)malloc(sizeof(Goods);pri ntf( n);printf(”卜請(qǐng)輸入新物品信息 T n);pri ntf(“n);pri

31、ntf(輸入物品名稱:“);sca nf(%s,s- name);while(a=1)while(q匸NULL)if(strcmp(s-n ame,q- name)=0) break;q=q_n ext;if(q!=NULL)prin tf(該物品名已存在,請(qǐng)重新輸入物品名:);sca nf(%s,s- name);q=head;elsea=2; q=head;printf(輸入物品編號(hào):);sea nf(%s,s-n umber);while(a=2)while(q匸NULL)if(strcmp(s-n umber,q- number)=O) break;q=q_n ext;if(q!=NU

32、LL)printf(”該物品編號(hào)已存在,請(qǐng)重新輸入物品編號(hào):);sca nf(%s,s-n umber);q=head;elsea=3;q=head;printf(“輸入物品價(jià)格(元):);sca nf(%s,s-price);printf(日期輸入格式(例:20150101)n);printf(“輸入物品生產(chǎn)日期:“);sca nf(%s,s-MFG);printf(“輸入物品過(guò)期日期:“);sca nf(%s,s-EXP);printf(“輸入物品分類:”);sca nf(%s,s-categoty);s- next=NULL;if(p=NULL)Save(s,mark);elsewhil

33、e(p- next!=NULL)p=p-n ext;p_n ext=s;Save(head,mark);根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息void SearchGoods(char *mark)system(cls);char s10;printf(“輸入物品名或編號(hào):);scan f(%s,s);Goods *head,*q;head=Load(mark);q=head;while(q匸NULL)if(strcmp(s,q-n ame)=0)break;if(strcmp(s,q-n umber)=0)break;q=q_n ext;if(q!=NULL)printf(物品名:

34、);prin tf(%sn,q_ name);printf(物品編號(hào):);prin tf(%sn,q_ nu mber);printf(物品價(jià)格:);prin tf(%sn,q_price);printf(物品生產(chǎn)日期:);prin tf(%sn,q-MFG);printf(物品過(guò)期日期:”);prin tf(%sn,q-EXP);printf(物品分類:);prin tf(%sn,q-categoty);else pri ntf(沒有找到該物品!n);void Cha ngeGoods(char *mark)給定物品名或編號(hào),修改該個(gè)人物品信息system(cls);char s10;i n

35、t choice=0;i nt i=1;i nt k;printf(輸入要修改物品名或編號(hào):“);sca nf(%s,s);Goods *head,*p,*q;Goods w;head=Load(mark);p=q=head;while(p!=NULL)if(strcmp(s,p-n ame)=0)break;if(strcmp(s,p-n umber)=O) break;p=p-n ext;;if(p匸NULL)prin tf(# #);printf(“修改物品基本信息:nprintf(“物品名:);prin tf(%sn,p_ n ame);printf(“物品編號(hào):);prin tf(%

36、sn,p_ nu mber);printf(“物品價(jià)格:);prin tf(%sn,p_price);printf(“物品生產(chǎn)日期:);prin tf(%sn,p-MFG);printf(“物品過(guò)期時(shí)間:);prin tf(%sn,p-EXP);printf(“物品分類:);prin tf(%sn,p_categoty);prin tf(# #);printf(“請(qǐng)輸入要修改的物品信息:n);prin tf(1.物品名);printf(“2.物品編號(hào)n);prin tf(3.物品價(jià)格);printf(“4.物品生產(chǎn)日期n);prin tf(5.物品過(guò)期時(shí)間);prin tf(6.物品分類n);

37、sca nf(%d, &choice);switch(choice)case 1:pri ntf(”請(qǐng)輸入修改后物品名:);sca nf(%s,w. name);while(i=1)while(q匸NULL)if(strcmp(w. name,q- name)=0)break;q=q_n ext;if(q匸NULL)printf(”該物品名已存在,請(qǐng)重新輸入物品名:);sea nf(%s,w. name);q=head;elsei=2;q=head;strcpy(p-n ame,w. name);break;case 2:pr in tf(請(qǐng)輸入修改后的物品編號(hào):);sca nf(%s,w .

38、n umber);while(q匸NULL)if(strcmp(w. number,q- number)=O)break;q=q_n ext;if(q!=NULL)prin tf(該物品名已存在,請(qǐng)重新輸入物品名:”);sca nf(%s,w .n umber);q=head;elsei=2;q=head;strcpy(p-n umber,w .n umber);break;case 3:pri ntf(請(qǐng)輸入修改后的物品價(jià)格:);sca nf(%s,p-price);case 4:pri ntf(請(qǐng)輸入修改后的物品生產(chǎn)日期:);sca nf(%s,p-MFG);case 5:pri ntf(

39、請(qǐng)輸入修改后的物品過(guò)期時(shí)間:“);sca nf(%s,p-EXP);case 6:pri ntf(請(qǐng)輸入修改后的物品類別:”);sca nf(%s,p_categoty);default: printf(”輸入錯(cuò)誤!請(qǐng)重新輸入要修改的物品信息sca nf(%d, &choice);break;else pri ntf(沒有找到該物品!n);printf(“你確定修改信息?n1.是2.否n);sca nf(%d,&k); if(k=1)物品信息已完成修改!n); 你已取消修改物品信息!n);Save(head,mark); printf(else prin tf(void Sort(char *

40、mark)根據(jù)輸入的物品名或編號(hào),顯示查找到的相應(yīng)物品信息system(cls);Goods *head,*p,*q,*k;int i=1;head=Load(mark);q=p=k=head;char s10;system(cls);while(i=1)printf(請(qǐng)輸入需要查找的該分類:“);sca nf(%s,s);while(q匸NULL)if(strcmp(s,q-categoty)=0)break;q=q_n ext;prin tf(|名稱 | 編號(hào)|分類 |n);if(q!=NULL)for(;)if(strcmp(p-categoty,s)=0)&p!=NULL)prin t

41、f(|%-10s|%-6s|%-10s|n,p- name,p- number,p-categoty);p=p-n ext;if(p=NULL)i=2;break;else printf(您輸入的分類不存在,請(qǐng)重新輸入!n);q=k;void AIISort(char *mark)根據(jù)輸入的分類,顯示該分類的所有物品信息system(cls);Goods *head,*p,*q;char b10;int i=0;head=Load(mark);p=q=head;typedef struct lbchar categoty20;struct lb *n ext;lb;lb *k,*l,*m,*s

42、,*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)prin tf(不存在任何物品!n);elsewhile(p匸NULL)while(l- next!=NULL)j=l-n ext;if(strcmp(j-categoty,p-categoty)=0)l=s;p=p-n ext;else l=l-n ext;m=(lb*)malloc(sizeof(lb);strcpy(

43、b,p-categoty);strcpy(m-categoty,b);m-n ext=k- n ext;k- n ext=m;k=m;l=s;p=p-n ext;prin tf(物品各分類數(shù)目:n);while(s- next!=NULL)pr in tf(%s:,s-n ext-categoty);strcpy(b,s-n ext-categoty);while(q匸NULL)if(strcmp(b,q-categoty)=0)i+;q=q_n ext;if(q=NULL)prin tf(%dn,i);i=O;q=head;s=s-n ext;int atoi(co nst char *s)把字符竄轉(zhuǎn)換成整型數(shù)int a,b,c,d;a=strle n(s);c=sa_2_0;b=sa-1-O;d=c*10+b;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論