相機(jī)銷售系統(tǒng)C語言實(shí)習(xí)報(bào)告_第1頁
相機(jī)銷售系統(tǒng)C語言實(shí)習(xí)報(bào)告_第2頁
相機(jī)銷售系統(tǒng)C語言實(shí)習(xí)報(bào)告_第3頁
相機(jī)銷售系統(tǒng)C語言實(shí)習(xí)報(bào)告_第4頁
相機(jī)銷售系統(tǒng)C語言實(shí)習(xí)報(bào)告_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、西安郵電大學(xué)C語言課程設(shè)計(jì)報(bào)告題目:相機(jī)銷售管理系統(tǒng)院系名稱:計(jì)算機(jī)學(xué)院專業(yè)名稱:計(jì)算機(jī)科學(xué)與技術(shù)班級:學(xué)生姓名:學(xué)號(8位):指導(dǎo)教師:設(shè)計(jì)起止時(shí)間:設(shè)計(jì)目的1:數(shù)量掌握c語言編程,并靈活營運(yùn)函數(shù)實(shí)現(xiàn)不同的功能; 2:用c語言編寫相機(jī)銷售管理系統(tǒng)的程序;3:更深入了解c語言,牢記其中各注意事項(xiàng)。二. 設(shè)計(jì)內(nèi)容相機(jī)銷售管理系統(tǒng):參數(shù):相機(jī)型號(品牌version),感光器件(sensetization),市場價(jià)(price),光學(xué)變焦倍數(shù)(optical_zoom),最大像素(highest_pixel)。提供的功能:1:系統(tǒng)界面處理(包括密碼登陸,密碼的修改等); 2:系統(tǒng)工作方式,以菜單方

2、式工作; 3:商戶功能a:相機(jī)參數(shù)及內(nèi)容的順序輸出(按市場價(jià)高低);b: 相機(jī)參數(shù)及內(nèi)容的錄入與信息的增加輸入; c: 相機(jī)參數(shù)及內(nèi)容的顯示輸出; d:相機(jī)參數(shù)及內(nèi)容的選擇刪除;e: 相機(jī)參數(shù)及內(nèi)容的修改; f:相機(jī)參數(shù)及內(nèi)容的查詢與統(tǒng)計(jì)(1):按型號(品牌)(2):按感光器件(3):按市場價(jià)(4):按光學(xué)變焦倍數(shù)(5):按像素 4:用戶功能a:相機(jī)參數(shù)及內(nèi)容的顯示輸出;b:相機(jī)參數(shù)及內(nèi)容的查詢與統(tǒng)計(jì)(1):按型號(品牌)(2):按感光器件(3):按市場價(jià)(4):按光學(xué)變焦倍數(shù)(5):按像素c:相機(jī)參數(shù)及內(nèi)容的順序輸出(按市場價(jià)高低)三概要設(shè)計(jì)1功能模塊圖;密碼管理密碼管理密碼登錄修改密碼商戶

3、管理用戶管理讀文本順序輸出菜單(登錄界面、主菜單)進(jìn)入系統(tǒng)查找信息刪除文件修改信息增加文件讀文本查找信息順序輸出型號市場價(jià)感光器件光學(xué)變焦倍數(shù)最大像素型號main()主函數(shù)2各個模塊詳細(xì)的功能描述。主函數(shù): void main();登錄菜單: void headmean(); /進(jìn)入主系統(tǒng)進(jìn)入系統(tǒng)選擇服務(wù)void MainMenu(); /用戶選擇系統(tǒng)選擇服務(wù)(1):Int CipherTest(); /用戶密碼檢驗(yàn)void RevisalCipher(); /密碼修改(2):進(jìn)入主菜單:headmean();用戶選擇void MainMenu(); /用戶選擇系統(tǒng)正式使用系統(tǒng)void ope

4、nsurface_1(); /商戶管理界面void c; /客戶管理界面商戶管理void save_inf(Linklist L); /創(chuàng)建文件void read_file(); /讀文件void inter_sort_s(); /商戶進(jìn)入排序操作void add_file(); /增加文件信息Linklist delect_mean(); /進(jìn)入刪除操作void amend_file(); /進(jìn)入修改操作void find_message_s(); /進(jìn)入商戶查找操作客戶管理void read_file(); /讀文件void inter_sort_c(); /客戶進(jìn)入排序操作void fi

