c語言超市管理系統報告書(C語言課程設計)_第1頁
c語言超市管理系統報告書(C語言課程設計)_第2頁
c語言超市管理系統報告書(C語言課程設計)_第3頁
c語言超市管理系統報告書(C語言課程設計)_第4頁
c語言超市管理系統報告書(C語言課程設計)_第5頁
已閱讀5頁,還剩53頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課 程 設 計課程設計名稱: 高級語言程序設計 專 業 班 級 :計算機科學與技術0802班 學 生 姓 名 :李旭學號 : 200848140202指 導 教 師 : 范艷峰 課程設計時間:2009年7月2號 計算機科學與技術 專業課程設計任務書學生姓名李旭專業班級計科0802學號200848140202題 目超市管理系統課題性質其它課題來源自擬課題指導教師范艷峰同組姓名無主要內容用C程序設計中的鏈表作數據結構,結合C語言基本知識。編寫一個超市管理系統。以把所學數據結構知識應用到實際軟件開發中去。本系統應完成一下幾方面的功能:1)新購物品入庫Tianjia();2)物品信息刪除Shanchu

2、();3)物品信息修改Xiugai();4物品信息查詢Chazhao();5)物品信息瀏覽Liulan();5)系統顏色設置yanseshezhi(); 6)應用程序退出Jieshu();任務要求每條信息至包含 :編號(id)物品名稱(name)物品產地(produce)物品數量(number)物品單價(prize)作為一個完整的系統,應具有友好的界面和較強的容錯能上機能正常運行,并寫出課程設計報告參考文獻C程序設計(第三版)審查意見指導教師簽字:教研室主任簽字: 年 月 日1 需求分析:隨著現代生活質量的提高,超市這種便利的服務開始走進我們的生活,同時隨著超市涌入我們的生活,如何更便利的對超

3、市進行系統和有序的操作,成為了我們需要考慮的問題,本程序運用C語言程序設計了一個超市管理系統。關系系統的的功能主要有新購物品入庫、物品信息刪除、物品信息修改、物品信息查詢、物品信息瀏覽功能,在相應的硬盤上面進行存盤以防止部分數據的丟失。為了更加人性化使用此管理系統,還在MENU選項總添加了系統顏色設置功能,使用戶可以根據自己的喜好修改操作界面。2 概要設計(1)數據結構依據給定的物品信息和數據形式,數組必須用結構體實現。結構類型的層次結構:struct imaint id;char name20;char produce30;int number;float price;(2)模塊劃分依據程序

4、的結構反和功能,遵照“自頂而下”的原則,描述該程序的層次結構圖一顯示了該程序的層次結構,共 5層:如下圖:MMain函數程序主菜單1 新購物品入庫2 物品信息刪除3 物品信息修改4 物品信息瀏覽5 系統顏色設置1 紅底黑字2 白底黑字3 黑底紅字4 綠底藍字5 黃底紫字6 系統默認4 物品信息查詢4 應用程序退出判斷所輸編號是否存在是:此編號已被使用,請重新輸入否: 輸入物品信息圖一 圖一的層次結構(3)原函數清單:創建函數void chushihua()增加物品函數Tianjia();3、刪除物品信息函數Shanchu();4、修改物品信息函數Xiugai();5、查詢物品信息函數Chazh

5、ao();6、瀏覽物品信息函數Liulan();7、系統顏色設置函數yanseshezhi();8、應用程序退出函數Jieshu();3 運行環境:Win2003, WinXP, Win2000, NT, WinME, Win9X4 開發工具和編程語言:編程語言:C語言開發工具:microsoft visual C+ 6.05詳細設計:1、結構體變量的定義:struct imaint id;char name20;char produce30;int number;float price;文件的初始化:void chushihua()FILE *fp;struct ima i=1,花生牛奶,湖

6、北武漢,1200,2.5;fp=fopen(ima.dat,w);if(fp=NULL)printf(ttt系統錯誤,請重試.);exit(0);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);歡迎菜單(主函數):void main()printf(nn);system(color 1a);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(t3 3n);printf(t3 3n);printf(t3 歡迎使用 3n);printf(t3

7、 3n);printf(t3 3n);printf(t3 超市庫存管理系統 3n);printf(t3 按任意鍵繼續 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3);getch();system(cls);menu();chushihua();menu();選擇菜單void menu()int choice;printf

8、(n【超市庫存管理系統】n);printf(-系統菜單顯示如下-);printf(nt=【 新購物品入庫 】n);printf(nt=【 物品信息刪除 】n);printf(nt=【 物品信息修改 】n);printf(nt=【 物品信息查詢 】n);printf(nt=【 物品信息瀏覽 】n);printf(nt=【 系統顏色設置 】n);printf(nt=【 應用程序退出 】n);printf(nt請輸入您要選擇的菜單.);scanf(%d,&choice);switch(choice)case 1:Tianjia();break;case 2:Shanchu();break;case

