C語(yǔ)言課程設(shè)計(jì)—學(xué)生選課系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)—學(xué)生選課系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)—學(xué)生選課系統(tǒng)_第3頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言課程設(shè)計(jì)一學(xué)生選課系統(tǒng)武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)報(bào)告書(shū)課程名稱:C 課程設(shè)計(jì)題 目 : 學(xué)生選課系統(tǒng)程序設(shè)計(jì) 系 名: 信息工程系 專業(yè)班級(jí):姓 名:學(xué) 號(hào):指導(dǎo)教師 :成 績(jī):2016 年 3 月 4 日課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名:專業(yè)班級(jí):指導(dǎo)教師:工作單位:設(shè)計(jì)題目 :學(xué)生選課系統(tǒng)程序設(shè)計(jì)初始條件:學(xué)生選課系統(tǒng)能提供學(xué)生選課, 以及學(xué)生和 課程信息管理等一系列功能。 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)1、任務(wù)描述假定有 n 門(mén)課程,每門(mén)課程有課程編號(hào),課程名稱,課程性質(zhì),學(xué)時(shí), 授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要

2、求(如總 學(xué)分不得少于 15)自由選課。試設(shè)計(jì)一個(gè)選修課程系統(tǒng),使之能提供以下 功能:(1)系統(tǒng)以菜單方式工作(2)課程信息和學(xué)生選課信息錄入功能(課程信息用文件保存)(3)課程信息瀏覽功能(4)查詢功能(5)按學(xué)分查詢(6)某門(mén)課程學(xué)生選修情況(可選項(xiàng))2、本課程涉及的知識(shí)點(diǎn)變量的定義、 輸入和輸出函數(shù)、 結(jié)構(gòu)體類型 的定義、結(jié)構(gòu)體數(shù)組、循環(huán)語(yǔ)句、選擇語(yǔ)句,文 件的操作等。設(shè)計(jì)報(bào)告撰寫(xiě)格式要求: 一、課程設(shè)計(jì)說(shuō)明書(shū)(或報(bào)告書(shū))正文內(nèi)容設(shè)計(jì)題目】例如:學(xué)生選課系統(tǒng)【開(kāi)發(fā)環(huán)境】硬件環(huán)境:微機(jī)系列,內(nèi)存在 1G 以上,軟件環(huán)境: Microsoft Windows XP 【開(kāi)發(fā)工具】 Micros

3、oft Visual C+ 6.0 【完成時(shí)間】 【需求分析】分析闡述用戶的需要以及要實(shí)現(xiàn)的 程序應(yīng)具有什么樣的功能?!鞠到y(tǒng)總體設(shè)計(jì)】在明確了所要解決的問(wèn)題后, 很自然地就要 提出自己解決問(wèn)題的思路和方案。 讓讀者了解方 案的總體設(shè)計(jì)和關(guān)鍵技術(shù)。要闡述自己的設(shè)計(jì)方案,說(shuō)明為什么要選擇 或設(shè)計(jì)這樣的方案。具體包括: 系統(tǒng)總的設(shè)計(jì)思路, 功能模塊圖; 使用的設(shè)計(jì)軟硬件環(huán)境和開(kāi)發(fā)技術(shù)和平臺(tái) 等?!鞠到y(tǒng)詳細(xì)設(shè)計(jì)】 在這部分中,應(yīng)該具有相關(guān)關(guān)鍵實(shí)現(xiàn)技術(shù)(如使用什么庫(kù)函數(shù),使用什么循環(huán)結(jié)構(gòu)等) 。 【系統(tǒng)調(diào)試和測(cè)試】 調(diào)試:介紹設(shè)計(jì)過(guò)程中遇到的問(wèn)題和解決方法。 測(cè)試:介紹如何測(cè)試系統(tǒng), 測(cè)試中發(fā)現(xiàn)的問(wèn)題和

