版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、西安郵電大學C語言課程設計報告題 目:汽車銷售管理系統(tǒng)院系名稱: 專業(yè)名稱: 班 級: 學生姓名: 學號(8位):指導教師: 設計起止時間:一. 設計目的1. 對c語言基本知識的鞏固和綜合運用。熟練使用基本數(shù)據類型,基本控制結構,數(shù)組,函數(shù),指針等。2. 強化上機動手能力,在理論和實踐的基礎上進一步鞏固C語言程序設計課程學習的內容,掌握工程化軟件設計的基本方法。3. 學會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能力。4. 為后續(xù)各門計算機課程的學習打下堅實基礎。5.汽車銷售管理系統(tǒng)的設計與實現(xiàn),此次程序設計主要利用c語言的基礎知識開發(fā)一個簡單的汽車銷售管理系統(tǒng)。汽車銷售管理系
2、統(tǒng)是一個企業(yè)不可缺少的一部分,它利用計算機對汽車銷售進行統(tǒng)一管理,實現(xiàn)汽車銷售管理工作的系統(tǒng)化、規(guī)范化和自動化,為企業(yè)提高工作效率。二. 設計內容主要利用c語言的文件操作能力設計開發(fā)一個小型的管理信息系統(tǒng),主要功能有:1.能夠實現(xiàn)對新車的入庫工作。2.能夠修改汽車信息。3.能按銷售新車來管理汽車銷售信息。4.能夠查詢汽車信息。 5.能夠刪除汽車信息。6.顯示汽車庫存信息。 7.能夠實現(xiàn)對汽車品牌、汽車進價、姓名的排序。 8.能夠實現(xiàn)退出系統(tǒng)。三概要設計1功能模塊圖; 登 錄 系 統(tǒng) 輸入密碼 歡迎界面 汽車銷售管理系統(tǒng) 菜 單銷售退出入庫修改查找排序刪除顯示2各個模塊詳細的功能描述。1.能夠實
3、現(xiàn)對新車的入庫工作。創(chuàng)建汽車產品信息文件,根據提示輸入若干汽車的信息,并將這些信息保存至一個文件中。2.能夠修改汽車信息。提示用戶輸入要進行修改操作的產品名稱和產品型號,如果在產品信息文件中有該息存在,則將提示用戶輸入要修改的選項,并將結果保存至原產品信息文件,并提示用戶選擇是否繼續(xù)進行修改操作。3.能按銷售新車來管理汽車銷售信息。創(chuàng)建一個銷售記錄文件,每完成一次銷售,就按銷售信息的要求輸入各項數(shù)據,并將該次的銷售信息添加到文件中,同時修改相應的汽車產品信息文件(主要是修改其庫存數(shù)量)。4.能夠查詢汽車信息。輸入產品名稱,在汽車產品信息文件中查找相應的汽車信息并輸出。 5.能夠刪除汽車信息。提
4、示用戶輸入要進行刪除操作的產品名稱和產品型 號,如果在產品信息文件中有該信息存在,則將對應的汽車信息刪除,否 則輸出提示信息,并提示用戶選擇是否繼續(xù)進行刪除操作。6.顯示汽車庫存信息。打開汽車信息文件,輸出文件內汽車信息。 7.能夠實現(xiàn)對汽車品牌、汽車進價、姓名的排序。按不同條件進行排序操作,輸出滿足條件的筆記本電腦信息。 8.能夠實現(xiàn)退出系統(tǒng)。四詳細設計1各功能函數(shù)的流程圖 主函數(shù) Switch case 語句 入庫管理(case 1) 修改數(shù)據(case 2) 銷售管理(case 3) 查詢管理(case 4) 刪除管理(case 5) 顯示庫存(case 6) 排序管理(case 7)
5、結束管理(case 8) 入庫管理 輸入入庫汽車信息 輸入完畢 返回主菜單顯示汽車的基本信息輸入要修改汽車的品牌型號 修改管理 存在提示修改項 輛數(shù)售價 進價 是否繼續(xù) 修 改 完 成 否 返回主菜單返回主菜單銷售管理輸入要銷售汽車的品牌型號輛數(shù)是否繼續(xù)輸出利潤顯示現(xiàn)有庫存查詢模塊輸入要查詢的汽車品牌型號 輸出查詢的汽車的信息繼續(xù)查詢按1,退出查詢按2 返回主界面輸入要刪除的品牌型號是否繼續(xù)顯示刪除后所有汽車的信息確認刪除顯示刪除信息刪除管理12返回主菜單 顯示模塊 判斷文件是否存在是否 導入文件 輸出對應汽車信息 結束按品牌排序選擇排序方式否返回主菜單是否繼續(xù)排序管理按進價排序按利潤排序 是
6、2重點設計及編碼struct carmarketchar carname15;/品牌名char model10;/型號float saleprice;/進價float soldprice;/售價int num;/數(shù)量float gain;/盈利car1000;void main() char select=0;char temp115,temp210;struct carmarket carname_order;struct carmarket price_order;float sum;FILE *fp;int m,n,i,j,k,temp3; int x=3; int flag=0; ch
7、ar s8; system(color 1b);五測試數(shù)據及運行結果1正常測試數(shù)據和運行結果1: 入庫管理 2: 修改管理 3: 銷售管理 2異常測試數(shù)據及運行結果1: 查詢管理2: 刪除管理六調試情況,設計技巧及體會1改進方案程序大體上還算成功,其中的幾個模塊都達到了我預期想要的效果,條理也較清晰,這是我比較滿意的地方。但是也有不足之處,就是密碼不能進行修改的操作,而只是簡單的事永遠是使用原始密碼,這是有待完善的,而且有些地方用起來不大方便,不好操作,需要進一步完善。2體會1) 對C語言的編程實踐有所認識。2) 在遇到程序調試不通過時,會通過縮小范圍的分析來鎖定問題所在。3) 通過這次實驗,
8、熟悉了從自然語言轉換成偽代碼再轉換為流程圖的過程。各功能函數(shù)的流程圖4) 在程序中設定合適的全局變量,可以簡化程序的編寫難度。5) 通過本次C語言上機實驗,我對這個介于人類與非人類之間的計算機編程語言有了一定的體驗。隨著實驗的成功與報告的完成,有點微微的成就感使人難忘。伴隨著學習的深入,我發(fā)現(xiàn)高深的東西還有很多很多,等待著我自己去挖掘。對C語言的學習,我會加倍努力。 七參考文獻 C語言程序設計(王曙燕/主編 科學出版社) C程序設計(譚浩強/主編 清華大學出版社) C語言程序設計習題解析與應用案例分析(黃維通 謝孟榮 編著)八附錄:源程序#include#include#include#inc
9、ludestruct carmarketchar carname15;/品牌名char model10;/型號float saleprice;/進價float soldprice;/售價int num;/數(shù)量float gain;/盈利car1000;char password7=;/定義初始密碼void main() char select=0;char temp115,temp210;struct carmarket carname_order;struct carmarket price_order;float sum;FILE *fp;int m,n,i,j,k,temp3; int
10、x=3; int flag=0; char s8; system(color 1b); doprintf(請輸入密碼:n); scanf(%s,s); if(!strcmp(s,password)/*進行密碼驗證*/ printf(PASSnnn); flag=1;break; else printf(密碼錯誤,請重新輸入:n); x-; while(x0); if(!flag) printf(你已經輸入三次錯誤密碼!); exit(0); back: /goto點0system(cls);/清屏 包含在stdlib.h頭文件中,執(zhí)行清屏操作/系統(tǒng)菜單 puts( ); puts( );put
11、s( *); puts( $ $);puts( $ 歡迎使用汽車銷售管理系統(tǒng) $);puts( $ $);puts( $ 1.入庫管理 $); puts( $ $); puts( $ 2.修改數(shù)據 $); puts( $ $);puts( $ 3.銷售管理 $); puts( $ $);puts( $ 4.查詢信息 $); puts( $ $); puts( $ 5.刪除管理 $); puts( $ $);puts( $ 6.顯示庫存 $); puts( $ $);puts( $ 7.排序管理 $); puts( $ $);puts( $ 8.退出系統(tǒng) $); puts( $ $);puts(
12、 *);printf(請選擇(1-8):);select=getch();/輸入選擇選項 getch包含在conio.h頭文件中switch(select)case 1: /打開資料文件if(fp=fopen(C:car.txt,r+)=NULL)printf(n文件不存在!n按任意鍵新建一個.n); /如果文件不存在,提示新建一個getch(); /吃掉任意鍵fp=fopen(c:car.txt,w+);/創(chuàng)建新文件fclose(fp); /建完關閉,以便用r+方式打開goto back;/返回點0for(m=0;!feof(fp);m+)/從文件讀入數(shù)據fscanf(fp,%s %s %f
13、 %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain);system(cls);/清屏printf(錄入新車請按1.nn); scanf(%d,&temp3); / 輸入選項 if(temp3=1)system(cls);printf(要錄入的汽車有幾種:);scanf(%d,&n);/輸入要錄入的汽車有幾種for(i=0;in;i+)/依次錄入庫存system(cls);printf(請輸入汽車信息n品牌名: );scanf(%s,carm+i.carname);pri
14、ntf(n型號:);scanf(%s,carm+i.model);printf(n進價:);scanf(%f,&carm+i.saleprice);printf(n售價:);scanf(%f,&carm+i.soldprice);printf(n輛數(shù):);scanf(%d,&carm+i.num);for(i=0;in;i+)/將文數(shù)據件寫入文件中fprintf(fp,%7s %7s %7.2f %7.2f %7d 0.00n,carm+i.carname,carm+i.model,carm+i.saleprice,carm+i.soldprice,carm+i.num);/格式控制 0.00
15、為盈利值fclose(fp);/關閉文件printf(您的操作已經完成!n);printf(品牌型號進價售價輛數(shù)n);/在屏幕上輸出錄入的信息 for(i=0;in;i+)/左對齊輸出printf(%-7s %-7s %-7.2f %-7.2f %-7d n,carm+i.carname,carm+i.model,carm+i.saleprice,carm+i.soldprice,carm+i.num);printf(請按任意鍵返回主菜單n);getch(); goto back;/返回點0 case 2:/修改數(shù)據 fp=fopen(C:car.txt,r+);/打開文件 for(m=0;!
16、feof(fp);m+)/讀入數(shù)據 fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back2:/goto點1system(cls);/清屏 printf(品牌型號進價售價輛數(shù)n);for(k=0;km;k+)/輸出原來汽車庫存的信息printf(%-7s %-7s %-7.2f %-7.2f %-7d n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.n
17、um);printf(n請輸入品牌名: );/輸入要改變庫存量的信息scanf(%s,temp1);printf(n請輸入型號:);scanf(%s,temp2);for(k=0;km;k+)/數(shù)據進行比較是否存在if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/如果不存在printf(您輸入的汽車不存在。n);printf(n請返回重新輸入 按任意鍵.);getch();goto back2;/返回點1 printf(品牌型號進價售價輛數(shù)n);printf(%-7s %-7s %-7.2f %-7
18、.2f %-7d n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num);/輸出未改變之前的信息printf(n請輸入改變的進價:);scanf(%f,&cark.saleprice);printf(n請輸入改變的售價:); scanf(%f,&cark.soldprice);printf(n請輸入改變的輛數(shù):);scanf(%d,&cark.num); remove(c:car.txt); /刪除原文件fp=fopen(c:car.txt,w+); /創(chuàng)建新文件for(i=0;im;i+)/在新文件中寫入fprint
19、f(fp,%7s %7s %7.2f %7.2f %7d %7.2fn,cari.carname,cari.model,cari.saleprice,cari.soldprice,cari.num,cari.gain); fclose(fp);printf(修改成功nn); printf(品牌型號進價售價輛數(shù)n);printf(%-7s %-7s %-7.2f %-7.2f %-7d nn,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num);/輸出改變之后的信息printf(修改已完成。nn1(繼續(xù))nn2(退出)n)
20、; scanf(%d,&temp3); if(temp3=1) goto back2; else goto back;case 3:/銷售管理fp=fopen(C:car.txt,r+);/打開文件for(m=0;!feof(fp);m+)/讀入數(shù)據fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back3:/goto點2system(cls);printf(品牌型號進價售價輛數(shù)盈利n);sum=0;/算總盈利之用for(k=
21、0;km;k+) /在屏幕上輸出庫存信息printf(%-7s %-7s %-7.2f %-7.2f %-7d %-7.2f n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num,cark.gain);sum=sum+cark.gain;/計算總盈利printf(n總盈利:%.2fnn,sum);/輸出總盈利printf(請輸入賣出汽車信息nn品牌名: ); /輸入信息scanf(%s,temp1);printf(n型號:);scanf(%s,temp2); for(k=0;km;k+)/對數(shù)據進行比較if(strcm
22、p(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/如果不存在printf(您輸入的汽車不存在。nn);printf(請返回重新輸入 按任意鍵.);getch();goto back3;/返回點2 printf(品牌型號輛數(shù)n);printf(n%-7s %-7s %-7d n,cark.carname,cark.model,cark.num);/輸出要銷售的汽車信息printf(n請輸入賣出輛數(shù):);scanf(%d,&temp3);cark.num=cark.num-temp3;/計算件數(shù)cark.gain=ca
23、rk.gain+(cark.soldprice-cark.saleprice)*temp3;/計算盈利remove(c:car.txt); /刪除原文件 fp=fopen(c:car.txt,w+); /創(chuàng)建新文件for(i=0;im;i+)/在新文件中寫入數(shù)據fprintf(fp,%7s %7s %7.2f %7.2f %7d %7.2fn,cari.carname,cari.model,cari.saleprice,cari.soldprice,cari.num,cari.gain);fclose(fp); printf(品牌型號輛數(shù)n);printf(%-7s %-7s %-7d n,c
24、ark.carname,cark.model,cark.num);/輸出銷售后的汽車信息printf(您的操作已經完成!nn);printf(品牌型號進價售價輛數(shù)盈利n);sum=0;for(k=0;km;k+) /在屏幕上輸出庫存信息printf(%-7s %-7s %-7.2f %-7.2f %-7d %-7.2f n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num,cark.gain);sum=sum+cark.gain;/計算總盈利printf(n總盈利:%.2fnn,sum);/輸出總盈利printf(銷售
25、已完成。nn1(繼續(xù))nn2(退出)n); scanf(%d,&temp3); if(temp3=1) goto back3; else goto back; case 4:/查詢 if(fp=fopen(C:car.txt,r+)=NULL)/打開文件printf(文件打不能打開!n);/提示文件打不開getch();exit(1);for(m=0;!feof(fp);m+)/讀入數(shù)據fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gai
26、n); back4: system(cls);printf(請輸入要查詢的汽車的信息nn);/輸入要查詢的汽車的信息printf(品牌:);scanf(%s,temp1);printf(n型號:);scanf(%s,temp2);for(k=0;km;k+)/數(shù)據進行比較if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/如果不存在printf(您輸入的汽車信息不存在。n);printf(n請返回重新輸入 按任意鍵.);getch();goto back4; printf(品牌型號進價售價輛數(shù)盈利n)
27、;printf(n%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num,cark.gain); printf(是否要繼續(xù)查詢?nn1(繼續(xù))nn2(退出):);scanf(%d,&temp3);if(temp3=1)goto back4;elsegoto back;case 5:/刪除管理if(fp=fopen(C:car.txt,r+)=NULL)/提示文件打不開printf(文件打不能打開!n);getch();exit(1);for(m=0
28、;!feof(fp);m+)/輸入數(shù)據fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back5:/goto點5system(cls);printf(品牌型號進價售價輛數(shù)盈利n);sum=0;/在屏幕上輸出庫存for(k=0;km;k+)printf(%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f n,cark.carname,cark.model,cark.saleprice,cark.soldpr
29、ice,cark.num,cark.gain);sum=sum+cark.gain;/計算總盈利printf(n總盈利:%.2fnn,sum);printf(請輸入要刪除的汽車的信息nn);/輸入要刪除的汽車的信息printf(品牌:);scanf(%s,temp1);printf(n型號:);scanf(%s,temp2);for(k=0;km;k+)/數(shù)據進行比較if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/如果不存在printf(您輸入的汽車信息不存在。n);printf(n請返回重新輸入
30、 按任意鍵.);getch();goto back5; printf(品牌型號輛數(shù)n);printf(n%-7s %-7s %-7d n,cark.carname,cark.model,cark.num);printf(n是否要刪除?nn1(刪除)nn2(不刪除):);scanf(%d,&temp3);/選擇是否要刪除if(temp3=1)/如果要刪除remove(c:car.txt); /刪除原文件fp=fopen(c:car.txt,w+); /創(chuàng)建新文件printf(n品牌型號進價售價輛數(shù)盈利n);/刪除完后在文件夾中寫入和在屏幕顯示剩下的汽車信息for(i=0;im;i+)if(i!=
31、k)fprintf(fp,%7s %7s %7.2f %7.2f %7d %7.2fn,cari.carname,cari.model,cari.saleprice,cari.soldprice,cari.num,cari.gain);printf(%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f n,cari.carname,cari.model,cari.saleprice,cari.soldprice,cari.num,cari.gain);printf(n刪除已完成n);else/不刪除printf(n刪除未完成n);fclose(fp);printf(n按任意
32、鍵返回菜單.);getch();goto back;/返回主菜單 case 6:/顯示庫存if(fp=fopen(C:car.txt,r+)=NULL)/打開文件printf(文件打不能打開!n);/提示文件打不開getch();exit(1);for(m=0;!feof(fp);m+)/讀入數(shù)據fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain);system(cls);printf(序號 品牌 型號 進價售價 輛數(shù)n);/在屏幕上
33、顯示數(shù)據for(k=0;km;k+)printf(%d %-7s %-7s %-7.2f %-7.2f %-7d n,k+1,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num);fclose(fp);printf(請按任意鍵返回主菜單n);getch();goto back; case 7:/排序 if(fp=fopen(C:car.txt,r+)=NULL)/打開文件printf(文件打不能打開!n);/提示文件打不開getch();exit(1);for(m=0;!feof(fp);m+)/讀入數(shù)據fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back7:system(cls);printf(n請選擇排序標準?nn1(按品牌排序)nn2(按進價排序)nn3(按利潤排序)n);scanf(%d,&temp3); if(temp3=1)/按品牌排序 for(i=0;im-1;i+) for(j=i+1;j0) carname_order=cari; cari=carj; carj=carname_order; printf(按品牌排
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路安全管理課件
- 2025 小學六年級數(shù)學上冊圓的飲食餐具設計課件
- 2025年鄧州事業(yè)單位真題
- 2025 小學六年級數(shù)學上冊扇形統(tǒng)計圖信息技術制作課件
- 滑雪升降機維修培訓課件
- 2025 小學六年級數(shù)學上冊分數(shù)除法校園數(shù)據計算課件
- 第13課《湖心亭看雪》教學課件 2025-2026學年統(tǒng)編版語文九年級上冊
- 湘菜宴服務流程培訓課件
- 市場競爭分析與應對策略指南(標準版)
- 未來五年城市社區(qū)、街道照明設施管理服務企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略分析研究報告
- 幼兒語言發(fā)展評價量表及使用說明
- 2025年河北省職業(yè)院校技能大賽中職組法律實務賽項參考試題庫(含答案)
- DB15∕T 3722-2024 公路基層水泥穩(wěn)定高爐重礦渣混合料設計與施工技術規(guī)范
- 2025年國家能源集團招聘筆試真題及答案
- 企業(yè)環(huán)保管理制度(2025年版)
- 內河電動船舶充換電模式的經濟性與適用性分析
- 刮板撈渣機課件
- 幼兒園3-6歲兒童學習與發(fā)展指南語言領域課件
- 透析液檢測不合格應急預案
- 醫(yī)療糾紛大數(shù)據及其預測模型-洞察及研究
- 2025《招投標與合同管理》期末考試試卷(含答案)
評論
0/150
提交評論