歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

C++課程設計報告--學籍管理系統(tǒng)

  • 資源ID:126799140       資源大?。?span id="0uqivnk" class="font-tahoma">330KB        全文頁數(shù):17頁
  • 資源格式: DOC        下載積分:8積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要8積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

C++課程設計報告--學籍管理系統(tǒng)

課程設計報告題 目 學籍管理系統(tǒng) 課 程 名 稱 面向對象程序設計課程設計 院 部 名 稱 軟件學院 專 業(yè) 數(shù)字媒體技術班 級 1222202 學 生 姓 名 張吉發(fā) 學 號 201220220203 課程設計地點 軟件樓 課程設計學時 16 指 導 教 師 鄒國華 一 需求分析隨著計算機的發(fā)展,越來越多的學校有自己的學籍管理系統(tǒng)。這樣更方便數(shù)據的長期保存,更適用于數(shù)據的集中處理。通過這個簡單的學籍管理系統(tǒng),可以添加新成員的基本信息,通過其姓名,性別,科目,分數(shù)等信息查詢這個人的基本信息。可以很方便的進行數(shù)據修改,以及數(shù)據刪除。本系統(tǒng)主要是通過二進制的文件讀取,進行輸入,輸出,以及修改,刪除等基本功能。用結構體實行學生的基本信息。結構體student數(shù)據成員:1. 姓名 name2. 學號 num3. 語文 Chinese4. 數(shù)學 math.二 概要設計struct studentchar name60;char num20;int score;char sex30;這個結構體設計的很簡單,里面有四個數(shù)據成員。包括了學生的基本信息,姓名name用多字符來保存,學好num用多字符類型,分數(shù)score用整數(shù)定義,性別用多字符類定義。為了可以對數(shù)據進行操作,處理。我們這里用了很多函數(shù)。int dq(struct student st);void xianshi();/顯示主界面void bc(struct student st);/保存學生信息void add(); /添加學生的信息void select();/查看學生信息void chazhao();/查找void xhcz();/學號查找void xmcz();/姓名查找void del();/刪除,里面提供了兩個函數(shù)實現(xiàn)按學號void xhsc();或是姓名void xmsc();查找來刪除void xmsc();/姓名刪除void xhsc();/學號刪除void tj();/統(tǒng)計分數(shù),求出總分和平均分void px();/排序void bjg();void bca();/打印出文件的保存字樣void fh();/文件顯示提醒struct student st300; /這個數(shù)組用來保存所有的學生信息 和文件里面的一致int Number=0; /記錄總的學生人數(shù) 也就是數(shù)組/文件里面的學生人數(shù)主函數(shù)的流程圖:創(chuàng)建一個文件夾,用結構體student輸入信息顯示菜單,把系統(tǒng)功能界面給用戶用戶輸入序號,根據輸入進行操作輸入0,結束第一次沒有文件,判斷是否創(chuàng)建文件?開始.三 詳細的設計。主函數(shù)void main()這里默認的查查在F盤是否有一個文件,student。如果有就直接在原有的基礎上添加或是修改信息。沒有就建立一個文件在磁盤中 。編輯主頁面的鏈接。主要有八個功能:1添加學生的信息2查看學生的信息3查找學生的信息4刪除學生的信息5統(tǒng)計(總成績和平均分)6輸出前N名學生的成績7保存文件0退出系統(tǒng)用switch語句來實現(xiàn)對應的鏈接具體核心代碼如下:void main()int choose=0;FILE *fp=NULL;char yesorno;if(fp=fopen("F:/student.dat","rb")=NULL)cout<<("n=>提示:文件不存在,是否要創(chuàng)建一個?(y/n)n");cin>>yesorno;if(yesorno='y'|yesorno='Y') /這里僅為了建立文件,默認的地址在fp=fopen("F:/student.dat","wb");fclose(fp);elseexit(0);elseNumber=dq(st); /要是文件只能夠已經有數(shù)據 將數(shù)據初始化到數(shù)組中system("cls");while(true) xianshi();cout<<" =>請選擇:"scanf("%d",&choose);system("cls");switch(choose)case 0: exit(0);/退出 break; case 1: add();fh();/增加學生成績break; case 2: select();fh();/查看學生成績break; case 3: chazhao();fh();/ 查找 break;case 4: del(); fh();/刪除 break;case 5: tj();fh();/統(tǒng)計break;case 6: px();fh();/排序 break;case 7:bca();fh();/保存 break;default:break;fflush(stdin);getchar();system("cls");然后就要對對應的功能函數(shù)實現(xiàn),里面有很多的代碼。首先是顯示主界面:讓操作的人一眼就能看到這系統(tǒng)有哪些功能 。我們根據界面的提示進入對應的數(shù)據操作主界面的流程圖:2.查看學生成績3.查找學生成績1.添加學生成績學生管理系統(tǒng)6.輸出前N名學生4.刪除學生成績5.總分、平均分void xianshi()cout<<"="cout<<" * 學生成績管理系統(tǒng) *"<<endl;cout<<"- 1 添加學生成績 *"<<endl;cout<<"- 2 查看學生成績 *"<<endl;cout<<"- 3 查找學生成績 *"<<endl;cout<<"- 4 刪除學生成績 *"<<endl;cout<<"- 5 統(tǒng)計(總成績和平均分) *"<<endl;cout<<"- 6 輸出前N名學生成績 *"<<endl;cout<<"- 7 保存*"<<endl;cout<<"* 0 退出*"<<endl;cout<<"="<<endl;有了這個主頁面。我們一個一個的來實現(xiàn)。第一個先把添加學生信息的函數(shù)編好,這樣我們就可以向里面存學生的而信息了,先定義一個暫時的學生類保存,這里要注意的是我們添加的是很多學生信息,要用一個數(shù)組來實現(xiàn)。而且要把添加的學生信息保存到原有的文件中:具體的代碼如下:void add()/增加學生 int numberTemp=0;int i=0;struct student temp; /臨時保存信息cout<<"請輸入要增加學生個數(shù):"cin>>numberTemp;for(i=0;i<numberTemp;i+)cout<<"輸入第"<<i+1<<"個同學信息" <<endl;cout<<"姓名:"cin>>temp.name;cout<<"學號:"cin>>temp.num;cout<<"性別:"cin>>temp.sex;cout<<"成績:"<<endl;cin>>temp.score;stNumber+=temp; /將剛添加的寫入到數(shù)組bc(&temp); /將剛添加的寫入到文件cout<<"添加成功"<<endl;第二個是要查看學生的信息,這個很簡單,直接用一個for循環(huán)輸出在文件里的信息就好:void select()/查看學生 int i=0;cout<<"以下是全部學生成績"<<endl;cout<<"t姓名t學號t性別t成績n"for(i=0;i<Number;i+)cout<<sti.name<<"t"<<sti.num<<"t"<<"t"<<sti.sex <<"t"<<sti.score<<endl ;第三個是查找學生的信息,做這個時需要做第二個界面菜單??梢园磳W號或是姓名來查找。然后,比如按學號來查是,提示用戶輸入要查找的學生的學號,for循環(huán)和strcmp()函數(shù)查。當文件里面有這個學生時,輸出來給用戶;具體如下void chazhao()/查找學生 int n=0;cout<<endl<<"* 1 按姓名查找"<<endl;cout<<"* 2 按學號查找" cin>>n;switch(n)case 1: xmcz();break;case 2: xhcz();break;default:cout<<"輸入有誤,結束!"<<endl;break; void xhcz()/按學號查找 ,這里運用了for循環(huán)和strcmp()查找學生。Strcmp()是一個比較函數(shù),里面兩個參數(shù)相等時入輸出結果。char id7;int i=0;cout<<"請輸入要查找學生學號:"cin>>id;system("cls");printf("t姓名t學號t性別t成績n");for (i=0;i<Number;i+)if (strcmp(id,sti.num)=0)cout<<sti.name<<"t"<<sti.num<<"t"<<"t"<<sti.sex <<"t"<<sti.score<<endl ;void xmcz()/按姓名查找 ,運用學號查找一樣的方法 char name7;int i=0;cout<<"請輸入要查找學生姓名:"cin>>name;system("cls");cout<<"t姓名t學號t性別t成績n"for (i=0;i<Number;i+)if (strcmp(name,sti.name)=0)cout<<sti.name<<"t"<<sti.num<<"t"<<"t"<<sti.sex <<"t"<<sti.score<<endl ;.第四個就是刪除學生的而信息,這個大體上跟查找學生的差不多,只是在查出學生后處理的方式不一樣。查找是把學生的信息數(shù)出來就好,而刪除時則需要刪除該學生。刪除的思想是用該學生后面一個一個學生往前面的覆蓋。這里要注意的是,刪除信息后就要把信息保存到原有的文件中。具體代碼如下:void del()/刪除 int n=0;cout<<"1 按姓名刪除"<<endl;cout<<"2 按學號刪除"cin>>n;switch(n)case 1: xmsc();break;case 2: xhsc();break;void xmsc()/按姓名刪除 FILE *fp=NULL;char name60;int i=0;int j=0;printf("請輸入要刪除的學生姓名:");scanf("%s",name);for(i=0;i<Number;i+)if (strcmp(name,sti.name)=0) /如果查找到就刪除for (j=i;j<Number-1;j+)stj=stj+1;Number-;/將剩余數(shù)據寫入文件 重新一寫的方式打開文件 把以前的數(shù)據擦除了fp=fopen("F:/student.dat","wb");for (i=0;i<Number;i+)fwrite(&sti,sizeof(struct student),1,fp);/寫入一個數(shù)據塊fclose(fp);cout<<"刪除成功;"void xhsc()/按學號刪除 FILE *fp=NULL;char id60;int i=0;int j=0;cout<<"請輸入要刪除的學生學號:"cin>>id;for(i=0;i<Number;i+)if (strcmp(id,sti.num)=0) /如果查找到就刪除for (j=i;j<Number-1;j+)stj=stj+1;Number-;/將剩余數(shù)據寫入文件 重新一寫的方式打開文件 把以前的數(shù)據擦除了fp=fopen("F:/student.dat","wb");for (i=0;i<Number;i+)fwrite(&sti,sizeof(struct student),1,fp);/寫入一個數(shù)據塊fclose(fp);cout<<"刪除成功;"第五個是把學生的分數(shù)統(tǒng)計出來,這個也很好實現(xiàn)。就是把所有的學生的分數(shù)加在一起,然后把除以總數(shù)得出平均分:void tj()/統(tǒng)計 int i=0;double sum=0.0;for(i=0;i<Number;i+)sum+=sti.score;printf("全班總分為:%fn",sum);printf("平均分為:%fn",sum/Number); 第六個排序:把學生的信息按照分數(shù)的高低排序,然后可以輸出前幾位學生的信息輸出。void px()/排序 struct student temp;int wantNUmber=0;int i=0;int j=0;for(i=0;i<Number-1;i+)for(j=i;j<Number-1;j+)if(stj.score<stj+1.score)/比較 學生的成績temp=stj;stj=stj+1;stj+1=temp; printf("你想輸出前幾名的成績:");scanf("%d",&wantNUmber);if (wantNUmber>Number)wantNUmber=Number;cout<<"t姓名t學號t性別t成績"<<endl;for(i=0;i<wantNUmber;i+)cout<<sti.name <<sti.num <<sti.sex <<sti.score<<endl; 第七個是保存文件:void bc(struct student *st)/保存FILE *fp=NULL;fp=fopen("C:/student.dat","ab+");fwrite(st,sizeof(struct student),1,fp);fclose(fp);最后就是退出系統(tǒng)了,這個在主程序就實現(xiàn)了,很簡單就用一個exit(0)。.四 測試主程序 void main()int choose=0;FILE *fp=NULL;char yesorno;if(fp=fopen("F:/student.dat","rb")=NULL)cout<<("n=>提示:文件不存在,是否要創(chuàng)建一個?(y/n)n");cin>>yesorno;if(yesorno='y'|yesorno='Y') /這里僅為了建立文件,默認的地址在fp=fopen("F:/student.dat","wb");fclose(fp);elseexit(0);elseNumber=dq(st); /要是文件只能夠已經有數(shù)據 將數(shù)據初始化到數(shù)組中system("cls");while(true) xianshi();cout<<" =>請選擇:"scanf("%d",&choose);system("cls");switch(choose)case 0: exit(0);/退出 break; case 1: add();fh();/增加學生成績break; case 2: select();fh();/查看學生成績break; case 3: chazhao();fh();/ 查找 break;case 4: del(); fh();/刪除 break;case 5: tj();fh();/統(tǒng)計break;case 6: px();fh();/排序 break;case 7:bca();fh();/保存 break;default:break;fflush(stdin);getchar();system("cls");部分測試數(shù)據如下:主界面添加數(shù)據查看所有學生:查找學生:選著1姓名查詢刪除學生:比如按姓名來刪除再次查看所有學生按6進行排序,查看前兩名學生的成績按7保存信息。最后可以按0退出系統(tǒng)測試完畢。五 個人體會通過這次課程設計,我更加深刻的知道了我們學的c+和我們的生活密切相連,所以更應該注意平時上課各種小知識點的積累。然后上機具體操作的情況又與筆試有很大的不同,因為通過鍵盤操作,更容易出錯。所以我們平時在學習的時候,就應該做到邊學邊編,如果很久沒有接觸到c+的編譯環(huán)境,就會出現(xiàn)不知道從何如手。另外,程序的變化太大拉,它需要我們拓展課外知識,所以僅靠在課堂上的時間學好它是不現(xiàn)實的。有很多小的技巧,以及編程思想需要我們自己去領悟,這要求我們要有很好的自學能力。比如說這次變成如果沒有掌握好文件輸入,打開的話,就很難編出能實現(xiàn)功能的程序,還有需要到網上去查很多資料,不懂就要借鑒。編程最重要的是思路清晰,條理清楚,只有思路比較清楚的條件下,進展才比較順利。并且,在編譯過程中遇到的錯誤也要耐心去修改,并且記住這相應的錯誤代碼,以便以后遇到相同的情況,知道怎么修正。

注意事項

本文(C++課程設計報告--學籍管理系統(tǒng))為本站會員(dus****log)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!