9、3:Xiugai();break;case 4:Chazhao();break;case 5:Liulan();break;case 6:yanseshezhi();break;case 7:Jieshu();break;default:printf(nttttt輸入無效,請您重新輸入.);getch();system(cls);menu();新購物品入庫函數:int panduanID(int id) /*判斷所輸編號是否已存在*/ FILE *fp;struct ima i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit

10、(0);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=id)fclose(fp);return 1;break;fread(&i,sizeof(struct ima),1,fp);fclose(fp);return 0;void Tianjia() struct ima i;char choice;FILE *fp;fp=fopen(ima.date,ab);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0); labID:printf(nt請您輸入要入庫物品的信息.n);printf(tttt

11、物品的編號:);scanf(%d,&i.id);if(panduanID(i.id)=1)printf(tttt此編號已被使用,請您重新輸入.);goto labID;printf(tttt 物品的名稱:);scanf(%s,);printf(tttt 物品的生產地:);scanf(%s,duce);printf(tttt 物品的數量:);scanf(%d,&i.number);printf(tttt 物品的單價:);scanf(%f,&i.price);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);printf(tttttt

12、 物品信息已入庫成功!n);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Tianjia();elsesystem(cls);menu();物品信息刪除函數:void Shanchu() struct ima i1000;struct ima temp;int delID;char choice;int index=0;int j=0;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);fread(&temp,sizeof(stru

13、ct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);printf(nt請輸入要刪除的物品的編號:);scanf(%d,&delID);fopen(f:ima.date,w);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);for( j=0;jindex;j+)if(ij.id!=delID)fwrite(&ij,sizeof(struct ima),1,fp); fclose(fp);printf(ttttt物品信息已清除

14、!n);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Shanchu();elsesystem(cls);menu();物品信息修改函數:void Xiugai() int index=0; int ID,j; char choice; struct ima i1000; structima temp;FILE *fp;fp=fopen(ima.dat,r);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);fread(&temp,sizeof(struct ima),1,fp);whil

15、e(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);fp=fopen(ima.dat,w);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);printf(nt請輸入要修改的信息的物品的編號:);scanf(%d,&ID);for(j=0;j=index-1;j+)if(ij.id!=ID)fwrite(&ij,sizeof(struct ima),1,fp);elseprintf(tt物品名稱修改為:);scanf(%s,);printf(tt

16、物品生產地修改為:);scanf(%s,duce);printf(tt物品數量修改為:);scanf(%d,&ij.number);printf(tt物品單價修改為:);scanf(%f,&ij.price);fclose(fp);printf(tttt物品信息已修改.);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Xiugai();elsesystem(cls);menu();物品信息查詢函數:void Chazhao() FILE *fp;int findID;char choice;struct im

17、a i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請你重試.);exit(0);finID: printf(nt請輸入要查詢的物品的編號.);scanf(%d,&findID);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=findID)printf(nnt*物品信息*);printf(nt物品編號.%30dn,i.id);printf(nt-);printf(nt物品名稱.%30sn,);printf(nt-);printf(nt生產廠家.%30sn,

18、duce);printf(nt-);printf(nt進口數量.%30dn,i.number);printf(nt-);printf(nt批發價格.%30.3fn,i.price);printf(nt-);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Chazhao();elsesystem(cls);menu();fread(&i,sizeof(struct ima),1,fp);fclose(fp);printf(ttttt輸入的編號不存在,請您重新輸入.);goto finID;物品信息瀏覽函數:void Liul

