c语言系统主函数流程图,C语言程序设计——成语学习系统
頭文件
包含內(nèi)容:
代碼:
主函數(shù)
功能:
初始化數(shù)據(jù),負(fù)責(zé)調(diào)用各個(gè)函數(shù),運(yùn)行登錄系統(tǒng)、游戲系統(tǒng)、數(shù)據(jù)寫(xiě)入系統(tǒng),完成程序的完整執(zhí)行。
流程圖
代碼
Data文件
Data文件包含函數(shù)
函數(shù)
功能
GetData
讀取成語(yǔ)文件
SeekWord
查找成語(yǔ)
SuperGet
成語(yǔ)接龍專(zhuān)用數(shù)據(jù)讀取
SuperSearch
成語(yǔ)接龍專(zhuān)用檢索
MatchingIdioms
匹配接龍成語(yǔ)
MyRand
生成一個(gè)在開(kāi)區(qū)間(0,num)的隨機(jī)數(shù)
GetData函數(shù)
該函數(shù)用于將帶釋義的成語(yǔ)文件存入到在主函數(shù)中定義好的結(jié)構(gòu)體數(shù)組
流程圖
代碼
利用' '切割字符串的靈感來(lái)源于刪除字符串中的子串
SeekWord函數(shù)
該函數(shù)用于查找是否有符合要求的函數(shù),查找到則返回結(jié)構(gòu)體數(shù)組中的對(duì)應(yīng)下標(biāo),找不到返回-1。
流程圖
代碼
Game文件
Game文件函數(shù)
函數(shù)
功能
StartGame
游戲程序控制中樞函數(shù)
OpenDictionary
成語(yǔ)詞典
PlayTest
“女?huà)z補(bǔ)天”成語(yǔ)測(cè)試
ManMachineWar
成語(yǔ)接龍,人機(jī)大戰(zhàn)
PlayTest2
“望義生文”成語(yǔ)測(cè)試
StartGame函數(shù)
此函數(shù)是整個(gè)成語(yǔ)游戲的中樞,不僅要接收傳進(jìn)來(lái)的數(shù)據(jù)指針,還要輸出菜單,以供用戶(hù)選擇程序功能,并調(diào)用相對(duì)應(yīng)的函數(shù)。
流程圖
代碼
OpenDictionary函數(shù)
此函數(shù)被調(diào)用之后將進(jìn)入成語(yǔ)詞典界面,用戶(hù)可通過(guò)這個(gè)函數(shù)進(jìn)行成語(yǔ)釋義查詢(xún),查詢(xún)到了輸出釋義,查詢(xún)不到就輸出提示信息。
流程圖
代碼
PlayTest函數(shù)
此函數(shù)被調(diào)用之后將進(jìn)入成語(yǔ)測(cè)試界面,用戶(hù)可通過(guò)這個(gè)函數(shù)進(jìn)行成語(yǔ)測(cè)試,函數(shù)將給出10道題,用戶(hù)依次作答,系統(tǒng)將根據(jù)作答情況結(jié)算,打分,結(jié)束后返回用戶(hù)作答成績(jī)。
流程圖
代碼
ManMachineWar函數(shù)
此函數(shù)被調(diào)用之后將進(jìn)入成語(yǔ)測(cè)試界面,用戶(hù)可通過(guò)這個(gè)函數(shù)進(jìn)行成語(yǔ)接龍人機(jī)大戰(zhàn),函數(shù)將隨機(jī)給出一個(gè)成語(yǔ),系統(tǒng)將判斷用戶(hù)是否輸入了成語(yǔ),如果正確輸入則判斷是否能夠接龍,如果可以,就由系統(tǒng)進(jìn)行接龍,如果系統(tǒng)接龍成功則開(kāi)啟新一輪接龍。接龍結(jié)束后,返回接龍的輪次。
流程圖
代碼
Ranking文件
Ranking文件函數(shù)
函數(shù)
功能
RankingList
讀取排行榜數(shù)據(jù)
InList
顯示排行榜
WriteList
向排行榜寫(xiě)入數(shù)據(jù)
WriteList函數(shù)
此函數(shù)用于向排行榜文件寫(xiě)入數(shù)據(jù),根據(jù)用戶(hù)的分?jǐn)?shù)判斷是否寫(xiě)入文件,若滿(mǎn)足則按順序?qū)懭?#xff0c;若不滿(mǎn)足則不寫(xiě)入文件。
流程圖
代碼
Users文件
Users文件函數(shù)
函數(shù)
功能
OutMenu
登錄菜單及登錄系統(tǒng)中樞
SignIn
登錄操作
IsRegister
注冊(cè)操作
InCartoon
過(guò)場(chǎng)動(dòng)畫(huà)
OutMenu函數(shù)
此函數(shù)是登錄系統(tǒng)的中樞,先顯示菜單,然后根據(jù)用戶(hù)的選擇分別進(jìn)行注冊(cè)或登錄的操作,對(duì)登錄失敗的用戶(hù)有再次嘗試登錄的功能。
流程圖
代碼
SignIn函數(shù)
該函數(shù)被調(diào)用之后將進(jìn)入登錄系統(tǒng),接收用戶(hù)輸入的用戶(hù)名和密碼,并進(jìn)行核對(duì),核對(duì)成功之后結(jié)束登錄操作。
流程圖
代碼
IsRegister函數(shù)
該函數(shù)被調(diào)用之后將進(jìn)入注冊(cè)系統(tǒng),接收用戶(hù)輸入的用戶(hù)名進(jìn)行查重,通過(guò)查重之后接收用戶(hù)輸入的密碼,之后寫(xiě)入文件,完成注冊(cè)。
流程圖
代碼
運(yùn)行結(jié)果
登錄系統(tǒng)
過(guò)場(chǎng)動(dòng)畫(huà)
選擇取消,退出程序。
登錄界面
選擇是,進(jìn)入登錄界面,故意輸入錯(cuò)誤。
重新正確輸入。
注冊(cè)界面
先選擇否,再選擇進(jìn)入注冊(cè)。
故意輸入存在的用戶(hù)名。
重新注冊(cè)。
游戲主菜單
成語(yǔ)詞典
閱讀使用說(shuō)明。
查詢(xún)成語(yǔ)。
故意查詢(xún)文件沒(méi)有的成語(yǔ)。
成語(yǔ)測(cè)試
成語(yǔ)接龍,人機(jī)大戰(zhàn)
查看排行榜
退出程序
碰到問(wèn)題及解決辦法
Q1:用戶(hù)登錄時(shí)密碼會(huì)顯示,達(dá)不到安全的要求;
A1:學(xué)習(xí)getch函數(shù),達(dá)到用戶(hù)輸入的密碼不回顯的目的;
Q2:登錄界面太寒酸,用戶(hù)體驗(yàn)不好,想要做一點(diǎn)簡(jiǎn)單的可視化;
A2:學(xué)習(xí)MessageBoxA函數(shù),利用提示框來(lái)做簡(jiǎn)單的可視化,優(yōu)化用戶(hù)體驗(yàn);
Q3:界面切換得太快,有的文字來(lái)不及看清;
A3:在切換頁(yè)面之前都放一句system("pause")代碼暫停運(yùn)行;
Q4:fflush(stdin)語(yǔ)句在調(diào)試的時(shí)候失靈;
A4:經(jīng)查找資料,用rewind(stdin)語(yǔ)句代替,但是原因暫時(shí)未知;
Q5:無(wú)法準(zhǔn)確分開(kāi)文件中的成語(yǔ)和釋義;
A5:想起“刪除子串”這道題目的做法,通過(guò)利用“ ”分割字符串實(shí)現(xiàn);
Q6:原有成語(yǔ)文件只有233個(gè)成語(yǔ),程序詞窮;
A6:自行上網(wǎng)找了個(gè)13355個(gè)成語(yǔ)的版本,利用記事本和Word進(jìn)行清洗,程序瞬間變學(xué)霸;
Q7:非法輸入會(huì)影響程序的正常使用;
A7:將輸入的函數(shù)全部改為fgets(),并且遇到輸入就清空緩沖區(qū),程序變得極其安全;
Q8:成語(yǔ)測(cè)試出題時(shí)遇到了只隱去了一個(gè)字的情況,并且要求用戶(hù)作答兩次;
A8:是兩次隱去的字的隨機(jī)數(shù)重復(fù)了,加一段代碼讓需要隱去的字的隨機(jī)數(shù)不重復(fù);
Q9:成語(yǔ)接龍時(shí),用戶(hù)可以作弊,即只輸入一個(gè)字接龍,然后剩下亂輸;
A9:在進(jìn)行接龍之前先進(jìn)行查錯(cuò),由于數(shù)據(jù)量被改大,可以實(shí)施;
Q10:游戲時(shí)沒(méi)有音樂(lè),嗨不起來(lái),學(xué)習(xí)mciSendString播放音樂(lè),但是編譯器報(bào)錯(cuò);
A10:使用這個(gè)函數(shù)之前,需要引入對(duì)應(yīng)的庫(kù),vs只需要一段代碼即可做到,Dev c需要手動(dòng)配置;
Q11:排行榜文件的日期不好處理;
A11:學(xué)習(xí)time_t結(jié)構(gòu)體和asctime函數(shù),日期數(shù)據(jù)的處理變得容易;
Q12:讀取日期數(shù)據(jù)時(shí),會(huì)把日期數(shù)據(jù)之前的空格讀入;
A12:另外用fgetc函數(shù)吸收空格;
Q13:排行榜數(shù)據(jù)排序用排序法很繁瑣;
A13:想起插入排序,修改文件打開(kāi)方式為“w”,變得簡(jiǎn)單;
Q14:如果用戶(hù)登錄之后直接退出,會(huì)出錯(cuò);
A14:提前把用戶(hù)成績(jī)都初始化為0,再開(kāi)啟游戲。
參考資料
總結(jié)
以上是生活随笔為你收集整理的c语言系统主函数流程图,C语言程序设计——成语学习系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言容斥原理,容斥原理 | 易学教程
- 下一篇: Android适配器以及作用,Andro