基于c語言的學生成績管理系統(tǒng)報告_第1頁
基于c語言的學生成績管理系統(tǒng)報告_第2頁
基于c語言的學生成績管理系統(tǒng)報告_第3頁
基于c語言的學生成績管理系統(tǒng)報告_第4頁
基于c語言的學生成績管理系統(tǒng)報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

杭州電子科技大學信息工程學院創(chuàng)新創(chuàng)業(yè)實踐報告杭州電子科技大學信息工程學院創(chuàng)新創(chuàng)業(yè)實踐報告創(chuàng)新創(chuàng)業(yè)實踐報告第第頁實踐項目名稱學生成績管理系統(tǒng)實踐項目的目的鍛煉C語言編程能力和軟件組織設(shè)計能力項目用到的相關(guān)知識c語言C語言是一門通用計算機編程語言,應(yīng)用廣泛。C語言的設(shè)計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。指針使用指針來讀取數(shù)據(jù),在重復性操作的狀況下,可以明顯改善程序性能,例如在遍歷字符串,查取表格,控制表格及樹狀結(jié)構(gòu)上。對指針進行復制,之后再解引用指針以取出數(shù)據(jù),無論在時間或空間上,都比直接復制及訪問數(shù)據(jù)本身來的經(jīng)濟快速。指針的機制比較簡單,其功能可以被集中重新實現(xiàn)成更抽象化的引用數(shù)據(jù)形別。許多編程語言中都支持某種形式的指針,最著名的是C語言,但是有些編程語言對指針的運用采取比較嚴格的限制,如Java一般避免用指針,改為使用引用。有兩種含義,一是作為數(shù)據(jù)類型,二是作為實體。指針作為實體,是一個用來保存一個內(nèi)存地址的計算機語言中的變量。指針一般出現(xiàn)在比較底層的程序設(shè)計語言中,如C語言。高層的語言如Java一般避免用指針,而是引用。指針作為數(shù)據(jù)類型,可以從一個函數(shù)類型、一個對象類型或者一個不完備類型中導出。從中導出的數(shù)據(jù)類型稱之為被引用類型。指針類型描述了一種對象,其值為對被引用類型的實體的引用。C++標準中規(guī)定,“指針”概念不適用于成員指針(不包含指向靜態(tài)成員的指針)。C++標準規(guī)定,指針分為兩類:objectpointertype:指向void或?qū)ο箢愋?,表示對象在?nèi)存中的字節(jié)地址或空指針。functionpointertype:指代一個函數(shù)。數(shù)組所謂數(shù)組,就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區(qū)分他們的變量的集合,這個名字稱為數(shù)組名,編號稱為下標。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標變量。數(shù)組是在程序設(shè)計中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來的一種形式。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。結(jié)構(gòu)體在C語言中,結(jié)構(gòu)體指的是一種數(shù)據(jù)結(jié)構(gòu),是C語言中聚合數(shù)據(jù)類型的一類。結(jié)構(gòu)體可以被聲明為變量、指針或數(shù)組等,用以實現(xiàn)較復雜的數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)體同時也是一些元素的集合,這些元素稱為結(jié)構(gòu)體的成員,且這些成員可以為不同的類型,成員一般用名字訪問。變量變量來源于數(shù)學,是計算機語言中能儲存計算結(jié)果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,變量通常是可變的;但在純函數(shù)式語言中,變量可能是不可變的。在一些語言中,變量可能被明確為是能表示可變狀態(tài)、具有存儲空間的抽象;但另外一些語言可能使用其它概念(如C的對象)來指稱這種抽象,而不嚴格地定義“變量”的準確外延。由于變量讓你能夠把程序中準備使用的每一段數(shù)據(jù)都賦給一個簡短、易于記憶的名字,因此它們十分有用。變量可以保存程序運行時用戶輸入的數(shù)據(jù)(如使用InputBox函數(shù)在屏幕上顯示一個對話框,然后把用戶鍵入的文本保存到變量中)、特定運算的結(jié)果以及要在窗體上顯示的一段數(shù)據(jù)等。簡而言之,變量是用于跟蹤幾乎所有類型信息的簡單工具。變量聲明后沒有賦值的話編譯器會自動提示并賦予默認值變量是一種使用方便的占位符,用于引用計算機內(nèi)存地址,該地址可以存儲Script運行時可更改的程序信息。例如,可以創(chuàng)建一個名為ClickCount的變量來存儲用戶單擊Web頁面上某個對象的次數(shù)。使用變量并不需要了解變量在計算機內(nèi)存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。在VBScript中只有一個基本數(shù)據(jù)類型,即Variant,因此所有變量的數(shù)據(jù)類型都是Variant。函數(shù)一個較大的程序一般應(yīng)分為若干個程序塊,每一個模塊用來實現(xiàn)一個特定的功能。所有的高級語言中都有子程序這個概念,用子程序?qū)崿F(xiàn)模塊的功能。在C語言中,子程序的作用是由一個主函數(shù)和若干個函數(shù)構(gòu)成。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。在程序設(shè)計中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供公共選用。要善于利用函數(shù),以減少重復編寫程序段的工作量。函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù);在類中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。函數(shù)的定義:返回類型名字(形式參數(shù)表列){函數(shù)體語句return表達式;}函數(shù)調(diào)用:名字(實際參數(shù)表列);軟件設(shè)計及流程圖進入軟件時可看到如下界面:首次使用時選擇1(創(chuàng)建學生成績管理冊),輸入學生成績,輸入后會有提示保存和查看,輸入錯誤字符也會有溫馨提示。創(chuàng)建完學生成績管理冊后,可以對原有的學生信息進行添加刪除和相應(yīng)的修改。代碼分析:在主函數(shù)中,僅有兩個自定義函數(shù)(菜單顯示和選擇),這兩個函數(shù)也是對整個程序的主流程。(menu();choose();)函數(shù)menu()用于顯示主菜單,具有清屏功能。函數(shù)choose()用于對主菜單的功能進行選擇。若輸入錯誤會有提示。函數(shù)input()這個函數(shù)是進行用戶對學生成績的輸入,依次可輸入學號、姓名、年齡、C語言成績、代數(shù)成績,系統(tǒng)會自行計算總分。函數(shù)savescore()這個函數(shù)是對輸入信息的保存,程序默認保存在D:/score.txt中,若保存不成功或無法打開,會有相應(yīng)的提示。特別注意:因為該程序會在D盤生成相應(yīng)文件,容易被360等殺毒軟件識別并攔截,運行前請關(guān)閉殺毒軟件。函數(shù)loadscore()這個函數(shù)是對輸入信息的讀取,程序默認讀取在D:/score.txt中,若讀取不成功或無法打開,會有相應(yīng)的提示。函數(shù)choosec()這個函數(shù)是對學生列表信息的排序,排序分為按學號降序、按姓名降序、 按總分由高到低、按c語言由高到低、按代數(shù)由高到低和回到主菜單。 選擇不同的排序方法會進入不同的子函數(shù)。函數(shù)number()該函數(shù)用于對學號排序的子函數(shù)。函數(shù)name()該函數(shù)用于對姓名排序的子函數(shù)。函數(shù)total()該函數(shù)用于對總分排序的子函數(shù)。函數(shù)score_C()該函數(shù)用于對C語言分數(shù)排序的子函數(shù)。函數(shù)score_algebra()該函數(shù)用于對代數(shù)分數(shù)排序的子函數(shù)。函數(shù)show()該函數(shù)可顯示所有學生信息。顯示后通過任意鍵返回主菜單。函數(shù)chaxun()該函數(shù)可查詢相應(yīng)信息,是查詢函數(shù)的總目錄(學號、姓名、年齡)。函數(shù)personal()該函數(shù)可根據(jù)學生姓名進行查詢相應(yīng)信息。若輸入錯誤會有提示。函數(shù)add()該函數(shù)可添加新的學生信息。函數(shù)fix()該函數(shù)可修改學生信息。若無法找到,會有相應(yīng)的提示。函數(shù)del()該函數(shù)可刪除舊的學生信息。若無法找到,會有相應(yīng)的提示。函數(shù)Exit()退出函數(shù),顯示制作組,并按任意鍵退出以下是總流程圖:總流程圖主流程圖軟件代碼#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineM1/*定義結(jié)構(gòu)體變量*/typedefstructstudent{ intnum;//學號; charname[30];//姓名;intage;//年齡 doublescore_C;//C語言的成績; doublescore_algebra;//代數(shù)的成績; doublescoreAll;//總成績;}MESSA;MESSAstu[40];intS;/*typedefstructstudents{ charname[20]; charnum[15]; floatscore[M]; floataverage; floattotal;}MESSA;MESSAstu[20];intS;*//*全局變量*/intii=0;/*函數(shù)聲明*/voidmenu(void);voidchoose(void);voidinput(void);voidsavescore(void);voidloadscore(void);voidchoosec(void);voidaverage(void);voidtotal(void);voidname(void);voidnumber(void);voidshow(void);voidexcellent(void);voidpassing(void);voidpersonal(void);voidExit();voidscore_C(void);voidscore_algebra(void);voidnumber1(void);voidadd();voidfix();voiddel();voidchaxun();/*主函數(shù)調(diào)用*/intmain(){ menu(); choose();}/*菜單系統(tǒng)*/voidmenu(void){ system("CLS"); printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n"); printf("\t^*。。。。。。歡迎使用這個成績管理系統(tǒng)。。。。。。。*^\n"); printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n"); printf("\n"); printf("\t##########################################\n"); printf("\t#創(chuàng)建學生成績管理冊1#\n"); printf("\t#添加學生的信息2#\n"); printf("\t#刪除學生的信息3#\n"); printf("\t#修改學生的信息4#\n"); printf("\t#顯示所有學生的信息5#\n"); printf("\t#搜索個人個門成績分數(shù)6#\n"); printf("\t#所有學生信息的排序7#\n"); printf("\t#離開9#\n"); printf("\t##########################################\n"); printf("\n\t請選擇:\n\t");}/*菜單選擇*/voidchoose(void){ intx,flag=0; while(flag==0) { fflush(stdin); scanf("%d",&x); getchar(); switch(x) { case1:input();savescore();loadscore();menu();choose();flag=1;break; case2:add();input();savescore();loadscore();menu();choose();flag=1;break; case3:del();savescore();loadscore();menu();choose();flag=1;break; case4:fix();savescore();loadscore();menu();choose();flag=1;break; case5:flag=1;number1();show();break; case6:chaxun();flag=1;break; case7:choosec();flag=1;break; case9:Exit();flag=1; default:printf("\t對不起,輸入有誤或該項服務(wù)未開通\n"); } }}/*輸入學生成績*/voidinput(void){ intflag=1,j,i;chark;floatpp=0; for(;flag==1;ii++) { printf("\t請輸入第N.%hd個學生的成績信息:\n",ii+1); fflush(stdin); puts("\t學號:"); fflush(stdin); scanf("%d",&stu[ii].num); puts("\t姓名:"); fflush(stdin); gets(stu[ii].name); fflush(stdin); puts("\t年齡:"); fflush(stdin); scanf("%d",&stu[ii].age); fflush(stdin); puts("\t分數(shù):\tC語言\t代數(shù)"); for(j=0;j<M;j++) scanf("%lf%lf",&stu[ii].score_C,&stu[ii].score_algebra); puts("\t你想要繼續(xù)么?(Y/N)"); while(1) { puts("\t請選擇"); fflush(stdin); scanf("%c",&k); if(k!='N'&&k!='Y') puts("\t出錯了,再輸一次{{{(>_<)}}}!"); elseif(k=='N') { flag=0;S=ii;break; } elsebreak; } } for(i=0;i<=S;i++) { for(j=0,stu[i].scoreAll=0.0;j<M;j++) stu[i].scoreAll=stu[i].score_algebra+stu[i].score_C; } number1();}/*保存數(shù)據(jù)*/voidsavescore(void){ inti,flag=1;FILE*fp;charm; puts("\t你想要保存這些數(shù)據(jù)么?(Y/N)");while(1){ fflush(stdin); scanf("%c",&m);if(m=='Y'){if((fp=fopen("D:\\score.txt","w"))==NULL){ printf("\t對不起,無法打開這個表單(+﹏+)~狂暈\n"); exit(0);}for(i=0;i<=S;i++) if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1) { puts("\t對不起,表單書寫錯誤了!(+﹏+)~狂暈"); flag=0; }if(flag==1) for(i=0;i<=S;i++) printf("\t好了,第N.%d個學生的數(shù)據(jù)已經(jīng)被保存!!!\(^o^)/~\n",i+1);fclose(fp);break;}elseif(m!='N'&&m!='Y') puts("\t輸入錯誤,請重新輸入!⊙﹏⊙b");else break;}}/*讀取文件中保存的數(shù)據(jù)*/voidloadscore(void){ FILE*fp;charn;MESSArestu[20];inti,flag=0; charread[6][10]={"學號","姓名","年齡","c語言","代數(shù)","總分"}; puts("\t你想要立刻讀取這些數(shù)據(jù)么?(Y/N)"); while(1) { fflush(stdin); scanf("%c",&n); if(n=='Y') { if((fp=fopen("D:\\score.txt","r"))==NULL) { fprintf(stderr,"\tOpen%serror!!!\n","score.txt"); exit(0); } for(i=0;i<=S;i++) fread(&restu[i],sizeof(structstudent),1,fp); system("CLS"); puts("\t成績信息讀取中"); printf("\t好的,表單已經(jīng)被讀取!\n"); printf("\n"); printf("\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n"); printf("\t$**$\t\t\t\t\t\t\t\t$**$\n\t"); printf("$**$"); for(i=0;i<6;i++) printf("%-10s",read[i]); printf("$**$"); printf("\n"); for(i=0;i<=S;i++) { printf("\t$**$"); printf("%-10d%-10s",restu[i].num,restu[i].name); printf("%-10d",restu[i].age); printf("%-10.1f",restu[i].score_C); printf("%-10.1f",restu[i].score_algebra); printf("%-10.1f",restu[i].scoreAll); printf("$**$\n"); } printf("\t$**$\t\t\t\t\t\t\t\t$**$"); printf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n"); fclose(fp); break; } elseif(n=='N') break; else printf("\t對不起,出現(xiàn)錯誤了,再來一次!\n"); } puts("\t輸入任意鍵回到主菜單\n"); getchar(); getchar();}/*選擇查分的子菜單及子菜單選擇*/voidchoosec(void){ intbiao,i,flag=0;FILE*fp; if((fp=fopen("D:\\score.txt","r"))==NULL) { printf("\t對不起,你無法輸入任何成績信息!無法打開這個表單!\n\n\n"); printf("\t輸入任意鍵回到主菜單!!\n"); getchar(); getchar(); menu(); choose(); } for(i=0;i<=S;i++) fread(&stu[i],sizeof(structstudent),1,fp); fclose(fp); system("CLS"); printf("\t以下是第二個菜單:\n"); printf("\n"); printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n"); printf("\t%%$按學號降序1%%$\n"); printf("\t%%$按姓名降序2%%$\n"); printf("\t%%$按總分由高到低3%%$\n"); printf("\t%%$按c語言由高到低4%%$\n"); printf("\t%%$按代數(shù)由高到低5%%$\n"); printf("\t%%$回到主菜單9%%$\n"); printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n"); printf("\n\t請選擇輸入方式:\n"); while(flag==0) { fflush(stdin); scanf("%d",&biao); getchar(); switch(biao) { case1:flag=1;number();show();break; case2:flag=1;name();show();break; case3:flag=1;total();show();break; case4:flag=1;score_C();show();break; case5:flag=1;score_algebra();show();break; case9:flag=1;menu();choose();break; default:printf("\t對不起,操作無法進行!請重新做出正確操作!\n"); } }}/*顯示分數(shù)*/voidshow(void){inti,n,flag=0;charhead[7][10]={"學號","姓名","年齡","c語言","代數(shù)","總分"};system("CLS");puts("\t讀取信息中");printf("\n");printf("\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n\n\t");for(i=0;i<7;i++)printf("%-10s",head[i]);printf("\n\t");for(i=0;i<=S;i++)////////////////////////////////////////////////////////////////////////{printf("%-10d%-10s",stu[i].num,stu[i].name);printf("%-10d",stu[i].age);printf("%-10.1f",stu[i].score_C);printf("%-10.1f",stu[i].score_algebra);printf("%-10.1f",stu[i].scoreAll);printf("\n\t");}printf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");printf("\n\t請選擇:(1or2)\n\n");puts("\t1.回到第二個菜單!\n");puts("\t2.回到主菜單!\n");while(flag==0){fflush(stdin);scanf("%d",&n);getchar();switch(n){case1:flag=1;choosec();break;case2:flag=1;menu();choose();break;default:printf("\t出錯了,請再次輸入!\n");}}}/*按總分由高到低*/voidtotal(void){inti,j,k;MESSAt;for(i=0;i<S;i++){k=i;for(j=i+1;j<=S;j++)if(stu[k].scoreAll<stu[j].scoreAll)k=j;if(k!=i){t=stu[k];stu[k]=stu[i];stu[i]=t;}}}/*按c語言由高到低*/voidscore_C(void){inti,j,k;MESSAt;for(i=0;i<S;i++){k=i;for(j=i+1;j<=S;j++)if(stu[k].score_C<stu[j].score_C)k=j;if(k!=i){t=stu[k];stu[k]=stu[i];stu[i]=t;}}}/*按代數(shù)由高到低*/voidscore_algebra(void){inti,j,k;MESSAt;for(i=0;i<S;i++){k=i;for(j=i+1;j<=S;j++)if(stu[k].score_algebra<stu[j].score_algebra)k=j;if(k!=i){t=stu[k];stu[k]=stu[i];stu[i]=t;}}}/*按學號降序*/voidnumber(void){inti,j,k;MESSAt;for(i=0;i<S;i++){k=i;for(j=i+1;j<=S;j++)if(stu[k].num<stu[j].num)k=j;if(k!=i){t=stu[k];stu[k]=stu[i];stu[i]=t;}}}/*按學號升序*/voidnumber1(void){inti,j,k;MESSAt;for(i=0;i<S;i++){k=i;for(j=i+1;j<=S;j++)if(stu[k].num>stu[j].num)k=j;if(k!=i){t=stu[k];stu[k]=stu[i];stu[i]=t;}}}/*按姓名降序*/voidname(void){inti,j,k;MESSAt;for(i=0;i<S;i++){k=i;for(j=i+1;j<=S;j++)if(strcmp(stu[k].name,stu[j].name)<0)k=j;if(k!=i){t=stu[k];stu[k]=stu[i];stu[i]=t;}}}/*個人學生成績查詢*/voidpersonal(void){ inti,f,w,flag=0;charb[10],a;FILE*fp; charhead3[6][10]={"學號","姓名","年齡","c語言","代數(shù)","總分"}; if((fp=fopen("D:\\score.txt","r"))==NULL) { printf("\t對不起,無法輸入任何信息!無法找到該表單!\n\n\n"); printf("\t輸入任意鍵回到主菜單!!\n"); getchar(); getchar(); menu(); choose(); } for(i=0;i<=S;i++) fread(&stu[i],sizeof(structstudent),1,fp); fclose(fp); puts("\t請輸入你想要搜索的學生成績信息:\n"); puts("\t學生成績信息如下\n"); for(i=0;i<=S;i++) printf("\t%s",stu[i].name); puts("\t\nYourchooseis:\n"); while(1) { fflush(stdin); gets(b); for(i=0;i<=S;i++) if(strcmp(b,stu[i].name)==0) { printf("\t該生學生成績信息%s?(Y/N)\n",stu[i].name); f=i; } fflush(stdin); scanf("%c",&a); if(a=='Y') { system("CLS"); puts("\t成績信息讀取中"); printf("\n"); printf("\t**********************************************************************\n\n\t"); for(i=0;i<6;i++) printf("%-10s",head3[i]); printf("\n\t"); printf("%-10d%-10s",stu[f].num,stu[f].name); printf("%-10d",stu[f].age); printf("%-10.1f",stu[f].score_C); printf("%-10.1f",stu[f].score_algebra); printf("%-10.1f",stu[f].scoreAll); printf("\n"); printf("\t**********************************************************************\n");break; } else printf("\t出錯了,重新選擇吧!\n"); } puts("\t是否繼續(xù)操作?\n"); printf("\t1.離開系統(tǒng)!\n"); printf("\t2.回到主菜單!\n"); printf("\t3.回到第二個菜單!\n"); puts("\t請選擇:\n"); while(flag==0) { fflush(stdin); scanf("%d",&w); getchar(); switch(w) { case1:Exit();flag=1; case2:menu();choose();flag=1;break; case3:choosec();flag=1;break; default:printf("\t對不起,操作無法進行!請重新選擇!\n"); } }}/*添加*/voidadd(){ inti,a,f=1;m1: printf("\t請輸入添加的學號:\n"); scanf("%d",&a); f=1; for(i=0;i<ii;i++) { if(stu[i].num==a) { f=0; } } if(f==1) { printf("\tok,可添加"); } elseif(f==0) { printf("\t已經(jīng)有啦,不可添加\n"); gotom1; }}/*修改*/voidfix(){ inti,a,f=1,x;m1: printf("\t請輸入修改的學號:\n"); scanf("%d",&a); f=1; for(i=0;i<ii;i++) { if(stu[i].num==a) { f=0;break; } } if(f==0) { printf("\tok,可修改\n"); printf("\t請輸入修改內(nèi)容:\n\t1.名字\t2.年齡\t3.c語言分數(shù)\t4.代數(shù)分數(shù)\n\t修改總分是不可以的啦\n\t\t9.主菜單\n"); scanf("%d",&x); getchar(); if(x==1) { printf("\t請輸入新的名字\n"); fflush(stdin); scanf("%s",&stu[i].name); fflush(stdin); } if(x==2) { printf("\t請輸入新的年齡\n"); fflush(stdin); scanf("%d",&stu[i].age); fflush(stdin); } if(x==3) { printf("\t請輸入新的c語言分數(shù)\n"); fflush(stdin); scanf("%lf",&stu[i].score_C); fflush(stdin); } if(x==4) { printf("\t請輸入新的代數(shù)分數(shù)\n"); fflush(stdin); scanf("%lf",&stu[i].score_algebra); fflush(stdin); } if(x==9) { menu(); } } elseif(f==1) { printf("\t沒有數(shù)據(jù)啦,不可修改\n"); gotom1; }}/*刪除*/voiddel(){ inti,j,a,f=1,x; charc[10]; f=1;m2: printf("\t請輸入刪除內(nèi)容:\n\t1.學號\t2.名字\n\t\t9.主菜單\n"); scanf("%d",&a); if(a==1) { printf("\t請輸入刪除的學號\n"); fflush(stdin); scanf("%d",&x); fflush(stdin); for(i=1;i<ii;i++) { if(stu[i].num==x) { f=0;break; } } if(f==0) { for(j=i;j<ii;j++) { stu[j]=stu[j+1]; } printf("\tok,已刪除\n"); ii--; } elseif(f==1) { printf("\t沒有數(shù)據(jù)啦,不可刪除\n"); gotom2; } } elseif(a==2) { printf("\t請輸入刪除的名字\n"); fflush(stdin); gets(c); for(i=1;i<ii;i++) { if(strcmp(stu[i].name,c)==0) { f=0;break; } } if(f==0) { for(j=i;j<ii;j++) { stu[j]=stu[j+1]; } printf("\tok,已刪除\n"); ii--; } elseif(f==1) { printf("\t沒有數(shù)據(jù)啦,不可刪除\n"); gotom2; } } elseif(a==9) { menu(); } else { printf("\t輸入錯誤,請重輸!!\n"); gotom2; }}voidchaxun(){ inta,d,i,flag=0,w,j,f=0; charhead3[6][10]={"學號","姓名","年齡","c語言","代數(shù)","總分"};m3: printf("\t請輸入查詢方式:\n\t1.學號\t2.名字\t3.年齡\n"); scanf("%d",&a); if(a==1) { printf("\t請輸入學號\n"); scanf("%d",&d); for(i=0;i<ii;i++) { if(stu[i].num==d) { f=1;break; } } if(f==1) { system("CLS"); puts("\t成績信息讀取中"); printf("\n"); printf("\t**********************************************************************\n\n\t"); for(j=0;j<6;j++) printf("%-10s",head3[j]); printf("\n\t"); printf("%-10d%-10s",stu[i].num,stu[i].name); printf("%-10d",stu[i].age); printf("%-10.1f",stu[i].score_C); printf("%-10.1f",stu[i].score_algebra); printf("%-10.1f",stu[i].scoreAll); printf("\n"); printf("\t**********************************************************************\n"); puts("\t是否繼續(xù)操作?\n"); printf("\t1.離開系統(tǒng)!\n"); printf("\t2.回到主菜單!\n"); puts("\t請選擇:\n"); while(flag==0) { fflush(stdin); scanf("%d",&w); getchar(); switch(w) { case1:Exit();flag=1; case2:menu();choose();flag=1;break; default:printf("\t對不起,操作無法進行!請重新選擇!\n"); } } if(f==0) { printf("\t沒有數(shù)據(jù)啦,不可修改\n"); gotom3; } } } elseif(a==2) { personal(); } elseif(a==3) {printf("\t請輸入年齡\n"); scanf("%d",&d); system("CLS"); puts("\t成績信息讀取中"); printf("\n"); printf("\t**********************************************************************\n\n\t"); for(j=0;j<6;j++) printf("%-10s",head3[j]); printf("\n"); for(i=0;i<ii;i++) { if(stu[i].age==d) { printf("\t"); printf("%-10d%-10s",stu[i].num,stu[i].name); printf("%-10d",stu[i].age); printf("%-10.1f",stu[i].score_C); printf("%-10.1f",stu[i].score_algebra); printf("%-10.1f",stu[i].scoreAll); printf("\n"); } } printf("\t**********************************************************************\n"); puts("\t是否繼續(xù)操作?\n"); printf("\t1.離開系統(tǒng)!\n"); printf("\t2.回到主菜單!\n"); puts("\t請選擇:\n"); while(flag==0) { fflush(stdin); scanf("%d",&w); getchar(); switch(w) { case1:Exit();flag=1; case2:menu();choose();flag=1;break; default:printf("\t對不起,操作無法進行!請重新選擇!\n"); } } if(f==0) { printf("\t沒有數(shù)據(jù)啦,不可修改\n"); gotom3; } } else { printf("\t輸入錯誤,請重輸!!\n"); gotom3; }}/*退出系統(tǒng)*/voidExit(void){ system("CLS");//清屏 printf("\t**********************************************************\n\n\t"); printf("\t^*感謝使用成績管理系統(tǒng)~\(≧▽≦)/~啦啦啦*^\n\n"); printf("\t\t^*羅天翔毛穎群李喆李林松組程序*^\n\n"); printf("\t\t^*編程:羅天翔\t報告:羅天翔*^\n\n"); printf("\t**********************************************************\n\n\t"); printf("\t按任意鍵退出\n"); getchar(); exit(0);}心得體會這次實驗不但增強了我的C語言編程能力和軟件組織設(shè)計能力,還讓我體會到了成功后的喜悅,增強了我的動手能力。通過本次設(shè)計,使我學到了許多書本上無法學到的知識,也使我深刻體會到c語言技術(shù)應(yīng)用領(lǐng)域的廣泛。不僅讓我對學過的C語言知識有了很多的鞏固,同時也對C語言這一門學科產(chǎn)生了更大的興趣。在做設(shè)計的初期階段沒有頭緒。在圖書館里、網(wǎng)上查閱資料,攻克了道道難題。通過本次實踐,我學到了許多東西,知道光靠書本上的東西是不夠的,需額外去查資料。在克服困難的過程中,我學到了許多,特別是在課堂上學不到的東西。通過這次的院賽設(shè)計,我體會到應(yīng)該掌握豐富的理論知識,理論知識是設(shè)計的前提,但同時又決不能局限于理論,要多動手才能將理論與實際工作聯(lián)系起來。但是通過這次理論與實際的結(jié)合之后,認識比以前有不少提高,在C語言應(yīng)用及軟件設(shè)計方面都有了長足的進步?;贑8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應(yīng)用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設(shè)計基于單片機的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機的膛壁溫度報警系統(tǒng)設(shè)計基于AVR單片機的低壓無功補償控制器的設(shè)計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務(wù)器技術(shù)的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學實驗中的應(yīng)用研究基于單片機系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設(shè)計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究HYPERLINK"/detail.htm?3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論