C语言程序设计:“退出并打卡”功能编写

概述

本文编写实现单词本程序中的“退出并打卡”功能模块,在索引文章中我们提到过,当用户选择执行此程序时,退出单词本并打卡。

源代码

void Exit()
{
	typedef struct yhsj            //定义结构体
    {
       char name[20];
       char password[8];
       int dkts;
     }sj;
    sj yhxx[1000];              //定义结构体数组,用来存储用户信息 
	int i=0,a,count=0;          //a为选择变量,
	printf("是否确认退出并打卡(1、是,2、否):");
	scanf("%d",&a);
	system("cls"); 
	if(a==1)   //若用户选择进行打卡,则执行此步骤
	{
		FILE *fp;                   //打开文件,调出用户数据
        fp=fopen("D:\\Ctext\\yonghushuju.txt","r");
        if(!fp)           //判断文件是否成功打开
         {
           printf("file error!\n");
           exit(1);
         }
		fscanf(fp,"%s%s%d",yhxx[i].name,yhxx[i].password,&yhxx[i].dkts);
        while(!feof(fp))
        {
          i++;
		  fscanf(fp,"%s%s%d",yhxx[i].name,yhxx[i].password,&yhxx[i].dkts);
        }
		count=i;        //用户总数
	   fclose(fp);
		for (i=0;i<count;i++)  //用for循环找到该用户对应的结构体,并对打卡次数进行“+1”
       {
        if(!strcmp(mingzi,yhxx[i].name))
       {
		   yhxx[i].dkts++;
		   printf("你已成功退出并累计打卡%d次。\n",yhxx[i].dkts);
		   getchar();getchar();
		   break;
		}
	   }
		fp=fopen("D:\\Ctext\\yonghushuju.txt","w+");
		if(!fp)
         {
           printf("file error!\n");
           exit(1);
         }
		for(i=0;i<count;i++)  //将更新后的用户数据重新写入文件
		{
				fprintf(fp,"%s %s %d\n",yhxx[i].name,yhxx[i].password,yhxx[i].dkts);
		}
	    fclose(fp);
		exit(1);
	}
	else if(a==2)     //不退出则重新回到菜单栏
	{  
		Menu();
	}

}

效果图

(1)选择“退出”功能:
退出功能
(2)按下回车键后:
退出功能(回车后)

后记

上述代码只实现了记录打卡次数的功能,有兴趣的读者可以自行加上一些扩展功能,如用户可以选择是否进行打卡,或者将打卡次数改为打卡天数等。
————————————————————————
2021.03.24更新:刚刚看到自己上传的源码需要积分才能下载,enm如果大家没有积分的话,可以微信搜索我的个人公众号“茶迁”或者扫描下图,关注后在后台回复“单词本”,就可以直接拿到源码啦。我平时也会在公众号发一些编程相关的文章,欢迎大家关注~
茶迁

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保温杯拖把风扇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值