C語言與數(shù)據(jù)結(jié)構(gòu)期末考核選題_第1頁
C語言與數(shù)據(jù)結(jié)構(gòu)期末考核選題_第2頁
C語言與數(shù)據(jù)結(jié)構(gòu)期末考核選題_第3頁
C語言與數(shù)據(jù)結(jié)構(gòu)期末考核選題_第4頁
C語言與數(shù)據(jù)結(jié)構(gòu)期末考核選題_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、c語言程序設(shè)計選題 考試要求: 1、要求利用C語言課程上學(xué)習(xí)的基礎(chǔ)編程技巧來完成程序的設(shè) 計;在設(shè)計的過程中,要建立清晰的函數(shù)并正確使用相應(yīng)的數(shù)據(jù)類型; 在系統(tǒng)設(shè)計中要分析函數(shù)與函數(shù)之間的關(guān)系, 將查找和排序的算法獨 立出來形成為單獨的代碼。 2、如果有數(shù)據(jù)交互的地方,要求對用戶輸入的數(shù)據(jù)都進行有效 性驗證,以保證程序的正常運行。 3、要有完整的程序(能夠運行,顯示結(jié)果)與文檔(內(nèi)容要求 有詳細的功能實現(xiàn)說明,具體的函數(shù)設(shè)計和使用說明)。 考試目的: 1、加深對面向過程設(shè)計中基礎(chǔ)理論和基本知識的理解,培養(yǎng)學(xué) 生的實踐能力,促進理論與實踐的結(jié)合。通過課程設(shè)計,讓學(xué)生能夠 熟練運用C語言進行面向編

2、程,降低軟件的復(fù)雜性,改善軟件的重用 性和維護性,提高軟件的生產(chǎn)效率,全面掌握編程技術(shù)。 2、通過程序設(shè)計,掌握面向?qū)ο蟪绦蛟O(shè)計語言 C語言,培養(yǎng)調(diào) 查研究、查閱技術(shù)文獻、資料、手冊以及編寫技術(shù)文獻的能力指導(dǎo)等。 選題1 :職工信息管理系統(tǒng)設(shè)計 職工信息包括職工號、姓名、性別、出生年月、學(xué)歷、職務(wù)、工 資、住址、電話等(職工號不重復(fù))。試設(shè)計一職工信息管理系統(tǒng), 使之能提供以下功能: 1、職工信息錄入功能(職工信息用文件保存) 2、 職工信息瀏覽功能 3、 查詢或排序功能:(至少一種查詢方式) A、 按工資查詢 B、 按學(xué)歷查詢等 4、 職工信息刪除、修改功能 選題2:學(xué)員成績管理系統(tǒng) 定義主

3、類,要求能夠完成下列功能,并在主函數(shù)中給出主菜單, 供用戶調(diào)用和實現(xiàn): 1、輸入:函數(shù)input把N學(xué)生的學(xué)號、姓名、性別、年齡、3 科成績以及平均成績和總成績放在一個結(jié)構(gòu)體數(shù)組中,學(xué)生的學(xué)號、 姓名、3科成績由鍵盤輸入,然后計算出平均成績和總成績放在結(jié)構(gòu) 體對應(yīng)的域中。 2、插入:insert函數(shù)輸入一個學(xué)生的記錄,按學(xué)號的先后順序 插入該學(xué)生的全部內(nèi)容。 3、排序:sort函數(shù)對所有學(xué)生按要求排序(1.學(xué)號2.總成績), 并輸出。 4、查找:find函數(shù)輸入一個學(xué)生的學(xué)號或姓名,找到該學(xué)生并 輸出該學(xué)生的全部內(nèi)容。要求能查詢多次。 5、刪除:delete函數(shù)輸入一個學(xué)生的學(xué)號或姓名,找到該

4、學(xué)生 并刪除該學(xué)生的全部內(nèi)容。 6、輸出:函數(shù)out put輸出全部學(xué)生的記錄。 選題3:黑白棋游戲 黑白棋,又叫反棋(Reversi)、奧賽羅棋(Othello)。 黑白棋規(guī)則: 1) 兩人對奕,以輪流方式持黑子與白子。 2) 開辟新局者持白子,加入者持黑子,之后以輪流方式將棋子 置于棋盤格子中。若無地方可下子,則跳過一回,由對方下子。 3) 在提示的格子中,選擇一個格子下子,當下子的位置與離最 近的同色旗子中,若有其他棋子則中間的棋子變?yōu)榕c我方一樣顏色。 4) 當下滿64個棋子,棋子多者為勝。 選題4:圖書館管理系統(tǒng) 設(shè)計要求:該系統(tǒng)要求能夠具有圖書管理和會員管理的功能,并 且能夠具有增加

