- 相關(guān)推薦
C語(yǔ)言編程練習(xí)
習(xí)題描述
本程序的功能是對(duì)中國(guó)導(dǎo)航的數(shù)據(jù)中的部分道路情況數(shù)據(jù)進(jìn)行整理,分析,查詢,排序。
原始數(shù)據(jù)存儲(chǔ)在一個(gè)GTBL.dat的二進(jìn)制文件中,具體的文件格式請(qǐng)參照ReveseTableFormat.xls 中的“逆引表格式”sheet.
在Kiwi格式中,每個(gè)道路都是被賦予了獨(dú)一無(wú)二的編號(hào),這個(gè)編號(hào)叫做LinkID,在GTBL.dat這個(gè)文件中存儲(chǔ)著部分道路情況的數(shù)據(jù),他們是無(wú)序存儲(chǔ)的(針對(duì)LinkID來(lái)說(shuō)是無(wú)序的)。
提供的功能:
1) 讀取GTBL.dat, 根據(jù)LinkID重新排序輸出到新的二進(jìn)制文件,格式同 ”逆引表格式”。
2) 檢索:
a. 根據(jù)LinkID查找指定的Link的相關(guān)情報(bào)并輸出到控制臺(tái)或者文件(文本格式)。
b. 查找指定 交叉Link列表示Class番號(hào) 的所有Link的集合。
c. 查找岔路數(shù)> n 的所有Link的集合, n由用戶輸入。
d. 指定道路名稱檢索。
輸出格式:
#linked=1234;roadnameflag=1;brunch=2;dispclass=3; roadname=青年大街#(如果沒(méi)有名稱(roadnameflag == 0 ), 則不輸出roadname=青年大街這個(gè)條目)
如果查到的紀(jì)錄的個(gè)數(shù)>5個(gè),則輸出到指定文件中(文件放在當(dāng)前目錄中,請(qǐng)用 searchresultxxx.txt 命名, xxx是檢索次數(shù)的記錄,比如第一次檢索,則xxx是 001, 以此類推。)
3) 從Link情報(bào)輸入文件中讀取指定的Link情報(bào),插入到GTBL.dat中并保存,如果對(duì)應(yīng)的LinkID已經(jīng)存在,則替換,否則插入。(文件的格式參照ReveseTableFormat.xls 中的“Link情報(bào)輸入文件格式”sheet, sourcelink.txt 是一個(gè)例子文件,大家可以自己編寫這個(gè)文件)。 具體的操作是每按一次回車,就從文件中讀取下一個(gè)Link的情報(bào),輸出到界面,并且執(zhí)行插入或者替換操作。
這些插入的記錄需要保存到GTBL.dat和排序后的文件中。
1. 具體要求
1). 需要?jiǎng)澐殖鲋辽?3個(gè)或者以上的模塊。
2). 具有較高的處理速度
3). 較少的內(nèi)存消耗,比如對(duì)于道路名稱,有的link沒(méi)有,則不分配空間。
4). 具有較好的維護(hù)性和易讀性.
5). 較好的健壯性(錯(cuò)誤的用戶輸入處理等)
2. 考察點(diǎn)
1) 設(shè)計(jì)概念
2) 文件操作
3) 內(nèi)存、指針、字符串操作
4) 鏈表數(shù)據(jù)結(jié)構(gòu)的使用。
5) 排序算法
6) 位運(yùn)算
4. 其他:
使用控制臺(tái)的程序必須有兩個(gè)層次的選擇菜單
1) 排序輸出
2) 檢索
a. 指定linkID檢索
b. 指定交叉Link列表示Class番號(hào) 檢索
c. 指定查找岔路數(shù) 檢索
d. 指定道路名稱 檢索
3) 更新
使用Windows編程的,則形式可以靈活選擇。
注:學(xué)會(huì)用top-down
注意用assert
【C語(yǔ)言編程練習(xí)】相關(guān)文章:
Visual C#的Excel編程03-19
2017年計(jì)算機(jī)二級(jí)考試C語(yǔ)言編程題練習(xí)題及答案03-10
淺析基于C語(yǔ)言的計(jì)算機(jī)軟件編程實(shí)驗(yàn)03-20
C++編程簡(jiǎn)歷表格11-22
c語(yǔ)言心得05-17
c語(yǔ)言的就業(yè)方向08-11