版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 說(shuō) 明 書</p><p> 課程名稱: 高級(jí)語(yǔ)言程序設(shè)計(jì) </p><p> 設(shè)計(jì)題目: 學(xué)生成績(jī)管理 </p><p> 院 部: 計(jì)算機(jī)科學(xué)與信息工程學(xué)院 </p><p> 學(xué)生姓名:
2、 </p><p> 學(xué) 號(hào): </p><p> 專業(yè)班級(jí): </p><p> 指導(dǎo)教師: </p><p><b> 2013年 6月</b></p&
3、gt;<p> 課 程 設(shè) 計(jì) 任 務(wù) 書</p><p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1</b></p><p><b> 3 概要設(shè)計(jì)1</b&
4、gt;</p><p><b> 4 詳細(xì)設(shè)計(jì)2</b></p><p> 5 改進(jìn)或增加功能模塊說(shuō)明4</p><p><b> 6 程序測(cè)試4</b></p><p> 7 課程設(shè)計(jì)總結(jié)5</p><p><b> 8 致 謝5</
5、b></p><p><b> 9 參考文獻(xiàn)5</b></p><p><b> 10 源程序5</b></p><p><b> 學(xué)生成績(jī)管理</b></p><p><b> 1 前言</b></p><p>
6、 編寫一個(gè)程序來(lái)實(shí)現(xiàn)算術(shù)計(jì)算器。通過(guò)結(jié)構(gòu)體數(shù)組和共用體數(shù)組來(lái)存放輸入的每一數(shù)字或運(yùn)算符號(hào)的記錄(包括1、2、3等數(shù)字,+、--、*、等運(yùn)算符號(hào)),然后將其信息存入文件中。輸入一個(gè)算術(shù)計(jì)算式,就在屏幕上顯示結(jié)果。</p><p><b> 2 需求分析</b></p><p><b> 2.1要求</b></p><p&g
7、t; (1)用C語(yǔ)言實(shí)現(xiàn)程序設(shè)計(jì);</p><p> ?。?)利用結(jié)構(gòu)體、共用體進(jìn)行相關(guān)信息處理;</p><p> ?。?)畫出查詢模塊的流程圖;</p><p> ?。?)系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);</p><p> ?。?)界面友好(良好的人機(jī)互交),程序要有注釋。</p><p><b&g
8、t; 2.2任務(wù)</b></p><p> ?。?)定義一個(gè)結(jié)構(gòu)體類型數(shù)組,輸入0~9及+、--、*等符號(hào)的信息,將其信息存入文件中;</p><p> ?。?)輸入簡(jiǎn)單的加減乘除算術(shù)計(jì)算式,并在屏幕上顯示計(jì)算結(jié)果;</p><p> ?。?)畫出部分模塊的流程圖;</p><p><b> ?。?)編寫代碼;<
9、/b></p><p> ?。?)程序分析與調(diào)試。</p><p><b> 2.3運(yùn)行環(huán)境</b></p><p> (1)WINDOWS2000/XP系統(tǒng)</p><p> ?。?)TurboC2.0編譯環(huán)境</p><p><b> 2.4開(kāi)發(fā)工具</b>&
10、lt;/p><p><b> C語(yǔ)言</b></p><p><b> 3 概要設(shè)計(jì)</b></p><p><b> 3.1系統(tǒng)流程圖</b></p><p> 3.2查詢函數(shù)流程圖</p><p><b> 4 詳細(xì)設(shè)計(jì)</b&
11、gt;</p><p> 在程序的開(kāi)頭部分定義了結(jié)構(gòu)體類型,用來(lái)存放按鈕信息,代碼如下。</p><p> struct s_button /*按鍵的結(jié)構(gòu)體*/</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()來(lái)輸入按鍵放在s_button數(shù)組中。</p><p> 再定義結(jié)構(gòu)體棧,代碼如下。</p><p> struct stack /*結(jié)構(gòu)體棧*/</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> 進(jìn)而定義了表格窗口函數(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); /*計(jì)算結(jié)果窗口*</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> 通過(guò)這些為形成整個(gè)界面提供了大的前提。</p&g
18、t;<p> 接著通過(guò)“write_char()”,“active_button()”,“ write_top()”,“make_button()”,“out_text_win()”, “get_key()” ,“window_xy()”等一系列的函數(shù),使得計(jì)算器的整個(gè)外型呈現(xiàn)了出來(lái)。</p><p> 為了輸入方便一些,就接著定義的小鍵盤的輸入函數(shù):key_choice() 把小鍵盤數(shù)字鍵和運(yùn)
19、算鍵的鍵值通過(guò)“get_data(bx,by);send1()”和計(jì)算器界面按鍵連接起來(lái),使得通過(guò)小鍵盤相應(yīng)的鍵就能獲得計(jì)算器相應(yīng)的值。</p><p> 再就是計(jì)算器運(yùn)算的主程序,代碼如下。</p><p> put_string() /*計(jì)算機(jī)運(yùn)算函數(shù)*/</p><p><b> {</b></p><p>
20、; float result;</p><p><b> tx=32;</b></p><p> switch(tag) /*根據(jù)運(yùn)算符號(hào)計(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; /*若不計(jì)算輸出0*/</p><p><b> }</b></p><p> sprintf(stack.s,"%.3f",result); /*輸出結(jié)果保留小數(shù)點(diǎn)后三位*/</p><p> 通過(guò)switch來(lái)實(shí)現(xiàn)相應(yīng)的計(jì)算,輸出保留三位小數(shù)的結(jié)
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> 通過(guò)調(diào)用上面定義的函數(shù)實(shí)現(xiàn)了計(jì)算器整個(gè)功能。</p><p> 5 改進(jìn)或增加功能模塊說(shuō)明</p><p><b> 6 程序測(cè)試</b></p><p> 1.測(cè)試系統(tǒng)能否正確顯示
27、菜單選項(xiàng)</p><p> 執(zhí)行程序后,顯示本系統(tǒng)的菜單選項(xiàng)界面,如圖6-1所示。</p><p> 圖6-1 學(xué)生成績(jī)管理主菜單界面</p><p> 2.測(cè)試系統(tǒng)能否正確輸入學(xué)生信息</p><p><b> 輸入如下數(shù)據(jù):</b></p><p> 學(xué)號(hào) 性別 姓名
28、 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī)</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> 進(jìn)入主菜單界面后,輸入數(shù)字1進(jìn)入輸入學(xué)生信息界面,根據(jù)提示輸入學(xué)生信息和成績(jī),輸入完一條信息后提示用戶是否繼續(xù)輸入下一條學(xué)生信息,如果輸入“Y”或“y”,則繼續(xù)輸入下一條學(xué)生信息,否則返回主界面,輸入信息界面如圖6-2所示。</p><p> 圖6-2 輸入學(xué)生信息界面<
30、/p><p><b> 7 課程設(shè)計(jì)總結(jié)</b></p><p><b> 8 致 謝</b></p><p><b> 9 參考文獻(xiàn) </b></p><p> [1]張福祥. C語(yǔ)言程序設(shè)計(jì)[M]. 遼寧大學(xué)出版社,2008.1</p><p
31、> [2]張福祥,王萌.C語(yǔ)言程序設(shè)計(jì)習(xí)題解答與實(shí)驗(yàn)實(shí)訓(xùn)[M].沈陽(yáng):遼寧大學(xué)出版社,2008.</p><p> [3]牛莉,劉遠(yuǎn)軍等.計(jì)算機(jī)等級(jí)考試輔導(dǎo)教程[M].北京:中國(guó)鐵道出版社,2008.</p><p><b> 10 源程序</b></p><p> /*頭文件 student.h*/</p>&l
32、t;p> #ifndef STUDENT_H /*防止student.h被重復(fù)引用*/</p><p> #define STUDENT_H</p><p> #include<stdio.h> /*標(biāo)準(zhǔn)輸入/輸出函數(shù)庫(kù)*/</p><p> #include<stdli
33、b.h> /*標(biāo)準(zhǔn)函數(shù)庫(kù)*/</p><p> #include<string.h> /*字符串函數(shù)庫(kù)*/</p><p> #define TITLE "學(xué)生成績(jī)管理系統(tǒng)" /*標(biāo)題文字*/ </p><p> #define MAX 10</p>
34、<p> #define MENU_MAIN_COUNT 9 /*主菜單的選項(xiàng)個(gè)數(shù)*/ </p><p> #define MENU_SEARCH_COUNT 4 /*查詢子菜單的選項(xiàng)個(gè)數(shù)*/</p><p> #define MENU_CALC_COUNT 3 /*計(jì)算子菜單的選項(xiàng)個(gè)數(shù)*/</p><p
35、> #define MENU_SORT_COUNT 5 /*排序子菜單的選項(xiàng)個(gè)數(shù)*/</p><p> typedef struct student{</p><p> char name[MAX]; /*姓名*/</p><p> char num[MAX]; /*學(xué)號(hào)*/</p><p>
36、; char sex[MAX]; /*性別*/</p><p> int chinese; /*語(yǔ)文成績(jī)*/ </p><p> int mathematic; /*數(shù)學(xué)成績(jī)*/</p><p> int english; /*英語(yǔ)成績(jī)*/</p><p>
37、 int computer; /*計(jì)算機(jī)成績(jī)*/</p><p> int index; /*名次*/</p><p> struct student *next; /*指向下一個(gè)學(xué)生的指針*/</p><p><b> }stu;</b></p><p>
38、 stu* head; /*student結(jié)構(gòu)體鏈表的頭節(jié)點(diǎn)*/</p><p> /*主要處理函數(shù)聲明*/</p><p> void input_record(); /*輸入學(xué)生成績(jī)的處理*/</p><p> void show_record(); /*顯示學(xué)生成績(jī)的處理*/</p><p> voi
39、d search_record(); /*查詢學(xué)生成績(jī)的處理*/</p><p> void update_record(); /*更新學(xué)生成績(jī)*/</p><p> void delete_record(); /*刪除學(xué)生成績(jī)*/</p><p> void calculate(); /*計(jì)算學(xué)生成績(jī)*/ </p&g
40、t;<p> void sort(); /*學(xué)生成績(jī)排序*/</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(); /*通過(guò)學(xué)號(hào)檢索學(xué)生的處理*/</p><p> void search_by_name(); /*通過(guò)姓名檢索學(xué)生的處理*/</p><p> void search_by_sex(); /*通過(guò)性別檢索學(xué)生的處理*/</p><p> void search_exit(); /*退
42、出子菜單,返回上級(jí)菜單*/</p><p><b> #endif</b></p><p> /*主控函數(shù) Master.c*/</p><p> #include"student.h"</p><p> /*字符數(shù)組menu_main中儲(chǔ)存的是主菜單要顯示的字符*/</p>&
43、lt;p> char menu_main[]=</p><p><b> "|\n"</b></p><p> "| 1 輸入學(xué)生成績(jī)\n"</p><p> "| 2 顯示學(xué)生成績(jī)\n"</p><p> "| 3 查詢學(xué)生成績(jī)\n&
44、quot;</p><p> "| 4 更新學(xué)生成績(jī)\n"</p><p> "| 5 刪除學(xué)生成績(jī)\n"</p><p> "| 6 計(jì)算學(xué)生成績(jī)\n"</p><p> "| 7 排序?qū)W生成績(jī)\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儲(chǔ)存的是主菜單中8個(gè)功能函數(shù)的</p><p> *地址分別對(duì)應(yīng)1-8個(gè)菜單項(xiàng)*/
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;/*用戶選擇的菜單項(xiàng)*/</p><p> system("cls");/*清屏*/</p><p> print_menu_
48、title(TITLE);/*顯示標(biāo)題*/</p><p> printf(menu_main); /*顯示菜單字符*/</p><p> printf("====================================================\n");</p><p> /*如果用戶沒(méi)有選擇或者選擇錯(cuò)誤,循環(huán)等待
49、*/</p><p> while(!(selected>=1&&selected<=MENU_MAIN_COUNT))</p><p><b> {</b></p><p> printf(">請(qǐng)選擇:");</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;輸入錯(cuò)誤?。ㄗⅲ赫?qǐng)選擇1-%d)\n",MENU_MAIN_COUNT);</p><p><b> }</b></p><p> menu_main_func[selected-1]();/*調(diào)用用戶選擇菜單項(xiàng)對(duì)應(yīng)的函數(shù)指針數(shù)組中的函數(shù)*/</p><p><b> }</b></p>
52、<p> /*輸入模塊 Input.c*/</p><p> #include"student.h"</p><p> /*輸入學(xué)生信息函數(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)建一個(gè)stu*/</p><p> pNewStu->next=NULL;</p><p> cr
54、eate_stu_by_input(pNewStu);/*讓用戶為創(chuàng)建的stu賦值*/</p><p> if(head==NULL)/*一個(gè)都沒(méi)有*/</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);/*找到最后一個(gè)*/</p><p> pLastStu->next=pNewStu;</p><p><b
56、> }</b></p><p> printf("繼續(xù)輸入學(xué)生成績(jī)?(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)用這個(gè)函數(shù)輸入新的學(xué)生成績(jī)*/</p><p><b> }</b></p><p><b> }</b></p><p><b> 指導(dǎo)教師評(píng)
59、語(yǔ):</b></p><p><b> 1、課程設(shè)計(jì)報(bào)告:</b></p><p> a、內(nèi)容: 不完整□ 完整 □ 詳細(xì) □</p><p> b、方案設(shè)計(jì): 較差 □ 合理 □ 非常合理□</p><p> c、實(shí)現(xiàn): 未實(shí)現(xiàn)
60、□ 部分實(shí)現(xiàn)□ 全部實(shí)現(xiàn)□ </p><p> d、文檔格式: 不規(guī)范□ 基本規(guī)范□ 規(guī)范 □</p><p> 2、出勤: 全勤 □ 缺勤 次</p><p><b> 3、上機(jī)測(cè)試: </b></p><p> a、未能完全
61、理解題目,測(cè)試情況較差 □</p><p> b、部分理解題目,部分測(cè)試情況正確 □</p><p> c、理解題目較清楚,測(cè)試情況基本正確 □</p><p> d、理解題目透徹,測(cè)試情況正確 □</p><p> 課程設(shè)計(jì)報(bào)告成績(jī): ,占總成績(jī)比例: 40% &l
62、t;/p><p> 課程設(shè)計(jì)其它環(huán)節(jié)成績(jī):</p><p> 環(huán)節(jié)名稱: 出勤 ,成績(jī): ,占總成績(jī)比例: 20% </p><p> 環(huán)節(jié)名稱: 上機(jī)測(cè)試 ,成績(jī): ,占總成績(jī)比例: 40% </p><p> 總 成 績(jī): </p>&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---考務(wù)成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)-- 班級(jí)成績(jī)管理系統(tǒng)
- 成績(jī)管理分析系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- php成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- vf課程設(shè)計(jì)---高校成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論