5、nd_message_c(); /進(jìn)入客戶查找操作菜單函數(shù):void int_mean(); /系統(tǒng)主菜單void inter_mean(); /功能主菜單void surface_1(); /商戶菜單void surface_2(); /用戶菜單void amend_mean(); /修改項(xiàng)菜單 void find_mean(); /查找并統(tǒng)計(jì)菜單四詳細(xì)設(shè)計(jì)1功能函數(shù)的調(diào)用關(guān)系圖;main()main()主函數(shù)save_inf(Linklist L)headmean()opensurface_1()inter_sort_s()CipherTest()add_file()amend_file(

6、)read_file()find_message_s()delect_mean()Opensurface_2()read_file()inter_sort_c()find_message_c()2各功能函數(shù)的數(shù)據(jù)流程圖;執(zhí)行CipherTest()函數(shù)1:密碼,執(zhí)行CipherTest()函數(shù)開始判斷輸入密碼是否正確密碼修改結(jié)束2讀取信息函數(shù),執(zhí)行read_file(開始判斷輸入密碼是否正確密碼修改結(jié)束開始開始打開文件將文件信息存到鏈表中輸出鏈表信息結(jié)束 3:按價(jià)格順序輸出,執(zhí)行sort_s()函數(shù)結(jié)束結(jié)束開始將文本信息存到鏈表中保留前驅(qū)結(jié)點(diǎn)進(jìn)入排序循環(huán)若第i項(xiàng)價(jià)格小于其后所比較的交換兩個信息

7、改鏈 4:增加信息,執(zhí)行add_file()函數(shù)結(jié)束結(jié)束開始創(chuàng)見鏈表添加信息到鏈表中將鏈表存到文本中保存文本5:刪除信息,執(zhí)行delect_mean()函數(shù)開始開始結(jié)束將文本信息存到鏈表中找到要刪除的信息將刪除信息的前個結(jié)點(diǎn)與其后結(jié)點(diǎn)相接,釋放刪除的信息空間保存文本 6:修改信息,執(zhí)行amend_file()函數(shù)開始開始結(jié)束將文本信息存到鏈表中找到要修改的信息將修改項(xiàng)的新信息重新輸入保存文本7:查找信息并統(tǒng)計(jì),執(zhí)行find_message_s()函數(shù)開始開始結(jié)束將文本信息存到鏈表中選擇尋找信息的方式根據(jù)查找方式找到所查信息保存文本進(jìn)入循環(huán)查找輸出所查找信息語氣查找的結(jié)果數(shù)3重點(diǎn)設(shè)計(jì)及編碼(其中

8、主函數(shù))。 1:密碼驗(yàn)證與密碼修改(實(shí)現(xiàn)密碼錯誤時(shí)可再次輸入)void RevisalCipher() /密碼修改char c26,c6;printf(請輸入新的6位數(shù)密碼:n);scanf(%s,c2);printf(請?jiān)俅屋斎肽拿艽a:n);scanf(%s,c);system(cls);if (strcmp(c2,c)=0)printf(密碼修改成功!n);printf(n);printf(n);int CipherTest() /密碼管理char c16,c2=111111;int m;system(cls);printf(nnnn);do printf( 請輸入您的密碼(首次進(jìn)入為6

9、位初始密碼)n);flushall(); scanf(%s,c1);/ c1 = getchar();if (strcmp(c1,c2)=0)printf(n);return 1;else printf(密碼輸入錯誤,請重新出入!n);printf(是否重新輸入(重新輸入請鍵入1;退出請鍵入0):n);scanf(%d,&m);flushall();while (m=1);return 0;2:顯示文本信息(將文本信息存到鏈表中)Linklist read_inf() /從指定文件中讀取信息并存入單鏈表中Linklist head;Mobel *p,*s;FILE *fp;char filen

