2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p><b>  目 錄</b></p><p>  1 需求分析……………………………………………...………..3</p><p>  2 概要設(shè)計(jì)…………………………………………...……….… 3</p><p>  2.1

2、 題目概述……………………………………..….……....3</p><p>  2.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)說(shuō)明………………………….………..…3</p><p>  2.3 算法流程圖……………………………….………...… 5</p><p>  3 詳細(xì)設(shè)計(jì)……………………………………………….…...….8</p><p>  3.1算

3、法分析 ……………………………………….…..… 8</p><p>  3.2程序代碼 ………………………………….……....… 8</p><p>  4 調(diào)試分析…………………………………………....…..……..15</p><p>  5 課設(shè)總結(jié)………………………………………………..……..18</p><p>  6

4、 參考文獻(xiàn)………………………………………………..……..18</p><p><b>  1 需求分析</b></p><p><b>  一.供貨信息管理</b></p><p>  供貨信息管理的設(shè)計(jì)目標(biāo)是為了使廠家了解商品的信息以及廠家管理員對(duì)商品的管理,可以通過(guò)查詢供貨信息管理程序,了解商品的各種信息,利用保存的

5、信息來(lái)提示廠家是否需要進(jìn)貨或發(fā)貨亦或是使商品上下架及獲利情況。</p><p>  憑個(gè)人認(rèn)為,這個(gè)貨物管理的程序需要有以下幾個(gè)功能:</p><p>  1.初始貨物:這是對(duì)于管理人員來(lái)說(shuō),可以把第一次進(jìn)的貨物信息保存起來(lái)。</p><p>  2.查找貨物:如有顧客購(gòu)買(mǎi)貨物,管理員需要查詢有沒(méi)有,方便進(jìn)行交易。</p><p>  3.刪

6、除貨物:這主要用于當(dāng)貨物已賣(mài)掉需要?jiǎng)h除時(shí)所用,這個(gè)模塊使管理員對(duì)貨物的管理更加方便。</p><p>  4.添加貨物:當(dāng)商店進(jìn)新貨時(shí),只需要管理員在程序中添加貨物信息即可。</p><p>  信息即可,不需要在對(duì)信息重新輸入。</p><p>  5.修改貨物信息:當(dāng)貨物過(guò)過(guò)期或貨物信息存儲(chǔ)有誤時(shí),可以修改。</p><p>  6.獲利

7、情況排序:方便管理員對(duì)盈利情況進(jìn)行分析,哪些貨物盈利多,哪些虧損,進(jìn)行調(diào)整。</p><p>  十進(jìn)制數(shù)字向N進(jìn)制數(shù)字的轉(zhuǎn)換</p><p><b>  輸入十進(jìn)制數(shù)字</b></p><p>  輸入需要轉(zhuǎn)化成的進(jìn)制</p><p><b>  輸出轉(zhuǎn)化后的數(shù)字</b></p>&

8、lt;p><b>  2 概要設(shè)計(jì)</b></p><p><b>  2.1 題目概述</b></p><p>  2.1.1 供貨信息管理 </p><p>  通過(guò)對(duì)文件的存儲(chǔ)操作實(shí)現(xiàn)對(duì)商品信息的管理,包括信息的錄入,修改,查找,插入以及刪除,并進(jìn)而計(jì)算商品的利潤(rùn)并進(jìn)行排序。</p><p&

9、gt;  2.1.2 十進(jìn)制數(shù)到N進(jìn)制數(shù)據(jù)的轉(zhuǎn)換</p><p>  通過(guò)利用?!跋冗M(jìn)后出”的特性,設(shè)計(jì)算法,實(shí)現(xiàn)由十進(jìn)制數(shù)字到N進(jìn)制數(shù)字的轉(zhuǎn)換。</p><p>  2.2存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)說(shuō)明 </p><p>  2.2.1 供貨信息管理</p><p>  struct Temp //臨時(shí)存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)體</p><p&g

