c語(yǔ)言課程設(shè)計(jì)報(bào)告 --求3x4數(shù)組的轉(zhuǎn)置矩陣_第1頁(yè)
已閱讀1頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C語(yǔ)言課程設(shè)計(jì)</b></p><p>  專 業(yè): </p><p>  班 級(jí): </p><p>  姓 名: </p><p>  學(xué) 號(hào): </

2、p><p>  指導(dǎo)教師: </p><p>  自動(dòng)化與電氣工程學(xué)院</p><p>  2012 年 7月 6日</p><p><b>  1 基本題目</b></p><p><b>  1.1題目</b></p><

3、p>  編寫一個(gè)程序,求3X4數(shù)組的轉(zhuǎn)置矩陣。要求在main函數(shù)里讀數(shù),在change函數(shù)里把矩陣轉(zhuǎn)置。</p><p><b>  1.2 題目分析</b></p><p>  分析:先定義兩個(gè)數(shù)組,數(shù)組a中為3行4列,輸入12個(gè)數(shù),數(shù)組b為4行3列,開始時(shí)未賦值,只要在調(diào)用語(yǔ)句中將a數(shù)組中的a[i][j]存放到b數(shù)組中的b[j][i]元素中,再用嵌套的for

4、循環(huán)即可完成任務(wù)。</p><p><b>  流程圖如圖1所示:</b></p><p>  圖1 基本題目流程圖</p><p><b>  1.3 程序 </b></p><p>  #include<stdio.h></p><p>  void chan

5、ge(int c[3][4]);</p><p>  int a[3][4],b[4][3];</p><p>  int main()</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  printf("

6、;請(qǐng)輸入3乘4方陣:\n");</p><p>  for(i=0;i<=2;i++)</p><p>  for(j=0;j<=3;j++)</p><p>  scanf("%d",&a[i][j]);</p><p>  printf("3乘4矩陣:\n");<

7、/p><p>  change(a);</p><p>  printf("4乘3矩陣:\n");</p><p>  for(i=0;i<=3;i++)</p><p>  { for(j=0;j<=2;j++)</p><p>  printf("%6d",b[i]

8、[j]);</p><p>  printf("\n");}</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void change(int c[3][4])</p><p><b&

9、gt;  { </b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<=2;i++)</p><p>  { for(j=0;j<=3;j++)</p><p>  { printf("%6d",c[i][j]);<

10、/p><p>  b[j][i]=c[i][j];</p><p><b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p>

11、<p>  1.4 程序的運(yùn)行結(jié)果</p><p>  上述程序的運(yùn)行結(jié)果如圖2所示:</p><p>  圖2 基本題目運(yùn)行結(jié)果</p><p>  從圖2可以看出,將3乘4矩陣轉(zhuǎn)換成4乘3矩陣。</p><p><b>  2 改錯(cuò)題目</b></p><p><b>

12、  2.1 改正后程序</b></p><p>  #include<stdio.h></p><p><b>  main()</b></p><p>  {int x=1,y;</p><p><b>  y=x++; </b></p><p>

13、;  printf("y=%d ",y);</p><p><b>  int z;</b></p><p><b>  z=++x;</b></p><p>  printf("z=%d\n",z);</p><p><b>  }</b&

14、gt;</p><p>  2.2 程序運(yùn)行結(jié)果</p><p>  程序運(yùn)行結(jié)果如圖3所示:</p><p>  圖3 改錯(cuò)題運(yùn)行結(jié)果</p><p>  從圖三可以看出:將x的值賦值給y,將x自加1的值再自加1后的值賦值給z。</p><p><b>  3 綜合題目</b></p>

15、;<p><b>  3.1 題目</b></p><p>  綜合題目為:《公司職工檔案管理系統(tǒng)》。</p><p>  本設(shè)計(jì)只設(shè)計(jì)系統(tǒng)的錄入與顯示模塊。</p><p><b>  3.2 數(shù)據(jù)結(jié)構(gòu)</b></p><p>  對(duì)上述題目進(jìn)行分析,定義結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)如下:<

16、/p><p>  struct worker </p><p><b>  {</b></p><p>  char number[10];</p><p>  char name[20]; </p><p>  char sex[2];</p><p><b> 

17、 int age;</b></p><p>  char note[200];</p><p><b>  };</b></p><p>  3.3 程序的主要功能</p><p>  本系統(tǒng)采用一個(gè)包含3個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:號(hào)、姓名、性別、年齡、備注。</p><

18、;p>  本系統(tǒng)顯示這樣的菜單:</p><p>  a. 學(xué)生基本信息錄入</p><p>  b. 學(xué)生基本信息顯示</p><p>  c. 學(xué)生基本信息保存</p><p><b>  g. 退出系統(tǒng)</b></p><p>  執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示菜單。</

19、p><p>  將學(xué)生基本信息保存到文件中。</p><p>  3.3 各函數(shù)的功能</p><p>  (1) entering()</p><p>  對(duì)所需數(shù)據(jù)進(jìn)行輸入并保存到文件。</p><p>  (2) show()</p><p>  打開存有數(shù)據(jù)的文件,并對(duì)文件中的數(shù)據(jù)進(jìn)行顯示。

20、</p><p>  錄入模塊的流程圖如圖4所示:</p><p>  圖4 錄入模塊流程圖</p><p>  顯示模塊的流程圖如圖5所示:</p><p>  圖5 顯示模塊流程圖</p><p><b>  3.4 源程序</b></p><p>  #include

21、<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include<conio.h></p><p>  #define N 3

22、 //測(cè)試數(shù)據(jù)員工人數(shù)為3個(gè)</p><p>  struct worker //設(shè)定一個(gè)內(nèi)容為員工信息的結(jié)構(gòu)體</p><p><b>  {</b></p><p>  char number[10]; //工號(hào)的長(zhǎng)度允許

23、最大為十</p><p>  char name[20]; //名字的長(zhǎng)度允許最大為二十 </p><p>  char sex[2];</p><p>  int age; //定義年齡為整型</p><p>  

24、char note[200]; //備注的長(zhǎng)度為允許最大200</p><p><b>  };</b></p><p>  void entering(struct worker wor[N]); //錄入函數(shù)</p><p>  void show(stru

25、ct worker wor[N]); //顯示函數(shù)</p><p>  void preserve(struct worker wor[N]); //保存函數(shù)</p><p>  void main() //主函數(shù)</p><p><b>

