

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 說 明 書</p><p> 課程名稱: 高級語言程序設計 </p><p> 設計題目: 學生成績管理 </p><p> 院 部: 計算機科學與信息工程學院 </p><p> 學生姓名:
2、 </p><p> 學 號: </p><p> 專業(yè)班級: </p><p> 指導教師: </p><p><b> 2013年 6月</b></p&
3、gt;<p> 課 程 設 計 任 務 書</p><p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1</b></p><p><b> 3 概要設計1</b&
4、gt;</p><p><b> 4 詳細設計2</b></p><p> 5 改進或增加功能模塊說明4</p><p><b> 6 程序測試4</b></p><p> 7 課程設計總結5</p><p><b> 8 致 謝5</
5、b></p><p><b> 9 參考文獻5</b></p><p><b> 10 源程序5</b></p><p><b> 學生成績管理</b></p><p><b> 1 前言</b></p><p>
6、 編寫一個程序來實現(xiàn)算術計算器。通過結構體數(shù)組和共用體數(shù)組來存放輸入的每一數(shù)字或運算符號的記錄(包括1、2、3等數(shù)字,+、--、*、等運算符號),然后將其信息存入文件中。輸入一個算術計算式,就在屏幕上顯示結果。</p><p><b> 2 需求分析</b></p><p><b> 2.1要求</b></p><p&g
7、t; ?。?)用C語言實現(xiàn)程序設計;</p><p> (2)利用結構體、共用體進行相關信息處理;</p><p> ?。?)畫出查詢模塊的流程圖;</p><p> (4)系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);</p><p> ?。?)界面友好(良好的人機互交),程序要有注釋。</p><p><b&g
8、t; 2.2任務</b></p><p> ?。?)定義一個結構體類型數(shù)組,輸入0~9及+、--、*等符號的信息,將其信息存入文件中;</p><p> ?。?)輸入簡單的加減乘除算術計算式,并在屏幕上顯示計算結果;</p><p> ?。?)畫出部分模塊的流程圖;</p><p><b> ?。?)編寫代碼;<
9、/b></p><p> (5)程序分析與調(diào)試。</p><p><b> 2.3運行環(huán)境</b></p><p> (1)WINDOWS2000/XP系統(tǒng)</p><p> ?。?)TurboC2.0編譯環(huán)境</p><p><b> 2.4開發(fā)工具</b>&
10、lt;/p><p><b> C語言</b></p><p><b> 3 概要設計</b></p><p><b> 3.1系統(tǒng)流程圖</b></p><p> 3.2查詢函數(shù)流程圖</p><p><b> 4 詳細設計</b&
11、gt;</p><p> 在程序的開頭部分定義了結構體類型,用來存放按鈕信息,代碼如下。</p><p> struct s_button /*按鍵的結構體*/</p><p><b> {</b></p><p> int sx,sy,ex,ey;</p><p> char *h
12、ead;</p><p> int press;</p><p> }button[17]; /*圖表按鍵數(shù)*/</p><p> char far *vid_mem;</p><p> static int tx=32,ty=3; /*靜態(tài)變量*/</p><p> float v1=0.0,v2=0
13、.0;</p><p> 用輸入函數(shù)input()來輸入按鍵放在s_button數(shù)組中。</p><p> 再定義結構體棧,代碼如下。</p><p> struct stack /*結構體棧*/</p><p><b> {</b></p><p> char s[20];<
14、/p><p> int tos,top;</p><p><b> }stack;</b></p><p><b> char tag;</b></p><p> 用于數(shù)據(jù)的輸入和存放。</p><p> 進而定義了表格窗口函數(shù),窗口畫線函數(shù)和邊界線函數(shù),代碼如下。&l
15、t;/p><p> int form_win() /*表格窗口初始化*/</p><p><b> {</b></p><p> textbackground(WHITE); /*窗口背景顏色*/</p><p> clrscr(); /*清零*/</p><p> draw_win
16、(); /*窗口畫線*/</p><p> active_button(); /*窗口按鍵*/</p><p> out_text_win(); /*輸出文本窗口*/</p><p> window_xy(32,3); /*計算結果窗口*</p><p> draw_win() /*邊框畫線窗口*/</p>
17、<p><b> … … …</b></p><p> draw_border(int sx,int sy,int ex,int ey,int attrib) /*邊界線函數(shù)*/</p><p><b> … … …</b></p><p> 通過這些為形成整個界面提供了大的前提。</p&g
18、t;<p> 接著通過“write_char()”,“active_button()”,“ write_top()”,“make_button()”,“out_text_win()”, “get_key()” ,“window_xy()”等一系列的函數(shù),使得計算器的整個外型呈現(xiàn)了出來。</p><p> 為了輸入方便一些,就接著定義的小鍵盤的輸入函數(shù):key_choice() 把小鍵盤數(shù)字鍵和運
19、算鍵的鍵值通過“get_data(bx,by);send1()”和計算器界面按鍵連接起來,使得通過小鍵盤相應的鍵就能獲得計算器相應的值。</p><p> 再就是計算器運算的主程序,代碼如下。</p><p> put_string() /*計算機運算函數(shù)*/</p><p><b> {</b></p><p>
20、; float result;</p><p><b> tx=32;</b></p><p> switch(tag) /*根據(jù)運算符號計算*/</p><p><b> {</b></p><p> case '+': result=v1+v2;break; /*做
21、加法*/</p><p> case '-':result=v1-v2;break; /*做減法*/</p><p> case'*':result=v1*v2;break; /*做乘法*/</p><p> case '/': result=v1/v2;break; /*做除法*/</p>
22、<p> default :result=v1; /*若不計算輸出0*/</p><p><b> }</b></p><p> sprintf(stack.s,"%.3f",result); /*輸出結果保留小數(shù)點后三位*/</p><p> 通過switch來實現(xiàn)相應的計算,輸出保留三位小數(shù)的結
23、果。</p><p><b> … … …</b></p><p> 最后mian()函數(shù),代碼如下。</p><p><b> main()</b></p><p><b> {</b></p><p> init_stack();</
24、p><p> vid_mem=(char far *)0xb8000000;</p><p> if(!form_win())</p><p><b> {</b></p><p> printf("can't form the device,press any key to leave!...&q
25、uot;);</p><p><b> getch();</b></p><p><b> exit();</b></p><p><b> }</b></p><p><b> menu();</b></p><p>
26、calculator();</p><p><b> }</b></p><p> 通過調(diào)用上面定義的函數(shù)實現(xiàn)了計算器整個功能。</p><p> 5 改進或增加功能模塊說明</p><p><b> 6 程序測試</b></p><p> 1.測試系統(tǒng)能否正確顯示
27、菜單選項</p><p> 執(zhí)行程序后,顯示本系統(tǒng)的菜單選項界面,如圖6-1所示。</p><p> 圖6-1 學生成績管理主菜單界面</p><p> 2.測試系統(tǒng)能否正確輸入學生信息</p><p><b> 輸入如下數(shù)據(jù):</b></p><p> 學號 性別 姓名
28、 語文 數(shù)學 英語 計算機</p><p> 0001 女 wangfang 87 90 89 76</p><p> 0002 男 lihua 79 88 90 80</p><p> 0003 女
29、 zhaoxin 80 96 78 87</p><p> 進入主菜單界面后,輸入數(shù)字1進入輸入學生信息界面,根據(jù)提示輸入學生信息和成績,輸入完一條信息后提示用戶是否繼續(xù)輸入下一條學生信息,如果輸入“Y”或“y”,則繼續(xù)輸入下一條學生信息,否則返回主界面,輸入信息界面如圖6-2所示。</p><p> 圖6-2 輸入學生信息界面<
30、/p><p><b> 7 課程設計總結</b></p><p><b> 8 致 謝</b></p><p><b> 9 參考文獻 </b></p><p> [1]張福祥. C語言程序設計[M]. 遼寧大學出版社,2008.1</p><p
31、> [2]張福祥,王萌.C語言程序設計習題解答與實驗實訓[M].沈陽:遼寧大學出版社,2008.</p><p> [3]牛莉,劉遠軍等.計算機等級考試輔導教程[M].北京:中國鐵道出版社,2008.</p><p><b> 10 源程序</b></p><p> /*頭文件 student.h*/</p>&l
32、t;p> #ifndef STUDENT_H /*防止student.h被重復引用*/</p><p> #define STUDENT_H</p><p> #include<stdio.h> /*標準輸入/輸出函數(shù)庫*/</p><p> #include<stdli
33、b.h> /*標準函數(shù)庫*/</p><p> #include<string.h> /*字符串函數(shù)庫*/</p><p> #define TITLE "學生成績管理系統(tǒng)" /*標題文字*/ </p><p> #define MAX 10</p>
34、<p> #define MENU_MAIN_COUNT 9 /*主菜單的選項個數(shù)*/ </p><p> #define MENU_SEARCH_COUNT 4 /*查詢子菜單的選項個數(shù)*/</p><p> #define MENU_CALC_COUNT 3 /*計算子菜單的選項個數(shù)*/</p><p
35、> #define MENU_SORT_COUNT 5 /*排序子菜單的選項個數(shù)*/</p><p> typedef struct student{</p><p> char name[MAX]; /*姓名*/</p><p> char num[MAX]; /*學號*/</p><p>
36、; char sex[MAX]; /*性別*/</p><p> int chinese; /*語文成績*/ </p><p> int mathematic; /*數(shù)學成績*/</p><p> int english; /*英語成績*/</p><p>
37、 int computer; /*計算機成績*/</p><p> int index; /*名次*/</p><p> struct student *next; /*指向下一個學生的指針*/</p><p><b> }stu;</b></p><p>
38、 stu* head; /*student結構體鏈表的頭節(jié)點*/</p><p> /*主要處理函數(shù)聲明*/</p><p> void input_record(); /*輸入學生成績的處理*/</p><p> void show_record(); /*顯示學生成績的處理*/</p><p> voi
39、d search_record(); /*查詢學生成績的處理*/</p><p> void update_record(); /*更新學生成績*/</p><p> void delete_record(); /*刪除學生成績*/</p><p> void calculate(); /*計算學生成績*/ </p&g
40、t;<p> void sort(); /*學生成績排序*/</p><p> void save_to_file(); /*保存到文件的處理*/</p><p> void exit_system(); /*退出系統(tǒng)*/</p><p> /*查詢子函數(shù)聲明*/</p><p&g
41、t; void search_by_id(); /*通過學號檢索學生的處理*/</p><p> void search_by_name(); /*通過姓名檢索學生的處理*/</p><p> void search_by_sex(); /*通過性別檢索學生的處理*/</p><p> void search_exit(); /*退
42、出子菜單,返回上級菜單*/</p><p><b> #endif</b></p><p> /*主控函數(shù) Master.c*/</p><p> #include"student.h"</p><p> /*字符數(shù)組menu_main中儲存的是主菜單要顯示的字符*/</p>&
43、lt;p> char menu_main[]=</p><p><b> "|\n"</b></p><p> "| 1 輸入學生成績\n"</p><p> "| 2 顯示學生成績\n"</p><p> "| 3 查詢學生成績\n&
44、quot;</p><p> "| 4 更新學生成績\n"</p><p> "| 5 刪除學生成績\n"</p><p> "| 6 計算學生成績\n"</p><p> "| 7 排序?qū)W生成績\n"</p><p> &quo
45、t;| 8 保存文件\n"</p><p> "| 9 退出系統(tǒng)\n"</p><p><b> "|\n";</b></p><p> /*函數(shù)指針數(shù)組menu_main_func儲存的是主菜單中8個功能函數(shù)的</p><p> *地址分別對應1-8個菜單項*/
46、</p><p> void main()</p><p><b> {</b></p><p> print_menu_main(); //顯示主菜單等待用戶入</p><p><b> }</b></p><p> /*顯示主菜單界面*/</
47、p><p> void print_menu_main()</p><p><b> {</b></p><p> int selected=0;/*用戶選擇的菜單項*/</p><p> system("cls");/*清屏*/</p><p> print_menu_
48、title(TITLE);/*顯示標題*/</p><p> printf(menu_main); /*顯示菜單字符*/</p><p> printf("====================================================\n");</p><p> /*如果用戶沒有選擇或者選擇錯誤,循環(huán)等待
49、*/</p><p> while(!(selected>=1&&selected<=MENU_MAIN_COUNT))</p><p><b> {</b></p><p> printf(">請選擇:");</p><p> scanf("%d&
50、quot;,&selected);</p><p> getchar();</p><p> if(selected>=1&&selected<=MENU_MAIN_COUNT)</p><p><b> break;</b></p><p> printf("\n&
51、gt;輸入錯誤!(注:請選擇1-%d)\n",MENU_MAIN_COUNT);</p><p><b> }</b></p><p> menu_main_func[selected-1]();/*調(diào)用用戶選擇菜單項對應的函數(shù)指針數(shù)組中的函數(shù)*/</p><p><b> }</b></p>
52、<p> /*輸入模塊 Input.c*/</p><p> #include"student.h"</p><p> /*輸入學生信息函數(shù)*/</p><p> void input_record()</p><p><b> {</b></p><p>
53、; char continue_input='N';</p><p> stu* pLastStu=NULL;</p><p> stu* pNewStu=(stu*)malloc(sizeof(stu));/*創(chuàng)建一個stu*/</p><p> pNewStu->next=NULL;</p><p> cr
54、eate_stu_by_input(pNewStu);/*讓用戶為創(chuàng)建的stu賦值*/</p><p> if(head==NULL)/*一個都沒有*/</p><p><b> {</b></p><p> head=pNewStu;</p><p><b> }</b></p>
55、;<p><b> else</b></p><p><b> {</b></p><p> pLastStu=get_last_student(head);/*找到最后一個*/</p><p> pLastStu->next=pNewStu;</p><p><b
56、> }</b></p><p> printf("繼續(xù)輸入學生成績?(Y 繼續(xù),N 返回菜單)");</p><p> getchar();</p><p> continue_input=getchar();</p><p> if(continue_input=='n'||c
57、ontinue_input=='N')</p><p><b> {</b></p><p> print_menu_main();/*不繼續(xù)輸入,將顯示主菜單*/</p><p><b> }</b></p><p><b> else</b><
58、/p><p><b> {</b></p><p> input_record();/*再次調(diào)用這個函數(shù)輸入新的學生成績*/</p><p><b> }</b></p><p><b> }</b></p><p><b> 指導教師評
59、語:</b></p><p><b> 1、課程設計報告:</b></p><p> a、內(nèi)容: 不完整□ 完整 □ 詳細 □</p><p> b、方案設計: 較差 □ 合理 □ 非常合理□</p><p> c、實現(xiàn): 未實現(xiàn)
60、□ 部分實現(xiàn)□ 全部實現(xiàn)□ </p><p> d、文檔格式: 不規(guī)范□ 基本規(guī)范□ 規(guī)范 □</p><p> 2、出勤: 全勤 □ 缺勤 次</p><p><b> 3、上機測試: </b></p><p> a、未能完全
61、理解題目,測試情況較差 □</p><p> b、部分理解題目,部分測試情況正確 □</p><p> c、理解題目較清楚,測試情況基本正確 □</p><p> d、理解題目透徹,測試情況正確 □</p><p> 課程設計報告成績: ,占總成績比例: 40% &l
62、t;/p><p> 課程設計其它環(huán)節(jié)成績:</p><p> 環(huán)節(jié)名稱: 出勤 ,成績: ,占總成績比例: 20% </p><p> 環(huán)節(jié)名稱: 上機測試 ,成績: ,占總成績比例: 40% </p><p> 總 成 績: </p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成績管理系統(tǒng)課程設計
- 成績管理系統(tǒng)課程設計
- 課程設計---考務成績管理系統(tǒng)
- 課程設計-- 班級成績管理系統(tǒng)
- 成績管理分析系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- php成績管理系統(tǒng)課程設計報告
- 課程設計——學生成績管理系統(tǒng)
- 課程設計---學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- vf課程設計---高校成績管理系統(tǒng)
- c語言課程設計-成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng) 課程設計
- 課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 課程設計-- 學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
評論
0/150
提交評論