4、 解決方案?!窘Y(jié)束語(yǔ)】這部分篇幅不大, 對(duì)整個(gè)設(shè)計(jì)中做的工作、 獲得 的成果、心得體會(huì)等做一個(gè)簡(jiǎn)單小結(jié)?!緟⒖嘉墨I(xiàn)】羅列在設(shè)計(jì)過(guò)程中查閱的文獻(xiàn)名稱 注意:參考文獻(xiàn)羅列的格式為資料編號(hào) ?作者姓名 ?文獻(xiàn)或期刊名稱 ?出版社 名稱,文獻(xiàn)的出版時(shí)間或期刊的期號(hào)例如:文獻(xiàn) 1 譚浩強(qiáng).,C 程序設(shè)計(jì)(第二版) M ,北京:清華大學(xué)出版社, 2001年期刊 2 于振海.office XP 網(wǎng)上數(shù) 據(jù)存取 .計(jì)算機(jī)應(yīng)用文摘 J ,2003,24;69(頁(yè))、課程設(shè)計(jì)說(shuō)明書(shū)(或報(bào)告書(shū))正文的書(shū)寫(xiě)格式簡(jiǎn)介一、正文標(biāo)題層次 正文題序?qū)哟问俏恼陆Y(jié)構(gòu) 的框架,一般采用社會(huì)通用的論文書(shū)寫(xiě)形式。 即章條序碼統(tǒng)一用阿拉

5、伯?dāng)?shù)字表示,題序?qū)?次可以分為若干級(jí), 各級(jí)號(hào)碼之間加小圓點(diǎn), 末尾一級(jí)的后面不加小圓點(diǎn),層次分級(jí)一般 不超過(guò)四級(jí)為宜,示例如下:第一級(jí)(章)123第二級(jí)1.12.13.1(條)1.22.2 3.2 第三級(jí)1.1.12.1.13.1.1(條)1.1.2 2.1.2 3.1.2 1.2.12.2.13.2.11.2.22.2.23.2.2二、表格 每個(gè)表格應(yīng)有自己的表序與表題, 表序與表題間空一格。例如:表 1.1 XXXX ,且表題與表序應(yīng)寫(xiě) 在表格的上方正中處。三、插圖 插圖圖面要整齊、美觀,插圖應(yīng)與 正文呼應(yīng),不能脫節(jié)。 每幅插圖應(yīng)有圖序與 圖題,圖序編號(hào)要連續(xù), 圖序與圖題間空一 格且要

6、放在插圖下方居中處。四、公式 公式應(yīng)另起一行寫(xiě)在稿紙的中央 時(shí)間安排:周 次星期星期星期星期四星期五第第 1-4第 3-4第 1-4第第 1-42 周節(jié)節(jié)節(jié)1-2 節(jié)節(jié)地現(xiàn)教現(xiàn)教現(xiàn)教現(xiàn)教現(xiàn)教點(diǎn)221221221221221課程設(shè)計(jì)考核及評(píng)分標(biāo)準(zhǔn)1. 系統(tǒng)完成任務(wù): 50 分2. 各種技術(shù)的綜合應(yīng)用: 10 分3、回答提問(wèn)情況: 20 分4. 設(shè)計(jì)報(bào)告: 20 分1 設(shè)計(jì)題目 1.2 開(kāi)發(fā)環(huán)境 1.2.1硬件環(huán)境 1.2.2軟件環(huán)境 1.3 開(kāi)發(fā)工具 1.4 完成時(shí)間 1.5 需求分析 1.6 系統(tǒng)總體設(shè)計(jì) 2.7 系統(tǒng)詳細(xì)設(shè)計(jì) 5.7.1 系統(tǒng)主菜單 5系統(tǒng)主菜單界面 錯(cuò) 誤!未定 義書(shū) 簽。

