C課程設計任務書標準_第1頁
C課程設計任務書標準_第2頁
C課程設計任務書標準_第3頁
C課程設計任務書標準_第4頁
C課程設計任務書標準_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設 計 報 告課程名稱 面向對象程序設計 課題名稱公司庫存管理系統 專 業通信工程 班 級1081 班 學 號201013120112 姓 名 鄧俐 指導教師年 月 日湖南工程學院課 程 設 計 任 務 書課程名稱 面向對象程序設計課 題 公司庫存管理系統專業班級 通信1081 學生姓名 鄧俐 學 號 201013120112指導老師 喬匯東審 批 任務書下達日期 年 月 日任務完成日期 年 月 日一、設計內容與設計要求1.課程設計目的:面向對象程序設計課程設計是集中實踐性環節之一,是學習完面向對象程序設計課程后進行的一次全面的綜合練習。要求學生達到熟練掌握C+語言的基本知識和技能;基

2、本掌握面向對象程序設計的思想和方法;能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題,從而提高動手編程解決實際問題的能力。公司庫存管理系統3設計要求:設計課題題目:每位同學根據自己學號除以4所得的余數加一選擇相應題號的課題。換題者不記成績。根據自己對應的課題完成以下主要工作:完成系統需求分析:主要包括系統設計目的與意義;系統功能需求(系統框圖);輸入輸出的要求等內容。完成系統總體設計:主要包括系統功能分析;系統功能模塊劃分與設計(系統功能模塊圖)。完成系統詳細設計:主要包括類層次圖;界面設計與各功能模塊實現等累人。完成系統調試:主要包括調試出現的主要問題,編譯語法錯誤及修改,重點是

3、運行邏輯問題修改和調整。使用說明書及編程體會:說明系統的使用和操作步驟,詳細列出每一步的操作步驟。附錄:關鍵源程序(帶注釋),可以只選取程序主要部分。按規定格式完成課程設計報告,將其打印稿(A4紙)上交給老師存檔。不得抄襲他人程序、課程設計報告,每個人應體現自己的個性設計。課題:公司庫存管理系統 (一)、課程設計題目:某公司的庫存管理系統(二)、目的與要求: 1、目的: (1)要求學生達到熟練掌握C+語言的基本知識和技能; (2)基本掌握面向對象程序設計的基本思路和方法; (3)能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。 2、基本要求: (1)要求利用面向對象的方法以及C+

4、的編程思想來完成系統的設計; (2)要求在設計的過程中,建立清晰的類層次; (3)在系統中定義類,每個類中要有各自的屬性和方法; (4)在系統的設計中,至少要用到面向對象的一種機制。 3、創新要求: 在基本要求達到后,可進行創新設計,如根據查找結果進行修改的功能。 4、寫出設計說明書 (三)、設計方法和基本原理: 1、問題描述(功能要求): 某公司現有以下設備:普通電視機、DVD、帶DVD的電視機,帶DVD的電視機的售價為普通電視機和DVD單價之和的80%,要求對所有的庫存設備都能按照品名進行顯示、查找、入庫和出庫、保存的功能。普通電視機有下列屬性:尺寸、類型(液晶或等離子)、售價、重量、品牌

5、、入庫編號DVD有下列屬性:規格(高清、藍光高清、普通)、重量、售價、品牌、入庫編號帶DVD的電視機是上兩者的派生類,但請注意有些屬性的重復問題。2、問題的解決方案: 根據系統功能要求,可以將問題解決分為以下步驟: (1)分析系統中的各個實體之間的關系及其屬性和行為; (2)根據問題描述,設計系統的類層次; (3)完成類層次中各個類的描述(包括屬性和方法); (4)完成類中各個成員函數的定義; (5)完成系統的應用模塊; (6)功能調試; (7)完成系統總結報告以及系統使用說明書。 目 錄附錄:程序源碼71. 系統需求分析改程序適用于對普通電視機、DVD、帶DVD的電視機生產或銷售部門的庫存進

