題目六學(xué)生成績管理實(shí)驗(yàn)報(bào)告_第1頁
題目六學(xué)生成績管理實(shí)驗(yàn)報(bào)告_第2頁
題目六學(xué)生成績管理實(shí)驗(yàn)報(bào)告_第3頁
題目六學(xué)生成績管理實(shí)驗(yàn)報(bào)告_第4頁
題目六學(xué)生成績管理實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

4、均分四 程序調(diào)試與結(jié)論 1、在整個(gè)程序設(shè)計(jì)中,由于以前的C和C+學(xué)的并不好,所以在初期的設(shè)計(jì)中出了很多的錯(cuò)誤:Ø 關(guān)于文件包含的操作,開始把所有的類的定義都放在頭文件中,把所有函數(shù)都定義在一個(gè)源文件中,然后將主程序?qū)懺趍ain源文件中,但是在編譯的時(shí)候出錯(cuò),提示所有的函數(shù)都未定義。找出問題后,原來我只是將這幾個(gè)文件都新建在同一個(gè)工程中,但是在編譯的時(shí)候并沒有將函數(shù)源文件增加到工程中去,所以編譯的時(shí)候沒法找到相應(yīng)的函數(shù)定義。Ø 用switch結(jié)構(gòu)時(shí),每次進(jìn)入主菜單都只能選擇一次功能,然后就會(huì)直接退出程序,不能進(jìn)行下一次功能選擇。解決辦法:在switch結(jié)構(gòu)之前定義一個(gè)整型變量

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

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

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

8、n");printf("1. 錄入 n");printf("2. 修改 n");printf("3. 統(tǒng)計(jì) 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; /一個(gè)學(xué)生的學(xué)號(hào)后兩位int i,j;printf("輸入學(xué)期 班級(jí) 人數(shù)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個(gè)學(xué)生的學(xué)號(hào)(后兩位)、姓名、性別、出生年月n",i+1);scanf("%s%s%s%ld",xuehao,xi.xm,xi.xb,&xi.csny);strcat(xi.xh,xuehao); printf("輸入第%d個(gè)學(xué)生的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("學(xué) 期 班級(jí) 學(xué)號(hào) 姓名 性別 出生年月 六門成績 總成績 平均分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("輸入要修改的學(xué)生的學(xué)期號(hào)和班級(jí)、學(xué)號(hào)、姓名n");scanf("%ld%s%s%s",&xq,bj,xh,xm);for(i=0;i<n;i+) if(xi.xq=xq)/核對(duì)學(xué)期 if(strcmp(xi.bj,bj)=0)/核對(duì)班級(jí) if(strcmp(xi.xh

13、,xh)=0)/核對(duì)學(xué)號(hào) if(strcmp(xi.xm,xm)=0)/核對(duì)姓名 for(j=0;j<6;j+) scanf("%f",&xi.cjj); break; printf("繼續(xù)修改學(xué)生成績嗎(Y/N)n");scanf("%s",&yn);while(yn='y');getch();void a3()/統(tǒng)計(jì)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("輸入要查詢學(xué)生的學(xué)號(hào)和姓名n");scanf("%s%s",xh,xm);for(i=0;i<n;i+) if(strcmp(xi.xh,xh)=0)&&(strcmp(xi.xm,xm)=0)/核對(duì)學(xué)號(hào),姓名printf("學(xué) 期 班級(jí) 學(xué)號(hào) 姓名 性別 出生年月 六門成績 總成績 平均分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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論