7、系統(tǒng)功能模塊圖 錯(cuò) 誤!未定 義書(shū) 簽。系統(tǒng)主菜單流程圖 錯(cuò)誤!未定義書(shū) 簽。系統(tǒng)主菜單代碼 錯(cuò) 誤!未定 義書(shū) 簽。7.2 錄入課程信息 1 17.2.1 錄入課程信息界面 錯(cuò)誤!未定義書(shū) 簽。7.2.2 錄入課程信息模塊圖 錯(cuò)誤!未定義 書(shū)簽。7.2.3 錄入課程信息流程圖 錯(cuò)誤!未定義 書(shū)簽。7.2.4 錄入課程信息代碼 錯(cuò)誤!未定義書(shū) 簽。7.3課程管理 1. 57.3.1 課程管理界面 錯(cuò)誤!未定義書(shū)簽。課程管理模塊圖 錯(cuò) 誤 ! 未 定 義書(shū) 簽。課程管理流程圖 錯(cuò) 誤 ! 未 定 義書(shū) 簽。7.3.4 課程管理代碼 錯(cuò)誤!未定義書(shū)簽。7.4 學(xué)生信息管理 2 07.4.1 學(xué)生信

8、息管理界面 錯(cuò)誤!未定義書(shū) 簽。學(xué)生信息管理界面模塊圖 錯(cuò)誤 !未 定義書(shū)簽。學(xué)生信息管理流程圖 錯(cuò)誤 !未定義 書(shū)簽。7.5 學(xué)生選課7.4.4 學(xué)生信息管理代碼 錯(cuò)誤!未定義書(shū) 簽。2. 77.5.1 學(xué)生選課界面 錯(cuò)誤!未定義書(shū)簽。 學(xué)生選課模塊圖 錯(cuò) 誤!未定 義書(shū) 簽。學(xué)生選課流程圖 錯(cuò) 誤!未定 義書(shū) 簽。7.5.4 學(xué)生選課代碼 錯(cuò)誤!未定義書(shū)簽。8 系統(tǒng)調(diào)試和測(cè)試 3. 88.1 調(diào)試3. 88.2 測(cè)試4. 1.4. 34. 49 結(jié)束語(yǔ) 10 參考文獻(xiàn)1 設(shè)計(jì)題目學(xué)生選課系統(tǒng)2 開(kāi)發(fā)環(huán)境2.1 硬件環(huán)境微機(jī)系列,內(nèi)存在 1G 以上2.2 軟件環(huán)境Win7 系統(tǒng)3 開(kāi)發(fā)工具M(jìn)

9、icrosoft Visual C+ 6.04 完成時(shí)間2016年 2月 29日 2016年3月 4日5 需求分析用戶需求如下:假定有 n 門(mén)課程,每門(mén)課程有課程編號(hào), 課 程名稱,課程性質(zhì),學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于 15)自由選課。試設(shè)計(jì)一 個(gè)選修課程系統(tǒng)。故此,經(jīng)過(guò)分析后我覺(jué)得程序應(yīng)該具有以下 功能:(1)系統(tǒng)以菜單方式工作(2)課程信息和學(xué)生選課信息錄入功能(3)課程信息瀏覽功能(4)查詢功能(5)按學(xué)分查詢6 系統(tǒng)總體設(shè)計(jì)系統(tǒng)由哪幾個(gè)功能模塊構(gòu)成, 給出功能模塊 圖。C 中模塊化的工具是函數(shù)根據(jù)上面的需求分 析,可以將這個(gè)系統(tǒng)

10、的設(shè)計(jì)分為如下六大模塊。選課模塊、按學(xué)分查找模塊、按編號(hào)查找模塊、 查看課程模塊、 查看選課情況模塊、 課程輸入模 塊、完成選擇模塊。模塊圖如下圖 1 所示。菜單選錄入課 程信息錄學(xué)生學(xué)退入信息生出完成選圖 1 系統(tǒng)功能模塊圖 另外,程序用了兩個(gè)結(jié)構(gòu)體和五個(gè)全局變量 N1,N2,kk1,kk2,kk3 。五個(gè)全局變量是用來(lái)控制 輸入數(shù)據(jù)的循環(huán)的。 兩個(gè)結(jié)構(gòu)體分別是課程信息 結(jié)構(gòu)體:struct couse/ 課程信息結(jié)構(gòu)體 int num1;/ 課程編號(hào)char name120;/ 課程名稱 char xinzhi30;/ 課程性質(zhì) int ztime;/ 課程總學(xué)時(shí) int stime;/

