C语言作业06--结构体&文件
1.本章学习总结
1.1 思维导图
1.2学习体会
在本周的学习中,我们学习了关于结构体和文件的内容。定义结构体可以使代码整个练习更加紧密,非常实用,当我们需要在对一个个体的不同属性调用时可以更加系统和直观,利用结构体来将多个不同属性统一起来,还学习了结构体指针,他们的实现都是为了提高函数之间的传递效率。文件的话,知道是怎么从文件中读取数据,还有就是联想到我们平时使用手机时那些文件的读取原理,我还不太会用它来建工程,之前的那次课堂派建立工程作业完成的不是特别顺(尽管是有老师博客的相关代码步骤提示)。emmmmm,所以我对改文件大作业还是懵逼。不过啊,不会的话也不能什么都不做,可以自己找那些做的好的同学代码学习一下他们是怎么实现的,思路和具体代码是怎么样的,总比从什么都不做要强叭。
2.大作业
- 本次作业要求对小学四则运算程序功能扩展。
扩展功能: - 小学生用户登录进系统做题。结束答题后,能把该学生答题情况写入文件,并实现排名。
- 本次作业必须建工程实现C的多文件。其中结构体定义、函数定义等都要封装在自定义头文件中。
- 登录模块设计一个文件、答题排名模块设计一个文件,所以该系统至少包含4个文件。
- 用户登录、排名信息的数据请封装结构体实现。
- 注意有2个数据文件的读写:user.txt和ranking.txt
3.大作业点评
自己也不会写,自己就点评一下大佬的作业叭。
点评的是范华同学的改编大作业,附上博客链接:https://www.cnblogs.com/fanfaniscute/p/10200864.html
优点:
- 作业需要的函数分开封装实现,更加方便,也更加方便改可能出现的bug。
- 在每个重要句子后面有注释,对我们小菜鸡理解他的代码很友好。
- main函数很简洁
- 专门对输入有保护函数
- 在函数里面有嵌套其他的函数,连贯性更强
缺点:
- 文件系统的读写没有把握好,对答题产生的排名结果并没有在每一次重新答题后叠加上一次的排名结果,而是重新生成一个新的排名表,旧的排名表就存在文件里面没有输出,这个就比较尴尬了。
- 有个别函数传参数过多了,看着乱乱的
- 登入界面只有一个黑白选择框,希望可以呈现更好的界面(比如 下载了easyx里面的图形可视化函数,让整个作业的呈现更加完美。)
C语言作业06--结构体&文件的更多相关文章
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- C博客作业06—结构体&指针
1.本章学习总结 1.1思维导图 1.2本章学习体会 明白了结构体的定义及使用方法 学会了fopen,fclose,feof等文件操作函数,学会使用c语言进行文件操作 大作业中的部分函数出现未知错误且 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言文件读写(结构体文件)
有时候,我们需要将输入的数据存储起来,这时候就需要用到文件,对于C语言而言,文件的读写有多种方式,下面主要是结构体文件的读写,例如student.dat(第一列是学号,第二列是姓名) xiaoming ...
- C语言中的结构体,结构体数组
C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...
- Go语言基础之结构体
Go语言基础之结构体 Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 自定义类型 在G ...
- 4-17疑难点 c语言之【结构体对齐】
今天学习了结构体这一章节,了解到了结构体在分配内存的时候采取的是对齐的方式 例如: #include<stdio.h> struct test1 { int a; char b; shor ...
- C语言第九讲,结构体
C语言第九讲,结构体 一丶结构体的定义 在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为: struct 结构体名{ 结构体所包含的变量或数组 }; 结构体是一种 ...
- C 语言实例 - 使用结构体(struct)
C 语言实例 - 使用结构体(struct) C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...
随机推荐
- 使用cert-manager实现Ingress https
什么是https 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报 ...
- git最基础操作一
1. 从远端克隆:git clone -b 克隆的分支 git的地址( eg:git clone -b master https://gitee.com/test/test.git ) 2.提交修改的 ...
- linux搭建FastDFS文件服务器
本文主要介绍在linux服务器如何搭建FastDFS文件服务器.大概分为9个步骤,由于内容较为繁琐.下面带你入坑! 首先简单介绍一下FastDFS是淘宝资深架构师余庆老师主导开源的一个分布式文件系统, ...
- WordPress plugin Contact Form [CSRF → LFI] vulnerable 2019-03-17
# Exploit Title: Contact Form by WD [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vagen ...
- QButtonGroup按钮组
继承 QObject 提供 一个抽象的按钮容器, 可以将多个按钮划分为一组,不具备可视化的效果,一般放的都是可以被检查的按钮 import sys from PyQt5.QtWidgets impo ...
- lambda+mutable配合move实现单函数多程序域
主代码 //-----------------------------------说明一的代码 void fun0{ int t = 10; auto loopFun = [=]() mutable{ ...
- antd table 点击行触发radio 或 checkbox
UIStore.ts (使用mobx) 1 import { observable, action, computed } from 'mobx' export class UIStore { @o ...
- L2-006 树的遍历 (25 分)
链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 题目: 给定一棵二叉树的后序遍历和中序 ...
- Cassandra 原理介绍
Cassandra最初源自Facebook,结合了Google BigTable面向列的特性和[Amazon Dynamo](http://en.wikipedia.org/wiki/Dynamo(s ...
- Mysql 反向解析 导致远程访问慢
在云端部署了mysql后,发现远程连接的响应速度非常慢(3-10s) 但是在本地访问数据库却没有问题 经过一番google这才知道原来mysql默认会进行反向解析,即通过ip地址反向向ISP申请获取域 ...