10、t;<b>  {</b></p><p>  char elem[30];//名稱</p><p>  int inp;//進(jìn)價(jià)</p><p>  int outp;//售價(jià)</p><p>  int num;//數(shù)量</p><p>  int total;//總利潤(rùn)</p>

11、<p><b>  };</b></p><p>  typedef struct</p><p><b>  {</b></p><p>  int length; //商品的種類</p><p>  char **elem;//指向數(shù)組的指針,空間長(zhǎng)度不確定</p>&

12、lt;p>  int *inp; //商品進(jìn)價(jià)</p><p>  int *outp; //商品售價(jià)</p><p>  int *num; //商品數(shù)量</p><p>  int *total;//商品總利潤(rùn)</p><p>  int listsize;//數(shù)組大小</p><p>  }sqlist

13、; </p><p>  2.2.2 十進(jìn)制數(shù)字到N進(jìn)制的管理</p><p>  struct node //用于儲(chǔ)存轉(zhuǎn)化之后的答案 第二個(gè)程序開(kāi)始</p><p><b>  { </b></p><p>  int ans[100]; </p><p>  int len; //l

14、en是答案的長(zhǎng)度</p><p><b>  };</b></p><p><b>  2.3算法流程圖</b></p><p>  2.3.1程序總功能圖 </p><p>  2.3.2總程序流程圖</p><p><b>  否</b></

15、p><p><b>  是</b></p><p><b>  是</b></p><p><b>  是</b></p><p>  2.3.3 子程序一算法流程圖</p><p>  圖1.供貨信息管理流程圖</p><p>  

16、2.3.4子程序二算法流程圖</p><p><b>  3 詳細(xì)設(shè)計(jì)</b></p><p><b>  3.1 算法分析</b></p><p>  3.1.1 供貨信息管理</p><p>  編寫(xiě)供貨信息登記函數(shù)Kind(),記錄信息。再寫(xiě)貨物供出函數(shù)Delete(),刪除已經(jīng)供出的貨物信息

17、。使用Locate()函數(shù)對(duì)貨物進(jìn)行查詢,同時(shí)要用到對(duì)貨物信息進(jìn)行修改的函數(shù)Change(),修改已經(jīng)改變的信息。對(duì)貨物進(jìn)入進(jìn)行儲(chǔ)存的Prize()函數(shù)完成此功能,想要對(duì)已有的貨物進(jìn)行排序。</p><p>  3.1.2 十進(jìn)制數(shù)字向N進(jìn)制數(shù)字的轉(zhuǎn)換</p><p>  通過(guò)對(duì)棧的特性“先進(jìn)后出”的利用,將十進(jìn)制數(shù)字求余的結(jié)果壓棧,最后再出棧,得出結(jié)果。</p><p

18、><b>  3.2程序代碼</b></p><p>  3.2.1子程序一算法</p><p>  #include<iostream></p><p>  #include<fstream> //對(duì)文件進(jìn)行操作的頭文件</p><p>  #define LIST_INIT_SIZE 1

19、00</p><p>  #define LISTINCREMENT 10</p><p>  #define OVERFLOW -1</p><p>  #define ERROR -1</p><p>  #define OK 1</p><p>  using namespace std;</p>

20、<p>  struct Temp //臨時(shí)存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)體 第一個(gè)程序開(kāi)始</p><p><b>  {</b></p><p>  char elem[30];</p><p><b>  int inp;</b></p><p><b>  int outp;</b&

21、gt;</p><p><b>  int num;</b></p><p>  int total;</p><p><b>  };</b></p><p>  typedef struct</p><p><b>  {</b></p>

22、<p>  int length; //商品的種類</p><p>  char **elem;//指向數(shù)組的指針,空間長(zhǎng)度不確定</p><p>  int *inp; //商品進(jìn)價(jià)</p><p>  int *outp; //商品售價(jià)</p><p>  int *num; //商品數(shù)量</p><

23、p>  int *total;//商品總利潤(rùn)</p><p>  int listsize;//數(shù)組大小</p><p><b>  }sqlist;</b></p><p>  void InitList(sqlist &L) //初始化各變量</p><p><b>  {</b>

24、</p><p>  L.listsize=LIST_INIT_SIZE; //初始化大小</p><p>  if(!L.elem) //如果數(shù)組是空的話</p><p>  exit(OVERFLOW); //就此退出</p><p>  L.elem=new char*[L.listsize];</p><

25、p>  L.inp=new int[L.listsize];</p><p>  L.outp=new int[L.listsize];</p><p>  L.num=new int[L.listsize];</p><p>  L.total=new int[L.listsize];//分配存儲(chǔ)空間</p><p><b>

26、;  }</b></p><p>  int kind(sqlist &L) //對(duì)商品的種類及名稱進(jìn)行操作</p><p><b>  {</b></p><p>  int x; //變量x記錄輸入的選項(xiàng)</p><p><b>  if(x=1)</b></p>

