1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          學生管理系統c語言(C語言數組如何實現學生信息管理系統)

          來源:互聯網轉載 時間:2024-05-13 15:22:00

          概述  

          單純只用多個數組管理學生成績信息,不使用結構體,該程序最主要的難點是依據學號或總成績對學生信息進行排序,借助了臨時數組來標記排好序的下標?! ?/p>

          運行結果如下:   

          輸入數據:

            

          打印數據:

            

          根據學號對信息進行排序:

            

          根據總成績對信息進行排序:

            

          根據學號刪除某一信息:

          代碼如下:

          #include<stdio.h>#include<stdlib.h>//exit函數頭文件#include<string.h>//字符串相關操作頭文件#defineMAX_STUDENT30//最大學生數//函數聲明,本程序共10個子函數,每個函數對應一個操作voidstudent_scanf(intn);voidstudent_printf(intn);intstudent_find_name(intn);intstudent_find_num(intn);voidstudent_sort_num(intn);voidstudent_sort_sum(intn);intstudent_alter_num(intn);intstudent_alter_name(intn);intstudent_delete_num(intn);intstudent_delete_name(intn);//全局數組變量,用于存儲學生信息charnames[MAX_STUDENT][50];intmath[MAX_STUDENT];intenglish[MAX_STUDENT];intcomputer[MAX_STUDENT];intsum[MAX_STUDENT];intnum[MAX_STUDENT];//以下變量用于學生信息數組排序,作為臨時數組inttemp_num[MAX_STUDENT];chartemp_names[MAX_STUDENT][50];inttemp_math[MAX_STUDENT];inttemp_english[MAX_STUDENT];inttemp_computer[MAX_STUDENT];inttemp_sum[MAX_STUDENT];//sort數組存儲排好序的學號或姓名下標intsort[MAX_STUDENT];//循環全局變量inti,j;//main主函數intmain(void){intchoice,n;while(1){printf("*************************************\n");printf("歡迎使用學生成績管理系統\n");printf("[1]輸入所有學生信息\n");printf("[2]輸出所有學生成績\n");printf("[3]按學號查找某個學生信息\n");printf("[4]按姓名查找某個學生信息\n");printf("[5]按學號對學生排序\n");printf("[6]按總成績對學生排序\n");printf("[7]按學號修改某個學生信息\n");printf("[8]按姓名修改某個學生信息\n");printf("[9]按學號刪除某個學生信息\n");printf("[10]按姓名刪除某個學生信息\n");printf("[0]退出程序\n");printf("請輸入您的選擇(0-9):");scanf("%d",&choice);printf("**************************************)\n");switch(choice){case1://錄入;printf("請輸入錄入的學生信息數:");scanf("%d",&n);student_scanf(n);break;case2://輸出;student_printf(n);break;case3://根據學號查找student_find_num(n);break;case4://根據姓名查找student_find_name(n);break;case5://按學號排序student_sort_num(n);break;case6://按姓名排序student_sort_sum(n);break;case7://按學號修改student_alter_num(n);break;case8://按姓名修改student_alter_name(n);break;case9://按學號刪除student_delete_num(n);n--;break;case10://按姓名刪除student_delete_name(n);n--;break;case0://退出程序printf("退出程序\n");printf("程序結束,謝謝使用!\n");exit(0);default:printf("您輸入的菜單有誤。請重新輸入!\n");}}return0;}//1.輸入信息voidstudent_scanf(intn){for(i=0;i<n;++i){printf("\n請輸入第%d個學生的信息:\n",i+1);printf("\n學號:");scanf("%d",&num[i]);printf("\n姓名:");scanf("%s",names[i]);printf("\n數學成績:");scanf("%d",&math[i]);printf("\n英語成績:");scanf("%d",&english[i]);printf("\n計算機成績:");scanf("%d",&computer[i]);//計算總成績sum[i]=math[i]+english[i]+computer[i];}}//2.打印信息voidstudent_printf(intn){printf("\n學號\t姓名\t數學成績\t英語成績\t計算機成績\t總成績\n");printf("----------------------------------------------------------\n");for(i=0;i<n;++i){printf("%d\t%s\t%d\t\t%d\t\t%d\t\t%d\n",num[i],names[i],math[i],english[i],computer[i],sum[i]);}printf("-------------------------------------------------------\n");}//3.按學號查找intstudent_find_num(intn){intnums;intresult;printf("請輸入待查找的學生學號:");scanf("%d",&nums);result=-1;for(i=0;i<n;++i){if(nums==num[i]){result=i;break;}}//最后判斷q值if(result==-1){printf("沒有該學生信息!\n");return0;}else{//先打印表頭printf("\n學號\t\t姓名\t\t數學成績\t英語成績\t計算機成績\t總成績\n");//再打印數據printf("%d\t\t%s\t\t%d\t\t%d\t\t%d\t%d\n",num[result],names[result],math[result],english[result],computer[result],sum[result]);printf("打印出查找結果!\n");}return1;}//4.用姓名查找成績intstudent_find_name(intn){charname[200];intresult;printf("請輸入待查找的學生姓名:");scanf("%s",name);result=-1;for(i=0;i<n;++i){if(strcmp(name,names[i])==0){result=i;break;}}if(result==-1){//未找到結果printf("沒有該學生信息!\n");return0;}else//找到結果{printf("\n學號\t姓名\t數學成績\t英語成績\t計算機成績\t總成績\n");printf("%d\t%s\t%d\t\t%d\t\t%d\t\t%d\n",num[result],names[result],math[result],english[result],computer[result],sum[result]);printf("已完成查找!\n");}return1;}//5.按學號排序voidstudent_sort_num(intn){intmin,max;for(i=0;i<n;++i)//復制臨時數組{temp_num[i]=num[i];}max=0;//查找學號最大值,將其下標存至sort數組的最后一個值中for(j=1;j<n;j++){if(temp_num[max]<temp_num[j])max=j;}sort[n-1]=max;//sort數組的最后一個數for(i=0;i<n-1;++i){min=i;//查找學號最小值for(j=0;j<n;++j){if(temp_num[min]>temp_num[j])min=j;}//sort數組記錄排序的學生信息的下標sort[i]=min;temp_num[min]=temp_num[max];//利用臨時數組將查找過的學生信息的學號設為最大值,排除查找干擾}for(i=0;i<n;++i)//再復制一次臨時數組{temp_num[i]=num[i];strcpy(temp_names[i],names[i]);temp_math[i]=math[i];temp_english[i]=english[i];temp_computer[i]=computer[i];temp_sum[i]=sum[i];}for(i=0;i<n;i++)//按照下標對原數組進行修改{num[i]=temp_num[sort[i]];strcpy(names[i],temp_names[sort[i]]);math[i]=temp_math[sort[i]];english[i]=temp_english[sort[i]];computer[i]=temp_computer[sort[i]];sum[i]=temp_sum[sort[i]];}printf("排序完畢,請按菜單鍵2查看排序結果!\n");return;}//6.按總成績排序voidstudent_sort_sum(intn){intmin,max;for(i=0;i<n;++i)//復制臨時數組{temp_sum[i]=sum[i];}max=0;//查找總成績最大值,將其下標存至sort數組的最后一個值中for(j=1;j<n;j++){if(temp_sum[max]<temp_sum[j])max=j;}sort[n-1]=max;//sort數組的最后一個數for(i=0;i<n-1;++i){min=i;//查找總成績最小值for(j=0;j<n;++j){if(temp_sum[min]>temp_sum[j])min=j;}//sort數組記錄排序的學生信息的下標sort[i]=min;temp_sum[min]=temp_sum[max];//利用臨時數組將查找過的學生信息的總成績設為最大值,排除查找干擾}for(i=0;i<n;++i)//再復制一次臨時數組{temp_num[i]=num[i];strcpy(temp_names[i],names[i]);temp_math[i]=math[i];temp_english[i]=english[i];temp_computer[i]=computer[i];temp_sum[i]=sum[i];}for(i=0;i<n;i++)//按照下標對原數組進行修改{num[i]=temp_num[sort[i]];strcpy(names[i],temp_names[sort[i]]);math[i]=temp_math[sort[i]];english[i]=temp_english[sort[i]];computer[i]=temp_computer[sort[i]];sum[i]=temp_sum[sort[i]];}printf("排序完畢,請按菜單鍵2查看排序結果!\n");return;}//7.按學號修改學生信息intstudent_alter_num(intn){intnums;intresult;printf("請輸入待修改的學生學號:");scanf("%d",&nums);result=-1;for(i=0;i<n;++i){if(nums==num[i]){result=i;break;}}//最后判斷q值if(result==-1){printf("沒有該學生信息!\n");return0;}else//修改信息值{printf("請重新輸入該學生信息:\n");printf("學號:\n");scanf("%d",&num[result]);printf("姓名:\n");scanf("%s",names[result]);printf("數學成績:\n");scanf("%d",&math[result]);printf("英語成績:\n");scanf("%d",&english[result]);printf("計算機成績:\n");scanf("%d",&computer[result]);sum[result]=math[result]+english[result]+computer[result];}return1;}//8.按姓名修改學生信息intstudent_alter_name(intn){charname[50];intresult;printf("請輸入待修改的學生姓名:");scanf("%s",name);result=-1;for(i=0;i<n;++i){if(strcmp(name,names[i])==0){result=i;break;}}//最后判斷q值if(result==-1){printf("沒有該學生信息!\n");return0;}else//修改信息值{printf("請重新輸入該學生信息:\n");printf("學號:\n");scanf("%d",&num[result]);printf("姓名:\n");scanf("%s",names[result]);printf("數學成績:\n");scanf("%d",&math[result]);printf("英語成績:\n");scanf("%d",&english[result]);printf("計算機成績:\n");scanf("%d",&computer[result]);sum[result]=math[result]+english[result]+computer[result];}return1;}//9.按學號刪除學生信息intstudent_delete_num(intn){intnums;intresult;printf("請輸入待刪除的學生學號:");scanf("%d",&nums);result=-1;for(i=0;i<n;++i){if(nums==num[i]){result=i;break;}}//最后判斷q值if(result==-1){printf("沒有該學生信息!\n");return0;}else//刪除當前學生信息即為將數組從result的位置依次前挪一個位置{for(i=result;i<n-1;++i)//最后在main函數中,要將n的值減1{num[i]=num[i+1];strcpy(names[i],names[i+1]);math[i]=math[i+1];english[i]=english[i+1];computer[i]=computer[i+1];sum[i]=sum[i+1];}}return1;}//10.按姓名刪除學生信息intstudent_delete_name(intn){charname[50];intresult;printf("請輸入待刪除的學生姓名:");scanf("%s",name);result=-1;for(i=0;i<n;++i){if(strcmp(name,names[i])==0){result=i;break;}}//最后判斷q值if(result==-1){printf("沒有該學生信息!\n");return0;}else//刪除當前學生信息即為將數組從result的位置依次前挪一個位置{for(i=result;i<n-1;++i)//最后在main函數中,要將n的值減1{num[i]=num[i+1];strcpy(names[i],names[i+1]);math[i]=math[i+1];english[i]=english[i+1];computer[i]=computer[i+1];sum[i]=sum[i+1];}}return1;}

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          文本/下降有一次,王楠問福原愛,她人生中最大的夢想是什么?令人驚訝的是,福原愛的回答與她最喜歡的乒乓球無關。她說:“我的夢想是結婚生子,相愛一輩子。老公一下班回家,我就站在門口跟他打招呼,‘你回來了。你想先吃飯還是先洗澡?”。誠然,這是福原愛簡單而美好的夢想,也曾經短暫地實現過,但這個夢想在福原愛33歲時變得支離破碎。1988年,福原愛出生在宮城縣仙臺市。福原愛出生時,父親46歲,在當...

          (相關資料圖)在生活中,很多人都不知道名偵探柯南中赤井秀一出現的集數是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的名偵探柯南中赤井秀一出現的集數相關的一些知識,我們一起來學習下吧!名偵探柯南中赤井秀一出現的集數(不完全統計):230神秘的乘客(前篇)、230神秘的乘客(前篇)、231神秘的乘客(后篇)、254本廳刑事戀愛物語4(后篇)、259來自芝加哥的男子(后篇)、267情人節的真相...

          中港基金互認是什么意思?中港基金互認是指只要經過其中一個監管部門審核,就可以在另一個市場銷售。簡單來說,互認就是相互承認其合法性。中港基金互認,是指中國證監會和香港證監會開展的基金互認工作,將允許內地和香港基金符合一定條件的,按照法定程序銷售向對方市場的公眾投資者承認或許可。中港兩地基金互認帶來哪些好處影響?1、中港基金互認能夠增加兩地市場資金的流通。從目前情況來看,香港市場估值偏低,然而在中港基...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>