19、an() struct ima i; int index=0;char choice;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請你重試.);exit(0);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)index+;printf(nnt*物品信息%d*,index);printf(nt物品編號.%30dn,i.id);printf(nt-);printf(nt物品名稱.%30sn,);printf(nt-);printf(nt生產廠家.%30sn,d

20、uce);printf(nt-);printf(nt進口數量.%30dn,i.number);printf(nt-);printf(nt批發價格.%30.3fn,i.price);printf(nt-);getch();fread(&i,sizeof(struct ima),1,fp);fclose(fp);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Liulan();elsesystem(cls);menu();系統顏色設置函數:void yanseshezhi() int a;char choice;system(

21、cls);printf(nntt選擇以下方案n);printf(nntt1*紅底黑字n);printf(nntt2*白底黑字n);printf(nntt3*黑底紅字n);printf(nntt4*綠底藍字n);printf(nntt5*黃底紫字n);printf(nntt6*系統默認n);printf(nnttttt請挑選您喜愛的顏色.);scanf(%d,&a);switch(a)case 1:system(color 40);break;case 2:system(color 70);break;case 3:system(color 04);break;case 4:system(col

22、or 21);break;case 5:system(color 65);break;case 6:system(color 1a);break;default:printf(nnttttt輸入無效,重新輸入.);getch();yanseshezhi();printf(n選擇的顏色您還滿意嗎?(y返回主菜單/n繼續選擇);scanf( %c,&choice);if(choice=Y|choice=y)system(cls);menu();elseyanseshezhi();應用程序退出函數:void Jieshu()char choice;system(cls);printf(nnnnnnn

23、ttt您確定要退出系統嗎?nnnttt如果您想退出請按y,其它鍵將返回主菜單.);scanf( %c,&choice);if(choice=Y|choice=y)system(cls);printf(nnnnnnnnnntttt謝謝您的使用!);printf(nnnnnnnnnnnnnnnn);elsesystem(cls);menu();6調試分析:在此程序的編程前,我上網搜集了一些關于超市管理系統的資料,然后大體決定了編程的大致算法,即利用函數貫穿整個程序,通過SWITCH函數進行各個函數的選擇;同時,進過查閱,我添加了系統顏色設置功能,同是應用了清屏函數,課下講程序大致寫好后,我上機進行

24、了調試;但卻出現了80幾處錯誤,大都是提示 miss“;” before tybe;經過分析,程序算法并無錯誤;后來詢問老師,才發現原來在我所編的程序中,有需要變量時,都是用的時候才定義,但正確的方法是應該在函數的開頭就應該將所要用的變量進行生命,否則就出現了編譯錯誤。7測試結果:1、歡迎界面2、系統選擇界面:3、新購物品入庫:4、物品信息刪除:5、物品信息修改:6、物品信息查詢7、物品信息瀏覽:8、系統顏色設置:9、應用程序退出:8 參考文獻:1.C 語言程序設計教程譚浩強等著 高等教育出版社2.C 語言程序設計習題解析與應用案例分析,黃維通編,清華大學出版社, 20053.C 語言程序設計

25、,李大友主編,清華大學出版社, 1999課程設計總結C語言已學習了兩個學期了。總算對其有了初步的認識與了解!雖然不能算熟手,但基本能看懂許多代碼。當然讓自己獨立編寫有某些功能的程序還是十分吃力的。比如這次的超市管理系統,雖然基本算法還算簡易,但從結構體鏈表開始就很難把持。只有照著書上的例題去理解,去套用!才能略有小成的把結構體鏈表版的程序做出來,當然缺陷百出!怎么講呢?總覺得時間過的很快!一眨眼的工夫,就已經結束了,每天要消化的東西很多!為期一周的C語言課程設計結束了,通過這一個星期的課設,使我對C語言有了更深入、更全面的了解,同時也發現自己的英文和函數基礎不是很好,對很多地方不是特別懂,甚至

26、對有些概念都還很模糊,但通過這次課程設計,使我對C語言有了新的認識,在這一周的時間里,經過不斷的與同學之間進行探討以及老師的指導,使我的C語言水平有了很大程度的提高。通過課設我還發現C語言是一門非常實用的學科,像我的題目-書店圖書銷售系統,是與實際生活緊密相關的,在以后的工作當中都有可能會用的到。平常在書上學的這些知識在我看來是些最基本的知識!其實C語言應該還包括很多,但就這些基本的知識我們學起來還是很辛苦的,我個人認為C語言的語句塊中無非是3個東西,順序,判斷與循環,在一個多星期的代碼打下來,編寫的語句塊中沒發現過超出這3種東西的,就算調用的函數,在函數里面還是這3個東西,可以說是極其簡單,

27、但就這3種東西拼湊在一起時,就能發揮強大的功能與作用。可謂三個臭皮匠頂個諸葛亮!一般在沒有多數的嵌套下還是能很清晰明了的讀寫代碼,可一旦嵌套一多,就開始暈暈眩眩了。 函數的話,我的理解比較淺,我只能說它的作用除了被人調來調去之外,沒有別的功能了!當然使用函數會是程序別的清晰明了,這點在編寫超市管理系統時也體會到了!,我認為還有比較重要的是算法,雖然算法并不是代碼,但算法能讓我們更好的去編寫代碼,有了算法程序才有靈魂,這是書上說的.個人認為這是個比喻算法是事物解決的方法,不僅僅編程我們生活中也經常用到算法,只是自身沒發現而已!當我們的算法到達到一種境界時,我們的思維就會變的靈活,思路就會變的清晰

28、!當然我也沒到這種境界,正在努力中這次課設使我對C語言產生了極大的興趣,相信通過我以后的學習,我的C語言水平一定會有很大的提高。源程序:#include#include#include#includestruct imaint id;char name20;char produce30;int number;float price;void Append();void Selldelete();void Amend();void Findin();void Browse();void colorsetting();void Endprogram();void initialization()F

29、ILE *fp;struct ima i=1,花生牛奶,湖北武漢,1200,2.5;fp=fopen(ima.dat惡,w);if(fp=NULL)printf(ttt系統錯誤,請重試.);exit(0);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);void menu()int choice;printf(n【超市庫存管理系統】n);printf(-系統菜單顯示如下-);printf(nt=【 新購物品入庫 】n);printf(nt=【 物品信息刪除 】n);printf(nt=【 物品信息修改 】n);printf(nt=【 物品信息查詢 】

30、n);printf(nt=【 物品信息瀏覽 】n);printf(nt=【 系統顏色設置 】n);printf(nt=【 應用程序退出 】n);printf(nt請輸入您要選擇的菜單.);scanf(%d,&choice);switch(choice)case 1:Append();break;case 2:Selldelete();break;case 3:Amend();break;case 4:Findin();break;case 5:Browse();break;case 6:colorsetting();break;case 7:Endprogram();break;default

