1.本章学习总结(2分)

1.1思维导图

1.2.本章学习体会

  • 这两周主要学习了文件、结构体和链表的初步运用。到这一阶段,从大作业的实现上来看,已经和大佬们有了比较大的差距。神仙easyX对我来讲还是一个相对陌生的东西(百度稍微简单看了一下,时间原因这次大作业没有实现,争取在课设环节实现
  • 总的来讲,已经渐渐从扎堆写程序走向模块化程序,懂得分块处理程序,分功能封装函数,走工程化道路。学习了建立简单工程之后,的确觉得整个绵长的程序看起来情书按很多w。
  • 出现的问题还是比较多,例如处理文件时,一个处理不好可能就会让文件里面储存的东西变得乱七八糟,所以在这方面的处理还是要注意一些。有关有闭!
  • 嘛,在大作业方面涉及到的对于文件的读取写入等还是比较少的,课设环节应该需要用到更多,希望课设环节可以熟练试用文件操作w。
  • flag!:PTA方面这周就没怎么去碰了qaq!!找时间巩固一下链表,为下学期打基础,如果可以尽量在课设阶段用上链表的知识。

2.大作业

2.1.文件介绍

1.头文件


  • 结构体User用于储存登陆用户名。
  • 结构体Score用于储存需要输出的成绩信息。

2.其他文件介绍

文件1:main.c


文件2:Login.c


  • 函数主要功能
    • 选择是否需要注册或者直接登录
    • 验证登录密码与帐号是否匹配
  • 函数主要思路
    • 选择等级,如需注册,将帐号密码写入文件。
    • 选择老用户,直接登录,验证帐号密码,正确登录,反之,重复验证。

文件3:ComputeExp.c


  • 函数主要功能
    • 随机生成多步,多位数的表达式。
  • 函数主要思路
    • 根据等级,确定生成的位数以及计算步数
    • 利用for循环生成多个随机数转字符存储,固定位置,枚举法生成运算符。
    • 最后输入终止符号,输出表达式

文件4:Calculation.c


  • 函数主要功能
    • 利用exp函数生成的表达式进行结果运算。
  • 函数主要思路
    • 分步,两两数据运算,寻找数组的运算符存在规律,利用switch运算。
    • 如果是除法运算,除数为0,返回5555清屏跳过此题。最后返回结果

文件5:ending.c


  • 函数主要功能:
    • 输出本次成绩结果
    • 暂停清屏
    • 将成绩排序后写入文件
    • 按照次序输出成绩排名
  • 函数主要思路:
    • 保留原函数的ending画面
    • 建立结构体数组,储存需要输出与写入的数据。
    • 打开文件,先读取第一行注释行,再初始化数组,进行排序。
    • 输出结果,关闭文件

2.2.运行结果

1.登录界面

2.排名结果

2.3改进大作业总结


1.碰到问题及解决办法

  • 输出部分程序爆炸
    • 输入和输出要一一对应,否则会出现读取错误
  • 结果输出排行榜思路断层
    • 利用结构体数组,结合选择排序法,排序后写入并输出

2.小结

  • 本次大作业的改造,对于结构体的运用以及文件的初步使用,有了新一步认识。相比大佬们的程序而言,我的程序就有些简陋,在自学能力方面,还是需要加强一些,需要自己上网搜索一些可以用的算法或者函数,拓展函数的功能。因为是比较不熟悉的内容,在操作性上,比之前要陌生很多,还是归结于使用次数不够多,所以才比较欠缺一些。因此,在面对操作性比较强的东西上,还是要多操练一些。比较遗憾的一点是,还是没有来得及尝试大佬们用的easyX可视化c,当然我也稍微百度了一下这个比较陌生的东西,网络上则有很多关于vs easyx的教程。但是考虑了一下时间安排,决定还是将这个试验放到课设阶段去完成。
  • 每次写大作业,都有很多不一样的感触。从最开始的大家都只是完成表达式生成和计算,到现在已经出现程序功能多样化的一个分层。归根究底,除了学习能力,还有探索欲上的差距。程序的创建在于,程序本身具有什么样的功能,客户希望这个程序有什么功能,程序员希望这个程序能够有什么更多的便利化功能。也非常感谢网三网四的大佬们做行动上的先驱,先开辟出一个方向,也希望更多像我一样的迷途同学,能够在接下来的日子里,向大佬们学习,完成自己理想化的程序,提高自己的编程能力。
posted on 2018-12-30 21:51  Salcious  阅读(348)  评论(1编辑  收藏  举报