6、行簡單的管理,能夠對所有的庫存設備都能按照品名進行顯示、查找、入庫和出庫、保存的功能。2. 總體設計從系統的需求中我們可以看到:該系統要對產品進行顯示、查找、入庫、出庫和保存功能。這就意味著這個系統需要一個show函數(通過cout將數據顯示在屏幕上)來實現顯示功能,而其他各個功能需要不同的模塊來實現,也就意味著這個系統需要五個不同的功能模塊。系統功能模塊圖:公司庫存管理系統退出出庫保存查找顯示入庫保存DVDTV信息保存TV信息保存DVD信息按品牌查詢按入庫編號查詢顯示DVD信息顯示DVDTV信息顯示TV信息輸入DVDTV信息輸入TV信息輸入DVD信息3. 詳細設計類層次圖.各功能模塊的實現:

7、(入庫模塊)入庫其實是一個輸入功能:它主要是通過“cin>>”功能依次將產品的各項數據輸入計算機。輸入TV信息入庫(物品信息的錄入)輸入DVD信息輸入DVDTV信息(顯示模塊)顯示功能是同過各類自帶有的show函數形如“cout<<”<<<<endl”的一豎排c+輸出流把TV,DVD,DVDTV的主要數據打印在計算機的屏幕上。顯示庫存TV信息顯示(物品信息的顯示)顯示庫存DVD信息顯示庫存DVDTV信息(查找)查找是分兩種情況:按入庫編號按品牌按入庫編號是輸入一個編號,讓它與庫存中產品進行比對如果有相同則將編號相同的產品輸出到屏幕上,如果無相同就

8、在屏幕上顯示“無貨或輸錯”。按品牌查找是輸入一個品牌,通過strcmp將兩個字符串進行比較,如果相同則顯示出這個品牌的所有產品以及它們的數據。按入庫編號查找查找(查找物品信息)按品牌查找(保存)保存是建一個文件,把入庫時輸入的數據保存在一個文件內,是系統再次打開時數據不用重新輸入。保存入庫的TV信息保存(物品信息的保存)保存入庫的DVD信息保存入庫的DVDTV信息出庫是一個刪除功能,由于水平有限,我采用的是通過用后一個覆蓋前一個數據的方法,并將計數減一,使之能夠在功能上達到刪除。4. 調試與使用說明在這個系統中,用戶可以按照系統的提示分別執行用戶自己想實現的功能,比如,在物品信息入庫功能中,用

9、戶可以輸入自己想輸入的信息;在顯示物品功能中用戶可以查看系統所保存的物品所有信息;在查找物品功能用戶可以根據自己的需要輸入自己要查找的物品編號或者品,然后查找用戶想查找的物品所相關的信息;在出庫物品功能中,用戶可以根據自己的需要輸入想刪除的物品編號,然后進行刪除;在物品保存功能中,當用戶需要實現物品保存時,系統會自動打開文件然后講用戶輸入的數據保存文件中。5. 結果分析入庫顯示查找保存出庫6. 總結在做c+ 的設計前,我以為不會難做,就像去年做c語言一樣,做完設計,然后兩下子就將設計答辯完設計時,我才知道其實并不容易做,但學到的知識與難度成正比,使我受益匪淺. 在做設計前,一定要將課本上的知識

10、吃透,因為這是做設計的基礎,否則,在老師講解時就會聽不懂,這將使你在做設計時的難度加大,浪費做設計設計設計時,一定要親力親為,務必要將每個步驟,每個細節弄清楚,弄明白,設計后,還要復習,思考,這樣,你的印象 才深刻,記得才牢固,否則,過后不久你就會忘得一干二凈,這樣你就答辯通不過。老師在答辯過程中還會根據自己的親身體會,將一些課本上沒有的知識教給我們,拓寬我們的眼界,使我們認識到這門課程在以后工作中的應用是那么的廣泛. 通過這次c+的設計,使我學到了不少實用c+的知識,更重要的是,做設計的過程,思考問題的方法,這與做其他的設計是通用的,真正使我們受益匪淺.附錄:程序源碼#include<