10、ame40;int i=0;system(cls);flushall();printf(讀文件請輸入文件名(f:/b.txt有文件):n);gets(filename);for(; (fp = fopen(filename,rt) = NULL ;)printf(讀文件失敗,請重新輸入文件名:n);flushall();gets(filename);3:輸出鏈表信息(要有一個指向指針)void print_inf(Linklist L) /輸出鏈表信息Mobel *p;system(cls);printf( 該品牌信息如下:n);printf(n);printf( 型號最大像素(萬)市場價(jià)(元

11、)光學(xué)變焦倍數(shù)感光器件n);for(p = L-next;p-next !=NULL;p = p-next) printf( %-15s %-15d %-15d %-15d %-5s n,p-version,p-highest_pixel,p-price,p-optical_zoom,p-sensetization);flushall();printf(n);4:順序輸出(排序函數(shù)關(guān)鍵在找最大節(jié)點(diǎn)的位置時(shí)能記錄前一節(jié)點(diǎn)的位置,并實(shí)現(xiàn)鏈表的重新連接)Linklist sort_price() /排序Linklist head; Mobel *pre, *mid, *m, *p;head = re

12、ad_inf(); p = head-next; while(p != NULL) mid = head-next; if(head-price next-price) head-next = mid-next; mid-next = head; head = mid; pre = head; mid = head-next; m = mid-next; while(mid-next != NULL) if(mid-price price) pre-next = mid-next; mid-next = m-next; m-next = mid; pre = pre-next; mid = p

13、re-next; m = mid-next; p = p-next; return head;5:修改函數(shù)主要是對修改項(xiàng)的選擇Linklist amend(Linklist L) /修改鏈表char version10;Mobel *p;/int n;char m; amend_mean();printf(n);printf( 請正確輸入要修改內(nèi)容所對應(yīng)的型號:n);flushall();gets(version);p = L-next;/for(p=L; strcmp(p-version,Version) != 0 & p != NULL; p = p-next) /錯在這/; printf

14、(正確:n);while(p != NULL & strcmp(p-version,version)p = p-next;if(p != NULL)amend_mean();printf( 請選擇要修改的項(xiàng)目:n);scanf(%d,&m);printf(n);switch(m) case 1: printf( 請輸入新型號的內(nèi)容:n);flushall();gets(p-version);loop_amend(L);break;case 2: printf( 請輸入最新價(jià)格:n);scanf(%d,&p-price);loop_amend(L);break;case 3: printf( 請

15、輸入最大像素:n);scanf(%d,&p-highest_pixel);loop_amend(L); break;case 4: printf( 請輸入光學(xué)變焦倍數(shù):n);scanf(%d,&p-optical_zoom);loop_amend(L);break;case 5: printf( 請輸入最大像素的內(nèi)容:n);flushall();gets(p-sensetization);loop_amend(L);break;case 6: opensurface_1(); break; case 7: break;default: printf(按任意鍵返回上一界面);getch();op

16、ensurface_1(); break;else printf(型號輸入錯誤,無此型號n);amend(L);return L;6:刪除函數(shù)中主要是前驅(qū)結(jié)點(diǎn)與后接結(jié)點(diǎn)的鏈接,并釋放所刪除項(xiàng)的空間Linklist delect_link(Linklist L)Mobel *p,*s;char m,version10;flushall();printf(確定要進(jìn)行刪除文件操作 y or n:n);scanf(%c,&m);if(m = y | m = Y)s = (Mobel *)malloc(sizeof(Mobel);printf(請輸入要刪除的型號n);flushall();gets(ve

17、rsion);for(s = L, p = L-next; p != NULL & strcmp(p-version,version); s = s-next,p = p-next);if(p != NULL)s-next = p-next;free(p);printf(刪除成功n);delect_link(L);elseprintf(輸入型號錯誤n);else if(m = n | m = N)flushall();printf(按任意鍵顯示刪改后內(nèi)容);getch();print_inf(L);elseprintf(輸入錯誤n);delect_link(L);/printf(是否返回上一界

18、面y or nn); return L;6:添加文本信息主要是常見鏈表Linklist build_creat() /建立鏈表Linklist L;Mobel *p,*s;char version10;int price;int highest_pixel;int optical_zoom;char sensetization5;/char sensetization_size;int i = 0;L = (Linklist)malloc(sizeof(Mobel);/s = (Mobel *)malloc(sizeof(Mobel);L-next = NULL;p = L; flushall

19、();printf(請輸入第一個型號(000結(jié)束):n);while(1)flushall(); gets(version);if(strcmp(version,000) != 0)i+;/scanf(%d,%d,%d,%s,&highest_pixel,&price,&optical_zoom,&sensetization);printf(最大像素:);scanf(%d,&highest_pixel);printf(市場價(jià):);scanf(%d,&price);printf(光學(xué)變焦倍數(shù):);scanf(%d,&optical_zoom);flushall();printf(感光器件:);g

20、ets(sensetization);/gets(sensetization_size);s = (Mobel *)malloc(sizeof(Mobel);strcpy(s-version,version);s-highest_pixel = highest_pixel;s-price = price;s-optical_zoom = optical_zoom;strcpy(s-sensetization,sensetization);p-next = s;p = s;printf(請新增第%d個信息的型號(000結(jié)束):n,i+1);elsep-next = NULL;break;prin

21、tf(共有%d個型號:n,i);return L;五測試數(shù)據(jù)及運(yùn)行結(jié)果1正常測試數(shù)據(jù)(3組)及運(yùn)行結(jié)果;1:主界面2:登陸菜單:3:修改密碼4:進(jìn)入系統(tǒng),選擇用戶身份5:進(jìn)入商戶管理界面6:讀取信息7:順序輸出(按價(jià)格由高到低)8:增加信息9:刪除信息10:查找信息并統(tǒng)計(jì)11:修改信息12:進(jìn)入客戶管理系統(tǒng)2非正常測試數(shù)據(jù)(2組)及運(yùn)行結(jié)果。1:密碼輸入錯誤可繼續(xù)輸入直到正確2:用戶選擇錯誤可在繼續(xù)選擇直到正確3:文件名輸入錯誤可同樣進(jìn)行反復(fù)輸入4:所查找信息未找到系統(tǒng)會提示輸入錯誤六調(diào)試情況,設(shè)計(jì)技巧及體會1對自己的設(shè)計(jì)進(jìn)行評價(jià),指出合理和不足之處,提出改進(jìn)方案;2對設(shè)計(jì)及調(diào)試過程的心得體會

22、。經(jīng)過這兩周的實(shí)習(xí),確實(shí)是對c變成有了更深入的認(rèn)識。C語言是一種奇妙的語言。我做的課題是相機(jī)銷售管理系統(tǒng)。剛開始做課程設(shè)計(jì)時(shí)說實(shí)在是不知如何下手,不知該從那方面開始。開始的一周,總在懷疑自己能不能編寫出要求的程序來,總想著自己不可以,也就一定程度上開始投機(jī)取巧,三天內(nèi)也只是在某個功能模塊里運(yùn)行處“預(yù)期”的結(jié)果,當(dāng)八個模塊組合起來卻不能運(yùn)行。放假的兩天沒怎么運(yùn)行程序,就在反思,后來終于下決心重新編寫程序,我相信我可以的。第二周,正式開始我的程序,將書中相關(guān)內(nèi)容知識反復(fù)看了好幾遍,并且比較深入的認(rèn)識到書中的每個相關(guān)程序,對于每一模塊都認(rèn)真思考,模塊的組合再三認(rèn)證,講過4天的努力,終于我做到了,完全

23、是我一個人成果,這真讓人興奮。當(dāng)然,其間也請教了班里的同學(xué),這里,謝謝你們!在我編程遇到問題時(shí),是你們不厭其煩的幫我解決,謝謝你們。這個課題做完后,對c,我也考慮了些。C,這種語言真是奇妙!編譯時(shí)出現(xiàn)問題,這還好解決,可以直接根據(jù)提示找到問題所在,可要是在運(yùn)行時(shí)出現(xiàn)問題,可真不是好解決的。C的要求真的比較苛刻,就是輸入輸出格式不對也會出現(xiàn)問題,不時(shí)出現(xiàn)亂碼,就是直接運(yùn)行不出,這點(diǎn)需注意。變量的類型也同等重要,需謹(jǐn)慎。變成的一些細(xì)小問題是要特別注意的,比如說,語句的符號怒該省的必需的有,不能有的絕不能有,中英文的區(qū)別,語句中必須是英文字符!所引用的函數(shù)必需的在所在的庫函數(shù)中才能被引用,否則會出現(xiàn)

24、錯誤。Flushall(),這個函數(shù),可真不可小視,不僅在gets()函數(shù)前必須加此函數(shù)外,scanf()有時(shí)也需要,否則所輸入的數(shù)據(jù)視為空數(shù)據(jù),從而影響到函數(shù)無法輸入數(shù)據(jù)。兩周的實(shí)習(xí)結(jié)束,我對c有了更深入的了解,這兩周,不僅是對這一年的總結(jié)應(yīng)用,更是下一學(xué)年的一個好的開始!七參考文獻(xiàn)八附錄:源代碼(電子版)#include#include#include#include#include#include#define LEN 100typedef struct brand_mobel /指針結(jié)構(gòu)體變量char version10;char sensetization5;int price;in

25、t highest_pixel;int optical_zoom;/char sensetization;/char sensetization_size;struct brand_mobel *next;*Linklist,Mobel;/函數(shù)聲明void head_mean(); /進(jìn)入主系統(tǒng)void int_mean(); /系統(tǒng)主菜單void MainMenu(); /用戶選擇系統(tǒng)void inter_mean(); /功能主菜單void surface_1(); /商戶菜單void surface_2(); /用戶菜單void amend_mean(); /修改項(xiàng)菜單void open

26、surface_1(); /商戶管理主界面void opensurface_2(); /客戶管理主界面Linklist get_L(); /得到鏈表int CipherTest(); /用戶密碼檢驗(yàn)void RevisalCipher(); /密碼修改void save_inf(Linklist L); /創(chuàng)建文件Linklist build_creat(); /創(chuàng)建鏈表Linklist read_inf(); /將文件信息放到鏈表中void read_file(); /讀文件void print_inf(Linklist L); /輸出鏈表信息void add_file(); /增加文件信息

27、Linklist delect_mean(); /進(jìn)入刪除操作Linklist delect_link(Linklist L); /刪除鏈表void amend_file(); /進(jìn)入修改操作Linklist amend(Linklist L); /修改鏈表void loop_amend(Linklist); /循環(huán)修改鏈表操作Linklist sort_price(); /鏈表排序void inter_sort_s(); /商戶進(jìn)入排序操作void inter_sort_c(); /客戶進(jìn)入排序操作void find_message_s(); /進(jìn)入商戶查找操作void find_messa

28、ge_c(); /進(jìn)入客戶查找操作void find_mean(); /查找并統(tǒng)計(jì)菜單void save_inf(Linklist L); /將鏈表信息存入文件中void find_version(); /型號查找void find_price(); /價(jià)格查找void find_highest_pixel(); /最高像素查找yvoid find_optical_zoom(); /光學(xué)變焦倍數(shù)查找void find_sensetization(); /感光器件查找void int_mean() /系統(tǒng)主菜單system(cls);printf(nnn);printf( 歡迎進(jìn)入相機(jī)銷售管理系

29、統(tǒng) n); /解決printf(n);printf( 主界面 n);printf(n);printf( 1: 用戶登錄 n);printf(n);printf( 2: 退出系統(tǒng) n);printf(nnn);void inter_mean() /功能主菜單system(cls);printf(nnn);printf( 歡迎進(jìn)入相機(jī)銷售管理系統(tǒng) n);printf(-n);printf(n);printf( 1: 修改密碼n);printf( 2: 進(jìn)入系統(tǒng)n);printf( 3: 返回主菜單n);printf( 4: 退出系統(tǒng)n);printf(nn);printf(-n);printf(n

30、n);void surface_1() /商戶管理主界面printf(nn);printf(*商戶管理主界面*n);printf(n);printf( 1: 讀取信息 n);printf( 2: 順序輸出 n);printf( 3: 增加信息 n); /yesprintf( 4: 刪除信息 n);printf( 5: 修改信息 n); /yesprintf( 6: 查找并統(tǒng)計(jì) n);printf( 7: 返回上一界面 n); /yesprintf( 8: 返回主菜單 n);printf( 9: 退出系統(tǒng) n); /yesprintf(n);printf(*n);printf(n);printf

31、(n);flushall();void surface_2() /客戶管理主界面printf(nn); printf(*客戶管理主界面*n);printf(n);printf( 1: 讀取信息 n);printf( 2: 查找信息 n);printf( 3: 按順序查看信息 n);printf( 4: 返回上界菜單 n);printf( 5: 退出系統(tǒng) n);printf(n);printf(*n);printf(n);printf(n);flushall();void amend_mean() /修改項(xiàng)菜單printf(nn);printf(- 請輸入要修改的內(nèi)容 -n);printf(n)

32、;printf( 1: 型號 n);printf( 2: 價(jià)格 n);printf( 3: 最高像素 n);printf( 4: 光學(xué)變焦倍數(shù) n);printf( 5: 感光器件 n);printf( 6: 返回上一節(jié)菜單 n);printf( 7: 退出系統(tǒng) n);printf(n);printf(-n);printf(n);void find_mean() /沒完繼續(xù)system(cls);printf(nnn);printf(- 查找菜單 -n);printf(n);printf( 1: 型號n );printf( 2: 價(jià)格n );printf( 3: 最高像素n );printf(

33、 4: 光學(xué)變焦n);printf( 5: 感光器件n);printf( 6: 返回上一界面n );printf(n);printf(- 查找菜單 -n);/系統(tǒng)主菜單void MainMenu() /進(jìn)入用戶選擇系統(tǒng)char m;system(cls);printf(nnn);printf( 請正確輸入您的信息(商戶s或用戶c):n);flushall(); scanf(%c,&m);if(m = s | m = S)CipherTest();opensurface_1();else if (m = c | m = C)CipherTest();opensurface_2();elsepri

34、ntf(輸入錯誤!請重新輸入n);printf(按任意鍵返回上一級);getch();MainMenu();void read_file() /讀文件Linklist L;L = read_inf();print_inf(L);/*printf( 按任意鍵返回上一級菜單n);getch();opensurface_1();*/void add_file() /增加文件Linklist L;char m; L = build_creat();save_inf(L);L = read_inf();printf(是否顯示新文件信息 y or n:n);scanf(%c,&m);if(m = y |

35、m = Y) print_inf(L);printf( 按任意鍵返回上一級菜單n);getch();opensurface_1(); void head_mean() /開始系統(tǒng)char m;int_mean();printf( 請選擇所需服務(wù)n);flushall();scanf(%c,&m);/gets(m);system(cls);switch(m)case 1: inter_mean();printf( 請選擇所需服務(wù)n);flushall();scanf(%c,&m);system(cls);switch(m)case 1: CipherTest();RevisalCipher();

36、printf(按任意鍵返回主界面n);getch(); head_mean(); break;case 2: /CipherTest(); MainMenu();break;case 3: head_mean(); break;case 4:system(cls); printf(退出系統(tǒng)); break;default: printf(輸入錯誤,按任意鍵返回上一級菜單菜單n); getch(); head_mean(); break;case 2: system(cls); printf(退出系統(tǒng)n);break;default: printf(輸入錯誤,按任意鍵返回主菜單n); getch

37、(); head_mean(); break;void loop_amend(Linklist L) /循環(huán)修改鏈表操作char m;/Linklist L;printf(是否繼續(xù)修改y or n:n);scanf(%c,&m);if(m = y | m = Y)amend(L);else printf(按任意鍵商戶管理菜單);getch();opensurface_1();Linklist build_creat() /建立鏈表Linklist L;Mobel *p,*s;char version10;int price;int highest_pixel;int optical_zoom;

38、char sensetization5;/char sensetization_size;int i = 0;L = (Linklist)malloc(sizeof(Mobel);/s = (Mobel *)malloc(sizeof(Mobel);L-next = NULL;p = L; flushall();printf(請輸入第一個型號(000結(jié)束):n);while(1)flushall(); gets(version);if(strcmp(version,000) != 0)i+;/scanf(%d,%d,%d,%s,&highest_pixel,&price,&optical_zo

39、om,&sensetization);printf(最大像素:);scanf(%d,&highest_pixel);printf(市場價(jià):);scanf(%d,&price);printf(光學(xué)變焦倍數(shù):);scanf(%d,&optical_zoom);flushall();printf(感光器件:);gets(sensetization);/gets(sensetization_size);s = (Mobel *)malloc(sizeof(Mobel);strcpy(s-version,version);s-highest_pixel = highest_pixel;s-price =

40、 price;s-optical_zoom = optical_zoom;strcpy(s-sensetization,sensetization);p-next = s;p = s;printf(請新增第%d個信息的型號(000結(jié)束):n,i+1);elsep-next = NULL;break;printf(共有%d個型號:n,i);return L;void save_inf(Linklist L) /將鏈表中信息放到指定文件中Mobel *p;FILE *fp;char filename40,m;flushall();system(cls);printf(請正確輸入要保存的文件名:n)

41、;gets(filename);printf(是否追加到原文件之后 y or n n);scanf(%c,&m);if(m = y | m = Y)fp = fopen(filename,a+);if(fp = fopen(filename,a+) = NULL)printf(文件打開失敗,按任意鍵返回:n);getch();save_inf(L);else if(m = n | m = N)fp = fopen(filename,wt);if(fp = fopen(filename,wt) = NULL)printf(文件打開失敗,按任意鍵返回:n);getch();save_inf(L);

42、for(p=L-next;p!=NULL;p=p-next)fprintf(fp,%s %d %d %d %sn,p-version,p-highest_pixel,p-price,p-optical_zoom,p-sensetization);printf(文件已保存成功n);/getch();/fclose(fp);/L = read_inf();Linklist read_inf() /從指定文件中讀取信息并存入單鏈表中Linklist head;Mobel *p,*s;FILE *fp;char filename40;int i=0;system(cls);flushall();pri

43、ntf(讀文件請輸入文件名(f:/b.txt有文件):n);gets(filename);for(; (fp = fopen(filename,rt) = NULL ;)printf(讀文件失敗,請重新輸入文件名:n);flushall();gets(filename);/fno = fileno(fp);/fsize = filelength(fno);/printf(該文件大小為:%d Bytes n,fsize);/printf(文件內(nèi)容為:n);head = (Linklist)malloc(sizeof(Mobel);/s = (Mobel *)malloc(sizeof(Mobel

44、);head-next = NULL;/s-next = NULL;s=head; while(!feof(fp) /文件未結(jié)束/while(s != NULL)p=(Mobel *)malloc(sizeof(Mobel);fscanf(fp,%s %d %d %d %sn,p-version,&p-highest_pixel,&p-price,&p-optical_zoom,p-sensetization);s-next=p;s=p;s-next=NULL;fclose(fp);return head;void print_inf(Linklist L) /輸出鏈表信息Mobel *p;s

45、ystem(cls);printf( 該品牌信息如下:n);printf(n);printf( 型號最大像素(萬)市場價(jià)(元)光學(xué)變焦倍數(shù)感光器件n);for(p = L-next;p-next !=NULL;p = p-next) printf( %-15s %-15d %-15d %-15d %-5s n,p-version,p-highest_pixel,p-price,p-optical_zoom,p-sensetization);flushall();printf(n);void RevisalCipher() /密碼修改char c26,c6;printf(請輸入新的6位數(shù)密碼:n

46、);scanf(%s,c2);printf(請?jiān)俅屋斎肽拿艽a:n);scanf(%s,c);system(cls);if (strcmp(c2,c)=0)printf(密碼修改成功!n);printf(n);printf(n);int CipherTest() /密碼管理char c16,c2=111111;int m;system(cls);printf(nnnn);do printf( 請輸入您的密碼(首次進(jìn)入為6位初始密碼)n);flushall(); scanf(%s,c1);/ c1 = getchar();if (strcmp(c1,c2)=0)printf(n);return

47、1;else printf(密碼輸入錯誤,請重新出入!n);printf(是否重新輸入(重新輸入請鍵入1;退出請鍵入0):n);scanf(%d,&m);flushall();while (m=1);return 0;Linklist amend(Linklist L) /修改鏈表char version10;Mobel *p;/int n;char m; amend_mean();printf(n);printf( 請正確輸入要修改內(nèi)容所對應(yīng)的型號:n);flushall();gets(version);p = L-next;/for(p=L; strcmp(p-version,Versio

48、n) != 0 & p != NULL; p = p-next) /錯在這/; printf(正確:n);while(p != NULL & strcmp(p-version,version)p = p-next;if(p != NULL)amend_mean();printf( 請選擇要修改的項(xiàng)目:n);scanf(%d,&m);printf(n);switch(m) case 1: printf( 請輸入新型號的內(nèi)容:n);flushall();gets(p-version);loop_amend(L);break;case 2: printf( 請輸入最新價(jià)格:n);scanf(%d,&

49、p-price);loop_amend(L);break;case 3: printf( 請輸入最大像素:n);scanf(%d,&p-highest_pixel);loop_amend(L); break;case 4: printf( 請輸入光學(xué)變焦倍數(shù):n);scanf(%d,&p-optical_zoom);loop_amend(L);break;case 5: printf( 請輸入最大像素的內(nèi)容:n);flushall();gets(p-sensetization);loop_amend(L);break;case 6: opensurface_1(); break; case 7

50、: break;default: printf(按任意鍵返回上一界面);getch();opensurface_1(); break;else printf(型號輸入錯誤,無此型號n);amend(L);return L;void amend_file() /進(jìn)入修改操作/char version10;char m;Linklist L;L = read_inf();print_inf(L);printf(n);printf( 確定繼續(xù)修改內(nèi)容操作? y or n:n);scanf(%c,&m);if(m = y | m = Y)L = amend(L);save_inf(L); print_

51、inf(L);/amend_file();printf( 按任意鍵返回上一級菜單n);getch();opensurface_1(); void inter_sort_s() /進(jìn)入排序操作Linklist L;char m;L = sort_price(); /順序輸出printf(按任意鍵輸出排序后內(nèi)容);getch();print_inf(L);printf(是否保存文件 y or n n);scanf(%c,&m);if(m = y | m = Y)save_inf(L);printf(按任意鍵返回上一界面 n);getch();opensurface_1();void inter_s

52、ort_c() /進(jìn)入排序操作Linklist L;L = sort_price(); /順序輸出printf(按任意鍵輸出排序后內(nèi)容);getch();print_inf(L);printf(按任意鍵返回上一界面 n);getch();opensurface_2();void opensurface_1()Linklist L;/int n;char m;system(cls);surface_1();printf( 請選擇所需服務(wù)n);flushall();scanf(%c,&m);system(cls);switch(m)case 1: read_file(); printf( 按任意鍵

53、返回上一級菜單n);getch();opensurface_1();break; /讀取信息case 2: inter_sort_s(); break; /順序輸出case 3: add_file(); break; /增加信息case 4: L = delect_mean(); break; /刪除信息case 5: amend_file(); break; /修改信息case 6: find_message_s(); break; /查找信息case 7: MainMenu(); break; /返回一界面case 8: head_mean(); break; /返回主菜單case 9:

54、printf(退出系統(tǒng):n); break;default: printf(輸入錯誤按任意鍵返回); getch(); opensurface_1(); break;void opensurface_2()int n;system(cls);surface_2();printf(請選擇所需服務(wù):n);scanf(%d,&n);switch(n) case 1: read_file(); printf( 按任意鍵返回上一級菜單n); getch(); opensurface_2(); break; /讀取信息 case 2: find_message_c(); break; /查找信息 case

55、 3: inter_sort_c(); break; /順序輸出 case 4: head_mean(); break; /返回上一節(jié)菜單 case 5: break;Linklist sort_price() /排序Linklist head; Mobel *pre, *mid, *m, *p;head = read_inf(); p = head-next; while(p != NULL) mid = head-next; if(head-price next-price) head-next = mid-next; mid-next = head; head = mid; pre =

56、head; mid = head-next; m = mid-next; while(mid-next != NULL) if(mid-price price) pre-next = mid-next; mid-next = m-next; m-next = mid; pre = pre-next; mid = pre-next; m = mid-next; p = p-next; return head;Linklist delect_link(Linklist L)Mobel *p,*s;char m,version10;flushall();printf(確定要進(jìn)行刪除文件操作 y or

57、 n:n);scanf(%c,&m);if(m = y | m = Y)s = (Mobel *)malloc(sizeof(Mobel);printf(請輸入要刪除的型號n);flushall();gets(version);for(s = L, p = L-next; p != NULL & strcmp(p-version,version); s = s-next,p = p-next);if(p != NULL)s-next = p-next;free(p);printf(刪除成功n);delect_link(L);elseprintf(輸入型號錯誤n);else if(m = n |

58、 m = N)flushall();printf(按任意鍵顯示刪改后內(nèi)容);getch();print_inf(L);elseprintf(輸入錯誤n);delect_link(L);/printf(是否返回上一界面 y or nn); /少個操作return L;Linklist delect_mean() /進(jìn)入刪除操作Linklist L;char m;L = read_inf();print_inf(L);printf(n);L = delect_link(L);/printf(按任意鍵顯示刪改后內(nèi)容);/getch();/ print_inf(L);printf(是否保存文件 y o

59、r n);flushall();scanf(%c,&m);if(m = y | m = Y) save_inf(L);printf(按任意鍵返回主菜單);getch();opensurface_1();return L;void find_message_s()char m;system(cls);find_mean();printf( 請選擇如何查找n);flushall();scanf(%c,&m);switch(m)case 1: find_version(); break;case 2: find_price(); break;case 3: find_highest_pixel();

60、 break;case 4: find_optical_zoom(); break;case 5: find_sensetization(); break;case 6: opensurface_1(); break;default : printf(輸入錯誤按任意鍵返回上一界面);getch();find_message_s(); break;void find_message_c()char m;system(cls);find_mean();printf( 請選擇如何查找n);flushall();scanf(%c,&m);switch(m)case 1: find_version();

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論