5、圖書、查詢圖書、刪除圖書、圖書借閱一一借書、還 書的功能,還可以具有增加會員、查詢會員、刪除會員、查詢借書信 息等功能。 設(shè)計步驟: (1) 創(chuàng)建圖書和會員兩個數(shù)據(jù)結(jié)構(gòu)。 (2) 通過屏幕菜單方式選擇具體操作方式。 (3) 完成相應(yīng)的操作,并能夠顯示操作的結(jié)果。 設(shè)計方法:可應(yīng)用所學(xué)結(jié)構(gòu)和鏈表的基本知識實現(xiàn)設(shè)計要求。 選題5:圖書信息管理系統(tǒng)設(shè)計 圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出 版時間、價格等。試設(shè)計一圖書信息管理系統(tǒng),使之能提供以下功能: 1、圖書信息錄入功能(圖書信息用文件保存) 2、 圖書信息瀏覽功能 3、 查詢或排序功能:(至少一種查詢方式) A、 按書名查詢

6、 B、 按作者名查詢 4、 圖書信息的刪除與修改 選題6:學(xué)生選修課程系統(tǒng)設(shè)計 假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì), 總學(xué)時,授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期等信息,學(xué)生 可按要求(如總學(xué)分不得少于 60)自由選課。試設(shè)計一選修課程系 統(tǒng),使之能提供以下功能: 1、 課程信息錄入功能(課程信息用文件保存) #in elude #in elude #in elude Typ edef struct subjects Int num; Char name20; Char kin d10; Int stime; Int ttime; Int etime; Int scor

