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

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

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

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

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

      一份c語言的課程設(shè)計體會

      時間:2019-05-15 11:12:03下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《一份c語言的課程設(shè)計體會》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《一份c語言的課程設(shè)計體會》。

      第一篇:一份c語言的課程設(shè)計體會

      體會

      通過這次C語言的課程設(shè)計,我明白了很多也知道了很多,更收獲了很多。在課程設(shè)計的過程中出現(xiàn)過困難,三周的課程設(shè)計已經(jīng)結(jié)束了?;叵雽W習C語言的過程中,既有快樂又有煩惱,回顧這次課程設(shè)計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論和知識是遠遠不夠的,只有把所學的理論知識與實際相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考能力。在設(shè)計的過程中遇到的問題,這畢竟獨立做的,難免會遇到各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)自己的不足之處,對以前所學的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體……通過這次課程設(shè)計之后,一定把以前所學過的知識從新溫故。這次課設(shè)終于順利完成了,在設(shè)計中遇到了很多編程問題

      做完這個課程設(shè)計,我們的自信一下子提高了,我們也會寫程序了;盡管對于有些人這種程序會很簡單,可對于我們C語言初學者來說,已經(jīng)很不容易了。這次體驗為以后的學習計算機的我們增強了信心。享受勞動成果的滋味實在美妙啊!

      很感謝這次的課程設(shè)計,它使我更加地體會到多看專業(yè)書的重要性,只有掌握了一定量的專業(yè)知識才能得心應(yīng)手地解決諸多問題;另外,在做任何事倒要有耐心,不要一遇到困難就退縮;在學習和工作中要時刻謹記“團結(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();

      //學生登陸 int teacher();

      //教師登陸 struct student//學生信息結(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學分:”);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學分:”);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學分:”);

      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()//錄入學生信息子函數(shù)(從鍵盤錄入){

      void intos();

      int i;

      struct student *p1,*p2;

      N2=0;

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

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

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

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

      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學生學號:(輸入0結(jié)束?。?;

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

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

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

      p1->nelen=0;

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

      }

      p2->next=NULL;

      intos();return;} void files()//錄入學生信息子函數(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()//錄入學生信息主函數(shù) {

      int i;

      printf(“nttt錄入學生信息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)//學生信息管理子函數(shù)(填加學生信息){ 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)//學生信息管理子函數(shù)(刪除學生信息){ void intos();

      struct student *p1,*p2;

      if(head3==NULL)

      {

      printf(“n沒有該學生信息,無法刪除!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(“已刪除該學生信息!n”);

      N2=N2-1;

      }

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

      intos();

      end:;}

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

      struct student * incouse;

      int i,num2;

      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 student *)malloc(sizeof(struct student));

      incouse->nelen=0;

      incouse->nelenum[0]=0;

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

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

      inserts(incouse);

      break;

      }

      case(2):

      {

      printf(“請輸入要刪除學生的學號: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()//學生選課子函數(shù)(查詢可選課程){

      char e;

      struct couse * c;

      struct student * s;

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

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

      scanf(“%d”,&num2);

      s=head3;

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

      if(s->num2!=num2)

      {

      printf(“不存在你的信息,請進入主菜單錄入你的信息!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()//學生選課子函數(shù)(查詢已選課程){

      char c;

      struct couse * p0;

      struct student * p;

      int num2,i,f=0;

      printf(“請輸入學號: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(“總學分:%dn”,f);

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

      getchar();

      c=getchar();

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

      {

      back(p);

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

      getchar();

      c=getchar();

      (p->nelen)--;

      }

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

      int i;

      printf(“ttt學生選課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(“課程編號

      課程名稱

      學分

      課程已選人數(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()//輸出學生信息 {

      struct student * p;

      p=head3;

      printf(“學生學號

      學生姓名

      已選課程數(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()//存儲學生信息 { int i;

      FILE * fp;

      struct student * p;

      char filepath[30];

      if((fp=fopen(“學生信息.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(“學生信息已保存成功!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.查看學生信息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歡迎使用學生選課系統(tǒng)!n”);

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

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

      printf(“請選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:teacher();break;

      case 2:student();break;

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

      } }

      int student()

      {

      int i;

      printf(“ntttt1.學生選課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.錄入學生信息n”);

      printf(“4.學生信息管理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(“學生信息.dat”,“rb”))==NULL)

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

      //

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

      // {

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

      inputs();

      while(!feof(fp))

      {

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

      if(emp2==NULL)

      {

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

      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è)計

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

      一、實驗環(huán)境

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

      桌號19電腦IP地址221.12.10.218

      二、實驗目的和要求 實驗目的:

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

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

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

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

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

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

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

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

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

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

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

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

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

      四、實驗中的問題及心得

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

      同時,我也發(fā)現(xiàn)了自己很多的不足,需要進一步加強這一方面的學習,在數(shù)據(jù)結(jié)構(gòu)鏈表的使用上還很欠缺,無法使用鏈表進行數(shù)據(jù)的讀取和輸入,還有在兩個程序的連接上還有困難,對于頭文件的理解不到位,鏈表的結(jié)構(gòu),定義,使用指針的方式??這些都需要提高。這些技能的欠缺導致了在 這個小游戲中無法順利完成有關(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]);//敵機移動函數(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;//全局變量:界面、我機初始位、界面寬度、敵機速度、敵機密度、得分、死亡,子彈,飛機,敵機初始圖案,生命

      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);//輸出我機的符號

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

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

      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(“特殊按鍵:+-號加減敵機速度”);if(i==6&&j==width-1)printf(“ /*號單列敵機密度減小增大(均有限制)”);

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

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

      if(i==9&&j==width-1)printf(“注意:向下移動后按其他方向鍵飛機顯現(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--)//從最后一行往上是為了避免把敵機直接沖出數(shù)組。

      for(j=0;j

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

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

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

      }

      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 輸入游戲界面的大?。J3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 請輸入敵機密度大?。J3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 輸入敵機的飛行速度大?。J3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 輸入我機的生命(默認1):1-100 ”);scanf(“%d”,&life);printf(“n 輸入飛機的圖案(默認1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 輸入子彈的圖案(默認1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“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控制我機左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機減速,+號敵機加速n特殊按鍵:/號單列敵機密度減小,*號單列敵機密度增大n”);printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“任意鍵開始游戲,esc鍵進入游戲設(shè)置n”);printf(“游戲時也可更改游戲設(shè)置任意鍵開始nn”);system(“color a”);//設(shè)置背景顏色

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

      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=0;

      srand(time(NULL));//產(chǎn)生隨機數(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;//生成隨機敵方飛機

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

      movepla(scr);//飛機移動

      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控制我機左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機減速,+號敵機加速n特殊按鍵:/號單列敵機密度減小,*號單列敵機密度增大n”);printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“ 任意鍵開始游戲,esc鍵進入游戲設(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(“最高紀錄為%s,%d”,first[N],max);}

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

      前言

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

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

      2.1 課程設(shè)計目的

      本課程設(shè)計為信息類公共課《計算方法與程序設(shè)計》配套的課程設(shè)計。是該課程的理論學習的延伸。通過本課程設(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ù)進行相互遞歸調(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(程序運行時,當輸入時間變量n是3時,輸出高能粒子是41,低能粒子是15。)

      圖5.12

      參考文獻

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

      致 謝

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

      第五篇:C語言課程設(shè)計說明書

      一 問題描述與分析

      假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學時,授課學時,實驗或上機學時,學分,開學學期等信息,學生可按要求(如總學分不得少于60)自由選課。試設(shè)計學生選修課程系統(tǒng),使之能提供以下功能:

      1.課程信息錄入功能(課程信息用文件保存)2.課程信息瀏覽功能 3.排序:按總學時排序

      4.查詢功能:按開學學期查詢 5.課程修改,刪除(可選項)

      二 總體設(shè)計

      根據(jù)題目要求,定義結(jié)構(gòu)體類型如下: struct subjects { char no[10];char name[20];char kind[20];int stime;

      /*總學時*/ int ttime;

      /*授課學時*/ int etime;

      /*實驗或上機學時*/ float score;int term;}sub[N];

      三 詳細設(shè)計

      1)存儲結(jié)構(gòu)的選擇

      在這個程序中,我們選擇用結(jié)構(gòu)體數(shù)組來存儲課程,即順序存儲結(jié)構(gòu) Struct subjects sub[N] 2)系統(tǒng)初始化

      這個模塊的主要功能是得到初始的課程。為了實現(xiàn)“一次輸入,多次使用”,我們用文件來保存課程。第一次運行本程序需從鍵盤輸入所有課程并保存到文件中,以后運行就可以從文件中讀取數(shù)據(jù),直接使用了。這樣既可以減少輸入的麻煩,更重要的是使本程序可以連續(xù)運行,每次運行都可以使用上一次保存的結(jié)果。void newfile(){ int i;FILE *fp;if((fp=fopen(“sub.dat”,“wb”))==NULL){

      printf(“文件建立失??!請重新運行程序。n”);

      exit(0);

      } } printf(“請輸入課程門數(shù)”);scanf(“%d”,&num);for(i=0;i

      3)課程瀏覽功能 按課程編號進行瀏覽 void read1(){ FILE *fp;num=0;fp=fopen(“sub.dat”,“r”);if(fp==NULL){

      printf(“文件打開失?。≌堉匦逻\行程序。n”);

      exit(0);} while(!feof(fp)){

      fread(&sub[num],1,sizeof(struct subjects),fp);

      num++;} num--;fclose(fp);printf(“現(xiàn)在共有%d門課程,初始數(shù)據(jù)為:n”,num);output();} 3

      4)排序

      按總學時排序:使用改進的起泡法排序。void sortstime(){ int i,j,flag;struct subjects temp;for(i=0;i

      flag=0;

      for(j=0;j

      if(sub[j].stime

      {

      temp=sub[j];

      sub[j]=sub[j+1];

      sub[j+1]=temp;

      flag=1;

      }

      if(flag==0)

      break;}printf(“排序后的課程為:n”);output();} 4

      5)查找(總學時)

      按開學學期查詢,查找用順序查找法。void find(){ int i,cterm;printf(“請輸入要查找課程的開學學期:n”);getchar();scanf(“%d”,&cterm);i=findterm(cterm);if(i==-1)

      printf(“要查找的學期不存在:n”);else {

      printf(“查找到的課程信息為:n”);

      printf(“課程編號,課程名稱,課程性質(zhì),總學時,授課學時,實驗或上機學時,總學分,開學學期:n”);

      printf(“===================================n”);

      printf(“%st%-10st%st%dt%dt%dt%.1ft%dt”,sub[i].no,sub[i].name,sub[i].kind,sub[i].stime,sub[i].ttime,sub[i].etime,sub[i].score,sub[i].term);

      printf(“n”);} } int findterm(int cterm[]){

      } int i;for(i=0;i<=num;i++)if(cterm-sub[i].term==0)

      return i;return-1;

      6)參考文獻

      C語言指導書。7)心得體會

      通過對課程精心設(shè)計,我從中獲得了不少東西:

      1.我知道一些自己不太熟悉的知識,比如文件系統(tǒng)中的好多知識; 2.從中懂得了合作的重要性,這是以前沒注意的;

      3.也鍛煉了自己的思維能力,可以把一整塊東西分成若干個小塊來處理; 4.在鍛煉的同時,自己得到了一種滿足感。

      下載一份c語言的課程設(shè)計體會word格式文檔
      下載一份c語言的課程設(shè)計體會.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        C語言課程設(shè)計[五篇]

        華 北 水 利 水 電 學 院 課程設(shè)計報告書 環(huán) 節(jié) 名 稱:專 業(yè) 班 級:姓名 :學號 :院、系 :指 導 教 師: 2012——2013學年 第 二 學期 高級語言課程設(shè)計(C語言) 信息與計算科學專業(yè)1......

        C語言課程設(shè)計報告

        C語言課程設(shè)計報告 Experiment Designing reporter 課程名稱 : C語言課程設(shè)計 英文名稱 : C Program Experiment Designing 專 業(yè) : 學 號 : 姓 名 : 指導教師 : 日 期: 2011......

        C語言課程設(shè)計總結(jié)

        C語言課程設(shè)計總結(jié) 一、 設(shè)計題目: 猜數(shù)字和貪吃蛇小游戲。 專業(yè):09電氣工程及其自動化 組號:第十組 組員:馬邢(組長)、王維、毛亮、汪小成、魏坤波、陳維康、高裴石、石峰、葛良......

        C語言課程設(shè)計代碼

        #include "stdio.h" #include #include #define LEN sizeof(struct course) struct course { int cID; char name[50]; float credit; int semester; struct course *......

        《c語言課程設(shè)計》教學大綱

        鄭州大學信息工程學院 《C語言程序設(shè)計》課程設(shè)計教學大綱 課程名稱:《C語言程序設(shè)計》課程設(shè)計 英文名稱:The C Programming on Course 課程編號: 課程類型:必修 學時:2周 適用......

        C語言課程設(shè)計5篇

        C語言課程設(shè)計 一、課程設(shè)計目的 1.復習、鞏固C語言的基礎(chǔ)知識,進一步加深對C語言的理解和掌握。 2. 提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)......

        《C語言》課程設(shè)計教學大綱

        荊楚理工學院 《C語言程序設(shè)計》課程設(shè)計教學大綱 一、 課程名稱: C語言程序設(shè)計 二、 課程代碼: Z04013 三、 課程管理: 計算機工程學院(部)計算機應(yīng)用教研室 四、 教學對象:......

        C語言課程設(shè)計任務(wù)書

        《C語言程序設(shè)計》課程設(shè)計 任務(wù)書及指導書 自動化學院 2011年 C語言課程設(shè)計任務(wù)書及指導書1 題目:學院教學信息管理系統(tǒng) 功能:學院教學信息管理系統(tǒng),每一條記錄包括教師的......