27、<p><b>  {</b></p><p><b>  int i;</b></p><p>  InitList(L);</p><p>  cout<<"請(qǐng)輸入貨物種類個(gè)數(shù):";</p><p>  cin>>L.length;<

28、;/p><p>  cin.ignore();//使格式美觀</p><p>  for(i=0;i<L.length;i++)</p><p><b>  {</b></p><p>  L.elem[i]=new char[30];</p><p>  cout<<"請(qǐng)

29、輸入名稱";</p><p>  cin.getline(L.elem[i],30);//一次讀取多個(gè)字符</p><p><b>  }</b></p><p>  for(i=0;i<L.length;i++)</p><p>  cout<<i+1<<": &quo

30、t;<<L.elem[i]<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b></

31、p><p>  int prize(sqlist &L) //關(guān)于商品的價(jià)格的函數(shù)</p><p><b>  {</b></p><p><b>  int x;</b></p><p><b>  if(x=6)</b></p><p><

32、b>  {</b></p><p>  int i,k,j;</p><p>  for(i=0;i<L.length;i++)</p><p><b>  {</b></p><p>  cout<<"輸出貨物名稱:"<<L.elem[i]<&l

33、t;endl;</p><p>  cout<<"請(qǐng)輸入貨物的進(jìn)價(jià): ";</p><p>  cin>>L.inp[i];</p><p>  cout<<"請(qǐng)輸入貨物的售價(jià): ";</p><p>  cin>>L.outp[i];&l

34、t;/p><p>  cout<<"請(qǐng)輸入需求貨物的數(shù)量: ";</p><p>  cin>>L.num[i];</p><p><b>  }</b></p><p>  for(i=0;i<L.length;i++)</p><p><b&

35、gt;  {</b></p><p>  L.total[i]=(L.outp[i]-L.inp[i])*(L.num[i]); //計(jì)算商品的總利潤(rùn)</p><p>  cout<<"貨物"<<i+1<<"的純利潤(rùn)為:"<<L.total[i]<<endl;</p>

36、<p><b>  }</b></p><p>  for(i=0;i<L.length;i++) //將所有商品的總利潤(rùn)比較大小并按順序輸出</p><p><b>  {</b></p><p>  for(j=0;j<L.length-i-1;j++)<

37、/p><p><b>  {</b></p><p>  if(L.total[j]<L.total[j+1])</p><p><b>  {</b></p><p>  k=L.total[j+1];</p><p>  L.total[j+1]=L.total[j];

38、</p><p>  L.total[j]=k;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"排序?yàn)椋?quot;<

39、<endl;</p><p>  for(i=0;i<L.length;i++)</p><p><b>  {</b></p><p>  cout<<L.total[i];</p><p>  cout<<endl;</p><p><b>  }

40、</b></p><p>  return OK;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }<

41、/b></p><p>  void Print(sqlist &L) //控制輸出引號(hào)的函數(shù)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=0;i<L.length;i++)</p>

42、<p>  cout<<i+1<<": "<<L.elem[i]<<" ";</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  int ListInsert(sqlist &

43、;L,int i,char *e) //控制商品插入的函數(shù)</p><p><b>  {</b></p><p><b>  int x;</b></p><p><b>  if(x=4)</b></p><p><b>  {</b></p&g

44、t;<p>  char **newbase;//指向數(shù)組的指針</p><p><b>  int j;</b></p><p>  if(i<1||i>L.length+1)</p><p>  return ERROR;</p><p><b>  i--;</b>&

45、lt;/p><p>  if(L.length==L.listsize)</p><p><b>  {</b></p><p>  newbase=new char*[L.listsize+LISTINCREMENT];</p><p>  if(!newbase)</p><p>  exit(O

46、VERFLOW);</p><p>  for(i=0;i<=L.length;i++)</p><p>  strcpy(newbase[i],L.elem[i]);</p><p>  delete []*L.elem;</p><p>  L.elem=newbase;</p><p>  L.listsi

47、ze+=LISTINCREMENT;</p><p><b>  }</b></p><p>  j=L.length-1;</p><p>  L.elem[j+1]=new char[30];</p><p>  for(;j>=i;j--)</p><p><b>  {&l

48、t;/b></p><p>  strcpy(L.elem[j+1],L.elem[j]);</p><p><b>  }</b></p><p>  strcpy(L.elem[i],e);</p><p>  L.length++;</p><p>  cout<<&quo

49、t;插入后的結(jié)果: "<<endl;</p><p><b>  Print(L);</b></p><p>  return OK;</p><p><b>  }</b></p><p><b>  else</b></p><p

50、><b>  return 0;</b></p><p><b>  }</b></p><p>  int ListDelete(sqlist &L,int i) //刪除商品函數(shù)</p><p><b>  {</b></p><p><b>  i

51、nt x;</b></p><p><b>  if(x=3)</b></p><p><b>  {</b></p><p>  if(i<1||i>L.length)</p><p>  return ERROR;</p><p><b>

52、;  i--;</b></p><p>  for(;i<L.length-1;i++)</p><p><b>  {</b></p><p>  strcpy(L.elem[i],L.elem[i+1]);</p><p><b>  }</b></p><

53、p>  L.length--;</p><p>  cout<<"刪除后的結(jié)果: "<<endl;</p><p><b>  Print(L);</b></p><p>  return OK;</p><p><b>  }</b></p

54、><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  int ChangeElem(sqlist &L,int i,char *e)//修改商品的名稱</p>

55、<p><b>  {</b></p><p><b>  int x;</b></p><p><b>  if(x=5)</b></p><p><b>  {</b></p><p>  strcpy(L.elem[i-1],e);<

56、;/p><p>  cout<<"修改后的結(jié)果: "<<endl;</p><p><b>  Print(L);</b></p><p><b>  }</b></p><p><b>  else</b></p>&l

57、t;p><b>  return 0;</b></p><p><b>  }</b></p><p>  int LocateElem(sqlist &L,char *e) //商品的查找</p><p><b>  { </b></p><p><b&g

58、t;  int x;</b></p><p><b>  if(x=2)</b></p><p><b>  {</b></p><p><b>  int i=1;</b></p><p>  int sign=0; //使用標(biāo)記</p><p

59、><b>  do</b></p><p><b>  {</b></p><p>  if(strcmp(L.elem[i-1],e)==0)</p><p><b>  {</b></p><p><b>  sign=1;</b></p&

60、gt;<p><b>  }</b></p><p><b>  i++;</b></p><p>  }while(!sign&&i<=L.length);</p><p>  if(sign==0)</p><p>  cout<<"沒(méi)有

61、找到"<<endl;</p><p><b>  else</b></p><p>  cout<<"位置為: "<<i-1<<endl;</p><p><b>  }</b></p><p><b>  e

62、lse</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void StoreFile(sqlist &L) //保存文件</p><p>  { int i;</p><p>

63、;  ofstream out;</p><p>  Temp temp;</p><p>  out.open("供貨信息管理.txt",ios::binary);//打開(kāi)文件</p><p><b>  if(!out)</b></p><p><b>  {</b><

64、/p><p>  cout<<"沒(méi)有發(fā)現(xiàn)數(shù)據(jù)文件!"<<endl;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  out.write((char *)&L.length,sizeof(i

65、nt));</p><p>  out.write((char *)&L.listsize,sizeof(int));</p><p>  for(i=0;i<L.length;i++)</p><p><b>  {</b></p><p>  strcpy(temp.elem,L.elem[i]);&l

66、t;/p><p>  temp.inp=L.inp[i];</p><p>  temp.num=L.num[i];</p><p>  temp.outp=L.outp[i];</p><p>  temp.total=L.total[i];</p><p>  out.write((char *)&temp,s

67、izeof(Temp));</p><p><b>  }</b></p><p>  out.close();//關(guān)閉文件</p><p><b>  }</b></p><p>  void ReadFile(sqlist &L) //讀取文件</p><p>

68、<b>  {</b></p><p><b>  int i;</b></p><p>  ifstream in;</p><p>  Temp temp;</p><p>  in.open("供貨信息管理.txt",ios::binary);//讀取供貨信息管理.txt中

69、存儲(chǔ)的得分</p><p><b>  if(!in)</b></p><p><b>  {</b></p><p>  cout<<"沒(méi)有發(fā)現(xiàn)數(shù)據(jù)文件!"<<endl;</p><p><b>  return;</b></

70、p><p><b>  }</b></p><p>  in.read((char *)&L.length,sizeof(int));</p><p>  in.read((char *)&L.listsize,sizeof(int));</p><p>  InitList(L);</p>&

71、lt;p>  for(i=0;i<L.length;i++)</p><p><b>  {</b></p><p>  L.elem[i]=new char[30];//進(jìn)行初始化</p><p>  in.read((char *)&temp,sizeof(Temp));</p><p>  st

72、rcpy(L.elem[i],temp.elem);</p><p>  L.inp[i]=temp.inp;</p><p>  L.num[i]=temp.num;</p><p>  L.outp[i]=temp.outp;</p><p>  L.total[i]=temp.total;</p><p><

73、;b>  }</b></p><p>  in.close();//關(guān)閉文件 第一個(gè)程序結(jié)束</p><p><b>  }</b></p><p>  3.2.2子程序二算法</p><p>  struct node //用于儲(chǔ)存轉(zhuǎn)化之后的答案 第二個(gè)程序開(kāi)始</p><p&g

74、t;<b>  {</b></p><p>  int ans[100];</p><p>  int len; //len是答案的長(zhǎng)度</p><p>  void print()</p><p><b>  {</b></p><p><b>  int i;&

75、lt;/b></p><p>  for(i=0;i<len;i++)</p><p>  cout<<ans[i]<<" ";</p><p>  cout<<endl;</p><p><b>  }</b></p><p>

76、<b>  };</b></p><p>  node fun(int x,int k) //x是原始的十進(jìn)制,k是需要轉(zhuǎn)化的k進(jìn)制</p><p><b>  {</b></p><p><b>  node a;</b></p><p><b>  a.len=0

77、;</b></p><p>  stack<int>S;//初始化一個(gè)空棧(int 型)</p><p><b>  while(x)</b></p><p><b>  {</b></p><p>  S.push(x%k);//將求余的結(jié)果壓棧</p>&l

78、t;p><b>  x/=k;</b></p><p><b>  }</b></p><p>  while(!S.empty())//如果棧不為空(s.empty為stack的一個(gè)方法如果棧中無(wú)內(nèi)容則為ture 反之為false)</p><p><b>  {</b></p>

79、<p>  a.ans[a.len++]=S.top();//將棧頂?shù)脑刭x給答案數(shù)組+1</p><p>  S.pop();//刪除棧頂?shù)目赵?lt;/p><p><b>  4 調(diào)試分析</b></p><p>  實(shí)現(xiàn)了設(shè)計(jì)的所有要求,選取部分運(yùn)行示意圖。</p><p><b>  .主菜單

80、界面</b></p><p>  2).輸入選擇1供貨信息管理,進(jìn)入操作</p><p>  3).選擇1添加貨物,并輸入商品信息</p><p>  .輸入選擇6供貨獲利情況排序</p><p>  5).重新進(jìn)入主菜單并選擇十進(jìn)制數(shù)到N進(jìn)制轉(zhuǎn)換</p><p>  .輸入需要轉(zhuǎn)換的數(shù)據(jù)并得出結(jié)果<

81、/p><p><b>  5 課程總結(jié)</b></p><p>  在這一周的課設(shè)中,從命題的分配到構(gòu)思設(shè)計(jì),到代碼的產(chǎn)生,一直到最后的運(yùn)行成功,通過(guò)課程設(shè)計(jì),讓我對(duì)數(shù)據(jù)結(jié)構(gòu)這門(mén)課程有了更深的了解,尤其在第二個(gè)程序的設(shè)計(jì)過(guò)程中,我對(duì)棧的性質(zhì)的理解得到了進(jìn)一步加深。同時(shí),我也非常感謝老師以及本班其他同學(xué)對(duì)我的幫助與支持,希望在我們的共同努力之下,能更好的完成各項(xiàng)任務(wù),為未來(lái)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論