




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CHANGSHAUNIVERSITY OF SCIENCE & TECHNOLOGY課程設計(論文)題目:學生選修課管理系統設計學生姓名:江元學號:201153100121班級: 信息與計算科學11-01班所在院部: 數學與計算科學學院指導教師:龔紅仿 2013 年 1 月學生選修課管理系統設計學生姓名:江元學號:201153100121班級:信計11-01班指導教師:龔紅仿完成日期: 2013年1月11日學生選修課管理系統設計摘要C語言課程設計和現代計算機技術的實際應用相結合,是我們在本階段學完理論課程之后對自己該方面的能力的一次很好的檢驗,從開始的算法思路到運行調試后的美觀的圖形界
2、面以及另人興奮的可用程序,都是一個很好的學習和鍛煉的過程。使我們鞏固了原有的理論知識,培養了我們靈活運用和組合集成所學過知識及技能來分析、解決實際問題的能力。使我們體會到自身知識和能力能在實際中的應用和發揮。不但可以激發創新意識,還可以開發創造能力、培養溝通能力。這次學生選修課系統管理設計時間雖然僅有一個星期,但確實使我受益非淺。通過學生選修課系統管理設計我豐富了計算機操作經驗,更加深了對C語言的了解,熟悉了其環境,更增強了對Microsoft Visual C+ 6.0的使用技巧。C語言是在國內外廣泛使用的一種計算機語言。語言功能豐富、表達能力強、使用靈活方便、既具有高級語言的優點,又具有低
3、級語言的許多特點,適合編寫系統軟件。同時,我覺得C語言應該是操作和理論相結合的課程,在不斷地編寫中去思考,兩者是不可分割的。我們在編寫一個較大的程序時應該把它分開成幾個小程序來看,這樣會容易得多。關鍵詞:學生選修課系統管理;C語言課程設計;計算機技術;模塊化程序設計;信息錄入;瀏覽信息;選課;查詢STUDENTS ELECTIVE COURSES MANAGEMENT SYSTEM DESIGNABSTRACTC language curriculum design and modern computer technology in the practical application of t
4、he combination, we are at this stage of learning theory course on their own side of the ability of a good test, from the beginning of the algorithm to run after the beautiful graphical interface and exciting available procedures, is a very good learning and training process. We consolidate the origi
5、nal theory of knowledge, cultivate our flexible application and integration of the knowledge learned and skills of analysis, ability to solve practical problem. So that we realize that their knowledge and ability in practical application and play. Can not only stimulate consciousness of innovation,
6、also can develop creative ability, communication skills training. The student elective system management design time although only a week, but it does make me benefit. Students elective system management design my rich experience in computer operation, more deep understanding of the C language, fami
7、liar with the environment, more increased to Microsoft Visual C+ 6 using skills.The C language is widely used at home and abroad a computer language. Language feature-rich, expressive capability is strong, flexible and convenient use, not only has the advantages of high-level language, but also has
8、many of the characteristics of low-level language, suitable for the preparation of system software. At the same time, I think C language should be the operation of combining theory and curriculum, constantly writing to think, the two are inseparable. Us in the preparation of a larger process should
9、divide it into several small procedures, it would be much easier.Key words:students elective system management; C language curriculum design; computer technology; modular design; information; information query; selection;目錄1、需求分析12.1概要設計12.1模塊設計及圖示12.2主函數流程設計23詳細設計33.1程序中的數據類型33.2函數運行過程詳解34、設計和調試分析1
10、34.1 調試中遇到的問題134.2 算法復雜度分析154.3 經驗和體會155、用戶使用說明166、測試數據和測試結果16參考文獻221 需求分析假定有N門課程,每門課程有課程編號,課程名稱,課程性質,總學分,授課學時,實驗上機學時,學分,開課學期等信息,學生可按要求(如總學分不得少于60)自由選課。要求設計一選修課程系統,使之能提供以下功能:(1)課程信息錄入功能(課程信息用文件保存)-輸入;(2)課程信息瀏覽功能-輸出;(3)查詢功能:(多種查詢方式:一種、任意兩種組合、三種都能滿足)-算法;(1)按學分查詢(2)按課程性質查詢;(3)按課程名稱查詢;要求:(1)用C語言實現系統,源程序
11、要有適當的注釋,使程序容易閱讀;(2)函數功能要劃分好(結構化程序設計);(3)至少采用文本菜單界面(如果能采用圖形菜單界面更好);(4)可以增加新功能模塊2概要設計本程序功能模塊根據程序設計的需求,綜4.0合程序的實用性、智能化得考慮,將程序劃分為6個模塊分別編寫:2.1五個模塊分別為:(1)瀏覽課程信息模塊(2)查詢課程信息模塊(3)進入系統進行選課模塊(4)選課情況統計模塊(5)錄入選課信息模塊將備選課程信息錄入錄入選課信息已選信息學生選課并記錄按學分查詢按課程性質查詢按課程名稱查詢查詢課程信息進入選課輸出選課情況選課情況統計學生選修課程管理系統輸出文件全部信息瀏覽課程信息2.2主函數的
12、流程設計:學生選課系統執行主流程如圖所示,先執行主函數開始主函數是否繼續進行相應的操作結束輸入【05】中所要操作的項目對應的數字中顯示菜單函數,通過循環和按鍵操作來執行相應的操作。按鍵的有效鍵值為05之間的任意數值,其他按鍵為無效輸入。各個按鍵的執行功能為:“1”:瀏覽已錄入的選修課課程信息調用函數,browser();“2”:通過不同的方式查找記錄,調用函數search();“3”:進入系統進行選課,調用函數xuan_ke();“4”:查看課程已選情況,調用函數xuanke_information();“5”:錄入選修課信息,調用函數input();“0”:退出系統;3詳細設計3.1程序中定
13、義的數據類型3.1、1定義與課程有關的結構體struct course int num; /*課程編號*/char name20; /*課程名稱*/ char kind10; /*課程性質*/int taltime,ttime,etime,mark,term; /*課程時間,學分,開課信息等*/;定義與學生有關的結構體struct studentint snum;/*學生學號*/int cnum;/*所選課程編號*/char cname20;/*所選課程名稱*/;3.2每個函數的過程詳解3.2.1void f1();函數原型:void f1();函數源程序:void f1()/*常用函數2*/
14、printf("n課程編號課程名稱課程性質授課學時實驗或上機學時總學時學分開課學期:n");函數功能及實現:此函數僅包含輸出語句,在課程信息輸出之前調用此函數,打印出表頭信息3.2.2void menu();函數原型:void menu()函數源程序:void menu()/*主菜單*/ Printf(“nnn”);printf(" 歡迎使用學生選課系統! n"); printf(" * n");printf(" * 1-瀏覽選課信息 2-查詢選課信息 * n"); printf(" * 3-進入選課操作
15、 4-選課情況統計 * n");printf(" * 5-錄入選課信息 0-退出選課系統 * n"); printf(" * n");printf(" 請選擇輸入選項編號(請先選擇5進行課程信息錄入): ");函數功能及實現:此函數為輸出菜單,進入系統后提示可根據供選擇的項目進行后續操作。3.2.3void browser();函數原型:void browser();函數源程序:/*瀏覽選課信息*/void browser()FILE *fp;/*定義指向文件的指針*/struct course c;/*定義課程結構體變量c
16、*/if(fp=fopen("course.txt","r")=NULL) printf("nCannot open course!n");f1(); for(;!feof(fp);) /*直到文件結束*/fscanf(fp,"%d %s %s %d %d %d %d %dn",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term); /*將課程信息寫入文件*/print
17、f("%5d%12s%9s%9d%12d%12d%8d%9dn",c.num,,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);/*格式化輸出*/ fclose(fp);/*關閉文件*/menu();函數功能及實現:此函數先定義指向文件的指針*fp,課程結構體變量c,通過if語句判斷文件是否存在,在調用函數f1(),輸出表頭信息,通過for循環并使用fscanf函數將文件中的課程信息讀出并通過printf打印到屏幕上,再通過fclose函數關閉文件。3.2.4void search();函數原型:void sear
18、ch();函數源程序:/*查詢選課信息*/void search()FILE *fp; /*定義文件指針變量*/struct course c;/*定義學生結構體變量c*/int score;char kind10;char name20;int b;/*輸入需要的查詢課程信息的方式*/printf("n 1.按學分查詢nn");printf("n 2.按課程性質查詢nn");printf("n 3.按課程名稱查詢nn");printf(" 請選擇查詢方式,輸入選項數字:");開始打開文件查看學生選課信息判斷查詢方
19、法結束2輸入按課程性質查按學分查1按名稱查詢scanf("%d",&b);for(;b<1|b>3;)printf(" 輸入錯誤,請重新輸入!");scanf("%d",&b);/*按學分查詢*/if(b=1) printf("n 請輸入您要查詢的學分: ");scanf("%d",&score);if(fp=fopen("course.txt","r")=NULL)printf("nCannot open c
20、ourse!n");f1();for(;!feof(fp);)fscanf(fp,"%d%s%s%d%d%d%d%dn",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);if(c.mark=score)printf("%5d%12s%9s%9d%12d%13d%8d%9dn",c.num,,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term
21、);/*按課程細致查詢*/else if(b=2)printf("n 請輸入您要查詢的課程性質: ");scanf("%s",&kind);if(fp=fopen("course.txt","r")=NULL)printf("nCannot open course!n");f1();for(;!feof(fp);) fscanf(fp,"%d%s%s%d%d%d%d%dn",&c.num,&,&c.kind,&c.ttime
22、,&c.etime,&c.taltime,&c.mark,&c.term);if(strcmp(c.kind,kind)=0)printf("%5d%12s%9s%9d%9d%11d%11d%11dn",c.num,,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);/*按課程名稱查詢*/else if(b=3)printf("n 請輸入課程名稱:");scanf("%s",&name);if(fp=fopen("course.
23、txt","r")=NULL) printf("nCannot open course!n");f1();for(;!feof(fp);)fscanf(fp,"%d%s%s%d%d%d%d%dn",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);if(strcmp(,name)=0)printf("%5d%12s%9s%9d%9d%11d%11d%11
24、dn",c.num,,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);elseprintf("輸入錯誤!");exit(1);fclose(fp);menu();/*調用menu函數*/函數功能及實現:先定義學生結構體變量s,打印相關可供選擇的選項,通過scanf函數讀取輸入字符,打印表頭,再使用if語句進行相關選擇。如果數“1”,則是按學分查詢課程,符合第一個if語句,輸入想要查詢的學分,程序通過for循環從文件中讀取課程信息,并通過printf函數輸出滿足要求的課程信息;如選擇“2”,符合第二個if語
25、句,則按照課程性質查詢,輸入課程性質,程序通過for循環從文件中讀取課程信息,并通過printf函數輸出滿足要求的課程信息;如輸入“3”,符合第二個if語句,則按照課程名稱查詢,輸入要課程名稱,程序通過for循環從文件中讀取課程信息,并通過printf函數輸出滿足要求的課程信息;查詢完成后通過fclose 函數關閉文件,打印主菜單,返回主函數。3.2.5void xuan_ke();函數原型:void xuan_ke()函數源程序:/*進入選課操作*/void xuan_ke() struct student s;/*定義學生結構體變量s*/struct course c;/*定義課程結構體變
26、量c*/FILE *fp;/*定義文件指針變量*/printf("n 請輸入您的學號及您要選擇的課程編號(用空格分開):");scanf("%d%d",&s.snum,&um);if(fp=fopen("course.txt","r")=NULL)/*打開選課記錄文件"course.txt"*/printf("nCannot open course!n");for(;!feof(fp);)fscanf(fp,"%d %s %s %d %d %d %d
27、 %dn",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);if(um=c.num)break;fclose(fp);/*關閉選課記錄文件"course.txt"*/if(fp=fopen("student.txt","a+")=NULL)printf("nCannot open student!n"); /*將學生選課信息輸入student.txt文件
28、*/fprintf(fp,"%d %d %sn",s.snum,um,);fclose(fp);printf("n 恭喜您選課成功!n");menu();函數功能及實現:進入此函數可進行自由選課,首先定義了學生結構體變量s,和課程結構體變量c。選課學生輸入自己的學號和要選的課程,通過for循環打開文件并找到所要選擇的課程,通過break跳出循環,關閉課程文件“course.txt”并將學生選課信息存入文件“student.txt”中,關閉文件。打印菜單信息,返回主函數。3.2.6void xuanke_information();函數原型:v
29、oid information();函數源程序:/*選課情況統計*/void xuanke_information()int total=0;/*人數統計變量*/FILE *fp;struct student s;if(fp=fopen("student.txt","r")=NULL)/*打開選課記錄文件"student.txt"*/printf("nCannot open student!n");printf("n 學號課程編號課程名稱n");for(;!feof(fp);)fscanf(fp
30、,"%d%d%sn",&s.snum,&um,&ame);total+;printf("%22d%17d%18sn",s.snum,um,ame);printf("n 選課學生總人數為:%d 人",total);fclose(fp);menu();函數功能及實現:此函數為查看選修課被選擇的情況。定義了變量total為了統計選課人數,通過if語句判斷是否存在文件“student.txt”,通過for循環打印出所有已選課學生的學號、選課課程編號和所選課程的名稱,通過計數變量total輸出已選課的人數信息。然后打印菜
31、單,返回主函數。3.2.7void input()函數原型:void input();函數源程序:/*錄入選修課課程信息*/void input()FILE *fp;struct course c;int count;int i;if(fp=fopen("course.txt","a+")=NULL)/*建立文件"course.txt"*/printf("cannot open filen");printf("n (錄入選課信息)請輸入課程門數: ");scanf("%d",
32、&count);printf("n (各項目間用空格分開)nn");f1();for(i=0;i<count;i+) scanf("%d %s %s %d %d %d %d %d",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);fprintf(fp,"%d %s %s %d %d %d %d %dn",c.num,,c.kind,c.ttime,c.eti
33、me,c.taltime,c.mark,c.term);fclose(fp);printf("n 錄入數據成功!nn");menu();函數功能及實現:此函數錄入課程信息,在查詢、瀏覽、進入選課,查看選課信息等函數之前。定義指向文件的指針變量*fp,課程信息結構體c,通過fopen函數建立文件”course.txt”,后輸入錄入課程的門數,打印表頭,通過for循環,用scanf函數從屏幕讀取課程信息,并通過fprintf函數將課程信息錄入到文件“course.txt”中,最后輸出主菜單,返回主程序。3.2.8void main()函數源程序:/*主函數*/void main
34、()int n;menu();scanf("%d",&n);/*防止錯誤,提示重新輸入*/for(;n>5|n<0;)printf("n 輸入錯誤!請重新輸入! ");scanf("%d",&n);while(n>0&&n<6)switch(n) case 1:browser();break;/*瀏覽選課信息*/ case 2:search();break; /*查詢選課信息*/ case 3:xuan_ke();break;/*進入選課操作*/ case 4:xuanke_in
35、formation();break;/*選課情況統計*/ case 5:input();break;/*錄入選課信息*/ scanf("%d",&n);/*防止錯誤,提示重新輸入*/for(;n>5|n<0;)printf("n 輸入錯誤!請重新輸入! ");scanf("%d",&n);system("cls");/*調用系統命令cls,清除屏幕*/ if(n=0) exit(0);/*退出選課系統*/函數功能及實現:函數先打印出主菜單,用戶可通過輸入項目編號進行后續操作,輸入數字為0
36、5之間的任意數字,代表進入不同的模塊,通過for循環可有效避免錯誤選擇。如果輸入15通過while循環和switch調用相關函數,實現相關功能,調用完后,通過break跳出循環,并選擇后續操作。為了界面的更加簡潔,調用DOS命令,清屏。如果輸入0則執行exit(0)退出程序。4 設計和調試分析4.1調試中遇到的問題(1)在用scanf函數給普通變量輸入數據時,在變量名前漏寫地址運算符&。如:scanf(dd, x, y); (2)在scanf函數調用語句中,企圖規定輸入實型數據的小數位。如執行以下語句:scanf(6.2f, &a);(3)輸入數據時的數據形式與要求不符。用sc
37、anf函數輸入數據時,必須注意要與scanf語句中的對應形式匹配。如:scanf(d,d,&x, &y);若按以下形式輸入數據: 2 4是不合法。數據2和4之間應當有逗號。(4)輸入、輸出時的數據類型與所用格式說明符不匹配。例如有以下說明語句: int x=1; char y=a;則運行時執行語句 printf(x=c, y=dn, x, y);將給出與原意不符的結果:(在TURBO C 2.0 下運行)(5)混淆"="和"="。在C語言中,"="賦值運算符,"="是關系運算符。(6)在不該出現分號
38、的地方加了分號。例如:if(xy); printf(x is larger than y. n);(7)對于復合語句,忘記加花括號。例如: i=1; a=0;while (i=10)a+=i; i+;printf(a=dn,a);(8)誤把數組說明時所定義的元素個數作為最大下標值使用。C語言規定,引用數組元素時下標從0開始,即下標值的下限為0,而下標的上限值是數組定義時元素個數減1。(9)在switch語句的各分支中未使用break語句。例如:switch(n) case 1:browser(); case 2:search(); case 3:xuan_ke(); case 4:xuanke
39、_information(); case 5:input(); 4.2 算法的時間復雜度分析時間復雜度分析設有n們選修課則算法的時間復雜度依次為:browser()的時間復雜度為:T1=O(n);search()的時間復雜度為:T2=O(3*(2+n))xuan_ke()的時間復雜度為:T3=O(2+2*n)xuanke_information()的時間復雜度為T4=O(1+2*n)input()的時間復雜度為:T5=O(1+2*n)所以時間復雜度為T=O(n)4.3經驗和體會(1)通過這次的課程設計,使我了解了一個簡單的學生選課系統的設計過程,并且基本掌握了Microsoft Visual
40、C+的基本用法,掌握C語言程序設計課程的基本知識及其應用情況,加深對該課程的理解,在這次設計過程中使我對編程和程序的開發建立了濃厚的興趣。(2)在設計過程中遇到了很多的問題,但是最后通過自己的努力或者在網上尋找最后都得到了解決,雖然這次的設計是一個很小的程序但是設計這樣的程序真的不簡單呀,雖然這次的設計時間很短,并且程序也不是很大,但是還是遇到了許多問題,但是我相信在以后的學習中我會更加的努力,并且努力的改正現在的程序,使之程序的功能更加的完善。(3)通過此次編程培養了我們結構化程序設計的思想,加深了對高級語言基本語言要素和控制結構的理解,鍛煉我們獨立思考制作程序的能力,并且掌握了一些課程設計
41、的相關知識與實踐操作能力,為以后的學習提供了鍛煉的機會。經過設計和開發,我對于數據的一致性的問題也通過程序進行了有效的解決。從而是我對c語言這門課程有了更好的了解。5 用戶使用說明(1)根據正確的提示安裝軟件。(2)Intel486以上系列、AMD K6 以上系列等PC臺式機和便攜式電腦都可運行。 (3) 打開該程序系統,瀏覽菜單,根據需要選擇功能,進行各項操作。操作如下:點擊開始菜單,進入菜單選擇。輸入:將所需的信息輸入。輸出:學生信息、課程查詢輸入:根據不同的需要選擇,當信息輸入顯示出錯誤時,進入瀏覽信息,找出錯誤。當錯誤不能改正,則退出瀏覽信息。進入查詢信息:則屏幕會出現三個對話框按學分
42、,課程性質和課程名稱查找,查處相應的所選課程信息(是否選滿)。當查詢不能顯示需要時進入修改程序,把所輸入的信息 進行修改,使之正確能夠正常運行或進入刪除信息中,重新輸入自己所要的信息。當信息輸入正確,進入你所需要的菜單程序中:課程信息:顯示課程編號、課程名稱、課程性質、授課學時、實驗或上機學時、總學時、學分 開課學期。學生信息:顯示出學生的學號。6 測試數據和測試結果(1)進入系統界面(2)錄入選修課課程信息: 根據提示輸入課程信息,先輸入課程門數,再輸入相關課程信息,每個輸入項用空格隔開,如圖輸入5門課程后的結果:(3)瀏覽課程信息: 在輸入課程信息后方可進行課程信息瀏覽,如圖是輸入“1”進
43、行課程信息瀏覽后得到的結果:(4)按“2”進行課程信息查詢(1)按學分查詢 首先輸入“1”按學分查詢,再根據提示輸入要查詢的學分,如圖為所有為1學分課程的相關信息:(2)按課程性質查詢 選擇“2”為按課程性質查詢,輸入“自然科學”并按“Enter”,得到所有性質為“自然科學”的課程,如圖為得到的結果:(3)按課程名稱查詢輸入“3”進行按課程名稱查詢,輸入“大學語文”按“Enter”得到如圖的結果:(5)按“3”進入選課系統進行選課 選課時輸入學號和所要選擇的課程編號,并用空格隔開,如圖是學號為“201153101”的學生選擇編號為“1”(即大學語文課程)得到的結果:(5)統計選課情況 輸入“4
44、”可以統計選課情況,如圖是統計結果:6、按“0”退出選課系統參考文獻1 美H M Deitel,P J Deitel著,薛萬鵬等譯. C語言程序設計教程.北京:機械工業出版社,2000.072 譚浩強. C程序設計(第二版).北京:清華大學出版社,1999.123 美Kenneth A.Reek著,徐波譯.C和指針.北京;人民郵電出版社2008.4附錄 源程序清單#include<stdio.h> /*標準輸入輸出函數庫*/#include<stdlib.h>/*標準函數庫*/#include <string.h>/*字符串函數庫*/ /*定義與課程有關的結
45、構體*/struct course int num; /*課程編號*/char name20; /*課程名稱*/ char kind10; /*課程性質*/int taltime,ttime,etime,mark,term; /*課程時間,學分,開課信息等*/;/*定義與學生有關的結構體*/struct studentint snum;/*學生學號*/int cnum;/*所選課程編號*/char cname20;/*所選課程名稱*/;/*函數原型*/void f1();void menu();void browser();void search();void xuan_ke();void x
46、uanke_information();void input();/*常用函數1*/void f1()printf("n課程編號課程名稱課程性質授課學時實驗或上機學時總學時學分開課學期:n");/*主菜單*/void menu() printf("nnn");printf(" 歡迎使用學生選課系統! n");printf(" * n"); printf(" * 1-瀏覽選課信息 2-查詢選課信息 * n");printf(" * 3-進入選課操作 4-選課情況統計 * n")
47、;printf(" * 5-錄入選課信息 0-退出選課系統 * n"); printf(" * n");printf(" 請選擇輸入選項編號(請先選擇5進行課程信息錄入): ");/*主函數*/void main()int n;menu();scanf("%d",&n);/*防止錯誤,提示重新輸入*/for(;n>5|n<0;)printf("n 輸入錯誤!請重新輸入! ");scanf("%d",&n);while(n>0&&
48、;n<6)switch(n) case 1:browser();break;/*瀏覽選課信息*/ case 2:search();break; /*查詢選課信息*/ case 3:xuan_ke();break;/*進入選課操作*/ case 4:xuanke_information();break;/*選課情況統計*/ case 5:input();break;/*錄入選課信息*/ scanf("%d",&n);/*防止錯誤,提示重新輸入*/for(;n>5|n<0;)printf("n 輸入錯誤!請重新輸入! ");scan
49、f("%d",&n);system("cls");/*調用系統命令cls,清除屏幕*/ if(n=0) exit(0);/*退出選課系統*/*瀏覽選課信息*/void browser()FILE *fp;/*定義指向文件的指針*/struct course c;/*定義課程結構體變量c*/if(fp=fopen("course.txt","r")=NULL)printf("nCannot open course!n");f1();for(;!feof(fp);) /*直到文件結束*/fs
50、canf(fp,"%d %s %s %d %d %d %d %dn",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term); /*將課程信息寫入文件*/printf("%5d%12s%9s%9d%12d%12d%8d%9dn",c.num,,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);/*格式化輸出*/fclose(fp);/*關閉文件*/ me
51、nu();/*查詢選課信息*/void search()FILE *fp; /*定義文件指針變量*/struct course c;/*定義學生結構體變量c*/int score;char kind10;char name20;int b;/*輸入需要的查詢課程信息的方式*/printf("n 1.按學分查詢nn");printf("n 2.按課程性質查詢nn");printf("n 3.按課程名稱查詢nn");printf(" 請選擇查詢方式,輸入選項數字:");scanf("%d",&
52、;b);for(;b<1|b>3;)printf(" 輸入錯誤,請重新輸入!");scanf("%d",&b);/*按學分查詢*/if(b=1) printf("n 請輸入您要查詢的學分: ");scanf("%d",&score);if(fp=fopen("course.txt","r")=NULL)printf("nCannot open course!n");f1();for(;!feof(fp);)fscanf(fp,&
53、quot;%d%s%s%d%d%d%d%dn",&c.num,&,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);if(c.mark=score)printf("%5d%12s%9s%9d%12d%13d%8d%9dn",c.num,,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);/*按課程性質查詢*/else if(b=2)printf("n 請輸入您要查詢的課程性質: ");scanf("%s",&kind);if(fp=fopen("course.txt","r")=NULL)printf("nCannot open course!n");f1();for(;!feof(fp);) fscanf(fp,"%d%s%s%d%d%d%d%dn",&c.n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年動力調諧陀螺平臺項目建議書
- 詳解光電工程師證書考試內容試題及答案
- 2025年制劑仿制藥合作協議書
- 諸城護理面試題及答案
- 陪伴成長2024系統規劃與管理師考試試題及答案
- 證券求職面試題及答案
- 解析2024年專利代理人資格考試中的常見難題試題及答案
- 家校社三方聯動推動雙減政策落實新路徑
- 藥物安全監測的體系考核試題及答案
- 高二化學結構試題及答案
- 寧夏三支一扶考試試題及答案
- 特種設備作業人員考試機構規范管理辦法(含附件附表 )
- 環境有害物質管理辦法
- 基于PLC的溫室大棚控制系統設計
- 動物免疫學第五章細胞因子
- 新版防雷檢測職業技能競賽綜合知識試題庫(精簡500題)
- 2023年新華人壽保險股份有限公司招聘筆試題庫及答案解析
- GB/T 3452.1-2005液壓氣動用O形橡膠密封圈第1部分:尺寸系列及公差
- GB/T 23641-2018電氣用纖維增強不飽和聚酯模塑料(SMC/BMC)
- 新版《FMEA(第五版)》學習筆記(完整版)
- 裝配式建筑施工組織設計(修改)
評論
0/150
提交評論