天天看點

2013級C++第2周(春)項目——結構體應用大體驗

第一部分 結構體應用

【項目1-學生成績統計】

     每位同學的資訊學号、姓名、c++、高數、英語成績,定義一個學生成績的結構體數組,其中的資料成員包括學号(char num[12])、姓名(name)、三門課的成績(grade)、總分(score)、均分(average))。

  (1)從鍵盤上輸入n名學生的資訊(n定義為常變量);

  (2)求出每名同學的總分和均分,并存儲在結構體數組中(可以讀入過程中“順便”計算);

  (3)輸出每位同學的資訊學号、姓名、總分和均分。

  (4)輸出所有同學均分的均值。

參考運作結果如圖:

2013級C++第2周(春)項目——結構體應用大體驗

【項目2-有序的結構體數組】使用同項目1相同的結構體類型,在main函數中已經對結構體數組進行了初始化,請完成相關函數的定義,實作main函數中要求的功能。

提示:(1)排序中涉及對數組元素的交換,數組元素可以作為整體指派,如定義了student t,指派t=stu[i]、stu[j]=stu[i]都是合法的;(2)當涉及到字元數組表示的字元串的操作時,相關的函數需要#include<cstring>。

【項目3-檔案+結構體實作實用系統】score.txt(本文後提供了一部分資料,自行copy建文本檔案)中是一些同學的學号、姓名、c++、高數、英語成績,利用前兩個項目中定義的結構體數組,讀取檔案中的資料,完成下面的應用:

(1)從檔案中讀出資料,存放到結構體數組中;

  為使後續工作能夠順利進行,自行實作實在有困難,可以在本項目後找到讀score.txt檔案部分的參考代碼,用“抄之有道”,突破這一關,學會從檔案中讀取資料。

(2)求出每名同學的總分(可以在讀入過程中“順便”計算);

(3)輸出結構體數組中所有同學的記錄。

(4)按總分排序(降序);

(5)輸出排序後的成績單;

(5)有30名同學可以獲得獎學金,規則是總分高者優先,有挂科不能得獎學金。請輸出可以得獎學金同學的名單。

(6)選做:統計各門課及總分的平均成績、最高和最低成績、标準偏差,并輸出。 

所有功能可以在main()函數中實作,更推薦設計自定義函數實作任務。

【項目3-拓展(選做)】你是否可以在項目3基礎上拟出新的需求,将程式用一個“菜單”組織起來(如圖所示),做成一個“學生成績管理系統”之類的應用程式。(可以參考周末公布的參考解答。)

2013級C++第2周(春)項目——結構體應用大體驗

附:項目3中從檔案中讀取資料的參考代碼

【項目4-玩日期】

  定義一個表示時間(包括年、月、日、時、分、秒)的結構體,然後完成下面的功能。

  要實作的功能是:

  (1)輸入一個時間(注意各部分資料的取值範圍)将輸入的時間儲存在一個結構體變量中;

  (2)輸出該日在本年中是第幾天(注意閏年問題);

  (3)輸出這是這一天中的第幾秒;

  (4)輸出這是這一年中的第幾秒;(不要認為這個數荒唐,在計算中需要取随機數時需要一個不會重複的“種子數”,這個秒數是常用的。)

  (5)求你輸入的時間d天後是哪年哪月哪日,将結果儲存在一個結構體變量中輸出;(你的萬天日期靠這個功能了)——插講一個故事。當年老賀由小孩兒過百日,想到自己的萬日在哪天。程式設計計算,結果剛過了十幾天,那個懊惱啊。第二個萬日得再等26年多,第三個萬日,誰敢說一定能過上?20歲左右的你,要算清楚了。在第(1)問中輸入你的生日及時辰,d值取為10000,可以算出你的萬日,大概在26歲多。

  (6)求你輸入的時間s秒後是何日何時,将結果儲存在一個結構體變量中輸出;