7、e; Int term; Struct subjects *n ext; sub; SUB *create_from() SUB * head,*tail,* p; Int num, stime,ttime; Int etimr,score,term; Char name20,ki nd10; Int size二szeof(SUB); head二tail二NULL; printf(“輸入選修課程信息:n ”); scanf( “ %d %s %s %d %d %d %d %d, while( num!=0) p=(SUB*)malloc(size); p-num二num; strc py(p-

8、n ame, name); strc py(p-kin d,k in d); p-stime=stime; p-ttime=ttime; p-etime二etime; p-score二score; p-term=term; if(head=NULL) head 二p; else tail-n ext 二p; tail=p; scanf( “ %d %s %s %d %d %d %d %d, Tail- next-NULL; Retu rn head; Void savefile(SUB *head) SUB *p; FILE *fp; Fp二fopen( “subjects,txt ” , ”

9、 W ); Fprin tf(fp, ”課程編號,課程名稱,課程性質(zhì),總學(xué)時, 授課學(xué)時, 實驗或上機學(xué)時,學(xué)分,開課學(xué)期n ”); for(p 二head ;p;p二p-n ext) Fprintf(fp,” 5d%12s%9s%9d%9d%11d%11d%7d-nu m, p- name, p-ki nd, p-stime, p-ttime, p-etime, p-sc ore, p-term); Fclose(fp); Void savefileadd(SUB *head) SUB *p; FILE *fp; Fp-fopen( “subjectsadd.txt ” , ” W ); F

10、printf(fp, ”課程編號,課程名稱,課程性質(zhì),總學(xué)時, 授課學(xué)時, 實驗或上機學(xué)時,學(xué)分,開課學(xué)期n ”); for(p 二head ;p;p二p-n ext) Fprintf(fp,” 5d%12s%9s%9d%9d%11d%11d%7d-nu m, p- name, p-ki nd, p-stime, p-ttime, p-etime, p-sc ore, p- term); Fclose(fp); Void savefiledel(SUB *head) SUB *p; File *fp; Fp二fopen( “subiectsdel.txt, ” W ) Fprintf(fp,”

11、課程編號,課程名稱,課程性質(zhì),總學(xué)時, 授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期n ”); for(p 二head ;p;p二p-n ext) Fprintf(fp,” 5d%12s%9s%9d%9d%11d%11d%7d-nu m, p- name, p-ki nd, p-stime, p-ttime, p-etime, p-sc ore, p- term); Fclose(fp); Void prin (SUB *head) SUB *ptr; lf(head=NULL) Printf(“沒有此門課程記錄!n ”); return; prin tf(fp,”課程編號,課程名稱,課程性質(zhì),總

12、學(xué)時, 授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期n ”); for(p 二head ;p;p二p-n ext) printf(fp,” 5d%12s%9s%9d%9d%11d%11d%7dnum ,p- name ,p-k ind,p-stime, p-ttime, p-etime, p-sco re, p-term); Void search(SUB *head) Int a,num; Int t=1; Char typ e1O; Char ch= a ,ch1; SUB *ptr; While(ch!二) Printf(“若要按課程性質(zhì)查找請輸入1,若壓迫按學(xué)分查 找請輸入2:n ”);

13、Scanf( “%d , Switch(a) Case1:printf(“請輸入要查找的課程性質(zhì):n ”); prin tf(fp,”課程編號,課程名稱,課程性質(zhì),總學(xué)時, 授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期n ”); for(p tr二head; ptr; ptr二 ptr- n ext) if(strc mp (t yp e, ptr-ki nd)=0) printf(fp,” 5d%12s%9s%9d%9d%11d%11d%7dnum ,p- name ,p-k ind,p-stime, p-ttime, p-etime, p-sco re, p-term); t=0; If(t)

14、printf(“未找到!n ”); t=1; break; case 2 :printf(“輸入要查找的課程的學(xué)分n ”); seanf( “%d, prin tf(fp,”課程編號,課程名稱,課程性質(zhì),總學(xué)時, 授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期n ”); for(p tr二head; ptr; ptr二 ptr- n ext) if(p tr-score二二num) printf(fp,” 5d%12s%9s%9d%9d%11d%11d%7dnum ,p- name ,p-k ind,p-stime, p-ttime, p-etime, p-sco re, p-term); t=0;

15、 lf(t)printf( “未找到!n ”); t=1; Printf( “繼續(xù)查找請按回車鍵,結(jié)束請按空格鍵:n ”); Ch1=getchar(); / 將回車鍵賦ch1,否則case里面 最后輸入的回車鍵會賦給ch,因此用ch1填補。 Ch=getchar(); retu rn head; SUB *del(SUB *head) SUB *p 1,* p2; Char ch= a ,ch1; Int num; While(ch!二) Printf(“請輸入要刪除的課程號:n ”); Scanf( “ lf(head-num=num) p2=head; Head二head-n ext;

16、free( p2); if(head=NULL) return NULL; p 1=head; p 2=head-n ext; while( p2) if(p2-num=num) p1-n ext 二p2-n ext; free( p2); Else p1= p2; P 2=p1- next; Printf( “繼續(xù)查找請按回車鍵,結(jié)束請按空格鍵:n ”); Ch1=getchar(); / 將回車鍵賦ch1,否則case里面 最后輸入的回車鍵會賦給ch,因此用ch1填補。 Ch=getchar(); Retu rn head; Void choose(SUB *head) SUB *p ,*

17、q; Int a5; Int nu m,total=0,i=0,j; Printf(“輸入要選修的課程的編號,編號之間以空格分 開,輸完后以0結(jié)束n ”); scanf( “%d, while( num!=0) for(p 二head ;p;p二p-n ext) if(p-num=nu m) total二total+p- score; ai二num; i+; Scanf( “d:, If(total60) printf( “選修總分未達到60,選修失敗 n ”); Else Printf(“選修成功:n ”); Printf(“你選修的可稱為:n ”); For(j=0;jn ext) lf(

18、q-num=aj) P ri ntf( “S ,q-name); P ri ntf( n ); P ri ntf( “*n”); P ri ntf( “09041232 王吳奇 n ”); P ri ntf( “*n”); Void mai n() SUB *head二create_form(); Savefile(head); Pri n( head); Search(head); Head=in sert(head); Insert的的返回值重新賦給head! savefileadd(head); printf(“修改后的信息為:n ”); prin( head); head二del(he

19、ad); del的的返回值重新賦給head! savefileadd(head); printf“修改后的信息為:n ”); prin( head); choose(head); 2、課程信息瀏覽功能 3、查詢功能:(至少一種查詢方式) A、按學(xué)分查詢 B、按課程性質(zhì)查詢 4、學(xué)生選修課程 選題7:飛機訂票系統(tǒng)設(shè)計 假定民航機場共有n個航班,每個航班有一航班號、確定的航線 (起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額。 試設(shè)計一民航訂票系統(tǒng),使之能提供下列服務(wù): 1、 航班信息錄入功能(航班信息用文件保存) 2、 航班信息瀏覽功能 3、 查詢航線:(至少一種查詢方式) A、 按

20、航班號查詢 B、 按終點站查詢 4、 承辦訂票和退票業(yè)務(wù) 選題8年歷系統(tǒng) 功能要求: 1)輸入任一年將顯示出該年的所有月份日期,對應(yīng)的星期 2)注意閏年情況 其顯示格式要求如下: 1)月份:中文英文都可以, 2)下一行顯示星期,從周日到周六,中英文都可以 3)下一行開始顯示日期從1號開始,并按其是周幾實際情況與 上面的星期數(shù)垂直對齊 當輸入2004顯示如下: Input the year:2004 Input the file name:a The cale ndar of the year2004. Sun Mon Tue 】 Med Thu Fri Sat Sun Hon Tue Wed

21、Thu Fii 1 2 3 1 2 3 4 5 G V 4 5 6 7 8 9 10 8 9 10 11 12 13 14 11 12 13 14 15 16 17 15 16 IT IS 19 20 21 13 19 20 21 22 23 24 22 23 24 25 2G 27 23 25 26 27 28 29 30 31 29 March. 3 April 4 Sun Mon Tue 】 Vied Thu Fri Sat Sun Mon Tue Wed Thu F工i 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 5 e 7 3 9 10 14 15 1

22、6 17 le 19 20 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 23 29 30 31 25 26 27 28 29 30 J an 口r ay 1 February 2 Sat Sat 選題9:班級通訊錄程序 設(shè)計一個實用的小型通信錄程序, 具有查詢和刪除功能,并且能 打開或修改指定文件。 功能設(shè)計要求: 1、建立文件 (1) 存儲文件可以使用默認文件名或指定文件名 (2) 可以不保存輸入記錄,但需要確認是否保存輸入記錄。 2、文件的存取和顯示 (1) 可以單獨存取文件。 可以隨時顯示內(nèi)存中記錄的全部內(nèi)

23、容。 (3) 可以直接存取默認文件或指定的文件。 3、刪除記錄 (1) 可以按“姓名”的方式刪除記錄并更新內(nèi)存內(nèi)容。 能給出被刪除記錄的信息。 (3)如果沒有要刪除的信息,輸出沒有找到的信息。 4、查詢記錄 (1) 可以按“姓名”方式查詢記錄。 (2) 能給出查詢記錄的信息。 (3) 如果查詢的信息不存在,輸出“沒有找到”的信息。 選題10:職工信息管理系統(tǒng) 設(shè)計要求實現(xiàn)如下功能: (1) 建立職工信息數(shù)據(jù),包括職工編號、姓名、性別、工資、 出生時間、參加工作時間和年齡(必須計算得到) (2) 根據(jù)職工信息表,建立只含有姓名和年齡的職工信息簡表。 (可選功能) (3) 抽取并計算職工的平均年齡

24、。 (4) 檢索(查找)指定信息。(如按姓名檢索、按年齡檢索) (5)參考界面如下: 選題11:學(xué)生成績統(tǒng)計管理 主要功能: 1、輸入一個班級的學(xué)生的基本信息(包括學(xué)好,姓名,性別,5 門課程成績)。 2、按姓名或者學(xué)號查找、修改、刪除和保存各個學(xué)生的信息。 3、計算每個學(xué)生各門功課總分和平均分,按學(xué)號或總分排序輸 出每個學(xué)生的基本信息及總分、平均分和名次。 4、計算全班各門功課的平均分,顯示每門課程中低于平均分的 每一個學(xué)生的學(xué)號,姓名,性別,科目,成績。 5、顯示每門科目中,成績在90分以上的學(xué)生信息,以及每門科 目中不及格的學(xué)生信息。 6、設(shè)置系統(tǒng)登陸密碼,只有正確輸入密碼方可進入管理系

25、統(tǒng)。 課更改和保存登陸密碼。 選題12: 工資管理系統(tǒng) 設(shè)計說明: (1)某公司主要有四類人員:經(jīng)理、技術(shù)員、銷售員和銷售經(jīng) 理。要求存儲這些人員的職工編號、姓名、年齡、性別、級別、月工 資等信息。 (2) 程序要具有對所有人提升級別的功能。所有人員的初始級 別均為1級,然后系統(tǒng)可以根據(jù)輸入進行升級,經(jīng)理升為 4級,銷售 經(jīng)理為3級,技術(shù)員為2級,銷售員仍為1級。 (3) 月薪的計算方法: 1、經(jīng)理:固定月薪8000元。 2、技術(shù)員:工作時間X小時工資(100元/小時)。 3、銷售員:銷售額X 4%|成。 4、銷售經(jīng)理:底薪(5000) +銷售額X 0.5%提成。 2、設(shè)計要求: 職工編號在輸入人員信息時生成,每輸入一個人員信息編 號順序加 1。 程序?qū)λ腥藛T有提升級別的功能。 能夠按照不同身份進行月薪的計算。 能按姓名或者編號查找各類人員的信息。 能夠修改/刪除各類人員的信息。 能夠顯示所有人員的信息。 3、總體界面的設(shè)計 程序運行要顯示菜單用于選擇功能,各項菜單的功能通過調(dià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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論