11、iostream>using namespace std;class televisionpublic:int size; /大小char type10;/類型int charge1;/售價int weight1;/重量char brank110;/品牌int number1;/入庫編號public:television(int s=0,char t=" ",int c1=0,int w1=0,char b1=" ",int n1=0):size(s),charge1(c1),weight1(w1),number1(n1) strcpy(type,

12、t);strcpy(brank1,b1); void show() const cout<<"TV尺寸:"<<size<<endl;cout<<"TV類型:"<<type<<endl;cout<<"售價:"<<charge1<<endl;cout<<"重量:"<<weight1<<endl;cout<<"TV品牌:"<<brank

13、1<<endl;cout<<"入庫編號:"<<number1<<endl;class DVDpublic: char guige10;/規格 int weight2;/重量 int charge2;/售價char brank210;/品牌int number2;/入庫編號DVD(char g=" ",int w2=0,int c2=0,char b2=" ",int n2=0):weight2(w2),charge2(c2),number2(n2) strcpy(guige,g); st

14、rcpy(brank2,b2); void show() const cout<<"DVD規格:"<<guige<<endl;cout<<"重量:"<<weight2<<endl;cout<<"售價:"<<charge2<<endl;cout<<"DVD品牌:"<<brank2<<endl;cout<<"入庫編號:"<<numbe

15、r2<<endl;class DVDTV:public television,public DVDpublic: int weight3;/重量 int charge3;/售價 int number3;/入庫編號DVDTV(int s=0,char t=" ",char b1=" ",char g=" ",char b2=" ",int w3=0,int c3=0,int n3=0):weight3(w3),charge3(c3),number3(n3)size=s,strcpy(type,t);str

16、cpy(brank1,b1);strcpy(guige,g); strcpy(brank2,b2); void show() const cout<<"尺寸:"<<size<<endl; cout<<"類型:"<<type<<endl;cout<<"TV品牌:"<<brank1<<endl; cout<<"規格:"<<guige<<endl;cout<<&quo

17、t;DVD品牌:"<<brank2<<endl;cout<<"重量:"<<weight3<<endl; cout<<"售價:"<<charge3<<endl;cout<<"入庫編號:"<<number3<<endl; ;int main () static int k=0;/電視機數 static int l=0;/DVD數目 static int m=0;/DVDTV數目 int i;clas

18、s television a10;class DVD b10;class DVDTV c10;FILE *q1; q1=fopen("新建1.txt","r+"); if(q1=NULL) q1=fopen("新建1.txt","w+"); rewind(q1); fscanf(q1,"%d",&k);for(i=0;i<k;i+)fscanf(q1,"%d %s %d %d %s %d ",&ai.size,ai.type,&ai.charge

19、1,&ai.weight1,ai.brank1,&ai.number1); FILE *q2; q2=fopen("新建2.txt","r+"); if(q2=NULL) q2=fopen("新建2.txt","w+"); rewind(q2); fscanf(q2,"%d",&l);for(i=0;i<l;i+)fscanf(q2,"%s %d %d %s %d ",bi.guige,&bi.weight2,&bi.charge

20、2,bi.brank2,&bi.number2);FILE *q3; q3=fopen("新建3.txt","r+"); if(q3=NULL) q3=fopen("新建3.txt","w+"); rewind(q3); fscanf(q3,"%d",&m);for(i=0;i<m;i+)fscanf(q3,"%d %s %s %s %s %d %d %d ",&ci.size,ci.type,ci.brank1,ci.guige,ci.bran

21、k2,&ci.weight3,&ci.charge3,&ci.number3);while(1) cout<<"*歡迎進入公司庫存管理系統*"<<endl;cout<<"* 1.入庫 *"<<endl;cout<<"* 2.顯示 *"<<endl; cout<<"* 3.查找 *"<<endl;cout<<"* 4.保存 *"<<endl; cout&l

