1.本章学习总结
1.1思维导图
1.2.本章学习体会
结构体的学习,明白哪个变量属于哪里,好像不是那么地难。pta上面的几题练了一下,似乎有点感觉了。文件,目前只会比较简单的读写,打开文件什么的。终归一点,还是基础不够扎实。大作业的完成需要建项目,代码是打出来了,就是达不到目的。文件,还是需要花时间多去理解和练习的。
现在终于明白,基础不牢,地动山摇。。前面学的不够好,后面寸步难行。这次大作业,试了好多次,连编译都过不了,看着自己的代码和别人的没多大区别,可就是有问题,真的挺气人的。对于文件,我们目前要用到的就是打开、写入、修改等一些比较基本的操作。仔细想想,不懂的怎么写程序还是不太擅长在项目中同时用多个文件,涉及到传参,主函数存放函数声明什么的,还是要拿书上代码去练练才更有感觉。
2.大作业
2.1.文件介绍
1.头文件head.h
- 定义了结构体,里面有变量username和password,分别表示账号和密码
- 之后就是一些函数的声明
2.其他文件介绍
文件1:main.c
- 用户登入界面的设计
- 如果输入错误就让用户重新输入,并且,每个用户答完题后做清屏处理
- 调用函数实现式子的生成,计算与反馈结果
- 最后调用排名函数根据答题情况打印排名榜
文件2:Login.c
- 检验用户的登入系统合不合法,就看能不能打开user.txt这个文件
-无法打开文件则给出相应的提示
文件3:ComputeExp.c
- 根据生产的式子计算相应的结果
- 其实这个是之前指针大作业的代码
文件4:CreateExp
- 里面包含了生成随机式子和计算答题情况的函数
- CreateExp里面是根据用户选择的等级将生成的式子放入数组中
- scoreCalculate函数中最核心的部分就是需要将答题数以及正确率存到数组里面,否则会乱掉
文件5:rank排名系统
- Rank函数遍历存入数组中的结果,用选择法按正确率从高到低排列
- printRank函数实现打开ranking.txt这个文件并将结果放入文件中
2.2.运行结果
1.登录界面
{{A}7_EOOI_YN_E0BK24]S@H8.png(uploading...)}}
2.排名结果
2.3改进大作业总结
1.碰到问题及解决办法
- 对文件不熟悉,不清楚主函数改干嘛什么的,经过请教大佬后,知道主函数里面只是放一些函数声明以及结构体的定义
- 原本一直以为那些用户账号和密码等信息是通过代码实现的,后来才知道原来是写在记事本上,然后打开那个文件实现用户信息的读取
- 编译一直过不了,出现多次定义的问题,问过同学后,知道那是因为在函数里面调用头文件然后调用头文件的时候又调用函数就会出现重复定义的问题
- 最后排名哪里的答题数和正确率一直是乱的,仔细查找发现是没有将结果放入数组中导致乱了,于是多加一个将答题数和正确率放入数组s的语句就好
2.小结
- 难度依次比一次大是毋庸置疑的,花了很多时间,却并没解决什么问题,看着分明没问题,可就是编译不让过,问了好多次同学,最后发现,最熟悉自己代码的还是自己,只有自己多花时间去研究研究,才知道哪里错了
- 做完之后回顾一下代码,发现也并不是那么地难,登入和排名函数是参照同学思路去做的,其他代码是之前大作业写了就可以拿过来用的,模仿着写,不懂就问问自己参考的那个同学,能比较快找到问题。书上也有代码可以参考,不过现在对文件真的不熟,不看书的话,可能会写不出来,看来还是要多练练
- 一开始我是放着一堆代码不想动了,后来老师又多给了时间,于是我也就再看看吧,少点错误还是有好处的。课设设计到这一块的,代码模板什么的就有了,做起来也更快。
- 最大的感受就是,函数没学好真的很难受。写代码过程中遇到很多时候都要调用函数,然后我在传参那一块比较懵懂,就很容易出错,学习是环环相扣的,前面学的不好,后面就会受到影响;同样,前面不要留下错误,下次作业就可以直接把前面的成果拿来用,错误也没那么多,调试起来也更顺心。所以,不要拖拉、懈怠每一次作业真的非常重要,付出了是会有回报的!