第一篇:C語言程序設計基礎課程設計報告
程序設計基礎課程設計報告
課程名稱: 課程設計題目: 程序設計基礎課程設計 學生信息管理系統(tǒng)
姓
名:
系: 專
業(yè): 年
級: 學
號: 指導教師: 職
稱:
計算機科學技術系 計算機網(wǎng)絡技術
講師
2012年1月1日
一、設計題目及要求。
1、題目:學生信息管理系統(tǒng)
2、要求:
1)建立學生信息的結構體
2)學生信息的初始化(可以從文件獲取)3)學生信息的添加、修改、查找 4)學生信息的輸出 5)對學生信息按學號排序 6)計算一門課的平均分和總分 7)將學生信息保存為文件
二、設計算法設計分析。
1、主要功能模塊:添加模塊、查找模塊、修改模塊、排序模塊 添加模塊:
(1)從鍵盤中輸入添加學生的人數(shù)n.(2)從鍵盤中輸入學生的學號和各科成績,分別存入一維數(shù)組sum和二維數(shù)組score中。
(3)計算各科的總分和平均分,分別存入一維數(shù)組sum和aver中。
(4)判斷各個學生的三科成績是否都大于90,如果是則輸出“Y”,表示該生能獲得獎學金,否則輸出“N”表示該生不能獲得獎學金。
添加模塊結果圖
查找模塊
(1)從鍵盤中輸入要查找的學生的學號k..(2)編寫程序使num[i]與k一一對比,直到num[i]==k,輸出該生的學號及相應成績。
查找模塊結果圖
修改模塊:
(1)從鍵盤中輸入要修改的學生的學號x..(2)編寫程序使num[i]==x,輸出該生的成績,選擇你要修改的科目并輸入你修改后的新分數(shù),重新計算該生的總分和平均分。
(3)重新判斷該生的三門課成績是否都大于
90,如果是則輸出“Y”,表示該生能獲得獎學金,否則輸出“N”表示該生不能獲得獎學金。
修改模塊的結果圖
三、程序編碼實現(xiàn)。源代碼與執(zhí)行結果2部分
/*函數(shù)功能:添加一個或幾個學生的成績,查找某個學生的成績,修改某個學生的成績
函數(shù)參數(shù):長整型數(shù)組num,存儲每個學生的學號
整型數(shù)組score,存儲每個學生的成績
整型數(shù)組sum,存儲每個學生的總分
實型數(shù)組aver,存儲每個學生的平均分
字符型數(shù)組c,標志每個學生能否獲得獎學金
整型數(shù)n,存儲學生總數(shù) 函數(shù)返回值:無 */
void Find(long num[],int score[][3],int sum[],float aver[],char c[],int n){ long x,t,k;int i,j;
printf(“請選擇您要實現(xiàn)的功能:1-添加,2-查找,3-修改n”);scanf(“%ld”,&t);if(t==1){ printf(“請輸入你要添加的人數(shù):”);scanf(“%d”,&A);printf(“Enter No and Score as: MT EN PHn”);for(i=n;i printf(“學號t數(shù)學t英語t物理t總分t平均成績t>90n”); printf(“%4ldt”,num[i]); for(j=0;j<3;j++){ printf(“%4dt”,score[i][j]);} printf(“%5dt%6.1ftt%cn”,sum[i],aver[i],c[i]);} } } if(t==3){ printf(“請輸入學號:”);scanf(“%ld”,&x);for(i=0;i printf(“請輸入你要修改的選項所對應的數(shù)字:0-MT,1-EN,2-PHn”); scanf(“%d”,&j); printf(“你將修改為:”); scanf(“%d”,&score[i][j]); sum[i]=0; for(j=0;j<3;j++) { sum[i]=sum[i]+score[i][j]; } aver[i]=(float)sum[i]/3; if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90)) { c[i]='Y'; } else { c[i]='N'; } } } } } /*函數(shù)功能:按學號對學生排序 函數(shù)參數(shù):長整型數(shù)組num,存儲每個學生的學號 整型數(shù)組score,存儲每個學生的成績 整型數(shù)組sum,存儲每個學生的總分 實型數(shù)組aver,存儲每個學生的平均分 字符型數(shù)組c,標志每個學生能否獲得獎學金 整型數(shù)n,存儲學生總數(shù) 函數(shù)返回值:無 */ void order(long num[],int score[][3],int sum[],float aver[],char c[],int n){ int i,j,t,x;long k;float g;char h;for(i=0;i x=score[i][j]; score[i][j]=score[t][j]; score[t][j]=x;} } } 執(zhí)行結果(1): (2) 四、程序調試過程中出現(xiàn)的問題: 開始運用添加功能時,雖然添加了,但在輸出結果中不顯示。 解決辦法:將最后的輸出中的i 五、總結 在課程設計的這段日子里,我真正體會到什么叫失敗是成功之母,因為在編寫程序時會出現(xiàn)這樣或那樣的錯誤,有的是語法錯誤,有的是邏輯錯誤,還有的是由于自己粗心漏掉或多加了一些符號等等,但只要你能靜下心來慢慢尋找原因,慢慢修改,最后終能成功。但如果你在編程時格外細心,你將會減少許多麻煩,同時也會節(jié)省很多時間。 匯編語言程序設計課程設計指導書 一、課程設計的目的 本課程設計是《匯編語言程序設計》課程的后繼教學環(huán)節(jié),其宗旨是使學生通過對一個較大型的、綜合性的應用程序進行閱讀、修改、添加功能等工作,對匯編語言程序設計有更進一步的認識,提高編程技巧和閱讀理解復雜程序的能力。 二、課程設計的任務要求 根據(jù)所給的“Reader.asm”應用程序框架,在此基礎上修改和添加功能。1.基本任務: ? ? ? ? 認真閱讀“Reader.asm”源程序,理解程序每一條指令在程序中的作用; 用→、←鍵在窗口內左右移動文本; 用PgDn,PgUp鍵上下快速移動文本(每次移半幀); 設計專用鍵放大、縮小窗口,改變窗口位置。 2.擴展任務: ? ? 對文本內的Tab字符(ASCII碼09H)進行處理:遇到Tab鍵,下一個字符顯示在下一個表站開始處(每個6個字符一個表站); 設置狀態(tài)行,顯示當前文件名、文本位置(仿垂直滾動條)。 3.自行設計的其它任務: 三、課程設計報告的內容 1.課程設計題目名稱、班級號、學號、學生姓名和課程設計起止日期(封面); 2.上海應用技術學院課程設計任務書(下發(fā))3.課程設計目的和要求; 4.課程設計任務內容; 5.詳細設計說明; 6.軟件使用說明; 7.課程設計總結; 8.附錄:1 參考文獻 2 程序清單(電子版)。 四、課程設計詳細設計說明及其它要求 1.2.3.4.5.6.分析原“Reader.asm”程序結構:每個模塊說明,較大模塊程序流程圖; 對你已經(jīng)實現(xiàn)的功能做詳細的說明,并附上流程圖及部分程序清單; 自己對該“文件閱讀器”的進一步設想; 對于有設想但最終未實現(xiàn)的功能的大致編程思路的闡述; 論述在設計過程中遇到的并且對你具有啟發(fā)性的問題; 交課程設計報告手寫版,源程序交電子版。 五、評分標準 1.根據(jù)平時出勤情況和設計時的工作情況; 2.根據(jù)課程設計程序的完成情況,必須有可運行的軟件。3.根據(jù)課程設計報告的質量。課程設計報告不能抄襲,抄襲判為不及格。4.在題目要求之外附加具有實用性的功能。 六、課程設計工作進度計劃 星期一:課程設計介紹,源程序閱讀理解,功能設計,程序編寫。星期二:功能設計,程序編寫。 星期三:程序編寫與調試,課程設計報告撰寫。星期四:程序編寫與調試,課程設計報告撰寫。 星期五:程序最終修改,課程設計報告撰寫,提交報告并答辯。 七、主要參考資料 [1]楊文顯.匯編語言程序設計簡明教程.北京:電子工業(yè)出版社,2005 八、附錄 《文本閱讀器》匯編語言源程序清單 ;Title: Assemble Program “Reader.asm” ;Read a file from disk, display it?s contents on screen;Move the content on screen by up/down arrow keys;========================== MYDAT SEGMENT MAXLEN DW 1000;最大行數(shù) INDEX DW 1000 DUP(?);行索引 LENCT DW 0;實際行數(shù) CURLINE DW 0;當前頁第一行行數(shù) CCOUNT DW ?;文件總字符數(shù) TOP DB 5;窗口左上角行數(shù) LEFT DB 5;窗口左上角列數(shù) WS DW 60;窗口寬度 HS DW 15;窗口高度 FG DB 17H;文字屬性 FGB DB 1FH;窗口邊框屬性 MSG1 DB 'File:$';輸入文件名提示 MSG2 DB 'File open error!$';打開文件出錯時提示 MSG3 DB 'File read error!$';讀文件出錯時提示 FILENA DB 80,?,80 DUP(?);輸入文件名緩沖區(qū) ;定義功能鍵和相應的處理程序 ;每個功能定義兩個數(shù)據(jù):掃描碼,處理程序入口地址;該數(shù)據(jù)由DOSUB子程序使用 KEYSUB DW 48H, SUB1 , 50H, SUB2, 0 MYDAT ENDS ;========================== BUFFER SEGMENT PARA DB 65535 DUP(?);文件緩沖區(qū),文件最大為64K BUFFER ENDS ;========================== SSEG SEGMENT STACK ?STACK?;堆棧段 DW 100 DUP(?)SSEG ENDS ;========================== ;宏定義 DISPINIT: 設置顯示器顯示方式 DISPINIT MACRO MOV AX,0003H;文本方式 25x80 INT 10H ENDM;----------;宏定義 PROMPT: 顯示字符串 PROMPT MACRO OUTMSG LEA DX, OUTMSG MOV AH, 09H;INT 21H;ENDM;--------;宏定義KRYIN: 從鍵盤讀入一個字符 KEYIN MACRO MOV AH,0;讀鍵 INT 16H;AH中為掃描碼 ENDM;==========================;代碼段開始 CODE SEGMENT ASSUME CS: CODE, DS: MYDAT, ES: BUFFER, SS: SSEG START: MOV AX, MYDAT;裝載DS,ES MOV DS, AX MOV AX, BUFFER MOV ES, AX DISPINIT;顯示方式初始化 CALL READFILE;讀入文件 JC DONE CALL CLIST;初始化索引行 CALL CLSCREEN;清屏 CALL CREWIN;創(chuàng)建窗口 CALL SHOWCUR;顯示當前頁 NEXT: KEYIN;進入主程序: 讀鍵盤 CALL COMMAND;命令分析與處理 JNC NEXT;非x鍵繼續(xù)循環(huán) DONE: CALL CLSCREEN;清屏 MOV AX, 4C00H INT 21H;退出 ;-------;子程序READFILE: 提示并讀入文件名,將文件讀入緩沖區(qū) READFILE PROC PROMPT MSG1;CALL SIN;讀入文件名 MOV AX, 3D00H MOV DX, OFFSET FILENA+2 INT 21H;打開文件(讀)JC GETERR1;打開文件出錯轉GETERR1 PUSH DS PUSH ES POP DS;將DS指向文件緩沖區(qū)段 MOV BX, AX;BX=文件號 MOV AH, 3FH;讀文件 MOV CX, 0FFFFH;讀入最多64K-1 MOV DX, 0;DS: DX指向文件緩沖區(qū) INT 21H POP DS JC GETERR2;讀入文件出錯轉GETERR2 MOV CCOUNT, AX;實際讀入字符數(shù)存入CCOUNT中 CLC JMP GETFILEXIT GETERR1: PROMPT MSG2;讀入文件出錯處理 KEYIN STC JMP GETFILEXIT; GETERR2: PROMPT MSG3;打開文件出錯處理 KEYIN STC GETFILEXIT: RET READFILE ENDP;-------;輸入文件名子程序 SIN PROC MOV AH, 0AH MOV DX, OFFSET FILENA INT 21H;輸入文件名 XOR CH, CH MOV CL, FILENA+1;取文件名長度 LEA BX, FILENA+2 ADD BX, CX;計算字符串結尾地址 MOV BYTE PTR [BX], 0;在字符串尾部加0 RET SIN ENDP;-------;索引行初始化子程序 CLIST PROC MOV CX, CCOUNT JCXZ CSTX;文件為空結束 MOV SI,0;文件緩沖區(qū)字符指針 MOV DI,0;索引行指針 MOV DX,0;行數(shù)計數(shù) MOV INDEX[DI], 0 INC DX;假設文件至少有一行 CST1: CMP WORD PTR ES:[SI], 0A0DH;判斷是否為回車換行符 JNZ CST2;不是行結束,轉CST2 INC DX;行數(shù)加一 ADD SI, 2;跳過回車換行符 ADD DI, 2;索引行指針加一 MOV INDEX[DI], SI;指向本行開始地址 CMP DX, MAXLEN JNC CST4;是否超過最大行,超過轉CST4,結束 JMP CST3;CST2: INC SI;文件緩沖區(qū)字符指針指向下一字符 CST3: LOOP CST1;CST4: MOV LENCT, DX;保存行數(shù)到LENCT中 CSTX: RET CLIST ENDP;-------;清屏子程序 CLSCREEN PROC MOV AX, 0600H;清屏 MOV CX, 0 MOV DH, 50 MOV DL, 79 MOV BH, 07H INT 10H RET CLSCREEN ENDP;------;顯示當前頁子程序 SHOWCUR PROC MOV DH, 0;窗口最頂行 MOV SI, CURLINE;取當前頁第一行行數(shù) MOV CX, HS;窗口的第一行和最后一行為邊框,SUB CX, 2;所以能夠顯示內容的高度為窗口高度減二 SC1: CALL SHOWLINE;顯示一行 INC DH;窗口下一行 INC SI;文件下一行 MOV AX, LENCT;CMP SI, AX;文件是否顯示完 JNC SC2;顯示完則轉SC2 LOOP SC1 JMP SC1X SC2: JCXZ SC1X;該頁顯示滿則結束 ;該頁沒有顯示滿,則用空行填滿該頁 SC3: PUSH CX PUSH DX CALL SHOWSPLINE;顯示空行 POP DX POP CX INC DH LOOP SC3 SC1X: RET SHOWCUR ENDP;------;顯示一行子程序 ;輸入:SI=顯示行行號;DH=窗口中的行號 SHOWLINE PROC PUSH CX PUSH SI PUSH DX PUSH AX ADD DH, TOP;INC DH;實際行數(shù)=窗口左上角行數(shù)+DI+1 MOV DL, LEFT;INC DL;實際列數(shù)=窗口左上角列數(shù)+1 CALL VADD; MOV CX, WS;窗口的第一列和最后一列是邊框,SUB CX, 2;所以能夠顯示內容的寬度為窗口寬度減二 SHL SI, 1;行索引為字類型,所以乘二 MOV SI, INDEX[SI];取該行第一個字符在文件緩沖區(qū)的地址 PUSH DS MOV AX, 0B800H MOV DS, AX;DS指向顯示緩沖區(qū)段地址 SL1: MOV AX, ES:[SI] CMP AX, 0A0DH JZ SL2;如果是回車換行,則該行結束 MOV DS: [DI], AL;顯示一個字符 ADD DI, 2;INC SI;取下一個字符 LOOP SL1;JCXZ SLX;該行正好顯示完,則結束,否則用空格填滿 SL2: MOV BYTE PTR DS:[DI], ' ';該行沒有顯示滿,則用空格填滿 ADD DI, 2 LOOP SL2 SLX: POP DS POP AX POP DX POP SI POP CX RET SHOWLINE ENDP;--------;顯示空行子程序 ;輸入:DI=窗口中的行號 SHOWSPLINE PROC; MOV AX, HS;SUB AX, 2;CMP DH, AL;顯示的空行是否超出最低行 JNC SSLX;如果是,則轉SSLX ADD DH, TOP;INC DH;實際行數(shù)=窗口左上角行數(shù)+DI+1 MOV DL, LEFT;INC DL;實際列數(shù)=窗口左上角列數(shù)+1 CALL VADD; MOV CX, WS;窗口的第一列和最后一列是邊框,SUB CX, 2;所以能夠顯示內容的寬度為窗口寬度減二 PUSH DS MOV AX, 0B800H MOV DS, AX SSL1: MOV BYTE PTR DS:[DI], ' ' ADD DI, 2 LOOP SSL1 POP DS SSLX: RET SHOWSPLINE ENDP;-------;創(chuàng)建窗口子程序 CREWIN PROC PUSH ES MOV AX, 0B800H;顯示緩沖區(qū)地址為B800:0 MOV ES, AX; MOV DH, TOP MOV DL, LEFT;窗口左上角行列數(shù) MOV CX, HS;窗口高度(行數(shù))CW1: PUSH DX;CALL VADD;計算地址 PUSH CX;MOV CX, WS;窗口寬度(列數(shù)) MOV AL, FG;取屬性 CW2: MOV BYTE PTR ES:[DI], ' ';送空白字符 INC DI;MOV BYTE PTR ES:[DI], AL;送屬性 INC DI;LOOP CW2; POP CX POP DX INC DH;行數(shù)加一 LOOP CW1 CALL DRAWB;畫邊框 POP ES RET CREWIN ENDP;-;畫邊框子程序 DRAWB PROC PUSH DX PUSH CX PUSH BX PUSH AX MOV BL, FGB MOV DH, TOP MOV DL, LEFT CALL VADD ;畫左上角角框 MOV BYTE PTR ES:[DI], 0C9H INC DI MOV BYTE PTR ES:[DI], BL INC DI ;畫第一行邊框 MOV CX, WS SUB CX,2 DB1: MOV BYTE PTR ES:[DI], 0CDH INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB1 ;畫右上角角框 MOV BYTE PTR ES:[DI], 0BBH INC DI MOV BYTE PTR ES:[DI], BL ;畫第二行到倒數(shù)二行左右邊框 MOV DH, TOP MOV DL, LEFT INC DH MOV CX, HS SUB CX, 2 DB2: PUSH DX CALL VADD MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL DEC DI MOV AX, WS DEC AX SHL AX, 1 ADD DI, AX MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL POP DX INC DH LOOP DB2;取邊框屬性;窗口左上角行列數(shù);計算地址;角框╔;因為去掉了左右角框,所以寬度減二;上下邊框═;角框╗;從第二行開始;第一行和最后一行沒有左右邊框,;所以高度減二;;計算左邊框地址;左右邊框║;;;;計算右邊框地址;;下一行; ;畫左下角角框 MOV DH, TOP;MOV DL, LEFT;MOV AX, HS;DEC AX;ADD DH, AL;左下角行數(shù)=右上角行數(shù)+窗口高度-1 CALL VADD MOV BYTE PTR ES:[DI], 0C8H;角框╚ INC DI MOV BYTE PTR ES:[DI], BL INC DI ;畫最低行邊框 MOV CX, WS;SUB CX, 2;因為去掉了左右角框,所以寬度減二 DB3: MOV BYTE PTR ES:[DI], 0CDH;上下邊框═ INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB3 ;畫右下角角框 MOV BYTE PTR ES:[DI], 0BCH;角框╝ INC DI MOV BYTE PTR ES:[DI], BL POP AX POP BX POP CX POP DX RET DRAWB ENDP;------;計算窗口內某行列位置對應顯存地址;輸入:DH=行 DL=列;輸出:DI為顯存地址 VADD PROC MOV AL, 80;MUL DH;XOR DH, DH;ADD AX, DX;行數(shù)×80+列數(shù) SHL AX, 1;乘2,因為每個字符占兩個字節(jié) MOV DI, AX RET VADD ENDP;--------;命令分析子程序 COMMAND PROC CMP AH, 2DH;2DH為x鍵的掃描碼 JNZ COM1;不是x鍵,轉COM1 STC;值x鍵標志 RET COM1: CALL DOSUB;轉命令散轉子程序 CLC RET COMMAND ENDP;--;命令散轉子程序 DOSUB PROC MOV AL, AH MOV AH, 0;將鍵掃描碼放入AX中 MOV BX, OFFSET KEYSUB;BX指向KEYSUB DOSUB1: CMP WORD PTR [BX], 0 JZ DOSUBX;KEYSUB表查完,即沒有找到轉DOSUBX CMP AX, [BX] JZ DOSUB2;找到掃描碼轉DOSUB2 ADD BX, 4 JMP DOSUB1;DOSUB2: ADD BX, 2 MOV BX, [BX];取處理程序入口地址 JMP BX;轉處理程序 DOSUBX: RET ;SUB1和SUB2均為功能鍵處理程序;處理完后應使用JMP DOSSUBX結束 ;上箭頭鍵處理程序 SUB1: CMP CURLINE, 0 JZ SUB1X;已到第一行,結束 DEC CURLINE;向上一行 CALL SHOWCUR;顯示當前頁 SUB1X: JMP DOSUBX ;下箭頭鍵處理程序 SUB2: MOV AX, LENCT DEC AX DEC AX;至少顯示一行 CMP AX, CURLINE;已到最后一行 JZ SUB2X INC CURLINE;向下一行 CALL SHOWCUR;顯示當前頁 SUB2X: JMP DOSUBX DOSUB ENDP;-------- CODE ENDS ;========================= END START 《c語言程序設計基礎》重修試卷 一、選擇題(2’*20=40’) 1、c程序由構成。 A.函數(shù)B.命令C.程序D.表達式 2、以下選項中合法的變量名是 A.#y2B.a A.floatB.charC.intD.double4、在我們使用的turboC中,一個int型數(shù)據(jù)在內存中占個字節(jié) A.0B.1C.2D.45、若有定義:int a=8,b=5,c;執(zhí)行語句c=ab+0.4后c= A.1.4B.1C.2.0D.26、在c語言中,char型數(shù)據(jù)在內存中的存儲形式是 A.補碼B.ASSCIIC.原碼D.反碼 7、若運行時給變量x輸入 總第3課時備課 第 3課時 課題:E語言程序設計基礎 教學內容:青島版八年級下冊信息技術第 13頁至第 17 頁 一、教學分析 【教學內容分】 本課是在第1課學習用E語言程序解決高斯問題的基礎上,繼續(xù)學習用E 語言的基礎知識,包括數(shù)據(jù)類型、常量、變量等以及賦值的方法。 【教學對象分析】學生對程序運行的結果或者說是對程序能夠解決的問題比較感興趣,但對 設計程序所要設計的組件,編寫代碼比較陌生,無從下手,還沒有形成一個編寫程序的思想。 【教學目標】 知識和技能目標:了解E語言的基礎知識,包括基本數(shù)據(jù)類型、常量、變量、運算符、命 令等;能夠正確定義常量和變量及其數(shù)據(jù)類型;掌握賦值、輸入、輸出的方法;熟悉程序設計中的運算符與數(shù)學運算符號的區(qū)別 過程與方法目標: 通過學生的自主探究,組內交流及教師的耐心指導完成任務情感態(tài)度與價值觀目標:了解E語言的基礎知識,熟悉E語言編程代碼的輸入以及數(shù)據(jù)類 型的定義與使用,嘗試通過設計小程序來解決問題,培養(yǎng)學習E語言的興趣和信心。 【教學重點】 定義常量和變量及其數(shù)據(jù)類型;賦值、輸入、輸出的方法。 【教學難點】 正確定義常量和變量及其數(shù)據(jù)類型;賦值、輸入、輸出的方法;熟悉程序設計 中的運算符與數(shù)學運算符號的區(qū)別 【教學方法】 自主探究、合作交流 【教學資源】 硬件資源:計算機、電子教室軟件資源:E語言 軟件 【評價方法】 評價量規(guī):優(yōu)秀、良好、一般評價方式: 自我評價與小組評價 二、教學過程 教學進程 教師活動 學生活動 設計意圖 修訂 復習導入: 回顧上節(jié)課所學知識并回答 鞏固所學知識讓學生回顧解決高斯問有利于本課的學 導入新課 題的大體步驟習 引入:使用E語言編程解決1+2等于幾 探究任務一:啟動E語同學們參照課本完成組件的鍛煉學生的動手 探究任務言,并在程序窗體中設計設計并思考 操作能力,并培養(yǎng)一如需組件: 學生在操作中思 考方法 要求:想一想能不能不用 讓同學們在掌握組內交流 課本中給的方法,你有其學生思考并交流是否可行 方法的基礎上勇 他方法嗎 于探索 完成任務讓學生脫離課本進行操 加深記憶 一 作 學生觀察并識記 探究任務定義變量、并了解全局變學生參照課本正確定義所需 二量和局部變量以及常量的區(qū)別 變量 檢查任務有的同學不會輸入變量 二的完成行,或者是不能刪除多余 情況的行 探究任務 編寫代碼并運行程序 學生自主完成發(fā)揮學生的主觀三 能動性 并檢查完成情況 要求同學們在有限的時 鞏固本課知識 限進作業(yè) 間內完成課本第17頁實同學們認真完成并讓學生進行知 踐與創(chuàng)新部分 識的遷移 發(fā)揮學生的主觀師生評價 先讓組內進行交流評價 同學們觀察,并進行評價發(fā)表能力性,讓學生參 老師隨機抽取每個組內自己的觀點或建議 與評價,激發(fā)學生 一個作品進行演示 的興趣 鞏固本課的知識歸納總結 師讓生歸納,師進行補充學生歸納 要點 或強調 C語言程序設計課程設計任務書 項目4: 高校工資管理系統(tǒng)一、課程設計項目: 高校工資管理系統(tǒng) 二、目的與要求: 1、目的: (1)要求學生達到熟練掌握C++語言的基本知識和技能;(2)基本掌握面向對象程序設計的基本思路和方法; (3)能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。 2、基本要求: (1)要求利用面向對象的方法以及C++的編程思想來完成系統(tǒng)的設計; (2)要求在設計的過程中,建立清晰的類層次; (3)在系統(tǒng)中至少要定義四個類,每個類中要有各自的屬性和方法; (3)在系統(tǒng)的設計中,至少要用到面向對象的一種機制。 3、創(chuàng)新要求: 在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結果進行修改的功能。 4、寫出設計說明書 三、設計方法和基本原理: 1、功能要求 問題的描述(功能要求): 現(xiàn)一高校有五類職工:教師,實驗員,行政人員,教師兼職實驗員,行政人員兼職教師。為了實現(xiàn)工資發(fā)放的自動功能,現(xiàn)要求編寫程序來自動完成此功能。同時注意生成的相關數(shù)據(jù)結果以文件方式存放在硬盤中。程序應具備從鍵盤錄入,文件的可繼續(xù)錄入,任意職工的工資查詢(可由職工編號和職工姓名來實現(xiàn)),如若有職工由于工作調動,則可進行相對應的刪除動作。 相關信息: 每一學期將學校職工的本學期任職情況及上學期工作的相關情況輸入計算機,則本學期職工的月工資按程序處理后的結果發(fā)放,其中職工的工資計算方法如下: 其中工資的基本構成如下: 教師: 基本工資+課時費; 實驗員: 基本工資+實驗室補助; 行政人員: 基本工資+行政補貼; 教師兼職實驗員: 基本工資+課時費+實驗室補助; 行政人員兼職教師:基本工資+行政補貼+課時費;(其中: 1.課時費:教師每一學期的基本工作量為120,實驗員每學期基本工作量為70,行政人員沒有基本工作量,每節(jié)課時費為20元;課時費=(上學期工作量-基本工作量)*20;注意:如果上學期基本工作量沒完成,則其(上學期工作量-基本工作量)*20為負值。 2.基本工資:教師800元,實驗員650元,行政人員750元。 3.行政補貼:250元。4.實驗室補助:150元。 2、問題的解決方案: 根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: a)寫出需求分析(該程序要實現(xiàn)什么什么樣的功能)b)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為; c)根據(jù)問題描述,設計系統(tǒng)的類層次; d)完成類層次中各個類的描述(包括屬性和方法); e)完成類中各個成員函數(shù)的定義; f)用戶界面的設計 g)分析系統(tǒng)功能模塊(系統(tǒng)流程圖)h)代碼編寫 i)功能調試; j)完成系統(tǒng)總結報告以及系統(tǒng)使用說明書。 四、程序設計和調試: 五、答辯與評分標準: 1、完成基本功能:60分; 2、設計報告及使用說明書:10分; 3、設置錯誤或者按照要求改變結果:15分; 4、回答問題:15分。 六、報告: 包括系統(tǒng)設計要求,設計思路,系統(tǒng)功能模塊圖,系統(tǒng)流程圖,類的層次圖(包括類成員列表),調試過程,關鍵程序代碼,總結,參考書目等。第二篇:語言程序設計課程設計指導書
第三篇:c語言程序設計基礎
第四篇:E語言程序設計基礎
第五篇:C語言程序設計課程設計任務書