22、t;<"* 5.出庫 *"<<endl;cout<<"* 6.退出 *"<<endl;cout<<"* 請輸入你的選擇: *" int x; cin>>x;if(x=1) /輸入 while(1)int n; cout<<"1.請輸入TV的信息"<<endl;cout<<"2.請輸入DVD的信息"<<endl; cout<<"3.請輸入DVDTV的信息"

23、;<<endl;cout<<"4.返回"<<endl;cout<<"請選擇: " cin>>n; if(n=1) char b; cout<<"請輸入電視機的信息:"<<endl; for(i=k;i<10;i+) k+; cout<<"尺寸"<<endl; cin>>ai.size; cout<<"類型"<<endl; cin>>ai

24、.type; cout<<"售價"<<endl;cin>>ai.charge1; cout<<"重量"<<endl; cin>>ai.weight1; cout<<"品牌"<<endl; cin>>ai.brank1; cout<<"入庫編號"<<endl; cin>>ai.number1; cout<<"是否繼續輸入(y/n): " cin

25、>>b; if(b!='y'&&b!='Y') break; else if(n=2) char h; cout<<"請輸入DVD的信息:"<<endl; for(i=l;i<10;i+) l+; cout<<"規格"<<endl; cin>>bi.guige; cout<<"重量"<<endl;cin>>bi.weight2; cout<<"售價&qu

26、ot;<<endl;cin>>bi.charge2; cout<<"品牌"<<endl;cin>>bi.brank2; cout<<"入庫編號"<<endl;cin>>bi.number2; cout<<"是否繼續輸入(y/n):" cin>>h; if(h!='y'&&h!='Y') break; else if(n=3)char s; cout<<&qu

27、ot;請輸入DVD的信息:"<<endl; for(i=m;i<10;i+) m+; cout<<"尺寸"<<endl; cin>>ci.size; cout<<"類型"<<endl; cin>>ci.type; cout<<"電視機品牌"<<endl; cin>>ci.brank1; cout<<"規格"<<endl; cin>>ci.guig

28、e; cout<<"DVD品牌"<<endl; cin>>ci.brank2; cout<<"重量"<<endl; cin>>ci.weight3;cout<<"售價"<<endl; cin>>ci.charge3; cout<<"入庫編號"<<endl; cin>>ci.number3; cout<<"是否繼續輸入(y/n):" cin&g

29、t;>s; if(s!='y'&&s!='Y') break; else if (n=4)break;else cout<<"n輸入出錯"<<endl;else if(x=2) /顯示 int f; cout<<"1.顯示電視的信息"<<endl;cout<<"2.顯示DVD的信息"<<endl; cout<<"3.顯示DVDTV的信息"<<endl;cout<

30、<"請輸入你的選擇: " cin>>f; if(f=1) cout<<"k="<<k<<endl; for(i=0;i<k;i+) cout<<" television:"<<i+1<<endl; ai.show(); else if(f=2) cout<<"l="<<l<<endl; for(i=0;i<l;i+) cout<<" DVD: "&

31、lt;<i+1<<endl; bi.show(); else if(f=3) cout<<"m="<<m<<endl; for(i=0;i<m;i+) cout<<" DVDTV "<<i+1<<endl; ci.show(); else cout<<"f輸入有錯"<<endl;else if(x=3) /查找 int o;cout<<"1.按入庫編號查找"<<endl;c

32、out<<"2.按貨物的品牌查找"<<endl;cout<<"請輸入你的選擇:"cin>>o;if(o=1)int j; int p=1; cout<<"請輸入要查找貨物的入庫編號: " cin>>j; for(i=0;i<k;i+) if(j=ai.number1) cout<<"該庫存貨物為電視機"<<endl; ai.show();elsep=0; if (p=0)cout<<"輸入錯誤

33、"<<endl; for(i=0;i<l;i+)if (j=bi.number2) cout<<"該庫存貨物為DVD"<<endl; bi.show(); elsep=0; for(i=0;i<m;i+) if (j=ci.number3) cout<<"該庫存貨物為DVDTV"<<endl; ci.show(); else p=0; if (p=0)cout<<"輸入錯誤"<<endl; else if(o=2) char j1

