版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計一、【開發(fā)工具介紹】VisualC++6.0:VisualC++6.0是微軟公司推出的開發(fā)Win32應(yīng)用程序(Windows95/98/2000/XP/NT/Win7)的、面向?qū)ο蟮目梢暬晒ぞ?。它的最大?yōu)點就是提供了功能強大的MFC類庫,MFC是一個很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標準內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應(yīng)用程序特有的東西填入這個輪廓,這將簡化編程工作,大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易。MySQL數(shù)據(jù)庫:MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進行數(shù)據(jù)庫管理。二、【問題描述】物料需求計劃(MRP)是指,根據(jù)產(chǎn)品的結(jié)構(gòu)、零件的批量和提前期(前置期),以產(chǎn)品交貨日期為基準,倒排計劃,計算出各種零部件的投入產(chǎn)出的時間和數(shù)量。據(jù)此,制定企業(yè)的生產(chǎn)計劃,保證產(chǎn)品組裝時,不缺件,也不浪費或積壓零部件,使企業(yè)達到準時、保質(zhì)、保量、靈活、協(xié)調(diào)、有序地生產(chǎn)?!具x題目標分析】物料需求計劃系統(tǒng)功能要求:制定生產(chǎn)計劃的過程,實際就是從訂單出發(fā),根據(jù)產(chǎn)品的交貨日期,對產(chǎn)品結(jié)構(gòu)樹從0層(產(chǎn)品)開始遍歷,逐層計算零部件在不同周期的需求量,逐層匯總和迭加完成各零部件在各周期的總需求量的計算。最后,根據(jù)計算出的零部件需求量及相應(yīng)周期,在適當?shù)奶崆捌?,對自己能生產(chǎn)的零部件,下達車間生產(chǎn)計劃,對自己不能生產(chǎn)的零部件,制定外購計劃,發(fā)出相應(yīng)訂單,從而完成整個企業(yè)的生產(chǎn)計劃制定。在整個過程中的核心算法就是樹的遍歷算法??疾旌诵模簶涞谋闅v算法本著將所學書本知識融入未來社會需求的原則,對此選題進行信息化分析,即將此單一選題的應(yīng)用背景擴大到整個信息管理系統(tǒng):信息管理的應(yīng)用能夠有效地提高管理水平和工作效率,同時也可以最大限度的減少手工操作帶來的錯誤。于是,信息管理系統(tǒng)便應(yīng)運而生。在工廠,物料需求管理是非常重要的一個環(huán)節(jié)。功能模塊設(shè)計:本實驗主要要求2個模塊:即輸入模塊和輸出模塊。輸入模塊:要求分別輸入各種產(chǎn)品的數(shù)量,能分不同時間輸入產(chǎn)品要求的數(shù)量,能分不同批次輸入產(chǎn)品要求的數(shù)量。效果圖如下:輸出模塊:要求輸出各個批次各種產(chǎn)品要求的數(shù)量,并且輸出各種產(chǎn)品所要求的總數(shù)量。效果圖如下:設(shè)計特色介紹:操作人性化:操作過程簡單明了,使用方便;操作方便性:能夠方便工廠產(chǎn)品需求員的操作,只要求輸入各種產(chǎn)品要求的數(shù)量即可;四:【代碼部分】//MRP.cpp:Definestheentrypointfortheconsoleapplication.#include"stdafx.h"#include<iostream>usingnamespacestd;constcharS[]={'A','B','C','D','E'};//產(chǎn)品類型;inttotalS[5];//所有合約中每個配件的總數(shù)目;classTwig;classNode{protected:intnum;intsign;public:intgetNum(){returnnum;}voidsetNum(intn){num=n;}chargetSign(){returnsign;}voidsetSign(chars){sign=s;}friendclassTwig;};classPNode:publicNode{public:PNode*lchild;PNode*rchild;PNode(PNode*lchildren,chars,intn,PNode*rchildren){lchild=lchildren;sign=s;num=n;rchildren=rchild;}friendclassTwig;};classCNode:publicNode{public:CNode*next;CNode(){};CNode(chars,intn,CNode*cnext){sign=s;num=n;next=cnext;}};//每條樹枝由一個PNode和四個CNode組成;classTwig{private:PNode*parent;public:friendclassTwigNode;Twig(){parent=NULL;}Twig(PNode*pn){parent=pn;}PNode*getParent(){returnparent;}voidfuntionname(inta[]){int*b=a;CNode*p[4];parent=newPNode(NULL,S[0],b[0],NULL);inti=0;intj=0;while(j<=4){intk=j+1;p[j]=newCNode(S[k],b[++i],NULL);j++;}i=0;j=0;parent->lchild=(PNode*)p[0];while(j<=2){p[j]->next=p[++i];j++;}}voidprint(){intaboutS=0;totalS[aboutS]=totalS[aboutS]+parent->getNum();aboutS++;CNode*p;p=(CNode*)parent;//->lchild;while(p){totalS[aboutS]=totalS[aboutS]+p->getNum();aboutS++;p=p->next;}cout<<endl;}};classTwigNode//一條樹枝又作為一個結(jié)點{private:Twigtwig;public:TwigNode*next;TwigNode(Twigt,TwigNode*n){twig=t;next=n;}TwiggetTwig(){returntwig;}};classTree//一棵樹由多個樹枝結(jié)點組成{public:TwigNode*head;Tree(Twigt){head=newTwigNode(t,NULL);}Tree(TwigNode*h){head=h;}voidaddTwigNode(Twigt){TwigNode*p,*q;p=head;q=p;while(q->next){p=p->next;q=p;}TwigNode*tn;tn=newTwigNode(t,NULL);q->next=tn;}voidprintTree(){TwigNode*p;p=head;while(p){p->getTwig().print();p=p->next;}}};classstorage{public:intA;intB;intC;intD;intE;inttem[5];intcircle;storage():A(0),B(0),C(0),D(0),E(0),circle(0){};};voidmain(){boolT=false;intK=0;boolkk=true;storageproduct[20];do{if(kk){cout<<"請輸入倉庫產(chǎn)品余數(shù):"<<endl;kk=false;}charsign[]={'A','B','C','D','E'};inti=0;inttempt1=0;inttempt2=0;for(i=0;i<5;i++){cout<<sign[i]<<":"<<endl; cout<<"數(shù)量:"; cin>>tempt1; cout<<"時間:"; cin>>tempt2; switch(i) { case0:product[K].A=tempt1; product[K].tem[0]=tempt1;product[K].circle=tempt2; case1:product[K].B=tempt1; product[K].tem[1]=tempt1; product[K].circle=tempt2; case2:product[K].C=tempt1; product[K].tem[2]=tempt1; product[K].circle=tempt2; case3:product[K].D=tempt1; product[K].tem[3]=tempt1; product[K].circle=tempt2; case4:product[K].E=tempt1; product[K].tem[4]=tempt1; product[K].circle=tempt2; }//每一個數(shù)組對應(yīng)一條樹枝上S[]的值;即一條樹枝上各種產(chǎn)品的num值}K++;cout<<"請輸入產(chǎn)品配件數(shù)目:"<<endl;cout<<"Ifcontinue,pleaseenter1,else,pleaseenter0"<<endl;cin>>T;}while(T);Twigt[20];//一個樹枝對應(yīng)一個合約for(intj=0;j<K;j++){ t[j].funtionname(product[j].tem); }Treetree(t[1]);//一棵樹由多個樹枝即多個合約組成 for(inth=1;h<K;h++) { tree.addTwigNode(t[h]); }tree.printTree();cout<<endl;cout<<"所有合約中每個配件的總數(shù)目分別為:"<<endl;for(inti=0;i<5;i++){cout<<S[i]<<":"<<totalS[i]<<endl;}}五:簡要分析傳統(tǒng)做課程設(shè)計,多在DOS環(huán)境下操作,然而這樣的界面交互性并不好,再經(jīng)過比較選擇和老師的指引,本系統(tǒng)采用MFC的圖形操作界面。利用VC自帶控件與函數(shù)庫,設(shè)計界面、編寫程序。MFC的優(yōu)點十分明顯:MFC旨在包裝C/C++應(yīng)用程序,這些程序只需做很少的修改或者不做任何修改,就可以在幾乎所有操作系統(tǒng)上運行。然而缺點就是龐大,臃腫,很多的宏使得結(jié)構(gòu)很難看。這給初學者的使用操作也帶來了許多困難。六:技術(shù)討論1、如何保證數(shù)據(jù)一致性算法數(shù)據(jù)一致性和完備性,是工程的系統(tǒng)設(shè)計考慮設(shè)計問題,觸發(fā)器函數(shù)可能只是其中的一部分,信息項目的數(shù)量和它們之間的邏輯關(guān)系以及系統(tǒng)的容錯要求等,決定存儲函數(shù)設(shè)計。數(shù)據(jù)的智能在程序設(shè)計中保證數(shù)據(jù)庫中數(shù)據(jù)的一致性一般都是用事務(wù)來解決的。
因為事務(wù)有一個特性就是:要成功一起執(zhí)行~要么失敗都不執(zhí)行(一個失敗就用返回)2、MFC下對文件的操作MFC對文件的幾個常見的操作1.文件的查找。其實"CFileDialog"聲明一個對象時,第一個BOOL型參數(shù)用于指定文件的打開或保存,當為TRUE時將構(gòu)造一個文件打開對話框,為FALSE時構(gòu)造一個文件保存對話框。文件讀寫最普通的方法是直接使用"CFile"類進行,如文件的讀寫可以使用下面的方法:正規(guī)軟件經(jīng)常用到臨時文件,經(jīng)??梢钥吹?C:\Windows\Temp"目錄下有大量的擴展名為".tmp"的文件,這些就是程序運行時建立的臨時文件。它的第一個參數(shù)是建立此臨時文件的路徑,第二個參數(shù)是建立臨時文件名的前綴,第四個參數(shù)用于得到建立的臨時文件名。3、大容量鏈表中如何快速找到死鏈在鏈表的操作中,經(jīng)常會遇到死鏈或短鏈的情況,如何迅速查找到問題節(jié)點有重要的作用;方法一:再構(gòu)造了一個雙向鏈,不存儲原來的數(shù)據(jù)而存儲節(jié)點指針:
typedefstruct_PtrLinkNode
{
LinkNode*theNode;
struct_PtrLinkNode*prev;
struct_PtrLinkNode*next;
}PtrLinkNode;
然后在逆轉(zhuǎn)鏈表時把當前節(jié)點指針加入到這個雙向鏈表中。當逆轉(zhuǎn)結(jié)束時如果這個雙向鏈表的首尾的theNode不相等,則說明沒有死鏈,再逆轉(zhuǎn)回來就可以了;如果相等,則存在死鏈,再在這個雙向鏈表從兩端向中間進行首尾比較,直到遇到不相等的兩個節(jié)點,這兩個節(jié)點形成的閉區(qū)間就是原來形成死鏈的節(jié)點,順序與現(xiàn)在在雙向鏈表中的順序相同。把雙向鏈表中位于這個區(qū)間之后的節(jié)點支掉,然后按雙向鏈表的順序重建鏈表就可以恢復出原來的鏈表并去除死鏈。時間復雜度和空間復雜度都是O(N)。方法二:順序遍歷鏈表,記錄最小節(jié)點地址(mi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印尼動力煤2025年度環(huán)境保護與合規(guī)合同3篇
- 二零二五年度重型機械設(shè)備的買賣與安裝指導合同3篇
- 2025版汽車經(jīng)銷商庫存管理及銷售合同4篇
- 二零二五年科技公司股權(quán)激勵與分紅實施細則協(xié)議3篇
- 2025年度林業(yè)生態(tài)補償樹木交易合同4篇
- 2025年度服裝產(chǎn)品設(shè)計保密協(xié)議范本4篇
- 2025年度高端化妝品原料采購合作意向書(美容護膚)4篇
- 二零二五年度草原恢復與草籽種植支持項目合同3篇
- 閥蓋課程設(shè)計部分
- 2025年全民K歌合作協(xié)議
- 《請柬及邀請函》課件
- 中小銀行上云趨勢研究分析報告
- 機電安裝工程安全培訓
- 遼寧省普通高中2024-2025學年高一上學期12月聯(lián)合考試語文試題(含答案)
- 青海原子城的課程設(shè)計
- 常州大學《新媒體文案創(chuàng)作與傳播》2023-2024學年第一學期期末試卷
- 麻醉蘇醒期躁動患者護理
- 英語雅思8000詞匯表
- 小學好詞好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移動支付技術(shù)規(guī)范第1部分:總則
- 《茶藝文化初探》(教學設(shè)計)-六年級勞動北師大版
評論
0/150
提交評論