欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      2014-春季-計算機(jī)高級語言課程設(shè)計(C)要求與安排(精選五篇)

      時間:2019-05-14 17:37:00下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《2014-春季-計算機(jī)高級語言課程設(shè)計(C)要求與安排》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《2014-春季-計算機(jī)高級語言課程設(shè)計(C)要求與安排》。

      第一篇:2014-春季-計算機(jī)高級語言課程設(shè)計(C)要求與安排

      2014年“計算機(jī)高級語言課程設(shè)計(C)” 課程設(shè)計是實踐性教學(xué)環(huán)節(jié)。在C語言課程設(shè)計階段,學(xué)生要通過模仿范例的練習(xí)最終完成獨立的程序編制任務(wù)。課程設(shè)計的目的是要讓學(xué)生了解程序(軟件)開發(fā)的規(guī)范方法,培養(yǎng)學(xué)生的實際編程能力。

      在實際工作中,開發(fā)一個軟件,在通過可行性論證后,軟件交給用戶使用前,一般要經(jīng)過下列階段。

      需求分析/問題定義—設(shè)計—編寫代碼—組合測試

      學(xué)生在完成課程設(shè)計后,應(yīng)該對程序開發(fā)的各階段及其任務(wù)有所了解和體會,通過學(xué)習(xí)和實踐,初步學(xué)習(xí)和掌握程序開發(fā)過程的規(guī)范性方法。學(xué)生是否掌握程序開發(fā)過程的規(guī)范,完成任務(wù)是否合理、正確、完備,就要通過課程設(shè)計報告表達(dá)出來。

      教材:張冬梅, 等編著.《基于PBL的C語言課程設(shè)計及學(xué)習(xí)指導(dǎo)》(北京: 清華大學(xué)出版社, 2011)

      課程設(shè)計安排

      以上機(jī)實驗的形式自學(xué)《基于PBL的C語言課程設(shè)計及學(xué)習(xí)指導(dǎo)》課程設(shè)計部分的內(nèi)容為主,每位同學(xué)根據(jù)自己在班級中的序號,從該教材的第六章中選擇對應(yīng)序號的問題作為本次課程設(shè)計的題目,完成課程設(shè)計報告的編寫。

      最終的成績將根據(jù)上機(jī)考勤、課程設(shè)計報告、軟件程序的完成情況來確定,請大家認(rèn)真完成。

      課程設(shè)計報告的編寫和提交要求

      1)課程設(shè)計報告必須按照《中國地質(zhì)大學(xué)本科生課程論文》的模

      板編寫,不符合格式要求的將扣分;

      2)最終必須提交的東東包括:紙質(zhì)《課程論文》一份,《課程論文》

      電子版一份,軟件程序源碼和數(shù)據(jù)(能夠運行出論文中的結(jié)果)一份,每個文件都用自己的“學(xué)號+姓名”來命名。

      3)提交的最后期限:2014年6月23日

      課程設(shè)計報告的主要內(nèi)容

      下面結(jié)合《基于PBL的C語言課程設(shè)計及學(xué)習(xí)指導(dǎo)》第5章的例題,說明課程設(shè)計報告的各部分應(yīng)該包含的主要內(nèi)容。

      1、需求分析/問題定義

      每位學(xué)生都有一個要完成的題目。題目代表了一個實際需要解決的問題或者某項工作的實際操作過程。

      “需求分析”就是由程序編制人員在深入理解用戶工作過程或者用戶要求的基礎(chǔ)上,描述將要交給用戶的程序(應(yīng)用系統(tǒng))運行后的執(zhí)行情況(功能和效果),它要描述計算機(jī)將如何模擬完成用戶的各項任務(wù)?!靶枨蠓治觥辈糠质怯脩糇詈篁炇粘绦虻闹匾罁?jù)。

      題目是從用戶的角度出發(fā)、使用用戶的語言來敘述的。“問題定義”,它是程序設(shè)計人員與用戶溝通后,從編程者的角度對問題的敘述,它是編程人員用計算機(jī)領(lǐng)域的術(shù)語來重新描述用戶所提出的要求,用確定清晰的語言說明最終提交給用戶的應(yīng)用系統(tǒng)的性能?!皢栴}定義”是編程人員的檢驗、調(diào)整、修改程序時的重要依據(jù)。

      2、總體設(shè)計

      總體設(shè)計部分要包含以下內(nèi)容:

      系統(tǒng)的功能模塊劃分(圖)。如有必要,再用文字進(jìn)行扼要說明。

      列出自定義數(shù)據(jù)類型的定義、全局變量的定義。

      說明數(shù)據(jù)文件存儲的數(shù)據(jù)內(nèi)容以及存儲結(jié)構(gòu)。

      3、詳細(xì)設(shè)計

      選擇具有代表性和典型性的模塊進(jìn)行詳細(xì)分析,其它模塊則簡明扼要地說明。進(jìn)行詳細(xì)分析的內(nèi)容是

      1、敘述算法;

      2、列出流程圖;

      3、說明模塊內(nèi)的控制實現(xiàn)的策略,指明完成控制的變量和控制邏輯;

      4、說明公共函數(shù)的功能等。

      4、上機(jī)操作

      調(diào)試程序/程序測試

      從寫出代碼直至得到可以真正運行的系統(tǒng),必須經(jīng)過程序的調(diào)試和測試。程序代碼測試有一整套系統(tǒng)的理論和方法,有興趣的同學(xué)可以看參考書了解更多內(nèi)容。測試程序的目的不是證實自己程序的正確性而是找出其中的潛在錯誤。在調(diào)試程序時,可以有意輸入一些邊緣性的、不合理或者錯誤數(shù)據(jù),測試程序是否能合理處理。測試過程,可以發(fā)現(xiàn)程序中的錯誤。在設(shè)計報告中可以列出一些你測試程序查找錯誤的思路做法,包括待測試的模塊,準(zhǔn)備測試數(shù)據(jù)的目的和測試數(shù)據(jù),實際的輸出結(jié)果,得出的結(jié)論,對程序作了什么修改等內(nèi)容。

      5、總結(jié)

      這一部分是對課程設(shè)計學(xué)習(xí)過程的小結(jié),也可以分類說明遇到的問題及解決的方法;當(dāng)然也可以有感想之類的內(nèi)容。

      程序設(shè)計注意事項

      在C語言課程設(shè)計階段所編寫的程序,是用程序解決實際問題的一次模擬練習(xí)。在編程程序過程中,除了要考慮采用良好算法提高程序的效率之外,一個重要的要求是要多從用戶的角度考慮問題,編寫出符合用戶習(xí)慣、有足夠提示信息、易于用戶操作的“用戶友好”系統(tǒng)。

      足夠的代碼注釋和提示信息程序運行過程中要求用戶輸入數(shù)據(jù)時,要讓用

      戶知道待輸入數(shù)據(jù)的含義、格式、范圍等內(nèi)容;在界面轉(zhuǎn)換或者出現(xiàn)菜單處,要對當(dāng)前狀況有明確交代。例如,顯示“工資查詢結(jié)果界面”或者“設(shè)備管理系統(tǒng)主菜單”等等內(nèi)容??傊?,提示信息要足以讓用戶明白自己要進(jìn)行的操作,讓用戶隨時掌握程序當(dāng)前的運行狀態(tài)。

      提示用語符合用戶習(xí)慣程序運行界面的文字,應(yīng)該盡量使用中文。在提示用語中,少用或者不用計算機(jī)專業(yè)的術(shù)語而用日常生活用語或者用戶所屬行業(yè)的術(shù)語代替。例如,用“整數(shù)”代替“整型數(shù)據(jù)”;用“項目”而不使用“字段”等。對程序運行的中間結(jié)果或者最終結(jié)果,要明確標(biāo)示每項數(shù)據(jù)代表的含義以及數(shù)據(jù)的不同值所表示的意義,而不是簡單顯示存儲數(shù)據(jù)所用的內(nèi)存變量名稱和變量的值。例如,顯示“方程沒有實根”,不要顯示“d<0”。再如,查詢結(jié)果顯示為 婚姻狀況:已婚而不要顯示成:m == 1

      減少和方便用戶操作,1、減少用戶的操作,如果要求輸入的數(shù)據(jù)項是若干確定的內(nèi)容之一,例如,性別、學(xué)歷等項目,提供選項讓用戶選擇而不是讓用戶輸入具體值。

      2、考慮到用戶發(fā)生操作錯誤的可能性并能進(jìn)行正確處理。例如,由用戶選擇某操作時,讓用戶再確認(rèn)一次;或者設(shè)置一個默認(rèn)值,當(dāng)用戶操作錯誤時,按默認(rèn)值進(jìn)行處理。如果是由用戶輸入數(shù)據(jù),可以通過設(shè)置輸入數(shù)據(jù)寬度來控制數(shù)據(jù)的范圍,還可以設(shè)定出錯的允許次數(shù),在允許的次數(shù)內(nèi),用戶可以重新操作,例如輸入密碼。如果用戶操作錯誤,一是要保護(hù)數(shù)據(jù)的正確性,二是要使程序繼續(xù)運行或者正常結(jié)束,不能因此使程序運行受影響。

      第二篇:C語言課程設(shè)計

      #include #include int N1,N2,kk1,kk2,kk3;struct couse * head1,*head2,*emp1;struct student * head3,*head4,*emp2;struct couse//課程信息結(jié)構(gòu)體 {

      int num1;

      char name1[20];

      int score;

      int nelepeo;//課程已選人數(shù)

      int Melepeo;//課程人數(shù)上限

      struct couse * next;};

      int student();

      //學(xué)生登陸 int teacher();

      //教師登陸 struct student//學(xué)生信息結(jié)構(gòu)體 {

      int num2;

      char name2[20];

      int nelenum[50];//已選課程編號

      int nelen;//已選課程數(shù)量

      struct student * next;};

      void Ms(){

      for(kk1=0;kk1<1100;kk1++)

      for(kk2=0;kk2<1200;kk2++)

      for(kk3=0;kk3<1200;kk3++);} void keyboardc()//錄入課程子函數(shù)(從鍵盤錄入){ void intoc();struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf(“n課程編號:”);fflush(stdin);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt輸入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){

      N1=N1+1;

      if(N1==1)head1=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct couse *)malloc(sizeof(struct couse));

      printf(“n-----------------------------”);

      printf(“n課程編號:(輸入0結(jié)束)”);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo);

      p1->nelepeo=0;

      printf(“ntttt輸入成功!”);} p2->next=NULL;intoc();}

      void filec()//錄入鍵盤子函數(shù)(從文件錄入){ void intoc();

      FILE * fp;

      char filepath[20];

      struct couse *p1,*p2;

      N1=0;

      printf(“輸入要讀入的文件路徑:”);

      getchar();

      gets(filepath);

      if((fp=fopen(filepath,“r”))==NULL)

      {

      printf(“找不到%s文件!n”,filepath);

      exit(0);

      }

      p1=p2=(struct couse*)malloc(sizeof(struct couse));

      fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

      head1=NULL;

      while(!feof(fp))

      {

      N1=N1+1;

      if(N1==1)head1=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct couse *)malloc(sizeof(struct couse));

      fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

      }

      p2->next=NULL;

      intoc();}

      void inputc()//錄入課程主函數(shù) {

      int i;

      printf(“ttt錄入課程信息n”);

      printf(“n1.從鍵盤錄入n”);

      printf(“2.從文件錄入n”);

      printf(“3.返回主菜單n”);

      printf(“請選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):keyboardc();break;

      case(2):filec();break;

      case(3):system(“cls”);return;break;

      //return

      } }

      void insertc(struct couse *incouse)//課程管理子函數(shù)(增加課程){ void intoc();

      struct couse *p0,*p1,*p2;

      p1=head1;

      p0=incouse;

      if(head1==NULL)

      {

      head1=p0;

      p0->next=NULL;

      }

      else

      {

      while((p0->num1 > p1->num1)&&(p1->next!=NULL))

      {

      p2=p1;

      p1=p1->next;

      }

      if(p0->num1 <= p1->num1)

      {

      if(head1==p1)head1=p0;

      else p2->next=p0;

      p0->next=p1;

      }

      else

      {

      p1->next=p0;

      p0->next=NULL;

      }

      }

      N1=N1+1;

      intoc();}

      void delc(int num1)//課程管理子函數(shù)(刪除課程){ void intoc();

      struct couse *p1,*p2;

      if(head1==NULL)

      {

      printf(“n沒有課程,無法刪除!n”);

      goto end;

      }

      p1=head1;

      while(num1!=p1->num1 && p1->next!=NULL)

      {

      p2=p1;

      p1=p1->next;

      }

      if(num1==p1->num1)

      {

      if(p1==head1)head1=p1->next;

      else p2->next=p1->next;

      printf(“已刪除該編號課程!n”);

      N1=N1-1;

      }

      else printf(“無該編號的課程!n”);

      end:;

      intoc();}

      void managementc()//課程管理主函數(shù) {

      struct couse * incouse;

      struct couse *p1;

      int i,num1;

      printf(“ttt課程管理n”);

      printf(“1.新增課程n”);

      printf(“2.刪除課程n”);

      printf(“3.返回主菜單n”);

      printf(“請選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):

      {

      incouse=(struct couse *)malloc(sizeof(struct couse));

      printf(“n課程編號:”);

      fflush(stdin);

      scanf(“%d”,&p1->num1);

      printf(“n課程名稱:”);

      scanf(“%s”,p1->name1);

      printf(“n學(xué)分:”);

      scanf(“%d”,&p1->score);

      printf(“n課程人數(shù)上限:”);

      scanf(“%d” ,&p1->Melepeo);

      printf(“ntttt輸入成功!”);

      incouse->nelepeo=0;

      insertc(incouse);

      break;

      }

      case(2):

      {

      printf(“請輸入要刪除課程的編號:n”);

      scanf(“%d”,&num1);

      delc(num1);

      break;

      }

      case(3):system(“cls”);return;break;

      } }

      void keyboards()//錄入學(xué)生信息子函數(shù)(從鍵盤錄入){

      void intos();

      int i;

      struct student *p1,*p2;

      N2=0;

      p1=p2=(struct student *)malloc(sizeof(struct student));

      printf(“n學(xué)生學(xué)號:”);

      scanf(“%d”,&p1->num2);

      printf(“n學(xué)生姓名:”);

      scanf(“%s”,p1->name2);

      p1->nelen=0;

      for(i=0;i<50;i++)p1->nelenum[i]=0;

      head3=NULL;

      while(p1->num2!=0)

      {

      N2=N2+1;

      if(N2==1)head3=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct student *)malloc(sizeof(struct student));

      //return

      printf(“n學(xué)生學(xué)號:(輸入0結(jié)束!)”);

      scanf(“%d”,&p1->num2);

      printf(“n學(xué)生姓名:”);

      scanf(“%s”,p1->name2);

      p1->nelen=0;

      for(i=0;i<50;i++)p1->nelenum[i]=0;

      }

      p2->next=NULL;

      intos();return;} void files()//錄入學(xué)生信息子函數(shù)(從文件錄入){

      int i=0;

      FILE * fp;

      char filepath[20];

      struct student *p1,*p2;

      N2=0;

      printf(“輸入要讀入的文件路徑:”);

      getchar();

      gets(filepath);

      if((fp=fopen(filepath,“r”))==NULL)

      {

      printf(“找不到%s文件!n”,filepath);

      exit(0);

      }

      p1=p2=(struct student*)malloc(sizeof(struct student));

      fread(p1,sizeof(struct student),1,fp);

      head3=NULL;

      while(!feof(fp))

      {

      i=0;

      N2=N2+1;

      if(N2==1)head3=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct student *)malloc(sizeof(struct student));

      fread(p1,sizeof(struct student),1,fp);

      }

      p2->next=NULL;}

      void inputs()//錄入學(xué)生信息主函數(shù) {

      int i;

      printf(“nttt錄入學(xué)生信息n”);

      printf(“n1.從鍵盤錄入n”);

      printf(“2.從文件錄入n”);

      printf(“3.返回主菜單n”);

      printf(“請選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):keyboards();break;

      case(2):files();break;

      case(3):system(“cls”);return;break;

      }

      return 0;}

      void inserts(struct student * incouse)//學(xué)生信息管理子函數(shù)(填加學(xué)生信息){ void intos();

      struct student *p0,*p1,*p2;

      p1=head3;

      p0=incouse;

      if(head3==NULL)

      {

      head3=p0;

      p0->next=NULL;

      }

      else

      {

      while((p0->num2 > p1->num2)&&(p1->next!=NULL))

      {

      p2=p1;

      p1=p1->next;

      }

      if(p0->num2 <= p1->num2)

      {

      if(head3==p1)head3=p0;

      else p2->next=p0;

      p0->next=p1;

      }

      else

      {

      //return

      p1->next=p0;

      p0->next=NULL;

      }

      }

      N2=N2+1;

      intos();}

      void dels(int num2)//學(xué)生信息管理子函數(shù)(刪除學(xué)生信息){ void intos();

      struct student *p1,*p2;

      if(head3==NULL)

      {

      printf(“n沒有該學(xué)生信息,無法刪除!n”);

      goto end;

      }

      p1=head3;

      while(num2!=p1->num2 && p1->next!=NULL)

      {

      p2=p1;

      p1=p1->next;

      }

      if(num2==p1->num2)

      {

      if(p1==head3)head3=p1->next;

      else p2->next=p1->next;

      printf(“已刪除該學(xué)生信息!n”);

      N2=N2-1;

      }

      else printf(“無該學(xué)號的學(xué)生!n”);

      intos();

      end:;}

      void managements()//學(xué)生信息管理主函數(shù) {

      struct student * incouse;

      int i,num2;

      printf(“ttt學(xué)生信息管理n”);

      printf(“1.新增學(xué)生信息n”);

      printf(“2.刪除學(xué)生信息n”);

      printf(“3.返回主菜單n”);

      printf(“請選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):

      {

      incouse=(struct student *)malloc(sizeof(struct student));

      incouse->nelen=0;

      incouse->nelenum[0]=0;

      printf(“學(xué)生學(xué)號t學(xué)生姓名n”);

      scanf(“%d%s”,&incouse->num2,incouse->name2);

      inserts(incouse);

      break;

      }

      case(2):

      {

      printf(“請輸入要刪除學(xué)生的學(xué)號:n”);

      scanf(“%d”,&num2);

      dels(num2);

      break;

      }

      case(3):system(“cls”);return;break;

      //return

      } }

      void elect(struct student * s)//選課 {

      void intos();

      struct couse * p;

      int num1,i;

      printf(“請輸入要選課的編號:n”);

      scanf(“%d”,&num1);

      for(i=0;s->nelenum[i]!=0;i++);

      s->nelenum[i]=num1;

      (s->nelen)++;

      p=head1;

      while(p->num1!=num1)p=p->next;

      (p->nelepeo)++;

      intos();} void cheak()//學(xué)生選課子函數(shù)(查詢可選課程){

      char e;

      struct couse * c;

      struct student * s;

      int num2,i,j=0,t=0;

      printf(“請輸入你的學(xué)號:”);

      scanf(“%d”,&num2);

      s=head3;

      while((s->num2!=num2)&&(s->next!=NULL))s=s->next;

      if(s->num2!=num2)

      {

      printf(“不存在你的信息,請進(jìn)入主菜單錄入你的信息!n”);

      goto end;

      }

      c=head1;

      printf(“你的可選課程編號:n”);

      while(c!=NULL)

      {

      for(t=0,i=0;s->nelenum[i]!=0;i++)

      {

      if(c->num1==s->nelenum[i])t=1;

      }

      if(t==0 &&(c->nelepeo!=c->Melepeo))

      {

      printf(“%dn”,c->num1);

      j++;

      }

      c=c->next;

      }

      if(j==0)

      {

      printf(“你已選完所有課程,無法再多選!n”);

      goto end;

      }

      printf(“選課(y/n)?:n”);

      getchar();

      e=getchar();

      i=0;

      while((e=='y')||(e=='Y'))

      {

      elect(s);

      printf(“繼續(xù)選課(y/n)?:n”);

      getchar();

      e=getchar();

      }

      end:;} void back(struct student * p)//退課 {

      void intos();

      struct couse * p1;

      int num1,i,j;

      printf(“請輸入你要退掉的課程編號:n”);

      scanf(“%d”,&num1);

      p1=head1;

      while(p1->num1!=num1)p1=p1->next;

      for(i=0;p->nelenum[i]!=num1;i++);

      for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];

      p->nelenum[--j]=0;

      (p1->nelepeo)--;

      printf(“退課成功!n”);

      intos();} void hcheak()//學(xué)生選課子函數(shù)(查詢已選課程){

      char c;

      struct couse * p0;

      struct student * p;

      int num2,i,f=0;

      printf(“請輸入學(xué)號:n”);

      scanf(“%d”,&num2);

      p=head3;

      while(p->num2!=num2 && p!=NULL)p=p->next;

      if(p==NULL)

      {

      printf(“不存在你的信息,請回主菜單錄入信息:n”);

      goto end;

      }

      printf(“已選課程編號:n”);

      if(p->nelenum[0]==0)

      {

      printf(“你還沒選課!n”);

      goto end;

      }

      for(i=0;p->nelenum[i]!=0;i++)

      {

      printf(“%dn”,p->nelenum[i]);

      p0=head1;

      while(p0->num1!=p->nelenum[i])p0=p0->next;

      f=f+p0->score;

      }

      printf(“總學(xué)分:%dn”,f);

      printf(“是否進(jìn)行退課(y/n)?”);

      getchar();

      c=getchar();

      while((c=='y')||(c=='Y'))

      {

      back(p);

      printf(“繼續(xù)退課(y/n)?”);

      getchar();

      c=getchar();

      (p->nelen)--;

      }

      end:;} void elective()//學(xué)生選課主函數(shù) {

      int i;

      printf(“ttt學(xué)生選課n”);

      printf(“1.查詢可選課程n”);

      printf(“2.查詢已選課程n”);

      printf(“3.返回主菜單n”);

      printf(“請輸入(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):cheak();break;

      case(2):hcheak();break;

      case(3): system(“cls”);return;break;

      // return

      } } void listc()//輸出課程信息 {

      struct couse * p;

      p=head1;

      printf(“課程編號

      課程名稱

      學(xué)分

      課程已選人數(shù)

      課程人數(shù)上限n”);

      while(p!=NULL)

      {

      printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

      p=p->next;

      } }

      void lists()//輸出學(xué)生信息 {

      struct student * p;

      p=head3;

      printf(“學(xué)生學(xué)號

      學(xué)生姓名

      已選課程數(shù)量n”);

      while(p!=NULL)

      {

      printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen);

      p=p->next;

      } } void intoc()//存儲課程信息 {

      FILE * fp;

      struct couse * p;

      char filepath[30];

      if((fp=fopen(“課程信息.dat”,“a+”))==NULL)

      {

      printf(“n保存失敗!”);

      exit(0);

      }

      p=head1;

      while(p!=NULL)

      {

      fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

      p=p->next;

      }

      fclose(fp);

      printf(“課程信息已保存成功!n”);} void intos()//存儲學(xué)生信息 { int i;

      FILE * fp;

      struct student * p;

      char filepath[30];

      if((fp=fopen(“學(xué)生信息.dat”,“a+”))==NULL)

      {

      printf(“n保存失敗!”);

      exit(0);

      }

      p=head3;

      while(p!=NULL)

      {

      fwrite(p,sizeof(struct student),1,fp);

      p=p->next;

      }

      fclose(fp);

      printf(“學(xué)生信息已保存成功!n”);

      printf(“ntttt選擇菜單:”);

      printf(“ntttt1.繼續(xù)添加ntttt2.返回主菜單:”);

      printf(“請選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:inputs();break;

      case 2:teacher();break;

      default:printf(“n輸入有誤!n”);} }

      void store()//信息主函數(shù) {

      int i;

      printf(“tt系統(tǒng)信息查看及存儲n”);

      printf(“1.查看課程信息n”);

      printf(“2.查看學(xué)生信息n”);

      printf(“3.返回主菜單n”);

      printf(“請輸入(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):listc();break;

      case(2):lists();break;

      case(3):system(“cls”);return;break;

      } }

      int main()//主函數(shù)

      //retuen

      {

      int i;

      FILE *fp;

      printf(“nttt歡迎使用學(xué)生選課系統(tǒng)!n”);

      printf(“n請選擇菜單:”);

      printf(“ntttt1.教師登陸ntttt2.學(xué)生登陸n”);

      printf(“請選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:teacher();break;

      case 2:student();break;

      default:printf(“輸入有誤!”);

      } }

      int student()

      {

      int i;

      printf(“ntttt1.學(xué)生選課n”);

      printf(“ntttt2.系統(tǒng)信息查看及存儲n”);

      printf(“ntttt3.退出系統(tǒng)n”);

      printf(“請選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:

      {

      system(“cls”);

      elective();

      break;

      }

      case 2:

      {

      system(“cls”);

      store();

      break;

      }

      default:printf(“輸入有誤!”);

      }

      }

      int teacher()

      {

      FILE *fp;

      int i;

      printf(“菜單:n”);

      printf(“1.錄入課程信息n”);

      printf(“2.課程管理n”);

      printf(“3.錄入學(xué)生信息n”);

      printf(“4.學(xué)生信息管理n”);

      printf(“5.系統(tǒng)信息查看n”);

      printf(“6.退出系統(tǒng)n”);

      if((fp=fopen(“課程信息.dat”,“rb”))==NULL)

      {

      printf(“n打開系統(tǒng)文件失??!

      n”);

      //fp=fopen(“信息.dat”,“rb”));

      // }

      // if(feof(fp))

      // {

      printf(“n還未添加課程信息,請?zhí)砑诱n程信息!n”);

      inputc();

      }

      while(!feof(fp))

      {

      emp1=(struct couse*)malloc(sizeof(struct couse));

      if(emp1==NULL)

      {

      printf(“n分配內(nèi)存失??!n”);

      return;

      }

      fread(emp1,sizeof(struct couse),1,fp);

      if(feof(fp))break;

      if(head1==NULL)

      {

      head1=emp1;

      head2=emp1;

      }

      else{

      head2->next=emp1;

      head2=emp1;

      }

      head2->next=NULL;

      }

      fclose(fp);

      fp==NULL;

      if((fp=fopen(“學(xué)生信息.dat”,“rb”))==NULL)

      printf(“n打開系統(tǒng)文件失敗!n”);

      //

      //if(feof(fp)==1)

      // {

      printf(“還未添加學(xué)生信息,請?zhí)砑訉W(xué)生信息!”);

      inputs();

      while(!feof(fp))

      {

      emp1=(struct student*)malloc(sizeof(struct student));

      if(emp2==NULL)

      {

      printf(“n分配內(nèi)存失?。”);

      return;

      }

      fread(emp2,sizeof(struct student),1,fp);

      if(feof(fp))break;

      if(head3==NULL)

      {

      head3=emp2;

      head4=emp2;

      }

      else{

      head4->next=emp2;

      head4=emp2;

      }

      head4->next=NULL;

      }

      fclose(fp);

      fp==NULL;

      printf(“n請輸入菜單選項(1~6):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):

      {

      system(“cls”);

      inputc();

      break;

      }

      case(2):

      {

      system(“cls”);

      managementc();

      break;

      }

      case(3):

      {

      system(“cls”);

      inputs();

      break;

      }

      case(4):

      {

      system(“cls”);

      managements();

      break;

      }

      case(5):

      {

      system(“cls”);

      store();

      break;

      }

      case(6):

      {

      system(“cls”);

      printf(“感謝使用本系統(tǒng)!nn再見!n”);

      }

      }

      return 1;

      }

      第三篇:C語言課程設(shè)計

      C語言課程設(shè)計

      飛機(jī)空戰(zhàn)小游戲

      一、實驗環(huán)境

      運行系統(tǒng) WINDOWSXP 編程工具C++6.0 地點 程序設(shè)計與仿真實驗室

      桌號19電腦IP地址221.12.10.218

      二、實驗?zāi)康暮鸵?實驗?zāi)康模?/p>

      (1)使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和操作算法。

      (2)使學(xué)生進(jìn)一步掌握程序設(shè)計、編寫、調(diào)試能力。(3)使學(xué)生了解軟件開發(fā)的基本步驟和內(nèi)容。

      實驗要求::飛機(jī)空戰(zhàn)小游戲。功能要求:

      1)有主菜單界面,能讓用戶選擇開始、退出、難度等級、查看用戶積分功能;

      2)飛機(jī)能通過A、S、D、W或上下左右鍵控制移動方向,使用空格鍵發(fā)射子彈;

      3)屏幕隨機(jī)出現(xiàn)從上到下的敵方子彈; 4)當(dāng)打中敵方子彈時,積分加1;

      5)當(dāng)敵方子彈打正飛機(jī)時,游戲結(jié)束,并提示用戶是否保存記錄(記錄包括用戶名及積分值),保存后退回到主菜單;

      6)當(dāng)選擇主菜單中的“查看用戶積分”選項時,進(jìn)入第二級菜單,用戶可查看全部用戶積分記錄,也可僅查看積分最高者,也可根據(jù)用戶輸入的用戶名查看;(此處要求使用到鏈表,用于臨時存儲用戶積分?jǐn)?shù)據(jù));(對鏈表的查找操作)

      7)所有用戶積分信息使用文件進(jìn)行永久性保存; 8)用戶選擇“難度等級”,可設(shè)定游戲不同難度,難度越高,出現(xiàn)敵方子彈數(shù)目及間隔將增加。

      三、實驗內(nèi)容和結(jié)果

      系統(tǒng)總體設(shè)計:編寫出c語言代碼,運行程序,并調(diào)試程序,最終實現(xiàn)游戲的功能。本程序主要包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動函數(shù)、敵機(jī)移動函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個主要函數(shù),包含了不同的功能,對原來的程序作出了很大的改進(jìn),用到的主要語句有if語句,for語句、while語句、printf語句、switch語句等等,添加了顏色函數(shù)。

      系統(tǒng)模塊設(shè)計:包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動函數(shù)、敵機(jī)移動函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個主要函數(shù),其中是否繼續(xù)游戲函數(shù),菜單函數(shù)主要運用了SWITCH語句和If語句,子彈移動函數(shù),敵機(jī)移動函數(shù)通過數(shù)組內(nèi)各數(shù)值的變化來完成,設(shè)置函數(shù)主要用PRINTF和SCANF語句進(jìn)行各項數(shù)值的設(shè)置,游戲控制函數(shù)使用if函數(shù),kbhit()函數(shù),switch函數(shù)組合控制數(shù)組中飛機(jī)進(jìn)行的移動和圖案的變換。最后用打印數(shù)組的方式打印出數(shù)組變換。最后運用SWITCH函數(shù)進(jìn)行各項菜單內(nèi)容的操作。

      實驗的測試和結(jié)果:

      四、實驗中的問題及心得

      通過本次試驗,使我對c語言有了更深一層次的了解,對for語句、while語句、printf語句、switch語句、顏色函數(shù)等等的了解及使用更加詳細(xì)了一些,明白了這些語句的用法,明確了c語言的使用環(huán)境,功能。同時我了解到了一些方法來實現(xiàn)一些C語言作為一個基礎(chǔ)性編程語言是我們在以后編程中不可或缺的語言,使用率肯定會進(jìn)一步增高。掌握了c語言就相當(dāng)于掌握了一門技術(shù),同時c語言相對而言簡單一些,更容易理解。自己雖然對這個小游戲進(jìn)行一部分的改造,但是我也感覺這只是其中的很很小的一部分,肯定會有更加強(qiáng)大的功能等待著我們?nèi)ジ纳啤?/p>

      同時,我也發(fā)現(xiàn)了自己很多的不足,需要進(jìn)一步加強(qiáng)這一方面的學(xué)習(xí),在數(shù)據(jù)結(jié)構(gòu)鏈表的使用上還很欠缺,無法使用鏈表進(jìn)行數(shù)據(jù)的讀取和輸入,還有在兩個程序的連接上還有困難,對于頭文件的理解不到位,鏈表的結(jié)構(gòu),定義,使用指針的方式??這些都需要提高。這些技能的欠缺導(dǎo)致了在 這個小游戲中無法順利完成有關(guān)用戶名和記錄的一些要求。??

      附錄:程序清單

      #include #include #include #include #define N 50 void run();//游戲控制函數(shù) void continuegame();//設(shè)置是否繼續(xù)游戲函數(shù) void print(int [][N]);//輸出函數(shù)

      void movebul(int [][N]);//子彈移動函數(shù) void movepla(int [][N]);//敵機(jī)移動函數(shù) void setting(void);//設(shè)置函數(shù) void menu();//菜單 int scr[50][N]={0},pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;//全局變量:界面、我機(jī)初始位、界面寬度、敵機(jī)速度、敵機(jī)密度、得分、死亡,子彈,飛機(jī),敵機(jī)初始圖案,生命

      char name[N];char first[N];void main(){ menu();getch();}

      void print(int a[][N])//輸出函數(shù) { int i,j;system(“cls”);for(i=0;i

      a[i][width-1]=4;

      for(j=0;j

      {

      if(a[i][j]==0)printf(“ ”);

      if((a[i][j]==1)&&(x<15))printf(“%c”,x);//輸出我機(jī)的符號

      if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子彈

      if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//輸出敵機(jī)符號

      if(i==1&&j==width-1)printf(“總積分:%d”,score);//顯示得分

      if(i==2&&j==width-1)printf(“已經(jīng)死亡了%d 次,剩余 %d 條命”,death,life-death);//右上角顯示死亡次數(shù)

      if(i==3&&j==width-1)printf(“普通按鍵:AD控制左右飛行”);

      if(i==4&&j==width-1)printf(“ W 發(fā)射子彈”);if(i==5&&j==width-1)printf(“特殊按鍵:+-號加減敵機(jī)速度”);if(i==6&&j==width-1)printf(“ /*號單列敵機(jī)密度減小增大(均有限制)”);

      if(i==7&&j==width-1)printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案”);

      if(i==8&&j==width-1)printf(“tZ鍵變化子彈圖案,P鍵增加生命(均有限制)”);

      if(i==9&&j==width-1)printf(“注意:向下移動后按其他方向鍵飛機(jī)顯現(xiàn)”);

      } printf(“n”);} }

      void movebul(int a[][N]){

      int i,j;for(i=0;i

      {

      if(i==0&&a[i][j]==2)

      a[i][j]=0;

      if(a[i][j]==2)

      {

      if(a[i-1][j]==3)//加分

      {

      score+=1;

      printf(“7”);

      }

      a[i][j]=0,a[i-1][j]=2;

      }

      } } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//從最后一行往上是為了避免把敵機(jī)直接沖出數(shù)組。

      for(j=0;j

      if(i==length-1&&a[i][j]==3)

      a[i][j]=0;//消除敵機(jī),在最低層

      if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敵機(jī)移動

      }

      if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 }

      void continuegame()//繼續(xù)游戲

      { printf(“用戶%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低記錄na”,score);if((score>0)&&(score<20))

      printf(“tttt 回家再練 練吧na”,score);if(score>19)

      printf(“tttt 你真厲害 na”,score);printf(“游戲結(jié)束n”);printf(“按y鍵繼續(xù)游戲,空格鍵退出游戲(y/n)?n”);printf(“ttt”);switch(getch())//是否要繼續(xù)游戲

      { case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} }

      void setting(void)//設(shè)置函數(shù) { system(“cls”);//清屏

      printf(“n 輸入游戲界面的大?。J(rèn)3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 請輸入敵機(jī)密度大小(默認(rèn)3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 輸入敵機(jī)的飛行速度大?。J(rèn)3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 輸入我機(jī)的生命(默認(rèn)1):1-100 ”);scanf(“%d”,&life);printf(“n 輸入飛機(jī)的圖案(默認(rèn)1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 輸入子彈的圖案(默認(rèn)1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 輸入敵機(jī)的圖案(默認(rèn)1):1-3 ”);scanf(“%d”,&y);y=y-1;} void run(){ int i=0,j=0,k=0,b=0;printf(“請輸入用戶名:”);scanf(“%s”,name);printf(“您的用戶名是:%s”,name);if(getch()==27)setting();printf(“游戲說明:按AWSD控制我機(jī)左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機(jī)減速,+號敵機(jī)加速n特殊按鍵:/號單列敵機(jī)密度減小,*號單列敵機(jī)密度增大n”);printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“任意鍵開始游戲,esc鍵進(jìn)入游戲設(shè)置n”);printf(“游戲時也可更改游戲設(shè)置任意鍵開始nn”);system(“color a”);//設(shè)置背景顏色

      if(getch()==27)setting();scr[length-1][pl]=1;//我方飛機(jī)初始位置

      scr[0][5]=3;while(death

      { if(kbhit())

      switch(getch())//控制設(shè)置按鍵 {

      case 'a':

      case 'A':if(pl>0)

      scr[length-1][pl]=0,scr[length-1][--pl]=1;break;

      case 'd':

      case 'D':if(pl

      scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W':

      case 'w':if(length>10)

      {

      scr[length-1][pl]=0,scr[length-2][pl]=1;

      length=length-1;

      };break;

      case '+':if(speed>2)

      {

      speed=speed-2;

      };break;

      case '-':speed=speed+1;break;case '*':if(density>5)

      {

      density=density-5;

      };break;

      case '/':density=density+10;break;

      case 'l':if(width<40)

      {

      width=width+2;

      };break;

      case 's':if(length<30)

      {

      scr[length-1][pl]=0;

      length=length+1;

      scr[length-1][pl]='5';

      };break;

      case ' ':scr[length-2][pl]=2;break;

      case 'y':y=(y+1)%4;break;

      case 'x':x=(x)%2+5;break;

      case 'z':if(z<25)

      {

      z=z+1;

      }

      else z=15;break;

      case 'p':life=life+1;break;} if(++j%density==0)//控制生產(chǎn)敵機(jī)的速度

      {

      j=0;

      srand(time(NULL));//產(chǎn)生隨機(jī)數(shù)

      scr[0][rand()%width]=3;

      scr[rand()%3][rand()%(width+2)]=3;

      scr[rand()%2][rand()%(width+1)]=3;

      scr[rand()%4][rand()%(width+4)]=3;//生成隨機(jī)敵方飛機(jī)

      } if(++i%speed==0)//控制敵機(jī)移動速度,相對于子彈移動速度

      movepla(scr);//飛機(jī)移動

      movebul(scr);//子彈移動

      print(scr);//繪制游戲畫面

      } if(score>=max){

      max=score;

      for(i=0;i

      {

      name[i]=first[i];

      } } if(score

      score=score;} continuegame();getch();}

      void menu(){ printf(“n1:游戲設(shè)置n2:游戲說明n3:開始游戲n4:查看用戶信息n5:退出游戲n”);

      switch(getch()){

      case '1': setting();menu();break;

      case '2':printf(“游戲說明:按AWSD控制我機(jī)左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機(jī)減速,+號敵機(jī)加速n特殊按鍵:/號單列敵機(jī)密度減小,*號單列敵機(jī)密度增大n”);printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“ 任意鍵開始游戲,esc鍵進(jìn)入游戲設(shè)置n”);printf(“ 游戲時也可更改游戲設(shè)置”);menu();break;

      case '3':run();menu();break;

      case '4':seerecord();menu();break;

      case '5':exit(0);break;default:menu();break;}

      } seerecord(){ printf(“最高紀(jì)錄為%s,%d”,first[N],max);}

      第四篇:C語言課程設(shè)計

      前言

      讓自己所學(xué)的知識應(yīng)用于實際生活中,理論聯(lián)系生活,學(xué)以致用,我們將更好服務(wù)于民。我們是新一代的年輕人,要想將來在社會上更好的立足,就必須讓自己強(qiáng)大起來,努力的學(xué)習(xí)新東西,了解新事物,跟上時代的步伐,這樣我們才能與時俱進(jìn),不被社會所淘汰。C語言在大學(xué)里是一門很重要的課程,也是一門很實用的課程,學(xué)好C語言在當(dāng)今的信息時代是一個很好的敲門磚。而且,我們是電子信息工程專業(yè)的,更應(yīng)該學(xué)好C語言,這對我們以后走向社會有很大的幫助,為我們以后大學(xué)畢業(yè)去求職提升競爭力。從C語言產(chǎn)生到現(xiàn)在,它已經(jīng)成為最重要和最流行的編程語言之一。在各種流行編程語言中,都能看到C語言的影子,如Java的語法與C語言基本相同。學(xué)習(xí)、掌握C語言是每一個計算機(jī)技術(shù)人員的基本功之一。C語言具有高級語言的強(qiáng)大功能,卻又有很多直接操作計算機(jī)硬件的功能(這些都是匯編語言的功能),因此,C語言通常又被稱為中級語言。學(xué)習(xí)和掌握C語言,既可以增進(jìn)對于計算機(jī)底層工作機(jī)制的了解,又為進(jìn)一步學(xué)習(xí)其他高級語言打下了堅實的基礎(chǔ)。需求分析

      當(dāng)今社會是信息社會,誰的信息越快速越準(zhǔn)確,誰就會更好的生活在這個社會上,他的人生也將走向成功。信息業(yè)正在21世紀(jì)扮演著越來越重要的角色,也是中國十二五規(guī)劃中的重要一環(huán),因此,我們應(yīng)該努力的去學(xué)習(xí)好這門課程,力爭在以后的生活工作中大展身手。現(xiàn)在的社會日新月異,各種信息在不斷的傳遞交流,誰最先獲取了信息誰就會成功。所以,作為我們這類專業(yè)的人才,在畢業(yè)以后一定會大顯身手,實現(xiàn)自己的人生價值。

      2.1 課程設(shè)計目的

      本課程設(shè)計為信息類公共課《計算方法與程序設(shè)計》配套的課程設(shè)計。是該課程的理論學(xué)習(xí)的延伸。通過本課程設(shè)計有助于鍛煉綜合運用C語言相關(guān)知識設(shè)

      為1;若n大于1,則開始循環(huán)運算(見圖3.22流程圖),直到i小于n不成立時結(jié)束循環(huán)。在循環(huán)運算的過程中,要調(diào)用兩個函數(shù)即函數(shù)pit1和函數(shù)pit2(見圖3.23流程圖)。在調(diào)用函數(shù)pit1和函數(shù)pit2中,這兩個函數(shù)進(jìn)行相互遞歸調(diào)用。最后將調(diào)用函數(shù)pit1和pit2的值返回主函數(shù)main函數(shù)中,再輸出高能質(zhì)子數(shù)目t3和低能質(zhì)子數(shù)目t4。

      3.1 系統(tǒng)流程圖

      程序一系統(tǒng)流程圖(如圖3.11所示):

      開始輸入nt1=3,t2=1,i=1否n==0否是n==1是否i

      3.2主要模塊的流程圖

      程序一模塊流程圖如圖3.21所示:

      否i

      圖3.21流程圖

      程序二模塊流程圖如圖3.22和圖3.23所示:

      i=1否i

      圖3.22流程圖

      } {t3=3*t1+2*t2;t4=t1+t2;t1=t3;t2=t4;} printf(“n the high=%d the low=%dn”,t3,t4);

      程序代碼4.1

      程序二代碼如下所示:

      #include “stdio.h” int pit1(int a){ if(a==1)

      } int pit2(int b){ if(b==1)

      } main(){ int n,i,t3,t4;printf(“n input n”);scanf(“%d”,&n);if(n==0){ return(1);return(pit1(b-1)+pit2(b-1));else return(3);return(3*pit1(a-1)+2*pit2(a-1));else

      圖5.11 程序二運行結(jié)果:如圖5.12(程序運行時,當(dāng)輸入時間變量n是3時,輸出高能粒子是41,低能粒子是15。)

      圖5.12

      參考文獻(xiàn)

      [1 ]張福祥.C語言程序設(shè)計[M].遼寧大學(xué)出版社,2008.[2] 張福祥,王萌.C語言程序設(shè)計習(xí)題解答與實驗實訓(xùn).沈陽:遼寧大學(xué)出版社,2008. [3] 牛莉,劉遠(yuǎn)軍等.計算機(jī)等級考試輔導(dǎo)教程[M].北京:中國鐵道出版社,2008. [4]李勇帆,謝兵.大學(xué)計算機(jī)應(yīng)用教程.北京:中國鐵道出版社,2009. [5]田淑清.全國計算機(jī)等級考試二級教程.北京:高等教育出版社,2011. [6]楊振山,龔沛曾.大學(xué)計算機(jī)基礎(chǔ).北京:高等教育出版社,2006. [7]盧湘鴻.信息技術(shù)應(yīng)用基礎(chǔ).北京:高等教育出版社,2004.

      致 謝

      在這次課程設(shè)計的撰寫過程中,我得到了許多人的幫助。首先我要感謝我的老師在課程設(shè)計上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計能力。其次,我要感謝幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計商的難題。同時也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計的環(huán)境。最后再一次感謝所有在設(shè)計中曾經(jīng)幫助過我的良師益友和同學(xué)。

      第五篇:C語言與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告要求

      C語言與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告

      學(xué) 號 2014014083 姓 名 汪明 課程設(shè)計題目 通訊錄的制作

      2016 年 1

      目 錄 需求分析 1.1 功能與數(shù)據(jù)需求 1.1.1 題目要求的功能 1.1.2 擴(kuò)展功能 1.2 界面需求 1.3 開發(fā)環(huán)境與運行需求 2 概要設(shè)計 2.1主要數(shù)據(jù)結(jié)構(gòu) 2.2程序總體結(jié)構(gòu) 2.3各模塊函數(shù)說明 3 詳細(xì)設(shè)計

      3.1算法分析與設(shè)計 3.2主要程序段設(shè)計 4 測試 5 使用說明

      5.1應(yīng)用程序功能的詳細(xì)說明 5.2應(yīng)用程序運行環(huán)境要求 5.5輸入數(shù)據(jù)類型、格式和內(nèi)容限制 6 總結(jié)提高

      6.1課程設(shè)計總結(jié)

      6.2開發(fā)中遇到的問題和解決方法 6.3 對自己完成課設(shè)完成情況的評價

      6.4《C語言與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》課程的意見與建議 附錄:程序源代碼

      需求分析 1.1 功能與數(shù)據(jù)需求

      1)輸入信息--enter();2)顯示信息---display();3)查找以姓名作為關(guān)鍵字---search();4)刪除信息---delete();5)存盤---save();6)裝入---load();

      1.2 界面需求

      1)每條信息至包含 :姓名(NAME)街道(STREET)城市(CITY)郵編(EIP)國家(STATE)幾項;電話號碼(TEL); 2)作為一個完整的系統(tǒng),應(yīng)具有友好的界面和較強(qiáng)的容錯能力; 3)需要鏈表實現(xiàn);

      4)上機(jī)能正常運行。

      1.3 開發(fā)環(huán)境

      開發(fā)環(huán)境:

      測試系統(tǒng):Windows7,開發(fā)工具:Dev-C++ 概要設(shè)計 2.1主要數(shù)據(jù)結(jié)構(gòu)

      //構(gòu)建鏈表的結(jié)構(gòu)體 typedef struct CLUB { char NAME[20];//姓名 char STREET[20];//街道 char CITY[20];//城市 char STATE[20];//國家 char PHONE[20];//電話號碼 char EIP[10];//郵編 struct CLUB *next;}CLUB;CLUB *headLink;

      2.2程序總體結(jié)構(gòu) //主要函數(shù)

      void Enter(CLUB *t);//錄入 void Search(void);//查找

      void Display(void);//輸出輸入的所有信息 void Delete(void);//刪除信息 void Save(void);//保存

      void Load(void);//從文件中的內(nèi)容 //界面函數(shù)

      void Menu(void);//顯示菜單

      2.2各模塊函數(shù)說明

      void CreateHeadLink(void);//創(chuàng)建 void Load(void);//從文件中的內(nèi)容 void Menu(void);//顯示菜單

      void InsertOneNode(CLUB *t);//增加新結(jié)點

      CLUB *MallocNode(void);//申請一個新結(jié)點,并將其初始化 void Enter(CLUB *t);//輸入

      void InsertOneNode(CLUB *t);//在鏈表的結(jié)尾處增加一個結(jié)點 void Search(void);//查找

      void DesplayOneNode(CLUB *t);//輸出一個結(jié)點的信息 void Display(void);//輸出輸入的所有信息 void Delete(void);//刪除信息

      void ChangeInforByName(void);//修改信息 void Save(void);//保存 詳細(xì)設(shè)計

      3.1算法分析與設(shè)計

      Enter函數(shù):從鍵盤中獲得數(shù)據(jù),通過scanf將各數(shù)據(jù)放入對應(yīng)的鏈表中 Display函數(shù):將鏈表中的數(shù)據(jù)輸出 3.2主要程序段設(shè)計測試 使用說明

      5.1應(yīng)用程序功能的詳細(xì)說明

      先輸入聯(lián)系人的基本信息,可以顯示錄入的所有聯(lián)系人的信息,可以將聯(lián)系人的信息保存到CLUB.txt,當(dāng)?shù)诙芜\行時可以直接從CLUB.txt文件中調(diào)用 5.2應(yīng)用程序運行環(huán)境要求 5.5輸入數(shù)據(jù)類型、格式和內(nèi)容限制 6 總結(jié)提高

      6.1課程設(shè)計總結(jié)

      6.2開發(fā)中遇到的問題和解決方法 6.3 對自己課程設(shè)計完成情況的評價 附錄:程序源代碼

      #include #include #include #include #include #include typedef struct CLUB { char NAME[20];//姓名

      char STREET[20];//街道

      char CITY[20];//城市

      char STATE[20];//國家

      char PHONE[20];//電話號碼

      char EIP[10];//郵編 struct CLUB *next;}CLUB;CLUB *headLink;//鏈表表頭指針 void CreateHeadLink(void);//創(chuàng)建 void Load(void);//從文件中的內(nèi)容 void Menu(void);//顯示菜單

      void InsertOneNode(CLUB *t);//增加新結(jié)點

      CLUB *MallocNode(void);//申請一個新結(jié)點,并將其初始化 void Enter(CLUB *t);//輸入

      void InsertOneNode(CLUB *t);//在鏈表的結(jié)尾處增加一個結(jié)點 void Search(void);//查找

      void DesplayOneNode(CLUB *t);//輸出一個結(jié)點的信息 void Display(void);//輸出輸入的所有信息 void Delete(void);//刪除信息

      void ChangeInforByName(void);//修改信息 void Save(void);//保存

      int choose;//用于接收用戶的選擇 //主函數(shù) int main(){ int j;system(“color 3E”);printf(“nnnnnnnnnn”);printf(“ttt %c ”,1);printf(“歡迎進(jìn)入通信錄!nn”);printf(“正在進(jìn)入,請等候”);for(j=0;j<6;j++){ Sleep(300);printf(“.”);} system(“cls”);

      CreateHeadLink();Menu();} //函數(shù)功能:從文件中讀信息 void Load(void){ FILE *fp;CLUB *p;p=(CLUB *)malloc(sizeof(CLUB));headLink=p;p->next=NULL;fp=fopen(“CLUB.txt”,“r”);if(!fp){ printf(“文件不存在n”);return;} p=MallocNode();while(fscanf(fp,“%s%s%s%s%s%sn”,p->NAME,p->STREET,p-> CITY,p->STATE,p->PHONE ,p->EIP)>0){ InsertOneNode(p);p=MallocNode();} fclose(fp);}

      //函數(shù)功能:顯示菜單,根據(jù)用戶的輸入完成相應(yīng)的功能 void Menu(void){ CLUB *p;printf(“nt|***********歡迎使用通信錄信息管理系統(tǒng)****************|n”);printf(“t提示:為保證您的操作得到保存,請按正常順序退出系統(tǒng)^_^n”);printf(“tt+------------主菜單---------------+n”);printf(“tt+ [1]******顯示電話簿信息 +n”);printf(“tt+ [2]按姓名查找電話簿信息 +n”);printf(“tt+ [3]******錄入電話簿信息 +n”);printf(“tt+ [4]******刪除電話簿信息 +n”);printf(“tt+ [5]按姓名修改電話簿信息 +n”);printf(“tt+ [6]**保存所有電話簿信息 +n”);printf(“tt+ [7]裝入文件中電話簿信息 +n”);printf(“tt+ [0]****************退出 +nn”);printf(“請輸入指令:”);scanf(“%d”,&choose);//取得用戶的選擇

      switch(choose){

      case 1: Display();//顯示所有電話簿的信息 Sleep(2000);system(“cls”);break;case 2: Search();//按姓名查找信息 Sleep(2000);system(“cls”);break;case 3: //錄入新信息

      p=MallocNode();//先申請一個新結(jié)點 Enter(p);//要求用戶輸入信息到新結(jié)點中 InsertOneNode(p);//將新結(jié)點加到鏈表中 Sleep(2000);system(“cls”);break;case 4: Delete();//刪除電話簿信息

      Sleep(2000);system(“cls”);break;case 5:

      ChangeInforByName();//按姓名修改電話簿信息 Sleep(2000);system(“cls”);break;case 6: Save();//保存 Sleep(2000);system(“cls”);break;case 7:

      Load();//裝入 Display();Sleep(2000);system(“cls”);break;case 0: Save();//保存數(shù)據(jù)后再退出 free(headLink);exit(1);break;default:

      } break;} Menu();//遞歸調(diào)用

      // 函數(shù)功能:建立鏈表表頭 void CreateHeadLink(void){ CLUB *p;p=(CLUB *)malloc(sizeof(CLUB));headLink=p;p->next=NULL;} // 函數(shù)功能:增加新結(jié)點 void InsertOneNode(CLUB *t){ CLUB *p;p=headLink;while(p->next){ p=p->next;} p->next=t;} //函數(shù)功能:申請一個新結(jié)點,并將其初始化 CLUB *MallocNode(void){ CLUB *p;int i;p=(CLUB*)malloc(sizeof(CLUB));if(p==NULL)return NULL;for(i=0;i<20;i++)p->NAME[i]='