11、授課學(xué)時(shí) int shiyan;/ 實(shí)驗(yàn)學(xué)時(shí) int score;/ 學(xué)分 long int date;/ 開(kāi)學(xué)學(xué)期 int nelepeo;/ 課程已選人數(shù) int Melepeo;/ 課程人數(shù)上限 struct couse * next; 和存儲(chǔ)學(xué)生信息的結(jié)構(gòu)體: struct student/ 學(xué)生信息結(jié)構(gòu)體 int num2;char name220;int nelenum50;/ 已選課程編號(hào) int nelen;/ 已選課程數(shù)量 struct student * next; void Ms() for(kk1=0;kk1<1100;kk1+)for(kk2=0;kk2<

12、1200;kk2+)for(kk3=0;kk3<1200;kk3+);7 系統(tǒng)詳細(xì)設(shè)計(jì)7.1 系統(tǒng)主菜單系統(tǒng)界面設(shè)計(jì)圖包括六個(gè)選項(xiàng), 用戶可根據(jù) 自己的需求選擇不同的選項(xiàng)。 系統(tǒng)界面設(shè)計(jì)圖如圖 2 所示圖 2 系統(tǒng)界面設(shè)計(jì)圖 系統(tǒng)模塊圖分為六大模塊。 分別是錄入課程 信息模塊, 課程信息管理模塊, 錄入學(xué)生信息模塊,學(xué)生信息管理模塊, 學(xué)生選課模塊和退出系 統(tǒng)模塊。系統(tǒng)功能模塊圖如下圖 3 所示圖3錄入課程信課程信息管系錄統(tǒng)入功學(xué)能生模信塊圖菜學(xué)生信息管單學(xué)生選課退出系統(tǒng)圖3 主菜單設(shè)計(jì)模塊圖當(dāng)用戶進(jìn)入主菜單后, 會(huì)顯示有六個(gè)選項(xiàng)的 界面,需要用戶從 1-6 個(gè)選項(xiàng)中選擇一個(gè)選項(xiàng)來(lái) 進(jìn)行