26、  { </b></p><p>  int select;</p><p>  struct worker wor1[N];</p><p>  printf("\t\t\t(>>>>>歡迎使用公司檔案管理系統(tǒng)<<<<<)\t\t\t\t\n");</p>

27、<p>  printf("\t\t\t\t(*請(qǐng)進(jìn)行功能選擇*)\t\t\t\t\n");</p><p>  printf("\t\t\t\t(*員工信息的錄入功能,請(qǐng)按 1*)\t\t\t\t\n"); </p><p>  printf("\t\t\t\t(*員工信息的顯示功能,請(qǐng)按 2*)\t\t\t\t\n&

28、quot;); </p><p>  printf("\t\t\t\t(*員工信息的保存功能,請(qǐng)按 3*)\t\t\t\t\n"); </p><p>  printf("\t\t\t\t(*退出系統(tǒng),請(qǐng)按 4*)\t\t\t\t\n");</p><p>  printf("請(qǐng)進(jìn)行功能選擇");<

29、;/p><p>  scanf("%d",&select);</p><p>  while (0<select && select <5 ) //功能選擇</p><p><b>  { </b></p><p>  switch (se

30、lect) //功能選擇</p><p><b>  {</b></p><p>  case 1:entering(wor1);break;</p><p>  case 2:show(wor1);break;</p><p>  case 3:preserve(wor1);br