34、0; int g=1; cout<<"請輸入要查找貨物的品牌: " cin>>j; for(i=0;i<k;i+) if(strcmp(j,ai.brank1)=0) cout<<"該庫存貨物為電視機"<<endl; ai.show();elseg=0; for(i=0;i<l;i+)if (strcmp(j,bi.brank2)=0) cout<<"該庫存貨物為DVD"<<endl; bi.show(); elseg=0; for(i=0;i<

35、m;i+) if (strcmp(j,ci.brank1)=0) cout<<"該庫存貨物為DVDTV"<<endl; ci.show(); else g=0; if (g=0) cout<<endl; elsecout<<"o的輸入有錯"<<endl;else if (x=4) /保存 cout<<"1.保存電視機的相關內容"<<endl; cout<<"2.保存DVD的相關內容"<<endl; cout&

36、lt;<"3.保存DVDTV的相關內容"<<endl; cout<<"請選擇: " int z; cin>>z; if(z=1) rewind(q1);fprintf(q1,"%dn",k); for(i=0;i<=k;i+) fprintf(q1,"%d %s %d %d %s %d ",ai.size,ai.type,ai.charge1,ai.weight1,ai.brank1,ai.number1); fclose(q1); cout<<endl;

37、 cout<<"television的相關內容保存成功!"<<endl; else if(z=2) rewind(q2); fprintf(q2,"%dn",l); for(i=0;i<=l;i+) fprintf(q2,"%s %d %d %s %d ",bi.guige,bi.weight2,bi.charge2,bi.brank2,bi.number2); fclose(q2); cout<<endl; cout<<"DVD的相關內容保存成功!"<&

38、lt;endl; else if(z=3) rewind(q3); fprintf(q3,"%dn",m); for(i=0;i<=m;i+) fprintf(q3,"%d %s %s %s %s %d %d %d ",ci.size,ci.type,ci.brank1,ci.guige,ci.brank2,ci.weight3,ci.charge3,ci.number3); fclose(q3); cout<<endl; cout<<"DVDTV的相關內容保存成功!"<<endl; cout

39、<<endl; else if (x=5) / 刪除出庫 int s; int t=1; cout<<"請輸入要出庫貨物的入庫編號: " cin>>s;for(i=0;i<=k;i+) if(s=ai.number1) cout<<"該出庫的貨物為電視機"<<endl; ai.show(); cout<<endl; cout<<"請確認(y或n) " int r; r=i; char v; cin>>v; if(v='y

40、9;) for(i=r;i<=k-1;i+) strcpy(ai.type,ai+1.type);strcpy(ai.brank1,ai+1.brank1); ai.size=ai+1.size; ai.charge1=ai+1.charge1;ai.weight1=ai+1.weight1; ai.number1=ai+1.number1; k-; cout<<endl; cout<<"已出庫"<<endl; cout<<endl; rewind(q1); fprintf(q1,"%dn",k);

41、for(i=0;i<=k-1;i+) fprintf(q1,"%d %s %d %d %s %d",ai.size,ai.type,ai.charge1,ai.weight1,ai.brank1,ai.number1); fclose(q1); cout<<"電視庫存已更新"<<endl; cout<<endl; else t=0; for(i=0;i<=l;i+) if(s=bi.number2) cout<<"該庫存貨物為DVD"<<endl; bi.show(); cout<<endl; cout<<"請確認(y或n) " int e; e=i; char v; cin>>v; if(v='y') for(i=e;i<=l-1;i+) strcpy(bi.guige,bi+1.guige); strcpy(bi.brank2,bi+1.brank2); bi.charge2=bi+1.charge2; bi.weight2=bi+1.weight2; bi.number2=bi+1.number2; l-;cout<<endl; cou

溫馨提示

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

評論

0/150

提交評論