題目六學生成績管理實驗報告_第1頁
題目六學生成績管理實驗報告_第2頁
題目六學生成績管理實驗報告_第3頁
題目六學生成績管理實驗報告_第4頁
題目六學生成績管理實驗報告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、HUNAN UNIVERSITY程序設計訓練報 告學生姓名 張楊陽 學生學號 201307020213 專業班級 電子1302 指導老師 賀再紅 2014 年9月 13日北京 湖南大學程序設計訓練報告 第 頁目 錄一 目的二 內容和要求三 設計分析四 程序調試與結論五 程序設計心得與體會六 附錄:參考文獻程序清單湖南大學程序設計訓練報告 題 目 一 目的1問題分析及解決方案框架確定l 充分地分析和理解問題本身,弄清要求做什么(What to do?)。l 在確定解決方案框架過程中(How to do?),考慮怎樣使程序結構清晰、合理、簡單和易于調試,并確定每個函數的簡單功能,以及函數之間的調用

2、關系。 2詳細設計和編碼 確定算法的主要流程,再此基礎上進行代碼設計(Coding),每個明確的功能模塊程序一般不超過60行,否則要進一步劃分。 3上機前編寫程序與檢查 上機前程序檢查可有效提高調試效率,減少上機調試程序時的無謂錯誤。 程序檢查主要有兩種途徑:用一組測試數據手工執行程序;通過閱讀或給別人講解自己的程序而深入全面地理解程序邏輯,把程序中的明顯錯誤事先排除。 4上機調試程序 5完成程序設計訓練報告 問題描述:題目要解決的問題是什么。 設計l 設計算法:主要算法思想,用流程圖表示。l 實現注釋:各項功能的實現程度。l 調試報告:調試過程中遇到的主要問題,是如何解決的;對設計和編碼的回