31、eak;</p><p>  case 4:exit(0);</p><p>  default:break;</p><p><b>  }</b></p><p>  printf("\t\t\t(>>>>>歡迎使用公司檔案管理系統(tǒng)<<<<<)\t

32、\t\t\t\n");</p><p>  printf("\t\t\t\t(***請(qǐng)進(jìn)行功能選擇***)\t\t\t\t\n");</p><p>  printf("\t\t\t(*員工管理系統(tǒng)信息錄入功能,請(qǐng)按 1*)\t\t\t\t\n"); </p><p>  printf("\t\t\

33、t(*員工管理系統(tǒng)信息顯示功能,請(qǐng)按 2*)\t\t\t\t\n"); </p><p>  printf("\t\t\t(*員工管理系統(tǒng)信息保存功能,請(qǐng)按 3*)\t\t\t\t\n"); </p><p>  printf("\t\t\t\t(*退出系統(tǒng),請(qǐng)按 7*)\t\t\t\t\n");</p><p>

34、;  printf("請(qǐng)進(jìn)行功能選擇");</p><p>  scanf("%d",&select);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void entering(struct wo

35、rker wor[N]) //員工信息錄入功能</p><p><b>  {</b></p><p>  for (int i=0;i<N;i++) //循環(huán)控制</p><p><b>  {</b></p><p>

36、  printf("請(qǐng)輸入員工的姓名:");</p><p>  scanf("%s",wor[i].name);</p><p>  printf("請(qǐng)輸入員工的工號(hào)");</p><p>  scanf("%s",wor[i].number);</p><p>

37、;  printf("請(qǐng)輸入員工的性別:");</p><p>  scanf("%s",wor[i].sex);</p><p>  printf("請(qǐng)輸入v的年齡:");</p><p>  scanf("%d",&wor[i].age);</p><p&

38、gt;  printf("請(qǐng)輸入備注:"); </p><p>  scanf("%s",wor[i].note);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void show(struct wor

39、ker wor[N]) //員工信息顯示功能</p><p><b>  {</b></p><p>  printf("此員工的信息為: name number sex age note\n");</p><p>  for (int i = 0;i<N;i++)

40、 //循環(huán)控制</p><p><b>  {</b></p><p>  printf("%15s%15s%15s%15d%15s\n",wor[i].name,wor[i].number,wor[i].sex,&wor[i].age,wor[i].note); } </p><

41、;p><b>  }</b></p><p>  void preserve(struct worker wor[N])//員工信息保存功能,保存在c:\\worker management.txt</p><p><b>  {</b></p><p>  FILE * fp;

42、 //定義一個(gè)指向文件的指針變量fp</p><p>  fp= fopen("c:\\worker management.txt","w+");//打開文件worker management.txt</p><p>  if (fp == NULL) //如果指針指向空,輸出“文件不存在

43、”</p><p><b>  {</b></p><p>  printf("文件不存在!\n");</p><p><b>  }</b></p><p>  for(int i=0;i<N;i++) //循環(huán)語(yǔ)句<

44、;/p><p>  fwrite(&wor[i],sizeof(struct worker),1,fp);//寫入員工信息</p><p>  fclose(fp); //關(guān)閉文件</p><p>  printf("該學(xué)生信息已保存!");</p><p&

45、gt;<b>  }</b></p><p>  3.5 程序運(yùn)行結(jié)果</p><p>  上述程序中錄入的運(yùn)行結(jié)果如圖6所示:</p><p>  圖6 綜合題目中錄入的運(yùn)行結(jié)果</p><p>  上述程序中顯示的運(yùn)行結(jié)果如圖7所示:</p><p>  圖7 綜合題目中顯示的運(yùn)行結(jié)果<

46、/p><p><b>  4 結(jié)論</b></p><p>  通過做這個(gè)課程設(shè)計(jì),讓我進(jìn)一步熟悉了c語(yǔ)言,也讓我了解了c語(yǔ)言的強(qiáng)大功能。在本設(shè)計(jì)中做公司職工的檔案管理系統(tǒng),系統(tǒng)中可以處理簡(jiǎn)單的職工信息管理,當(dāng)然,本設(shè)計(jì)中的系統(tǒng)也存在很大缺陷,比如:輸入時(shí)無(wú)法退出,顯示中的年齡無(wú)法準(zhǔn)確顯示,等等。另外,在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識(shí),也培養(yǎng)了我如何去把握一件事

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論