版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、僚!3“看車工此學(xué)院HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC語言程序設(shè)計課程設(shè)計報告課設(shè)題目:學(xué)生信息管理系統(tǒng)專業(yè):電氣工程及其自動化班級:商品銷售管理姓名:W成績:完成日期:2012年6月18日2012年6月22日指導(dǎo)教師:史旅華梅琴1. 課程設(shè)計目的22. 需求分析22.1 要求22.2 任務(wù)描述22.3 運行環(huán)境32.4 開發(fā)工具33. 總體設(shè)計43.1 系統(tǒng)流設(shè)計43.2 系統(tǒng)模塊設(shè)計44. 詳細設(shè)計54.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計54.2 模塊接口設(shè)計74.3 以下是幾個主要模塊的流程圖:85. 運行結(jié)果125.1 主菜單界面:125.2 信息錄入界面:13
2、5.3 信息瀏覽界面:145.4 信息查詢界面:155.5 信息修改界面:156. 程序調(diào)試與測試186.1 程序調(diào)試196.2 程序測試207. 問題與不足238. 建議239. 編程體會2310. 程序源代碼:2411. 參考文獻4312. 用戶使用手冊441. 課程設(shè)計目的1) 通過課程設(shè)計,加深對結(jié)構(gòu)化程序設(shè)計思想的理解,能對系統(tǒng)功能進行分析,并設(shè)計合理的模塊化結(jié)構(gòu)。2) 通過課程設(shè)計,進一步掌握C語言中重要的數(shù)據(jù)結(jié)構(gòu)。掌握并熟練運用指針、鏈表、結(jié)構(gòu)體、文件等數(shù)據(jù)結(jié)構(gòu)。3) 通過課程設(shè)計,提高程序開發(fā)能力,能運用合理的控制流編寫清晰高效的程序。4) 通過課程設(shè)計,培養(yǎng)C語言知識運用和自
3、學(xué)能力,真正的把課堂上獲得的知識運用起來,培養(yǎng)自己對程序編寫的興趣,并能獨立設(shè)計和實現(xiàn)一個小型系統(tǒng)。5) 通過課程設(shè)計,加強了自己的程序分析能力。2. 需求分析2.1 要求1) 遵循軟件開發(fā)過程的基本規(guī)范;能靈活應(yīng)用,初步具備運用C程序解決實際問題的能力。2) 運用結(jié)構(gòu)化程序設(shè)計方法,按照課程設(shè)計題目要求,完成包括需求分析、數(shù)據(jù)結(jié)構(gòu)設(shè)計、概要設(shè)計、詳細設(shè)計、編寫代碼、調(diào)試和測試C程序等過程。3) 學(xué)會利用數(shù)組、結(jié)構(gòu)體、鏈表進行相關(guān)信息表示。4) 功能模塊劃分清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求,且有詳盡的功能描述5) 各主要功能模塊有詳盡的流程圖及描述,用函數(shù)的形式實現(xiàn),且調(diào)用入口、功能、出口等關(guān)
4、系正確。6) 所設(shè)計的C程序較好的可讀性和可靠性;程序書寫風(fēng)格規(guī)范,注釋清晰。7) 界面友好(良好的人機互交),凡需要輸入信息時,都有較詳盡的提示信息,并對輸入信息有較完善的值域分析。8) 程序經(jīng)上機調(diào)試通過,不應(yīng)出現(xiàn)語法型、功能型錯誤,并獲得滿意的結(jié)果。9) 學(xué)會通過各功能性測試用例測試程序的能力,盡可能避免原則性錯誤的出現(xiàn)。10) 掌握編寫、調(diào)試和測試C語言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計的基本方法。11) C語言課程設(shè)計報告的內(nèi)容反應(yīng)實際設(shè)計過程,且符合格式要求,無抄襲現(xiàn)象。2.2 任務(wù)描述此系統(tǒng)以鍵盤輸入和導(dǎo)入文件獲得商品信息,通過選擇操作碼實現(xiàn)錄入信息、查詢信息、保持你信息等不
5、同的功能。具體有以下功能:1) 顯示主界面并提示用戶選擇。2) 導(dǎo)入商品信息:實現(xiàn)從鍵盤輸入或從文件導(dǎo)入10個商品信息。3) 輸入銷售記錄:從鍵盤輸入銷售記錄,以進行下面的查詢。4) 按編號查詢銷售歷史:根據(jù)輸入的商品編號從銷售信息中顯出對應(yīng)的銷售信息。5) 按顧客姓名查詢銷售歷史:根據(jù)輸入的顧客姓名在輸入的銷售記錄查詢其購買的商品信息。6) 計算時間段內(nèi)銷售總額:更具輸入的時間從銷售信息中計算銷售總和。7) 顯示顧客信息:從銷售記錄中抽取并顯示顧客姓名。8) 保存銷售信息:保存所輸入的銷售信息。9) 保存顧客信息:保存顧客的編碼及姓名。10) 退出:退出系統(tǒng),謝謝使用。2.3 運行環(huán)境1)
6、WindowsXP/7系統(tǒng)2) VC+6.0編譯環(huán)境2.4 開發(fā)工具C語言3. 總體設(shè)計3.1 系統(tǒng)流設(shè)計3.2 系統(tǒng)模塊設(shè)計1)主菜單界面:構(gòu)造函數(shù)intselect(),實現(xiàn)系統(tǒng)主菜單的顯示。2)商品信息導(dǎo)入:構(gòu)造函數(shù)voidEnter_productmessage(),實現(xiàn)商品信息的導(dǎo)入及顯示。并通過分別調(diào)用函數(shù)voidcomp()和voidfile(),實現(xiàn)從鍵盤輸入信息和通過文件導(dǎo)入信息。3)輸入銷售記錄:構(gòu)造函數(shù)voidCreat(),實現(xiàn)對從鍵盤輸入銷售記錄并通過調(diào)用intjudgech(char*a)、intjudgedate(chardate10)函數(shù)判斷商品名、銷售日期是否
7、合法。4)按編號查詢銷售歷史:構(gòu)造函數(shù)voidSearch_num(),實現(xiàn)從鍵盤輸入商品編號查詢該編號對應(yīng)商品的銷售記錄。5)按顧客姓名查詢銷售歷史:構(gòu)造函數(shù)voidSaerch_customername(),實現(xiàn)從鍵盤輸入顧客姓名查詢該顧客的購買歷史信息。如果沒有該顧客信息可選擇新建該顧客銷售記錄。6)計算各時段內(nèi)銷售總額:構(gòu)造函數(shù)voidSearch_date(),實現(xiàn)從鍵盤輸入日期并調(diào)用intjudgedate(chardate10)判斷日期輸入是否合法查詢從輸入時間導(dǎo)系統(tǒng)時間內(nèi)的銷售總額。7)顯示顧客姓名:構(gòu)造函數(shù)voidPrintf_customername(),實現(xiàn)顯示所有顧客的
8、姓名。8)保存銷售信息:構(gòu)造函數(shù)voidSave_product(),實現(xiàn)保存銷售商品的信息。9)保存顧客信息:構(gòu)造函數(shù)voidSave_customername(),實現(xiàn)保存顧客的信息。10)退近:構(gòu)造函數(shù)voidExit(),實現(xiàn)退出系統(tǒng),顯示“謝謝使用”。4.詳細設(shè)計4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的數(shù)據(jù)信息,其結(jié)構(gòu)如下:數(shù)據(jù)項名稱數(shù)據(jù)項系統(tǒng)表示數(shù)據(jù)類型數(shù)據(jù)長度備注冏品名稱productnamechar20必須漢子冏品編碼numint商品產(chǎn)地placechar30必須漢子商品價格pricefloat顧客名字namechar20必須漢子顧客購買編碼numint顧客購買數(shù)量co
9、untint顧客購買日期datechar10顧客編碼IDint根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的類別信息,其結(jié)構(gòu)如下:類別代號datecoutIDname類別名稱銷售日期銷售數(shù)量顧客編碼顧客名字為了能實現(xiàn)不受限制的增加商品,各科信息,采用鏈表的結(jié)構(gòu)保存商品和銷售信息,在增加商品和顧客的基本信息時,分別創(chuàng)建一個對應(yīng)的節(jié)點,將其插入到對應(yīng)的鏈表中,示意圖如下。為此,先聲明一個類型為 struct product和sturct sell的結(jié)構(gòu)體,對應(yīng)的成員分別為商品編碼、商品名稱、商品售價、商品產(chǎn)地商品庫存和顧客代碼、顧客姓 名、商品編碼、銷售數(shù)量、銷售日期信息。然后通過對指針、鏈表、文件等數(shù)據(jù)結(jié) 構(gòu)的
10、操作,實現(xiàn)對商品和顧客信息的錄入、查詢、瀏覽等一系列操作。其中,結(jié)構(gòu)體定義如下:struct productint num;char productname20;float price;char place30;int storage;struct product *next;*head,*p1 , *p2;、struct timeint year;int month;int day;/定義商品數(shù)據(jù)結(jié)構(gòu)/冏品編號/商品名稱/商品售價/商品產(chǎn)地/商品庫存/定義時間結(jié)構(gòu)體/年/月/天struct sell/定義銷售數(shù)據(jù)結(jié)構(gòu)int ID;char customername20;int num;int
11、 count;char date10;struct sell * nextl;*head1;4.2模塊接口設(shè)計1)所有函數(shù)模塊聲明如下:int select();void Enter_productmessage();void Creat();void Search_num();void Search_customername();void Search_date();void Printf_customername();void Save_product();void Save_customername();void Exit();int judgech(char *a)int judged
12、ate(char date10)void file()void comp()/顧客代碼/顧客姓名/冏品編號/銷售數(shù)量/日期/主菜單函數(shù)/導(dǎo)入商品信息/導(dǎo)入銷售記錄/按編號查詢銷售歷史/按顧客姓名查詢購買歷史/計算時間段內(nèi)銷售總額/顯示顧客信息/保存銷售信息/保存顧客信息/退出程序/判斷是否為漢字/判斷日期是否合法/從文件導(dǎo)入商品信息/從鍵盤輸入商品信息2)主要模塊的實現(xiàn)系統(tǒng)以主函數(shù)intmain()為入口,首先通過intselect()函數(shù),顯示課程設(shè)計名稱、作者信息及主菜單。提示用戶選擇,系統(tǒng)接收用戶輸入的選擇,通過主函數(shù)根據(jù)用戶選擇進行判斷,選擇合法后調(diào)用相應(yīng)的函數(shù),進入到下一級菜單進行,
13、在下一個功能中進行對應(yīng)的工作4.3以下是幾個主要模塊的流程圖:1)主菜單函數(shù):2)信息導(dǎo)入函數(shù):3)輸入商品信息函數(shù)4)按編碼查詢函數(shù)輸入商品的信息5)按顧客姓名查詢函數(shù)返回主菜單返回主菜單輸入要查詢商品的輸入要“到商品的編碼顯示彳肯息以6)時間段內(nèi)銷售總額函數(shù)顯示信息輸入要查詢時間段7)保存銷售商品信息函數(shù)8)保存顧客信息函數(shù)輸入保存文件名5.運行結(jié)果5.1 主菜單界面:顯示信息保存成功*欣迎"史用商品箱售管理梟統(tǒng)*請輸入您的注擇總楚數(shù)X.3E主菜單界口桌一息息息S12345G78M-售封錯三口衛(wèi)旬生內(nèi)在且1115款查靜Gfl銳一1號癖時顧情顧Ais¥8'C:U鋪
14、rsureDe$口。p'比軍、Debu語言.exe,信息導(dǎo)入界面'C:Uersu50Desktop、第RDEbug:語言ejce,.txtHMXMMMHXliIMfNUNWIiiJiaKMXMHXWrKXKWKMHM:編號1T后的整數(shù)3名稱誠字)咻粽數(shù)尹產(chǎn)地漢字庫存皴量MKHMMXHMKMMrK>M<M>EXMHMMMMMMKC9-MtMMMMMMHKMMMMMKMMXMMXMMMM9cMMMMHX>EXMMMMMMM水鞋機著腦礦面杯H口電雷2.S01.5U15.幽20.8025.66200.091000.0EI00e.ee2曬.胸6000.06二0B6
15、10Q6000000100Q1006數(shù)據(jù)類信息操作成功,請按Ent”握繼續(xù)H?從文件導(dǎo)入信息界面從鍵盤輸入商品信息5.3銷售信息錄入界面:從鍵盤輸入銷售信息從鍵盤中輸入要查詢的商品編碼,進行查詢,并顯示結(jié)果5.5按顧客姓名信息界面:從鍵盤輸入要查詢顧客的姓名,進行查詢,并顯示結(jié)果。5.6查詢時間段內(nèi)信息界面:從鍵盤輸入兩個時間,查詢改時間內(nèi)的銷售信息,是結(jié)果1.7 顯示顧客姓名uj回保存顧客學(xué)名1.8 保存銷售商品信息保存銷售商品信息5.9保存顧客信息保存顧客信息5.10退出程序51'C:MJwnusre>esctopiDetHJW.exe"=回責(zé)謝使用continue
16、退出程序6 .程序調(diào)試與測試6.1 程序調(diào)試導(dǎo)入商品信息模塊"C:Useru5reDeslrtopDebugiaWexe,適輸入讀入文件路徑"七"XPfiPIMfMEXKlIEXMT*XJfXJfK*MKJtJt商品信編號&ID的整數(shù)名郡漢字、竹落激字產(chǎn)地放字庫存數(shù)量第1個商品編碼?請重新輸入一1目)=MM MH MKM第工人商品數(shù)量錯誤?請輸入1的。壯目2.001.5015.082H.0A25.00200.031000.064曲姻.血2000.906000.39濱 西泉陽江春 士舞式南山陂哈沈漸長1QUU 1Q80 1曬 曬1003 1003 1003
17、1MUU1Q99 1093數(shù)據(jù)美信息操年成珈清按Ee尸鍵M續(xù)H從文件導(dǎo)入,CJ:U.e0u$reDe5lrtopiSDebugi=.£?ce"已從文件導(dǎo)入的個數(shù)和要輸入的個數(shù)和不超過十,?請輸入要導(dǎo)入的銷售記錄個數(shù)二品"1 百,息7舞圣 MMX麻充*,*=班*蓑MM3CMMSMMSHX父梵魏XKJiMltMSM.尚編號整教名稱漢字11 shui 510800價格溫壬I聲地雙字)庫存數(shù)量商品數(shù)量錯誤f清輸入000;1008水S-MW武漢1MWM是否維經(jīng)輸入信息50?從鍵盤輸入輸入銷售記錄6.2程序測試查詢:輸入數(shù)字大于10輸入1輸入錯誤顧客姓名真確姓名輸入時間段不符
18、合(2011-05-052011-05-05)F :胡曲 Debug'語言 £加".尸_回i3"T7 .問題與不足(1)題目重要求判斷是否是漢字,要求時間調(diào)用系統(tǒng)時間。但是由于這些并不會,所以借用了判斷漢子。但調(diào)用時間任然不會。Y/y后輸入下一條。(2)在設(shè)計中不能一次輸入多條商品信息和多條銷售記錄,而是需選擇(3)沒有設(shè)計一個判斷商品信息是否錯誤的函數(shù)。(4)在編碼中由于沒有判斷商品信息是否合法的函數(shù),使程序很長。有些是反復(fù)使用,有些語句顯得太羅嗦。(5)在調(diào)試時,如果看提示信息,不按要求而是亂輸可能會導(dǎo)致程序不能正常運行或者結(jié)果錯誤。8.建議在本次課設(shè)
19、中,在時間上我覺得時間有點短,雖然差不多是兩個周,但是由于要準(zhǔn)備考試所以不能完全投入到課設(shè)中去。課設(shè)的題目分配時難易度不一樣,而又不是自己選取題目,這樣對于學(xué)得好的與學(xué)的差的所接受的任務(wù)不符合。對我自己來說,我的題目讓同學(xué)幫忙,基本都說鏈表不會。在輔導(dǎo)時候老師只有兩個,有時候有問題卻沒有老師。等老師有時間我們自己又不想弄了。在以后的課設(shè)中,我希望老師按照個人所學(xué)的程度來分配難易的題目或者都是一樣的題目,當(dāng)然我知道老師也有老師的道理,但是學(xué)習(xí)是自己的事,想抄襲的人不管啥樣的題目他都會抄襲的。在時間上可以放寬一些以便程序更完美。輔導(dǎo)老師辛苦些,多加幾個老師輔導(dǎo)更多的學(xué)生。9.編程體會通過這次課設(shè),
20、我知道了自己C語言不懂不會的地方,在前面學(xué)習(xí)的知識后來不能靈活運用,有些東西雖然當(dāng)時覺得很簡單,也掌握了,但是到自己用的時候卻總是出錯!自從上了結(jié)構(gòu)體之后,C語言的學(xué)習(xí)難度加大,但我依舊不重視,和前面一樣的學(xué)習(xí)。結(jié)果后面的全聽不懂,特別是鏈表和指針。本次的課設(shè)編程題目對我來說是很難的。里面要用到鏈表指針但通過課設(shè),這些都是我不會的。通過請教同學(xué)和老師總算編好了程序,同時對鏈表和指針有些了解,雖然用的不靈活但知道了怎么用。編完程序我反思自己的學(xué)習(xí),發(fā)現(xiàn)學(xué)習(xí)C語言只看懂書是沒用的,平時要多練習(xí)。當(dāng)然不是簡單的題,而是難題。在練習(xí)難題的時候多思考,運用不同的方法解決問題。遇到不懂的要問老師問同學(xué)或者
21、看書來解決??傊?,在課設(shè)中我清楚的認(rèn)識了自己C語言的現(xiàn)狀,在經(jīng)后的練習(xí)中我會努力克服不足學(xué)好C語言、靈活運用C語言。10.程序源代碼:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>/ 定義商品數(shù)據(jù)結(jié)構(gòu)/ 商品編號/ 商品名稱/ 商品售價/ 商品產(chǎn)地/ 商品庫存structproductintnum;charproductname20;floatprice;charplace30;intstorage;structproduct*next;*head,*
22、p1,*p2;struct time/定義主結(jié)構(gòu)體數(shù)組和備用結(jié)構(gòu)體數(shù)組及指針/定義時間結(jié)構(gòu)體intyear;intmonth;intday;struct sellint ID;char customername20;int num;int count;char date10;struct sell * next1;*head1;/*/ 定義銷售數(shù)據(jù)結(jié)構(gòu)/ 顧客代碼/ 顧客姓名/ 商品編號/ 銷售數(shù)量/ 日期/ 定義頭指針head, 緩沖指針 p1, 以及尾指針p2函數(shù)申明 */void Enter_productmessage();/ 導(dǎo)入商品信息void Creat();void Searc
23、h_num();void Search_customername();void Printf_customername();void Search_date();void Save_product();void Save_customername();void Exit();/ 輸入銷售記錄/ 按編號查詢銷售歷史/ 按顧客姓名查詢購買歷史/ 顯示顧客信息/ 計算時間段內(nèi)銷售總額/ 保存銷售信息/ 保存顧客信息/ 退出程序/*、 t t - ,、/, 主菜單*/intselect()intc;printf("tt*歡迎使用商品銷售管理程序*n");n");print
24、f("ttT1123-5班胡軍一分耕耘一分收獲printf("nn");printf("n");printf("tt*n");printf("tt*歡迎使用商品銷售管理系統(tǒng)*n");printf("tt*n");printf("tt*1:導(dǎo)入商品信息*n");printf("tt*2:輸入銷售記錄*n");printf("tt*3:按編號查詢銷售歷史*n");printf("tt*4:按顧客姓名查詢購買歷史*n&qu
25、ot;);printf("tt*5:計算時段內(nèi)各銷售總額*n");printf("tt*6:顯示顧客信息*n");printf("tt*7:保存銷售信息*n");printf("tt*8:保存顧客信息*n");printf("tt*0:退出*n");printf("tt*n");printf("nn");printf("tt請輸入您的選擇(08的整數(shù)):");scanf("%d",&c);returnc;/*
26、主函數(shù)*/intmain()for(;)switch(select()case1:system("cls");Enter_productmessage();break;case2:system("cls");Creat();break;case3:system("cls");Search_num();break;case4:system("cls");Search_customername();break;case5:system("cls");Search_date();break;case6
27、:system("cls");Printf_customername();break;case7:system("cls");Save_product();break;case8:system("cls");Save_customername();break;case0:system("cls");Exit();break;default:system("cls");printf("nnnnnn");printf("tt*n");printf("
28、tt*輸入錯誤!請重新輸入您的選擇(08*n");printf("tt*請按Enter鍵*n");printf("tt*n");getchar();getchar();system("cls");return0;的整數(shù))返回!/*/intjudgech(char*a)inti,flag;for(i=0;ai!='0'i+)if(ai>=0)flag=0;break;elseflag=1;returnflag;/判斷是否為漢字intjudgedate(chardate10)inti,year,month,
29、day,s1=0;for(i=0;i<10;i+)if(datei='0')/判斷日期是否合法/日期格式輸入正確則s1=1,否則s1=0s1=0;break;if(date4='-'&&date7='-')if(strlen(date)=10)year=1000*(date0-48)+100*(date1-48)+10*(date2-48)+(date3-48);/年月日month=10*(date5-48)+(date6-48);day=10*(date8-48)+(date9-48);if(i=10)if(year%4=
30、0&&month=2&&day>0&&day<=29)s1=1;elseif(year%4!=0&&month=2&&day>0&&day<=28)s1=1;elseif(month=1|month=3|month=5|month=7|month=8|month=10|month=12)&&day>0&&day<=31)s1=1;elseif(month=4|month=6|month=9|month=11)&&da
31、y>0&&day<=30)s1=1;returns1;voidfile()/讀入文件操作inti=0,m=0,k=1,j=1,c=1,o=1,v=1;FILE*fp;charfilename30;printf("請輸入讀入文件路徑:");rewind(stdin);gets(filename);rewind(stdin);p1=p2=head=(structproduct*)malloc(sizeof(structproduct);if(fp=fopen(filename,"r+")=NULL)printf("tt*
32、n");printf("tt*導(dǎo)入信息文件錯誤!請檢查文件路徑!*n");printf("tt*n");getchar();system("cls");Enter_productmessage();printf("*商品信息printf(" 編號 (1-10 的整數(shù) ) 名稱(漢字)*價格(數(shù)字)產(chǎn)地(漢字)*n");庫存數(shù)量n");printf("*n");while(!feof(fp)p1=(structproduct*)malloc(sizeof(struct
33、product);p2->next=p1;p1->next=NULL;p2=p1;fscanf(fp,"%d%s%f%s%d",&p2->num,p2->productname,&p2->price,p2->place,&p2->storage);while(k=1)if(p2->num>10|p2->num<=0)printf("t*n");printf("tt第個商品編碼!請重新輸入(1-10):",i+1);rewind(stdin);sc
34、anf("%d",&p2->num);k=1;elsek=0;while(j=1)if(judgech(p2->productname)=0)printf("tt第個商品名稱錯誤!請重新輸入(漢字):",i+1);rewind(stdin);scanf("%s",p2->productname);j=1;elsej=0;while(o=1)if(p2->price<=0)printf("tt第個商品價格錯誤!請重新輸入價格(>0):",i+1);rewind(stdin)
35、;scanf("%f",&p2->price);o=1;elseo=0;while(c=1)if(judgech(p2->place)=0)printf("tt第個商品產(chǎn)地格式錯誤!請重新輸入(漢字):",i+1);rewind(stdin);scanf("%s",p2->place);c=0;elsec=0;while(v=1)if(p2->storage!=1000)printf("t*n");printf("tt第個商品數(shù)量錯誤!請輸入1000:",i+1)
36、;rewind(stdin);scanf("%d",&p2->storage);v=1;elsev=0;printf("t%-12d%-15s%-15.2f%-15s%-12dn",p2->num,p2->productname,p2->price,p2->place,p2->storage);fclose(fp);voidcomp()FILE*fp;inti=0,n,k=1,m=1,c=1,l=1,d=1;charfilename20,a;printf("t請輸入商品信息保存路徑:");r
37、ewind(stdin);gets(filename);p1=p2=head=(structproduct*)malloc(sizeof(structproduct);if(fp=fopen(filename,"a+")=NULL)printf("tt*n");printf("tt*不能打開文件!請檢查文件路徑!printf("tt*n");getchar();system("cls");Enter_productmessage();printf("nnn");*n");pr
38、intf("tt* printf("tt* printf("tt* printf("tt* printf("tt*n");若輸入路徑與從文件導(dǎo)入商品信息路徑相同并已導(dǎo)入十個商品信息 , 請不要再導(dǎo)入 !注意商品編號不要和已導(dǎo)入的編碼重復(fù) !*n");!*n");*n");*n");printf("nnn");getchar();system("cls");printf("t 已從文件導(dǎo)入的個數(shù)和要輸入的個數(shù)和不超過十printf("t
39、請輸入要導(dǎo)入的銷售記錄個數(shù) :");scanf("%d",&n);if(n>0)dop1=(struct product*)malloc(sizeof(struct product);p2->next=p1;p1->next=NULL;p2=p1;printf("*n");printf(" 編號 (整數(shù) ) 名稱 (漢字 ) 價格 (數(shù)字 )!nn");產(chǎn)地(漢字)庫存數(shù)量 n");scanf("%d%s%f%s%d",&p2->num,p2->pr
40、oductname,&p2->price,p2->place,&p2->storage);while(k=1)if(p2->num>10|p2->num<=0)printf("t*n");printf("tt商品編碼!請重新輸入(1-10):");rewind(stdin);scanf("%d",&p2->num);k=1;elsek=0;while(m=1)if(judgech(p2->productname)=0)printf("tt商品名稱錯
41、誤!請重新輸入(漢字):");rewind(stdin);scanf("%s",p2->productname);m=1;elsem=0;while(l=1)if(p2->price<=0)printf("tt商品價格錯誤!請重新輸入價格(>0):");rewind(stdin);scanf("%f",&p2->price);l=1;elsel=0;while(c=1)if(judgech(p2->place)=0)printf("tt商品產(chǎn)地格式錯誤!請重新輸入(漢字)
42、:");rewind(stdin);scanf("%s",p2->place);c=1;elsec=0;while(d=1)if(p2->storage!=1000)printf("t*n");printf("tt商品數(shù)量錯誤!請輸入1000:");rewind(stdin);scanf("%d",&p2->storage);d=1;elsed=0;p2=head->next;fprintf(fp,"n%-6d%-6s%-6.2f%-6s%-6dn",p
43、2->num,p2->productname,p2->price,p2->place,p2->storage);printf("n%-6d%-6s%-6.2f%-6s%-6dn",p2->num,p2->productname,p2->price,p2->place,p2->storage);printf("tt是否繼續(xù)輸入信息(Y/N)?n");getchar();a=getchar();while(a='Y'|a='y');fclose(fp);/關(guān)閉文件夾i
44、f(n=0)printf("tt不從鍵盤輸入入信息!");getchar();getchar();system("cls");fclose(fp);/關(guān)閉文件夾voidEnter_productmessage()/導(dǎo)入銷售信息inta;printf("t* printf("t* printf("t* printf("t* printf("t* printf("t*n");*n");*n");*n");請輸入10種產(chǎn)品的信息-編號、名稱、價格、產(chǎn)地、數(shù)量1:
45、通過文件導(dǎo)入(推薦)!2:通過鍵盤輸入!*n");請輸入您的選擇(1或2):");scanf("%d",&a);getchar();system("cls");if(a!=1&&a!=2)printf("tt輸入錯誤!請重新輸入您的選擇(1或2):");scanf("%d",&a);switch(a)case1:system("cls");file();break;case2:system("cls");comp();bre
46、ak;printf("*n");printf("t*n");printf("t*數(shù)據(jù)類信息操作成功!請按Enter鍵繼續(xù)!*n");printf("t*n");getchar();getchar();system("cls");voidCreat()/輸入銷售信息函數(shù)inti=0,k=1,code;chara;structsell*p3,*p4;srand(0);code=1+rand()%90;p3=p4=head1=(structsell*)malloc(sizeof(structsell)
47、;p3=head1;printf("tt請輸入銷售記錄:n");printf("dop3=(structsell*)malloc(sizeof(structsell);p4->next1=p3;p3->next1=NULL;/提示輸入記錄n");p4=p3;printf("顧客姓名(漢字)商品編號(YYYY-MM-DD)n");printf("(1-10的整數(shù))銷售數(shù)量(數(shù)字)銷售日期n");scanf("%s%d%d%s",p4->customername,&p4-&
48、gt;num,&p4->count,p4->date);/輸入記錄doif(judgech(p4->customername)=0)printf("t*n");printf("tt顧客名字輸入錯!請重新輸入顧客名字(漢字):");scanf("%s",p4->customername);rewind(stdin);k=1;elsek=0;while(k=1);doif(p4->num>10|p4->num<=0)printf("t*n");printf("tt商品編碼!請重新輸入(1-10):");scanf("%d",&p4->num);rewind(stdin);k=1;elsek=0;while(k=
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TS 7815-1:2025 EN Intelligent transport systems - Telematics applications for regulated commercial freight vehicles (TARV) using ITS stations - Part 1: Secure vehicle in
- 精餾塔苯甲苯課程設(shè)計
- 統(tǒng)計信源熵課程設(shè)計
- 移動通信秒表課程設(shè)計
- 泵與泵站課程設(shè)計概要
- 2024招聘考試高頻考點題庫試題含答案
- 線描狗狗創(chuàng)意課程設(shè)計
- 山地自行車行業(yè)銷售工作總結(jié)
- 自然教育課程設(shè)計大賽
- 學(xué)校班主任的食品安全教育策略計劃
- 《南亞》優(yōu)教課件(第1課時)
- 【電動汽車兩擋變速器結(jié)構(gòu)設(shè)計10000字(論文)】
- 非固化橡膠瀝青防水涂料技術(shù)交底
- 高二期末考試動員主題班會
- 易錯題(試題)-2024一年級上冊數(shù)學(xué)北師大版含答案
- 滕州市九年級上學(xué)期期末語文試題(原卷版+解析版)
- EPC項目投標(biāo)人承包人工程經(jīng)濟的合理性分析、評價
- 三相三線計量裝置運行狀態(tài)評估與錯接線排障、反竊電現(xiàn)場處置技巧
- 房建工程監(jiān)理大綱范本(內(nèi)容全面)
- JB-T9092-1999閥門的檢驗與試驗
- 鈑金行業(yè)的年度計劃
評論
0/150
提交評論