查询程序流程图c语言一键一义,C语言程序设计——成语学习系统程序

目录

头文件

包含内容:

87a4d2fe92dea06d274aadbbb8a9d590.png

代码:

6169f08aba9dd87a28e4c00de1ab9fa5.png

主函数

功能:

初始化数据,负责调用各个函数,运行登录系统、游戏系统、数据写入系统,完成程序的完整执行。

流程图

098647502791889b7a30f9a58ea4e979.png

代码

f977a9e257d5ba34318bce5f01bdaf17.png

Data文件

Data文件包含函数

函数

功能

GetData

读取成语文件

SeekWord

查找成语

SuperGet

成语接龙专用数据读取

SuperSearch

成语接龙专用检索

MatchingIdioms

匹配接龙成语

MyRand

生成一个在开区间(0,num)的随机数

1.GetData函数

该函数用于将带释义的成语文件存入到在主函数中定义好的结构体数组

流程图

d851b7e6c093b55f94b5ab3b06f24deb.png

代码

27824f02ad4c9a4cfbc4fd6656d08bc1.png

利用'\0'切割字符串的灵感来源于删除字符串中的子串

e1f015bb1d18da4ac082cd1452367a3b.png

2.SeekWord函数

该函数用于查找是否有符合要求的函数,查找到则返回结构体数组中的对应下标,找不到返回-1。

流程图

fc8b10a93a33cdc2447270cc97b6d45d.png

代码

8a83f3bae4beadd759a88090b7c5d7f9.png

Game文件

Game文件函数

函数

功能

StartGame

游戏程序控制中枢函数

OpenDictionary

成语词典

PlayTest

“女娲补天”成语测试

ManMachineWar

成语接龙,人机大战

PlayTest2

“望义生文”成语测试

1.StartGame函数

此函数是整个成语游戏的中枢,不仅要接收传进来的数据指针,还要输出菜单,以供用户选择程序功能,并调用相对应的函数。

流程图

8dceaf7e8d5deeef4436fec9b774f9a1.png

代码

dc2e577ad4093a1e9f731aecdca45724.png

2.OpenDictionary函数

此函数被调用之后将进入成语词典界面,用户可通过这个函数进行成语释义查询,查询到了输出释义,查询不到就输出提示信息。

流程图

73d3004fb27adfb9b7a9508e2d3a6a43.png

代码

47500e37cea5da17b9cac2ee59d3cbdc.png

3.PlayTest函数

此函数被调用之后将进入成语测试界面,用户可通过这个函数进行成语测试,函数将给出10道题,用户依次作答,系统将根据作答情况结算,打分,结束后返回用户作答成绩。

流程图

7013b32c9ed45f61bcfbbb0d8e0ab2e8.png

代码

31084ae2a55458707b757b5fabed1067.png

4.ManMachineWar函数

此函数被调用之后将进入成语测试界面,用户可通过这个函数进行成语接龙人机大战,函数将随机给出一个成语,系统将判断用户是否输入了成语,如果正确输入则判断是否能够接龙,如果可以,就由系统进行接龙,如果系统接龙成功则开启新一轮接龙。接龙结束后,返回接龙的轮次。

流程图

66921fa2930814b4ed9393f5275c4367.png

代码

cdf5fb24a8bc93a4ef8b2619b8fe7f75.png

Ranking文件

Ranking文件函数

函数

功能

RankingList

读取排行榜数据

InList

显示排行榜

WriteList

向排行榜写入数据

WriteList函数

此函数用于向排行榜文件写入数据,根据用户的分数判断是否写入文件,若满足则按顺序写入,若不满足则不写入文件。

流程图

69c699af47e679ef1508156925af5738.png

代码

08dbdda610100572b5cd9e5a075a3352.png

Users文件

Users文件函数

函数

功能

OutMenu

登录菜单及登录系统中枢

SignIn

登录操作

IsRegister

注册操作

InCartoon

过场动画

1.OutMenu函数

此函数是登录系统的中枢,先显示菜单,然后根据用户的选择分别进行注册或登录的操作,对登录失败的用户有再次尝试登录的功能。

流程图

5c07a653b364299b3069f5dc6002885d.png

代码

0016848e22b68e4836c7a632fd2661aa.png

2.SignIn函数