【項目4擴充(選做】用結構體變量給定兩個時間,求(1)相差多少天?(2)相差多少秒?

【項目5-點結構體與枚舉】讀程式,寫出函數的定義,注意其中枚舉類型的用法

第二部分 動态連結清單體驗

下面是一個建立動态連結清單。閱讀程式,在草稿紙上畫對外連結表建立的過程,借此學會如何建立連結清單。然後改造程式,完成項目6的要求

2013級C++第2周(春)項目——結構體應用大體驗

【項目6-動态連結清單體驗】

  在上面的程式基礎上定義下面的函數,實作相應的功能。為簡便起見,每編寫一個函數,立刻在main函數中調用進行測試。

  (1)編寫make_list2()函數建立連結清單,使建立連結清單時,後輸入的資料,将新輸入的數字對應的結點放在連結清單末尾。若輸入為3 5 2 9 4 7 0,建立的連結清單為:

     

2013級C++第2周(春)項目——結構體應用大體驗

  (2)編寫函數void search(int x),輸對外連結表中是否有值為x的結點。

  (3)編寫函數delete_first_node(),删除連結清單中的第一個結點。

  (4)編寫函數delete_node(int x),删除結點值為x的結點。

  (5)編寫make_list3()函數建立連結清單,使建立連結清單時,使結點中的資料呈現升序。若輸入為3 5 2 9 4 7 0,建立的連結清單為:

    

2013級C++第2周(春)項目——結構體應用大體驗

  (6)編寫函數void insert(int x),将值為x的結點插入到由make_list3建立起來的有序連結清單中。

==================== 迂者 賀利堅 csdn部落格專欄=================

======== 為it菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 =======

附:score.txt中資料

201152501104 田程 65 69 68 

201152501114 楊金龍 94 89 63 

201152501115 周琳霄 92 84 60 

201152501138 張強 67 62 84 

201152501140 鄭好 80 60 86 

201152501145 曹為尚 88 56 67 

201152501201 倪婷 80 92 71 

201152501202 李奧 59 80 55 

201152501203 張佳怡 62 62 95 

201152501204 鄧臣冬 100 65 91 

201152501205 汪美娟 73 90 94 

201152501206 趙格君 96 80 58 

201152501207 張文韬 91 63 91 

201152501208 車宜霖 88 84 79 

201152501209 劉正 61 79 99 

201152501210 李東航 62 58 66 

201152501211 李華 96 96 83 

201152501212 李曉鵬 73 88 93 

201152501213 姜君孝 69 64 62 

201152501214 董越 74 59 69 

201152501215 趙浚源 63 58 96 

201152501216 宮凡奇 89 82 60 

201152501217 張詠晖 94 89 77 

201152501218 丁夢瑤 78 93 58 

201152501219 金婷 75 87 84 

201152501220 張娟 90 65 62 

201152501221 姜莉 76 78 81 

201152501222 孫亞雯 90 87 73 

201152501223 郭重 88 68 63 

201152501224 王潇哲 85 94 97 

201152501225 宋心潔 99 69 82 

201152501226 杜婧霏 91 80 98 

201152501227 于曉霞 69 72 99 

201152501228 王莉莉 84 95 94 

201152501229 萬雅璐 98 95 64 

201152501230 曲淑霞 67 100 83 

201152501231 高晶 98 81 67 

201152501232 于澤瑩 67 64 77 

201152501233 李婧怡 84 72 90 

201152501234 姚宇 92 78 95 

201152501235 于超 87 82 86 

201152501236 李劍 78 86 95 

201152501237 孟雨薇 66 64 58 

201152501238 孫華澤 98 98 74 

201152501239 朱绮夢 73 83 96 

201152501240 周易 56 69 84 

201152501241 蔡慶 60 78 71 

201152501242 姜懿宸 86 94 59 

201152501243 孫雪梅 64 92 66 

201152501244 李芊潭 97 100 55 

201152501245 周祥 100 86 74 

201152501246 吐魯洪江 73 94 75 

201153503240 王婷婷 68 73 69 

201153503242 宗雪燕 60 82 61 

201153503243 于小涵 79 60 78 

201153503245 鐘藝 82 91 97 

201153503246 耿清敏 67 77 60 

201153503248 耿夢啟 79 100 57 

201153503249 劉軒辰 59 86 90 

201153503251 賀巧霞 56 87 88 

201153503254 張麗芳 57 81 87 

201154503207 劉蕊 57 89 69 

201158501330 李濤 96 89 73 

201158501332 張新明 68 59 64 

201158501334 曹文戰 82 89 73 

201160602108 孔令濤 63 86 80 

201160602124 劉大偉 96 69 98 

201163501101 孟站 58 100 70 

201163501102 王超奇 75 63 89 

201163501104 周濤 68 95 84 

201163501105 賈治國 86 84 100 

201163501106 楊磊 92 66 88 

201163501107 萬建新 71 56 83 

201163501108 李甯 70 95 73 

201163501110 趙江彥 58 63 79 

201163501111 杜俊一 61 75 70 

201163501113 邢士峰 56 70 66 

201163501114 李傳良 95 90 86 

201163501115 宋吉超 78 91 80 

201163501118 趙方義 70 100 94 

201163501119 闫魯梅 72 80 100 

201163501121 張明珠 83 89 65 

201163501122 劉沙沙 86 94 71 

201163501123 張星雨 57 82 87 

201163501125 王曉佳 68 97 65 

201163501129 周立軍 75 89 87 

201163501130 周穎穎 80 95 68 

201163501131 許倩 71 69 80 

201163501132 于克美 57 82 63 

201163501133 姜芹 89 99 88 

201163501134 姚華玲 75 80 75 

201163501135 楊慧 75 73 70 

201163501136 于媛 73 89 69 

201163501137 楊曉 61 96 74 

201163501139 季瑩 71 87 68 

201163501140 周夢如 85 97 77 

201163501228 楊芳豔 57 70 87 

201163501230 吳紅麗 55 63 84 

201163501231 程銘 90 77 79 

201163501232 劉雪 65 86 95 

201163501234 黃瑤 100 78 71 

201163502202 陳佩鴻 71 78 76 

201163502204 王曉北 74 56 60 

201163502205 馮科峰 57 79 73 

201163502206 亢亞偉 95 96 79 

201163502207 李夢 87 55 69 

201163502208 何文豪 99 73 85 

201163502210 王柯 60 63 67 

201163502211 唐科軍 99 56 66 

201163502212 劉帥 67 92 74 

201163502214 鄧佩雲 56 55 89 

201163502215 尹琪 92 98 62 

201163502216 叢林 67 93 75 

201163502217 趙東超 59 60 90 

201163502220 郭鵬飛 83 70 96 

201163502221 王金梯 64 92 99 

201163502227 王學 81 63 79 

201163502229 莫敏 80 55 86 

201163502230 李輝 60 70 84 

201163502231 歐陽燕平 75 90 86 

201163502233 任金梅 83 55 91 

201163502238 董文平 55 73 89 

201163502239 王骎 56 60 59 

201163502241 陳龍 78 72 68 

201163502243 楊康迪 82 100 67 

201163503120 邵娅楠 66 73 89 

201163503124 盛善愛 87 70 90 

201163503125 吳秋宇 56 94 77 

201163503127 趙亞振 69 78 89 

201163503128 尹源 66 79 81 

201163503138 張偉鳳 71 90 73 

201163503143 劉超超 62 93 95 

201169503132 趙雅楠 100 86 81 

201169503140 高美 58 94 57 

201169503141 甯曉波 98 62 75 

201169503142 王丹 89 70 89 

201169503143 朱影 55 64 63 

201169503144 楊玉萍 73 74 98 

201169503145 魏穎穎 84 57 57 

201170501147 任麗穎 84 64 72 

201170501148 婁俊傑 99 61 86 

201170501155 郭宏超 57 62 97 

201170501156 張偉 100 68 66 

201170501201 楊茂林 55 71 88 

201170501247 範雯婷 77 94 79 

201170502105 齊鵬 87 98 89 

201170502106 尹承志 64 84 75 

201170502107 丁友劍 89 85 71 

201170502108 王旭 71 88 64 

201170502113 王偉傑 100 80 64 

201170502114 齊國鑫 93 92 71 

201170502115 孫琦琦 85 74 70 

201170502116 孫中華 59 61 60 

201170502117 馬中平 93 74 58 

201170502118 張秘 64 72 74 

201170502119 楊其星 89 66 83 

201170502120 趙加玉 69 93 99 

201170502121 徐長清 98 81 62 

201170502122 劉小虎 77 65 79 

201170502125 柴志軍 94 61 75 

201170502130 張偉平 78 92 100 

201170502131 丁邱紅 67 87 100 

201170502134 劉盼 78 67 93 

201170502135 李文潔 56 68 81 

201170502136 車麗娜 99 55 63 

201170502137 李馥辛 100 77 59 

201170502138 劉群 69 79 83 

201170502139 石雨 73 62 93 

201170502140 蔡冬雪 62 56 71 

201170502141 季傳貞 86 96 71 

201170502222 李發庭 85 83 82 

201170505101 蔡杭 84 60 90 

201170505249 張倩倩 94 82 68 

201170504112 徐志嬌 80 93 76 

201170504113 王彥 96 99 62 

201170504114 夏冬梅 91 87 87 

201170504115 王晶 85 91 57 

201170504116 甯新梅 59 68 68 

201170504124 房饷妤 90 79 66 

201170504142 王甜 57 82 80 

繼續閱讀