C语言博客作业06--结构体&文件

本文分享了使用C语言进行结构体定义、文件读写及排序的实践经验,包括登录注册系统、成绩管理和排行榜功能的实现过程。通过具体代码示例,详细介绍了如何利用结构体存储用户信息,运用文件操作进行数据持久化,并实现成绩排序和显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.本章学习总结

1.1思维导图

1474872-20181227164800614-393391945.gif

1.2本章学习体会

  • 关于本章的学习,还是有些生疏,可能使这方面的代码写得少的原因吧,但发现课堂派作业挺好的,每次不是很懂,但是经过课堂派的做题之后感觉好了许多,也学了更多的方法,给了自己启发。发现结构体和文件挺重要的,大作业在用上结构体和文件后越来越接近我们平时生活中接触到的东西,功能也更为丰富。

    2.大作业

    2.1.文件介绍

    1.头文件

  • 介绍头文件有哪些结构体及变量
    头文件有2个结构体,一个用来存放昵称和成绩,一个用来存放登录信息,用户名和密码。
    其余函数如图所示
    1474872-20190102145632132-191587090.png

    2.其他文件介绍

    文件1:main.c
  • 介绍文件功能及设计思路
    功能:
    主函数,分为登录注册,和开始游戏,查看排名三部分
    设计思路:

    打开login.txt
    进入登录函数
    关闭文件login.txt
    system("pause");//dos命令暂停
    system("cls");//dos命令清屏
    打开ranking.txt
    用switch()函数选择开始游戏和查看排名
    关闭文件ranking.txt

  • 截图
    1474872-20190102150017605-2118074259.png

文件2:Login.c
  • 介绍文件功能及设计思路
    功能:
    登录后菜单,展示成绩,登录,校验,注册
    设计思路:

    登录后菜单
    用printf函数输出菜单
    展示成绩
    用while循环,统计ranking.txt文件中的人数total
    将ranking.txt文件中的信息载入结构体
    排序
    for i=0 to i<total
    for j=i j<total-2;j++)
    if stu[j].score<stu[j+1].score then
    temp=stu[j];
    stu[j]=stu[j+1];
    stu[j+1]=temp;
    end if
    end for
    end for
    再输出
    登录
    将用户输入的信息用strcpy函数strcat函数连接放入usr[]数组,将user.txt中的信息放入数组usr1[]
    用strcmp函数进行校验
    注册
    将用户输入的信息用strcpy函数strcat函数连接放入usr[]数组,存入文件user.txt中

  • 截图
    1474872-20190102150620620-203087066.png
    1474872-20190102150730451-1521038234.png
    1474872-20190102152210338-1066346797.png
    1474872-20190102150843188-1631851387.png

文件3:ComputeExp.c
  • 介绍文件功能及设计思路
    功能:
    与上次作业的功能差不多,多了保存成绩到文件ranking.txt的功能
    设计思路:
    保持上一次作业的功能,在的出成绩后,用fprintf函数进行保存到文件ranking.txt
    fprintf(fp," %d",student.score);
    fprintf(fp,"%s","\n");

  • 截图
    1474872-20190102151535476-236429574.png
    1474872-20190102151627085-483764860.png
    1474872-20190102151700377-1034623944.png
    1474872-20190102151741879-1456967237.png
    1474872-20190102151812818-383154333.png
    1474872-20190102151853437-1774412134.png
    1474872-20190102151921751-1241740188.png
    1474872-20190102151950359-1502387483.png

2.2.运行结果

  • 1.登录界面
    1474872-20190102160101366-406791315.png
    1474872-20190102160414468-836954345.png

1474872-20190102160232180-1563628031.png

  • 2.排名结果
    1474872-20190102160318491-833701472.png

2.3改进大作业总结

这一次在相比于以往的大作业修改比较少,大部分都是增添功能,但是因为功能的增添,代码量越来越大,查错不是那么容易,通过了功能的一部分一部分实现进行查错,相比于以往不能全部代码全写上去,再慢慢调试,快了许多,通过大作用也发现自己的语法错误变少了,查出来也变得灵活,对于错误学会自己去猜测,找到原因。

  • 碰到问题及解决办法
    如:
    问题:查看排名时,分数部分是乱码。
    解决:先判断读取出来时就是乱码还是在排序后变成的,在读取后先设置输出进行判断,最后发现再排序时多循环一个元素。
    有些问题还是因为自己知识点的缺乏而造成的,这种问题就会比较难以发现并解决,这会花上大部分时间,所以看书很重要。

转载于:https://www.cnblogs.com/linshuxin1761/p/10165402.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值