3、顧討論和分析;改進設想;經驗和體會等。 附錄:源程序清單和結果。如果題目規定了測試數據,則結果要包含這些測試數據和運行輸出,當然還可以含其他測試數據和運行輸出。二 內容和要求(本人所完成的任務)學生信息包括:學號、姓名、年齡、性別、出生年月。主要功能: (1)能按學期、按班級完成對學生成績的錄入、修改。(2能按班級統計學生的成績,求學生的總分及平均分,并能根據學生的平均成績進行排序。(3)能查詢學生成績。(4)能按班級輸出學生的成績單。三 輸入要求錄入修改統計查詢打印退出輸入相關信息輸入相關信息核對輸入修改信息計算總成績,平均成績排序輸入相關信息核對輸出成績輸出一個班的所有學生的成績,總分,平

4、均分四 程序調試與結論 1、在整個程序設計中,由于以前的C和C+學的并不好,所以在初期的設計中出了很多的錯誤:Ø 關于文件包含的操作,開始把所有的類的定義都放在頭文件中,把所有函數都定義在一個源文件中,然后將主程序寫在main源文件中,但是在編譯的時候出錯,提示所有的函數都未定義。找出問題后,原來我只是將這幾個文件都新建在同一個工程中,但是在編譯的時候并沒有將函數源文件增加到工程中去,所以編譯的時候沒法找到相應的函數定義。Ø 用switch結構時,每次進入主菜單都只能選擇一次功能,然后就會直接退出程序,不能進行下一次功能選擇。解決辦法:在switch結構之前定義一個整型變量

5、flag=0;用一個while循環語句實現每一次功能選擇完畢后退回主菜單。之后的選擇分支中退回主菜單的方法也是一樣的。Ø 關于查找的時候實現輸入的name_find字符數組于定義的name字符數組的匹配的時候出錯。我開始直接定義的一個字符串類型變量string name_find,然后使用strcnp(name name_find),但是編譯時報錯,我以為是因為頭文件中沒有包含string.h,在頭文件中增加#include<string>后還是有錯。2、此程序篇幅較長,且要求較多,但通過功能函數可以將程序分為幾個模塊,彼此沒有關聯,使復雜的程序簡單化,以后遇到相似問題也

6、可以如此解決。3、 程序的運行結果的截圖顯示 五 程序設計心得與體會此程序篇幅較長,且要求較多,但通過功能函數可以將程序分為幾個模塊,彼此沒有關聯,使復雜的程序簡單化,以后遇到相似問題也可以如此解決。六 附錄:參考文獻程序清單#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 100 /一個班的人數struct student long xq; /學期 char bj20; /班級 char xh20; /學號 char xm20; /姓名

7、 char xb8; /性別 long csny; /出生年月 float cj6; /6門成績 float total; /總分 float aver; /平均分;struct student xN;long xueqi; /學期char banji20; /班級int n; /一個班的實際人數 void a1(); /錄入void a2(); /修改void a3(); /統計void a4(); /查詢void a5(); /打印成績單main() int op;char ch;do system("cls");printf("n歡迎使用學生成績管理系統系統

8、n");printf("1. 錄入 n");printf("2. 修改 n");printf("3. 統計 n");printf("4. 查詢 n");printf("5. 打印 n");printf("6. 退出 n");scanf("%d",&op);switch(op) case 1:a1();ch='Y'break; case 2:a2();ch='Y'break; case 3:a3();ch=&

9、#39;Y'break; case 4:a4();ch='Y'break; case 5:a5();ch='Y'break; default:ch='N'break;while(ch='Y');void a1()/錄入 char xuehao20; /一個學生的學號后兩位int i,j;printf("輸入學期 班級 人數n");scanf("%ld%s%d",&xueqi,banji,&n);for(i=0;i<n;i+) xi.xq=xueqi; strcp

10、y(xi.bj,banji);strcpy(xi.xh,"2013080102"); system("cls");/清屏printf("輸入第%d個學生的學號(后兩位)、姓名、性別、出生年月n",i+1);scanf("%s%s%s%ld",xuehao,xi.xm,xi.xb,&xi.csny);strcat(xi.xh,xuehao); printf("輸入第%d個學生的6門成績n",i+1); for(j=0;j<6;j+)scanf("%f",&

11、xi.cjj); getch();void a5()/打印 int i,j;system("cls");for(i=0;i<n;i+)printf("學 期 班級 學號 姓名 性別 出生年月 六門成績 總成績 平均分n");printf("%6ld %8s %12s%-8s %s %8ld ",xi.xq,xi.bj,xi.xh,xi.xm,xi.xb,xi.csny); for(j=0;j<6;j+) printf("%.0f ",xi.cjj);/輸出六門成績 printf("%5.1f

12、%5.1fnn",xi.total,xi.aver);/輸出總成績,平均成績getch();void a2()/ 修改 long xq; char bj20,xh20,xm20,yn;int i,j;dosystem("cls");printf("輸入要修改的學生的學期號和班級、學號、姓名n");scanf("%ld%s%s%s",&xq,bj,xh,xm);for(i=0;i<n;i+) if(xi.xq=xq)/核對學期 if(strcmp(xi.bj,bj)=0)/核對班級 if(strcmp(xi.xh

13、,xh)=0)/核對學號 if(strcmp(xi.xm,xm)=0)/核對姓名 for(j=0;j<6;j+) scanf("%f",&xi.cjj); break; printf("繼續修改學生成績嗎(Y/N)n");scanf("%s",&yn);while(yn='y');getch();void a3()/統計int i,j; float s=0;struct student t;system("cls");for(i=0;i<n;i+) s=0; for(j=

14、0;j<6;j+) s=s+xi.cjj; xi.total=s; xi.aver=s/6.0; for(i=0;i<n-1;i+)/排序 for(j=n-1;j>=i+1;j-) if(xj.aver<xj-1.aver) t=xj;xj=xj-1;xj-1=t; getch();void a4()/查詢 char xh20,xm20,yn;int i,j;dosystem("cls");/清屏printf("輸入要查詢學生的學號和姓名n");scanf("%s%s",xh,xm);for(i=0;i<n;i+) if(strcmp(xi.xh,xh)=0)&&(strcmp(xi.xm,xm)=0)/核對學號,姓名printf("學 期 班級 學號 姓名 性別 出生年月 六門成績 總成績 平均分n");printf("%6ld %8s %12s%-8s %s %8ld ",xi.xq,xi.bj,xi.xh,xi.xm,xi.xb,xi.csny); for(j=0;j

溫馨提示

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

評論

0/150

提交評論