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

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

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

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

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

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績名次表[精選合集]

      時間:2019-05-14 04:31:36下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績名次表》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績名次表》。

      第一篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績名次表

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績名次表

      問題描述:建設(shè)一個年級(M個班)的學(xué)生參加某門課程的考試,每個班最多有N個學(xué)生,請輸出各班的成績名次表(M個)、以班級為單位的成績名次表(1個)、以及以年級為單位的成績名次表(1個)。

      設(shè)計要求:

      1.功能:每個班級的學(xué)生記錄按學(xué)號順序排列,每個學(xué)生記錄至少包含排列名次、學(xué)號、成績3個字段。

      2.輸入:隨機產(chǎn)生M*N個成績。3.輸出:

      (1)輸出每個班級的成績名次表,具有相同成績的名次相同;(2)輸出以班級為單位的成績名次表。

      (3)輸出以年級為單位的成績名次表,具有相同成績的名次相同。

      #include #include #include #include #define MAX1 5 #define MAX2 15 typedef struct student {

      int num;//學(xué)號

      int score;//成績

      }DataType1;//學(xué)生結(jié)點信息 typedef struct banji { DataType1 *data;char classname[10];//班級名稱

      int classnum;//班級人數(shù) }Stu;//班級結(jié)點信息

      int M;int Create(Stu S[MAX1][MAX2],int N){

      int V;

      int i,j,k;srand(time(NULL));

      printf(“請輸入你創(chuàng)建多少個年級:”);

      scanf(“%d”,&M);

      printf(“請輸入你創(chuàng)建的一個年級有多少個班:”);

      scanf(“%d”,&N);

      for(i=0;i

      for(j=0;j

      {

      printf(“---------------------創(chuàng)建第%d個年級第%d個班級的信息--------n”,i+1,j+1);

      printf(“請輸入第%d個年級第%d個班級的名稱:”,i+1,j+1);

      scanf(“%s”,S[i][j].classname);

      printf(“請輸入第%d個年級第%d個班級的人數(shù):”,i+1,j+1);

      scanf(“%d”,&V);

      S[i][j].data=(DataType1 *)malloc(sizeof(DataType1)*V);

      getchar();

      S[i][j].classnum=V;

      for(k=0;k

      {

      int x=S[i][j].data[k].num=(i+1)*1000+(j+1)*100+k;

      printf(“產(chǎn)生該班第%d個學(xué)生的學(xué)號:%dn”,k+1,x);

      int y=S[i][j].data[k].score=rand()%5+95;

      printf(“隨機產(chǎn)生該班該學(xué)生的成績:%dn”,y);

      }

      } }

      return N;

      }

      int classorder(Stu S[MAX1][MAX2], int N)//查詢每個班級的成績名次表 { int x,y,i,j,V,k,p=0;DataType1 temp;char b[10];printf(“請輸入你要查詢班級的名稱:”);scanf(“%s”,b);

      for(x=0;x

      for(y=0;y

      {

      if(strcmp(S[x][y].classname,b)==0)

      goto OK;

      if(x==M-1&&y==N-1)

      {

      printf(“你查找的班級不存在!n”);

      return-1;

      }

      } } OK: V=S[x][y].classnum;

      for(i = 0;i

      for(j = i+1;j

      {

      if(S[x][y].data[i].score< S[x][y].data[j].score)

      {

      temp = S[x][y].data[i];

      S[x][y].data[i] =S[x][y].data[j];

      S[x][y].data[j] = temp;

      }

      }

      printf(“%d班排名:n學(xué)號t成績t名次t班級名稱n”,y+1);

      for(k=0;k

      {p++;

      printf(“%4dt%4dt%4dt%sn”,S[x][y].data[k].num ,S[x][y].data[k].score ,p ,S[x][y].classname);

      if(k

      }

      printf(“n”);

      return 1;}

      int Allclassorder(Stu S[MAX1][MAX2], int N)//查詢以班級為單位的成績名次表

      { int y,i,j,V,k;int c,p;DataType1 temp;

      printf(“請輸入你要查詢那個年級的全部班級名次表<1-%d>:”,M);scanf(“%d”,&c);if(c>M||c<1){

      printf(“輸入錯誤!n”);

      return-1;} printf(“----打印你要查詢的第%d個年級的全部班級名次表----n”,c);

      for(y=0;y

      {

      V=S[c-1][y].classnum;

      for(i =0;i

      for(j =i+1;j

      {

      if(S[c-1][y].data[i].score< S[c-1][y].data[j].score)

      {

      temp = S[c-1][y].data[i];

      S[c-1][y].data[i] =S[c-1][y].data[j];

      S[c-1][y].data[j] = temp;

      }

      }

      p=0;

      printf(“%d班排名:n學(xué)號t成績t名次t班級名稱n”,y+1);

      for(k=0;k

      {

      p++;

      printf(“%4dt%4dt%4dt%sn”,S[c-1][y].data[k].num ,S[c-1][y].data[k].score ,p ,S[c-1][y].classname);

      if(k

      }

      printf(“n”);

      }

      return 1;}

      int gradeorder(Stu S[MAX1][MAX2], int N)//查詢以年級為單位的成績名次表 { int V;int c;int x,y,i,j,k=0,p=0;DataType1 r[100], temp;printf(“請輸入你要查詢哪個年級的名次表<1-%d>:”,M);scanf(“%d”,&c);

      if(c>M||c<1){

      printf(“輸入錯誤!n”);

      return-1;}

      for(x=0;x

      {

      V=S[c-1][x].classnum;

      for(y=0;y

      r[k++]=S[c-1][x].data[y];

      }

      for(i = 0;i

      for(j = i+1;j

      {

      if(r[i].score< r[j].score)

      {

      temp = r[i];

      r[i] = r[j];

      r[j] = temp;

      }

      } printf(“t--------第%d年級總排名-------n”,c);printf(“ 學(xué)號t成績t名次n”);

      for(i=0;i

      {

      p++;

      printf(“%4dt%4dt%4dn”,r[i].num ,r[i].score ,p);

      if(i

      }

      return 1;}

      void showface()//顯示桌面菜單

      {

      printf(“********歡迎進入彭強學(xué)生成績名次表查詢系統(tǒng)*******n”);

      printf(“*1 創(chuàng)建年級和班級信息

      2查詢每個班級的成績名次表*n”);printf(“*3 查詢以班級為單位的成績名次表

      *n”);printf(“*4 查詢以年級為單位的成績名次表

      0 退出管理系統(tǒng) *n”);printf(“*************************************************n”);

      }

      void main(){ Stu S[MAX1][MAX2];

      int N;

      char i;do {

      showface();//調(diào)用菜單函數(shù)

      printf(“請選擇菜單0—5:”);

      scanf(“%s”,&i);switch(i){

      case '1': N=Create(S,N);break;

      case '2': classorder(S,N);break;

      case '3': Allclassorder(S,N);break;

      case '4': gradeorder(S,N);break;

      case '0': exit(0);

      break;

      default:printf(“選擇菜單錯誤,請重新選擇!n”);} }while(i!=0);}

      第二篇:學(xué)生成績管理數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告

      學(xué)生成績管理系統(tǒng) 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      一、課程設(shè)計的內(nèi)容與目的

      利用所學(xué)數(shù)據(jù)結(jié)構(gòu)理論知識完成“學(xué)生成績管理系統(tǒng)”的設(shè)計。

      通過課程設(shè)計提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。具體包括:

      了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力; 初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能; 提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力;

      訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。

      二、課程設(shè)計的要求與數(shù)據(jù) 1.系統(tǒng)功能需求分析:

      1、輸入功能:可以輸入40位同學(xué)信息

      2、增加功能,能增加學(xué)生的信息

      3、瀏覽功能:完成對全部學(xué)生記錄瀏覽

      4、查詢功能:采用散列查找完成按學(xué)號查找學(xué)生記錄

      5、排序功能:采用直接選擇排序,將學(xué)生平均成績從低到高排序輸出

      6、刪除功能:可以刪除學(xué)生信息

      7、修改功能:可以對學(xué)生信息的各項信息進行修改

      8、插入功能:完成數(shù)據(jù)的插入

      9、統(tǒng)計功能:統(tǒng)計出各分數(shù)段學(xué)生人數(shù)(60分以下,60~70,71~80,...)

      2.存儲結(jié)構(gòu)設(shè)計分析:

      3.學(xué)生的信息:學(xué)生的信息采用結(jié)構(gòu)體類型定義,每個元素表示一個學(xué)生的信息,包括學(xué)號,姓名及數(shù)據(jù)結(jié)構(gòu)平均成績4個數(shù)據(jù)項:

      (1)struct student {char num[11];char name[20];int score[8];float ave;}stu[N];(2)散列表的結(jié)點類型定義:

      typedef struct node {unsigned long int key;struct node * link;}HNode;3.源程序如下: #include #include #include /*控制學(xué)生記錄的容量*/ #define N 40 #define PR printf(“nr%s %s %s %s %s %s %s %s %s %s %s ”,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].score[5],stu[i].score[6],stu[i].score[7],stu[i].score[8],stu[i].ave)struct student {char num[11];char name[20];int score[8];float ave;}stu[N];typedef struct node {unsigned long int key;struct node * link;}HNode;typedef struct{int key;/*排序碼*/ float data;/*其他數(shù)據(jù)項*/}RecNode;/*全新保存函數(shù)*/ save(int n)/*保存函數(shù),保存n個記錄*/ {FILE *fp;int i;if((fp=fopen(“sc.txt”,“wb”))==NULL)/*以輸出打開方式,在此前的記錄被覆蓋*/ {printf(“n不能打開文件n”);getch();return NULL;} for(i=0;i