该函数被调用之后将进入登录系统,接收用户输入的用户名和密码,并进行核对,核对成功之后结束登录操作。

流程图

b6bae97d31b8cfd3a76d7572406ecc73.png

代码

c95a5124c8971f2a6a35f3eaccafe07f.png

3.IsRegister函数

该函数被调用之后将进入注册系统,接收用户输入的用户名进行查重,通过查重之后接收用户输入的密码,之后写入文件,完成注册。

流程图

92ee574073b1db11390e301287710d6c.png

代码

44ae536836658fb8078b389f29ad0326.png

运行结果

登录系统

过场动画

dd5afce11e9870be08a15f9728579cb2.png

c5676af6df2fa28bdf0fa42052a63617.png

选择取消,退出程序。

888db1e20b8058e5b15c8d196ee88a5c.png

登录界面

选择是,进入登录界面,故意输入错误。

7235cf30c345e62c21f5b21c8d0a593a.png

重新正确输入。

b9c924945ec3b4142df208e538a3e111.png

注册界面

先选择否,再选择进入注册。

4d79d4d3213c1e2ca9542c1880e4ccdb.png

故意输入存在的用户名。

660280e0586b8ee5bede507ef0af2461.png

重新注册。

4267e266f0671d3459b7a0c9aef71730.png

游戏主菜单

806ab37a2dab090683d8aaa9bfa24df1.png

成语词典

阅读使用说明。

7636cd0f732de59b2d9c299a95b6684d.png

查询成语。

5e82803a77fee37dce37f27ac681bd38.png

故意查询文件没有的成语。

a33b196d44bd71ce98bfb363c6f00208.png

成语测试

9bf214bcb1fdbb6c400484872d0d76f9.png

成语接龙,人机大战

81a8d22c40d15467d9e05c16a844f4de.png

查看排行榜

bdd1e06f5857103515eeb7b974518106.png

退出程序

91853c22dbf3db864743119b50b26df3.png

碰到问题及解决办法

Q1:用户登录时密码会显示,达不到安全的要求;

A1:学习getch函数,达到用户输入的密码不回显的目的;

Q2:登录界面太寒酸,用户体验不好,想要做一点简单的可视化;

A2:学习MessageBoxA函数,利用提示框来做简单的可视化,优化用户体验;

Q3:界面切换得太快,有的文字来不及看清;

A3:在切换页面之前都放一句system("pause")代码暂停运行;

Q4:fflush(stdin)语句在调试的时候失灵;

A4:经查找资料,用rewind(stdin)语句代替,但是原因暂时未知;

Q5:无法准确分开文件中的成语和释义;

A5:想起“删除子串”这道题目的做法,通过利用“\0”分割字符串实现;

Q6:原有成语文件只有233个成语,程序词穷;

A6:自行上网找了个13355个成语的版本,利用记事本和Word进行清洗,程序瞬间变学霸;

Q7:非法输入会影响程序的正常使用;

A7:将输入的函数全部改为fgets(),并且遇到输入就清空缓冲区,程序变得极其安全;

Q8:成语测试出题时遇到了只隐去了一个字的情况,并且要求用户作答两次;

A8:是两次隐去的字的随机数重复了,加一段代码让需要隐去的字的随机数不重复;

Q9:成语接龙时,用户可以作弊,即只输入一个字接龙,然后剩下乱输;

A9:在进行接龙之前先进行查错,由于数据量被改大,可以实施;

Q10:游戏时没有音乐,嗨不起来,学习mciSendString播放音乐,但是编译器报错;

A10:使用这个函数之前,需要引入对应的库,vs只需要一段代码即可做到,Dev c需要手动配置;

Q11:排行榜文件的日期不好处理;

A11:学习time_t结构体和asctime函数,日期数据的处理变得容易;

Q12:读取日期数据时,会把日期数据之前的空格读入;

A12:另外用fgetc函数吸收空格;

Q13:排行榜数据排序用排序法很繁琐;

A13:想起插入排序,修改文件打开方式为“w”,变得简单;

Q14:如果用户登录之后直接退出,会出错;

A14:提前把用户成绩都初始化为0,再开启游戏。

参考资料

标签:文件,流程图,函数,C语言,接龙,程序设计,代码,成语

来源: https://www.cnblogs.com/linfangnan/p/12642412.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值