31、:printf(nttttt輸入無效,請您重新輸入.);getch();system(cls);menu();void colorsetting() int a;char choice;system(cls);printf(nntt選擇以下方案n);printf(nntt1*紅底黑字n);printf(nntt2*白底黑字n);printf(nntt3*黑底紅字n);printf(nntt4*綠底藍字n);printf(nntt5*黃底紫字n);printf(nntt6*系統默認n);printf(nnttttt請挑選您喜愛的顏色.);scanf(%d,&a);switch(a)case 1:

32、system(color 40);break;case 2:system(color 70);break;case 3:system(color 04);break;case 4:system(color 21);break;case 5:system(color 65);break;case 6:system(color 1a);break;default:printf(nnttttt輸入無效,重新輸入.);getch();colorsetting();printf(n選擇的顏色您還滿意嗎?(y返回主菜單/n繼續選擇);scanf( %c,&choice);if(choice=Y|choic

33、e=y)system(cls);menu();elsecolorsetting();int validateID(int id) FILE *fp;struct ima i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=id)fclose(fp);return 1;break;fread(&i,sizeof(struct ima),1,fp);fclose(fp);return 0;void Append

34、() struct ima i;char choice;FILE *fp;fp=fopen(ima.date,ab);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0); labID:printf(nt請您輸入要入庫物品的信息.n);printf(tttt 物品的編號:);scanf(%d,&i.id);if(validateID(i.id)=1)printf(tttt此編號已被使用,請您重新輸入.);goto labID;printf(tttt 物品的名稱:);scanf(%s,);printf(tttt 物品的生產地:);scanf(%s,i.pr

35、oduce);printf(tttt 物品的數量:);scanf(%d,&i.number);printf(tttt 物品的單價:);scanf(%f,&i.price);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);printf(tttttt 物品信息已入庫成功!n);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Append();elsesystem(cls);menu();void Selldelete() struct ima i1000;struct ima tem

36、p;int delID;char choice;int index=0;int j=0;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);printf(nt請輸入要刪除的物品的編號:);scanf(%d,&delID);fopen(f:ima.date,w);if(fp

37、=NULL)printf(ttt系統錯誤,請您重試.);exit(0);for( j=0;jindex;j+)if(ij.id!=delID)fwrite(&ij,sizeof(struct ima),1,fp); fclose(fp);printf(ttttt物品信息已清除!n);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Selldelete();elsesystem(cls);menu();void Amend() int index=0; int ID,j; char choice; struct ima i1

38、000; structima temp;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);fp=fopen(ima.date,w);if(fp=NULL)printf(ttt系統錯誤,請您重試.);exit(0);printf(nt請輸入要修改的信息的物品的編號:);s

39、canf(%d,&ID);for(j=0;j=index-1;j+)if(ij.id!=ID)fwrite(&ij,sizeof(struct ima),1,fp);elseprintf(tt物品名稱修改為:);scanf(%s,);printf(tt物品生產地修改為:);scanf(%s,duce);printf(tt物品數量修改為:);scanf(%d,&ij.number);printf(tt物品單價修改為:);scanf(%f,&ij.price);fwrite(&ij,sizeof(struct ima),1,fp);fclose(fp);printf(tt

40、tt物品信息已修改.);printf(n您想繼續嗎?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Amend();elsesystem(cls);menu();void Findin() FILE *fp;int findID;char choice;struct ima i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系統錯誤,請你重試.);exit(0);finID: printf(nt請輸入要查詢的物品的編號.);scanf(%d,&findID);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=findID)printf(nnt*物品信息*);printf(nt物品編號.%30dn,i.id);printf(nt-);printf(nt物品名稱.%30sn,);printf(nt-);printf(nt生產廠家.%30sn,duce);printf(nt-);printf(nt進口數量.%30dn,i.number);printf(nt-);printf(nt批發價格.%30.3fn,i.price);printf(nt-);printf(n您想繼續嗎?(y/n);scanf( %c,&choice)

溫馨提示

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

評論

0/150

提交評論