13、操作,若所選數(shù)非 1-6,則會(huì)退出系統(tǒng)。系 統(tǒng)主菜單流程圖如圖 4 所示。圖 4 系統(tǒng)總流程圖該程序?qū)崿F(xiàn)代碼如下。int main()/ 主函數(shù)int i;start:printf("nttt 歡迎使用學(xué)生選課系統(tǒng) !n"); printf("n");printf("t 主菜單 :n");printf("t* * n");printf("t*n");printf("t*1.錄入課程信息*n");printf("t*2.課程信息管理*n");printf(&

14、quot;t*3.錄入學(xué)生信息*n");printf("t*4.學(xué)生信息管理*n");printf("t*5.學(xué)生選課*n");printf("t*6.退出系統(tǒng)*n");printf("t* *n");printf("t * n");printf("n 請(qǐng)輸入菜單選項(xiàng) (16):"); scanf("%d",&i);if(i<1 | i>6)printf(" 輸入錯(cuò)誤 ,請(qǐng)重輸 :n");goto star

15、t;switch(i)case 1:system("cls");inputc();goto start;break;case 2:system("cls"); managementc(); goto start; break;case 3:system("cls"); inputs(); goto start; break;case 4:system("cls"); managements(); goto start; break;case 5:system("cls");elective();

16、goto start;break;case 6:system("cls");printf(" 感謝使用本系統(tǒng) !nn 再見(jiàn)!n");return 0;7.2 錄入課程信息錄入課程信息有兩個(gè)選項(xiàng), 錄入課程和返回主菜單。錄入課程信息界面設(shè)計(jì)如圖 5 所示。圖 5 錄入課程信息界當(dāng)用戶進(jìn)入錄入課程后, 會(huì)有兩個(gè)選項(xiàng), 錄入課程和返回主菜單。 錄入課程信息流程圖如圖6 所示。開(kāi)始結(jié)束圖 6 錄入課程信息流程圖實(shí)現(xiàn)該功能代碼如下。void keyboardc()/ 錄入課程子函數(shù)struct couse *p1,*p2;N1=0;p1=p2=(struct co

17、use*)malloc(sizeof(struct couse);printf(" 課程編號(hào) 課程名稱 課程性質(zhì) 總學(xué) 時(shí) 授課學(xué)時(shí) 實(shí)驗(yàn)學(xué)時(shí) 學(xué)分 開(kāi)課學(xué)期 人數(shù)上 限n");scanf("%d%s%s%d%d%d%d%d",&p1->num1,p1->name1,&p1->xinzhi,&p1->ztime,&p1->stime,&p1->shiyan,&p1->score,&p1->date,&p1- >Melepeo);p1-&g

18、t;nelepeo=0;head1=NULL;while(p1->num1!=0)N1=N1+1;if(N1=1)head1=p1;else p2->next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse);scanf("%d%s%s%d%d%d%d%d",&p1->num1,p1->name1,&p1->xinzhi,&p1->ztime,&p1->stime,&p1->shiyan,&p1->score,

19、&p1->date,&p1->Melepeo);p1->nelepeo=0;p2->next=NULL;void inputc()/ 錄入課程主函數(shù)int i;printf("ttt 錄入課程信息 n"); printf("n1. 錄入課程 n"); printf("2. 返回主菜單 n"); printf(" 請(qǐng)選擇 (12):n"); scanf("%d",&i);switch(i) case(1):keyboardc();break; cas

20、e(2):break;7.3 課程管理課程管理有三個(gè)選項(xiàng), 新增課程, 刪除課程 和返回主菜單。課程管理界面設(shè)計(jì)如圖 7 所示圖7 課程管理界面課程管理可以選擇增添或刪除課程, 若輸入 課程格式錯(cuò)誤會(huì)顯示錯(cuò)誤, 用戶需要重新輸入程 管理流程圖如圖 8 所示。Y保結(jié)束圖 8 課程管理流程圖實(shí)現(xiàn)該功能代碼如下。void delc(int num1)/ 課程管理子函數(shù) (刪除課程 ) struct couse *p1,*p2; if(head1=NULL)printf("n 沒(méi)有課程 ,無(wú)法刪除 !n"); goto end;p1=head1;&&while(nu

21、m1!=p1->num1 p1->next!=NULL)p2=p1; p1=p1->next;if(num1=p1->num1)if(p1=head1) head1=p1->next; else p2->next=p1->next; printf(" 已刪除該編號(hào)課程 !n"); N1=N1-1;else printf(" 無(wú)該編號(hào)的課程 !n");end:;void managementc()/ 課程管理主函數(shù)struct couse * incouse;int i,num1;printf("ttt

22、課程信息管理 n");printf("1. 新增課程 n");printf("2. 刪除課程 n");printf("3. 返回主菜單 n");printf(" 請(qǐng)選擇 (13):n"); scanf("%d",&i);switch(i)case(1):incouse=(struct cous *)malloc(sizeof(struct couse);printf(" 課程編號(hào) 課程名稱 課程 性質(zhì) 總學(xué)時(shí) 授課學(xué)時(shí) 實(shí)驗(yàn)學(xué)時(shí) 學(xué)分 開(kāi)課學(xué) 期 人數(shù)上限 n&quo

23、t;);scanf("%dn%sn%sn%dn%dn%dn%dn% dn%dn",&incouse->num1,&incouse->name1, &incouse->xinzhi,&incouse->ztime,&incouse->s time,&incouse->score,&incouse->date,&incouse ->Melepeo); incouse->nelepeo=0; insertc(incouse); break;case(2):prin

24、tf(" 請(qǐng)輸入 要?jiǎng)h除課程的編 號(hào):n");scanf("%d",&num1);delc(num1); break;case(3):break;7.4 學(xué)生信息管理學(xué)生信息管理可選新增或刪除學(xué)生信息, 若 都不操作則可選返回主菜單。 學(xué)生信息管理界面 設(shè)計(jì)如圖 9 所示。圖 9 學(xué)生信息管理界面 學(xué)生信息管理有增加和刪除學(xué)生信息, 若選 擇此項(xiàng), 則會(huì)提示用戶輸出入相關(guān)信息, 若輸入 格式錯(cuò)誤則會(huì)有提示錯(cuò)誤信息, 當(dāng)操作完成后會(huì) 退回主菜單界面。 學(xué)生信息管理界面流程圖如圖 10 所示。開(kāi)始新增學(xué)生信息輸入姓名輸入錯(cuò) 保存信退出結(jié)束圖 10 學(xué)

25、生信息管理界面流程圖 實(shí)現(xiàn)該功能代碼如下。void inserts(struct student * incouse)/學(xué)生信息 管理子函數(shù) (填加學(xué)生信息 )struct student *p0,*p1,*p2;p1=head2;p0=incouse;if(head2=NULL)head2=p0;p0->next=NULL;else&&while(p0->num2 > p1->num2)(p1->next!=NULL)p2=p1; p1=p1->next;if(p0->num2 <= p1->num2) if(head2=

26、p1) head2=p0; else p2->next=p0; p0->next=p1;elsep1->next=p0; p0->next=NULL;N2=N2+1;void dels(int num2)/ 學(xué)生信息管理子函數(shù)(刪除 學(xué)生信息 )struct student *p1,*p2;if(head2=NULL)printf("n 沒(méi)有該學(xué) 生信息,無(wú)法刪除!n");goto end;p1=head2;while(num2!=p1->num2 && p1->next!=NULL)p2=p1;p1=p1->nex

27、t;if(num2=p1->num2)if(p1=head2) head2=p1->next; else p2->next=p1->next;printf(" 已刪除該學(xué)生信息 !n"); N2=N2-1;else printf(" 無(wú)該學(xué)號(hào)的學(xué)生 !n"); end:;void managements()/ 學(xué)生信息管理主函數(shù) struct student * incouse;int i,num2;printf("ttt 學(xué)生信息管理 n");printf("1. 新增學(xué)生信息 n");p

28、rintf("2. 刪除學(xué)生信息 n"); printf("3. 返回主菜單 n"); printf(" 請(qǐng)選擇 (13):n"); scanf("%d",&i);switch(i)case(1):incouse=(struct student*)malloc(sizeof(struct student);incouse->nelen=0; incouse->nelenum0=0; printf(" 學(xué)生學(xué)號(hào) t 學(xué)生姓名 n");scanf("%d%s"

29、,&incouse->num2,incouse->nam e2);inserts(incouse);break;case(2):printf(" 請(qǐng)輸入 要?jiǎng)h除學(xué)生的學(xué) 號(hào):n");scanf("%d",&num2);dels(num2);break;case(3):break;7.5 學(xué)生選課學(xué)生選課可以查詢已選和可選課程, 此外還 有返回主菜單選項(xiàng)學(xué)生選課界面設(shè)計(jì)如圖 11 所 示。圖 11 學(xué)生選課界面進(jìn)入選課選項(xiàng)則會(huì)提示用戶輸入學(xué)號(hào)然后 再進(jìn)行選課。 若不選則可以退回主菜單。 學(xué)生選課流程圖如圖 12 所示學(xué)生選課輸入

30、n輸入nNY結(jié)束圖 12 學(xué)生選課流程圖 實(shí)現(xiàn)該功能代碼如下。選課程序如下。 用戶要選課時(shí), 查詢可選課 程后會(huì)提示輸入所要選的課程的編號(hào), 然后程序 會(huì)根據(jù)所選的課程編號(hào)將所選課程信息儲(chǔ)存。 void elect(struct student * s)/ 選課 struct couse * p; int num1,i;printf(" 請(qǐng)輸入要選課的編號(hào) :n"); scanf("%d",&num1); for(i=0;s->nelenumi!=0;i+); s->nelenumi=num1;(s->nelen)+;p=hea

31、d1;while(p->num1!=num1) p=p->next;(p->nelepeo)+;void cheak()/ 學(xué)生選課子函數(shù) (查詢可選課程 )char e;struct couse * c;struct student * s;int num2,i,j=0,t=0;printf(" 請(qǐng)輸入你的學(xué)號(hào) :");scanf("%d",&num2);s=head2;while(s->num2!=num2 && s->next!=NULL) s=s->next;if(s->num2!

32、=num2)printf(" 不存在你的信息 ,請(qǐng)進(jìn)入主菜單 錄入你的信息 !n");goto end;c=head1;printf(" 你的可選課程編號(hào) :n"); while(c!=NULL)for(t=0,i=0;s->nelenumi!=0;i+)if(c->num1=s->nelenumi) t=1;if(t=0 && (c->nelepeo!=c->Melepeo)printf("%dn",c->num1);j+;c=c->next;if(j=0)printf(&q

33、uot; 你已選完所有課程,無(wú)法再多 選!n");goto end;printf(" 選課 (y/n)?:n");getchar();e=getchar();i=0;while(e='y')elect(s);printf(" 繼續(xù)選課 (y/n)?:n");getchar(); e=getchar();end:;退課程序如下。首先輸入要退掉課程的編 號(hào),若該課程存在,則顯示退課成功, 若不存在, 則失敗。void back(struct student * p)/ 退課struct couse * p1;int num1,i,j

34、;printf(" 請(qǐng)輸入你要退掉的課程編號(hào) :n"); scanf("%d",&num1);p1=head1; while(p1->num1!=num1) p1=p1->next;for(i=0;p->nelenumi!=num1;i+); for(j=i;p->nelenumj!=0;j+) p->nelenumj=p->nelenumj+1;p->nelenum-j=0;(p1->nelepeo)-;printf(" 退課成功 !n"); 查詢已選課程代碼如下。 首先輸入學(xué)

35、號(hào), 若 系統(tǒng)中無(wú)記錄, 則會(huì)提示不存在該信息, 請(qǐng)用戶 錄入該信息,然后用 goto 語(yǔ)句跳轉(zhuǎn)到主菜單界 面。若有記錄,則繼續(xù)輸入課程編號(hào),若未選此 課,則會(huì)提示你還沒(méi)有選這個(gè)課程。 void hcheak()/ 學(xué)生選課子函數(shù)(查詢已選課程 ) char c; struct couse * p0;struct student * p;int num2,i,f=0;printf(" 請(qǐng)輸入學(xué)號(hào) :n"); scanf("%d",&num2);p=head2;while(p->num2!=num2 && p!=NULL) p

36、=p->next;if(p=NULL)printf(" 不存在你的信息 ,請(qǐng)回主菜單錄 入信息 :n");goto end;printf(" 已選課程編號(hào) :n");if(p->nelenum0=0)printf(" 你還沒(méi)選課 !n");goto end;for(i=0;p->nelenumi!=0;i+)printf("%dn",p->nelenumi); p0=head1;while(p0->num1!=p->nelenumi) p0=p0->next;f=f+p0-

37、>score;printf(" 總學(xué)分 :%dn",f);printf(" 是否進(jìn)行退課 (y/n)?");getchar();c=getchar();while(c='y')back(p);printf(" 繼續(xù)退課 (y/n)?");getchar();c=getchar();(p->nelen)-;end:;選課主界面程序如下。用 printf 輸出界面, 用 switch 語(yǔ)句選擇調(diào)用對(duì)應(yīng)的函數(shù)以實(shí)現(xiàn)選擇 各種情況。void elective()/ 學(xué)生選課主函數(shù)int i;printf("

38、;ttt 學(xué)生選課 n");printf("1. 查詢可選課程 n");printf("2. 查詢已選課程 n");printf("3. 返回主菜單 n");printf(" 請(qǐng)輸入 (13):n"); scanf("%d",&i);switch(i)case(1):cheak();break; case(2):hcheak();break; case(3):break;8 系統(tǒng)調(diào)試和測(cè)試8.1 調(diào)試在調(diào)試程序的過(guò)程中, 一方面遇到了一些編 程序時(shí)的通病,比如經(jīng)常性的漏掉了語(yǔ)句尾的分 號(hào),還偶爾的漏掉大括號(hào), 導(dǎo)致程序不能正常編 譯。另一方面在編寫(xiě)函數(shù)模塊時(shí), 由于之前設(shè)計(jì) 考慮得不足, 會(huì)有一些功能無(wú)

溫馨提示

  • 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ù)網(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)論