




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、沈陽航空航天大學(xué) 課程設(shè)計報告 課程設(shè)計名稱: C 語言課程設(shè)計 課程設(shè)計題目: 學(xué)生選修課信息管理程序 院(系):計算機學(xué)院 專 業(yè):計算機科學(xué)與技術(shù) 班 級: 學(xué) 號: 姓 名:指導(dǎo)教師:完成日期:目錄第 1 章 題目與概要設(shè)計 11.1 題目的內(nèi)容與要求 11.2概要設(shè)計 1 第 2 章 詳細設(shè)計 22.1主模塊 22.2菜單模塊 32.3輸入模塊 32.4 選擇輸出模塊 4第 3 章調(diào)試分析 錯誤!未定義書簽。第 4 章執(zhí)行結(jié)果 6參考文獻 10 附 錄(程序清單) 11第 1 章 題目與概要設(shè)計1.1 題目的內(nèi)容與要求主要內(nèi)容:假定有 6 門選修課程,每門課程有課程編號, 課程名稱,
2、課程性質(zhì), 總學(xué)時, 授課時間,實驗或上機學(xué)時,學(xué)分,開課學(xué)期等信息。試設(shè)計一個選修課程管理 程序,功能包括:1. 課程信息錄入功能;2. 課程信息瀏覽功能;3. 查詢功能:可按學(xué)分,課程性質(zhì)進行對課程查詢;4. 選修課程排序功能。 可按學(xué)分由小到大對所有選修課程進行課程排序輸出。 設(shè)計要求:1. 采用文本菜單界面選擇相應(yīng)功能;2. 課程信息以磁盤文件保存。1.2 概要設(shè)計本程序主要分為五個模塊(見功能模塊圖 1.1),主模塊,菜單模塊,輸入模塊,瀏覽模塊,選擇輸出模塊。主模塊:定義變量,控制程序的運行。顯示模塊: 給出六個菜單項的內(nèi)容和輸出提示。輸入判斷模塊:判斷輸入的數(shù)字是否符合條 件。選
3、擇輸出模塊:根據(jù)輸入的正確數(shù)字實現(xiàn)菜單功能管理程序1菜圖單模塊1 功能輸 入塊 模 塊瀏覽模塊選擇性輸出模塊第 2 章 詳細設(shè)計2.12.1 主模塊 控制整個程序的運行,控制菜單操作,通過,實現(xiàn)各項功能,流程如圖 所示。結(jié)束圖 2.1 主模塊流程圖退出注釋:定義課程信息結(jié)構(gòu)體數(shù)組 xubject6, 定義變量 m=0。輸入運用 if 語句執(zhí)行選擇操作。2.2 菜單模塊圖 2.3 輸入模塊流程圖2.4 選擇輸出模塊結(jié)束程序按學(xué)分排序按性質(zhì)查詢按學(xué)分查詢顯示所有課程信是否繼續(xù) 查詢結(jié)束第 3 章調(diào)試分析本次課設(shè)在調(diào)試運行時一共發(fā)現(xiàn)了 4 個問題1.在建立結(jié)構(gòu)體時非法定義結(jié)構(gòu)體。2.編寫函數(shù),當(dāng)函數(shù)
4、結(jié)束時未能及時釋放指針。3. 在書寫程序過程中大量運用花括號,在幾個模塊之中都出現(xiàn)了花括號括錯 問題。4. 事先定義了許多變量,但是沒有用。雖然,定義變量對程序沒有影響,但 是為了讓程序更清晰合理 ,在調(diào)試完成后進行了刪除。第 4 章執(zhí)行結(jié)果運行操作及結(jié)果: 菜單顯示如下。輸入 1,錄入課程信息顯示如下錄入課程信息后輸入 2,對課程進行瀏覽。瀏覽完畢輸入 3,對課程按學(xué)分查詢并輸入學(xué)分范圍查詢完畢輸入 4 對課程按性質(zhì)查詢并輸入課程性質(zhì)。查詢完畢輸入 5 對課程按學(xué)分從小到大進行排序。最后輸入 0,結(jié)束程序參考文獻1 張長海,陳娟 . C 語言課程設(shè)計 M . 北京:高等教育出版社, 2004
5、2 譚浩強. C 語言程序設(shè)計(第 4 版) M. 清華大學(xué)出版社, 20103 譚浩強. C 程序設(shè)計題解與上機指導(dǎo) . 清華大學(xué)出版社, 20054 網(wǎng)冠科技 時尚編程百例 機械工業(yè)出版社, 20025 網(wǎng)冠科技 Visual C+6.0 基礎(chǔ)培訓(xùn)百例 機械工業(yè)出版社, 2006附 錄(程序清單)代碼#include#include#include#include#define N 6struct XUANXIUKEchar name30;int num;char quality100;float time;float class_time;float test_time;float cr
6、edit;char date50;struct XUANXIUKE *next;subjectN;typedef struct XUANXIUKE XXK; void caidan()printf(* 請選擇相應(yīng)功能 * n);printf(1.錄入課程信息 .n);printf(2.課程信息瀏覽 .n);printf(3.按學(xué)分對課程進行查詢.n);printf(4.按課程性質(zhì)對課程進行查詢 .n);printf(5.按學(xué)分大小從小到大對課程進行排序.n);printf( 0.結(jié)束程序 .n);printf( 請輸入要實現(xiàn)功能的編號 n);XXK *create() int i; FILE
7、*fp;XXK *head,*p1; head=NULL;fp=fopen(D:subject.dat,wb); if (fp=NULL)printf( 無法建立文件 n);exit(0);fclose(fp);printf( 請輸入課程的編號 名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 上級或?qū)嶒瀸W(xué)時 學(xué) 分 學(xué)期: n);for(i=0;inum,p1-name,p1-quality,&p1-time, &p1-class_time,&p1-test_time,&p1-credit,p1-date);fwrite(p1,sizeof(XXK),1,fp);p1-next=head;head=p1;g
8、etchar();fclose(fp);caidan();return(head);void liulan()FILE *fp;XXK *pstu;int i;fp=fopen(D:subject.dat,rb);if (fp=NULL)printf(無法打開文件 n);exit(0); fclose(fp);pstu=(XXK *)malloc(N*sizeof(XXK);fread(pstu,sizeof(XXK),N,fp);printf(n * 對課程進行瀏覽 * n);printf( 課程的編號 名稱 性質(zhì) 總學(xué)時 授課學(xué)時 上機或?qū)嶒瀸W(xué)時 學(xué)分 開學(xué)學(xué)期: n);for(i=0;i
9、N;i+)printf( %-4d %-8s %-8s %.1f %.1f %.1f %.1f %-10sn,pstui.num,,pstui.quality,pstui.time,pstui.class_time,pstu i.test_time,pstui.credit,pstui.date);fclose(fp);free(pstu);caidan();void xuefen()FILE *fp;XXK *pstu;int i;fp=fopen(D:subject.dat,rb);if (fp=NULL)printf(無法打開文件 n);exit(0);fclose(
10、fp);pstu=(XXK *)malloc(N*sizeof(XXK);fread(pstu,sizeof(XXK),N,fp);float min,max;printf(* 請輸入學(xué)分下限和上限 *na b n);scanf(%f %f,&min,&max);getchar();* 對課程按照學(xué)分進行查詢性質(zhì) 總學(xué)時 授課學(xué)時 上機或?qū)嶒瀸W(xué)時printf(nn);printf( 課程的編號 名稱 學(xué)分 開學(xué)學(xué)期: n);for(i=0;iN;i+)if(pstui.credit=min)printf( %-4d %-8s %-8s %.1f %.1f %.1f %.1f%-10sn,pst
11、ui.num,,pstui.quality,pstui.time,pstui.class_time,pstu i.test_time,pstui.credit,pstui.date);fclose(fp);free(pstu);caidan();void xingzhi()FILE *fp;XXK *pstu;int i,n=0;fp=fopen(D:subject.dat,rb);if (fp=NULL)printf(無法打開文件 n);exit(0); fclose(fp);pstu=(XXK *)malloc(N*sizeof(XXK);fread(pstu,size
12、of(XXK),N,fp);printf(* 請輸入課程性質(zhì) *n); char xingzhi100;scanf(%s,xingzhi);getchar();char a100=(xiaoji);char b100=(yuanji);for(i=0;i6;i+)n=strcmp(xingzhi,pstui.quality);if(n=0)break; else n=1;while(n=1)n);printf( 沒有該性質(zhì)的課程,請重新輸入:scanf(%s,xingzhi);getchar();for(i=0;i6;i+)n=strcmp(xingzhi,pstui.quality);if(
13、n=0)break;elsen=1;printf(n * 對課程按照學(xué)科性質(zhì)查詢 * n);printf( 課程的編號 名稱 性質(zhì) 總學(xué)時 授課學(xué)時 上機或?qū)嶒瀸W(xué)時 學(xué)分 開學(xué)學(xué)期: n);for(i=0;iN;i+)if(!(strcmp(xingzhi,pstui.quality)printf( %-4d %-8s %-8s %.1f %.1f %.1f %.1f %-10sn,pstui.num,,pstui.quality,pstui.time,pstui.class_time,pstu i.test_time,pstui.credit,pstui.date);fc
14、lose(fp);free(pstu);caidan();void paixu()FILE *fp;XXK *pstu;int i,j;fp=fopen(D:subject.dat,rb);if (fp=NULL)printf(無法打開文件 n);exit(0);fclose(fp);pstu=(XXK *)malloc(N*sizeof(XXK);fread(pstu,sizeof(XXK),N,fp);XXK pstu1;printf(n * 對課程按照學(xué)分從小到大排序 * n);printf( 課程的編號 名稱 性質(zhì) 總學(xué)時 授課學(xué)時 上機或?qū)嶒瀸W(xué)時 學(xué)分 開學(xué)學(xué)期: n);for(j=
15、0;jN-1;j+)for(i=0;ipstui+1.credit)pstu1=pstui;pstui=pstui+1;pstui+1=pstu1;for(i=0;iN;i+)printf( %-4d %-8s %-8s %.1f %.1f %.1f %.1f %-10sn,pstui.num,,pstui.quality,pstui.time,pstui.class_time,pstu i.test_time,pstui.credit,pstui.date);fclose(fp);free(pstu);caidan();void main ()int n=0;* 歡 迎進
16、入學(xué)生選 修課 程管理系 統(tǒng)XXK *head; char m; printf(n* n); caidan(); scanf(%c,&m); getchar(); while(m!=0&m!=1&m!=2&m!=3&m!=4&m!=5) printf( 輸入有誤,請重新輸入: n);scanf(%c,&m); getchar(); while(m!=0)if(m=1)head=create();printf( 如需進行其他功能請輸入要實現(xiàn)的功能的編號 n);scanf(%c,&m); getchar(); while(m!=0&m!=1&m!=2&m!=3&m!=4&m!=5) printf(
17、 輸入有誤,請重新輸入: n); scanf(%c,&m);getchar();if(m=2)liulan();printf( 如需進行其他功能請輸入要實現(xiàn)的功能的編號scanf(%c,&m);getchar(); while(m!=0&m!=1&m!=2&m!=3&m!=4&m!=5) printf( 輸入有誤,請重新輸入: n); scanf(%c,&m); getchar(); if(m=3)xuefen();printf( 如需進行其他功能請輸入要實現(xiàn)的功能的編號scanf(%c,&m);getchar(); while(m!=0&m!=1&m!=2&m!=3&m!=4&m!=5) p
18、rintf( 輸入有誤,請重新輸入: n); scanf(%c,&m); getchar(); if(m=4)xingzhi();printf( 如需進行其他功能請輸入要實現(xiàn)的功能的編號n);n);n);scanf(%c,&m);getchar();while(m!=0&m!=1&m!=2&m!=3&m!=4&m!=5) printf( 輸入有誤,請重新輸入: n);scanf(%c,&m);getchar();if(m=5)paixu();n);printf( 如需進行其他功能請輸入要實現(xiàn)的功能的編號scanf(%c,&m);getchar();while(m!=0&m!=1&m!=2&m!=3&m!=4&m!=5) printf( 輸入有誤,請重新輸入: n);scanf(%c,&m);getchar();if(m=0)break;課程設(shè)計總結(jié):這次課程設(shè)計,我獲益良多。 當(dāng)拿到課設(shè)任務(wù)書時,我感覺到這次課設(shè)任務(wù) 不簡單,它用到了我去年幾乎所有的知識。但是,并沒有邏輯上的難度,所以我 很快就整理了思路,列出大體框圖。之后去圖書館查閱資料并進行記錄。最后, 用三天時間對程序進行編寫和調(diào)試。 在讓老師初次檢查中, 指導(dǎo)老師指出了我的 不足。之后我有對程序進行不斷完善, 最后在指導(dǎo)老師的指導(dǎo)下完成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年計算機系統(tǒng)配套用各種消耗品項目合作計劃書
- 2025年未硫化復(fù)合橡膠及其制品項目建議書
- 2025年自動檢票驗票機合作協(xié)議書
- 小學(xué)生防性防侵害安全教育
- 2025年企業(yè)人力資源管理師之三級人力資源管理師題庫練習(xí)試卷A卷附答案
- 2019-2025年監(jiān)理工程師之合同管理題庫檢測試卷A卷附答案
- 圣誕節(jié)活動主題策劃方案
- 狼圖騰介紹課件
- 脫硫安全文明施工方案
- bim一級考試試題及答案
- 2025四川綿陽交發(fā)實業(yè)有限責(zé)任公司及下屬子公司招聘人力資源管理等崗位5人筆試參考題庫附帶答案詳解
- 湖北省鄂東南2025年春季高三年級五月模擬考物理試題及答案
- 游戲室電競椅行業(yè)跨境出海戰(zhàn)略研究報告
- 2025年心理咨詢師考試試題及答案
- 初二下學(xué)期期中家長會發(fā)言稿
- 福建省福州市2025年初中畢業(yè)班教學(xué)質(zhì)量檢測二生物學(xué)試卷(無答案)
- 山東省濟南市東南片區(qū)2024-2025學(xué)年七年級下學(xué)期期中考試英語試題
- 四川省資陽市樂至縣2025年三年級數(shù)學(xué)第二學(xué)期期末達標(biāo)檢測試題含解析
- 2025-2030中國城市規(guī)劃行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 2025年全國焊工作業(yè)人員職業(yè)技能理論考試練習(xí)題庫(900題)含答案
- 道岔區(qū)無砟軌道我國高速鐵路道岔區(qū)采用的無砟軌道主要有長枕埋
評論
0/150
提交評論