本人上周和下周正在开展C语言的课程设计,所以更新新的知识有一些慢,本篇博客将带领大家深度了解c语言的文件的操作以及本人在书写代码时所出现的问题。

首先我设置了用户登录系统、管理员登录系统。用户登录系统登录之后会按照用户所填写的衣服尺码与服装系统中的剩余对比从而给用户推荐满足她尺寸的服装。

此代码的实现,可能是因为本人较为笨拙搞了很久在文件的读取方面一直使用fwrite和fread。所以将服装文本中的信息一直读不到正确的位置所以一直再想为什么它read的时候会将所有的信息都读取到结构体的第一个字符数组之中,随后在课设中我发现read这个函数时对信息一行进行读取,没办法一个一个信息的存储与读取,所以我将代码中所有的fwrite和fread分别改为了fprintf和fscanf。然后进行编译之后发现用户登录之后会正常推荐服装信息。对此是我自己的思路,然后输出之后发现它只能推荐一个服装类型,但是我也使用了feof判断是否到了末尾所以我使用了循环。发现一直再循环里出不来,并且在if中判断相等之后循环不知道如何出来,所以我听取了朋友的建议使用了一个计数器,先对整体进行计数,然后下一个循环到服装总数之后就退出。但是又遇到了一个问题就是读了之后文件的指针就指向了文件的末尾,所以又要使用fseek()函数让指针重新指上服装文本中的文件开头的位置,对其重新读取。该功能其实我认为还可以使用链表但是我的代码和函数有点多如果对链表进行使用的话会很乱,并且不好找bug所以选择了计数器的方法。课设结束之后我会尝试用链表对其进行功能的分析。

该模块的代码如下所示:

void userin()
{Users y={0};stu f={0}; int count=0;FILE *pe=fopen("users.txt","r+");FILE *pi=fopen("fuzhuang.txt","r+");fscanf(pe,"%s %s %s %s %s",y.id,y.name,y.paw,y.sex,y.size);fscanf(pi,"%s %s %s %s %d %d",&f.brand,&f.name,&f.num,&f.size,&f.price,&f.stock);printf("\t跟您尺码相同的服装库存还有:\n"); printf("\t服装品牌\t服装编号\t服装类型\t服装尺寸\t服装售价\t服装库存\n");while(1){if(feof(pi)==0){fscanf(pi,"%s %s %s %s %d %d",&f.brand,&f.name,&f.num,&f.size,&f.price,&f.stock);count++;}elsebreak;}fseek(pi,0L,SEEK_SET);while(count--){if(strcmp(y.size,f.size)!=0){if(feof(pi)==0){fscanf(pi,"%s %s %s %s %d %d",&f.brand,&f.name,&f.num,&f.size,&f.price,&f.stock);}}else{printf("\t%s\t\t%s\t\t%s\t\t%s\t\t%d\t\t%d\n",f.brand,f.num,f.name,f.size,f.price,f.stock);if(feof(pi)==0){fscanf(pi,"%s %s %s %s %d %d",&f.brand,&f.name,&f.num,&f.size,&f.price,&f.stock);}}}
} 

当然除了这个功能我认为还有一个功能的实现还是稍微有一点点的难度的,比如用户的注册和登录时所需要保存的数据和读取的数据。并且还要对其进行比较是否相等,两个功能的实现大差不差,所以我们直接来看这个注册和登录的代码吧!

void Regist()
{administrator a={0},b={0};char tmp[20]={-1};        //判断密码是否相同时使用的 FILE *pf = NULL;pf = fopen("administrator.txt","r");   //用pf去指向文件,文件是要已经存在的文件 只读模式 if(pf == NULL){printf("注册时打开文件失败\n");return ;}printf("\t\t\t欢迎来到注册界面\n\n");printf("\t\t\t输入账号->");scanf("%s",a.id);printf("输入成功!\n"); //【注册界面】 printf("\t\t\t请输入姓名->"); scanf("%s",a.name);printf("\t\t\t请输入性别:男/女->"); do{       //输入性别并查看是否输入正确 getchar();scanf("%s",a.sex);}while(1);printf("\t\t\t请输入密码->"); scanf("%s",a.paw);printf("\t\t\t请再输入一次密码->"); do   //判断两次密码是否相等 {scanf("%s",tmp);if(strcmp(tmp,a.paw) != 0)printf("\t\t\t两次输入密码不一致,请再输入一次密码->");elsebreak;}while(1);//两次密码一致fclose(pf); pf = NULL;pf = fopen("administrator.txt","a");    //以追加的形式写入文件 //fwrite会在当前文件指针的位置写入数据//"w" 打开,文件指针指到头,只写;"a" 打开,指向文件尾部,不覆盖。 fprintf(pf,"%s %s %s %s",a.name,a.paw,a.id,a.sex);  //将a的数据存入文件之中printf("\t\t\t注册成功!\n"); fclose(pf); pf = NULL;system("cls");return;
}bool Login()   //返回值是一个布尔变量
{administrator a={0},b={0};FILE *pf = fopen("administrator.txt","r+");  //以读的模式打开文件 if(pf == NULL){printf("文件打开失败\n");return false;}printf("欢迎来到登录界面!\n");printf("请输入账号->");scanf("%s",a.id);fscanf(pf,"%s %s %s %s",b.name,b.paw,b.id,b.sex);   //每次读取Users个长度,读一次。 while(1){if(strcmp(a.id, b.id) != 0 ){if(feof(pf) == 0)//未到文件尾 一直向后查找 {fscanf(pf,"%s %s %s %s",b.name,b.paw,b.id,b.sex);}else{printf("该账号不存在,请先注册\n");fclose(pf); pf = NULL;return false;}}else//账号注册过->跳到输入密码 {break; //退出无限循环,跳到输入密码 }}
//【输入密码】 printf("请输入密码->"); do{scanf("%s",a.paw);}while(1);printf("登录成功!\n");fclose(pf); pf = NULL;system("cls");return true;
}

为了防止大家直接进行复制粘贴代码所以我对以上的代码进行了一些删减,如果有需要课设相关功能的朋友可以在csdn上私信我,我一定会对问题进行解答。

其他的代码我个人认为相关功能的实现很简单所以这里我就不详细的介绍其他的代码了。我会对我的程序进行截图,大家可以看看如果有需要的功能可以私信我。

本人的用户登录端可能后续还要加入很多功能。

 如下的图是对用户端想要的价格进行给用户的推荐如下:

下面就是退出系统的相关操作:

本人这篇博客的讲解就先到这里结束了,如果这里的一些功能你想要代码的话可以私信我,或者我的这篇博客有一些语言不清的地方或者思路有问题的地方,欢迎大佬们帮我指出谢谢!

C语言课程设计(服装管理系统详解)相关推荐

  1. 销售管理c语言程序设计,C语言课程设计销售管理系统

    C语言课程设计销售管理系统 C语言课程设计 题 目 商品销售系统 指导教师 曹东燕 学生姓名 刘伟 张新星 马国文 学 号 200900804072 200901802005 200900804051 ...

  2. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  3. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统

    <C语言课程设计-书店管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计-书店管理系统(25页珍藏版)>请在人人文库网上搜索. 1.计算机程序设计计算机程序设计(C(C ...

  4. c语言课程设计人事管理,C语言课程设计-人事管理系统(65页).doc

    C语言课程设计-人事管理系统(65页) C语言课程设计 --人事管理系统 来自资料搜索网() 海量资料下载 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员.教师.一般员工).退休人员 ...

  5. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  6. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  7. c语言课程设计作业图书管理系统,C语言课程设计图书馆管理系统程序代码.doc

    C语言课程设计图书馆管理系统程序代码.doc includestdio.h includewindows.h includestring.h includeconio.h define M 100 s ...

  8. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  9. c语言课程设计订单管理系统,C语言课程设计订单管理系统讲解.doc

    C语言课程设计订单管理系统讲解 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 1501 完成时 ...

  10. c语言课程设计人事部门,C语言课程设计人事管理系统

    <C语言课程设计人事管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计人事管理系统(36页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计人事管理系统 题目要求:人 ...

最新文章

  1. 数据结构与算法:22 精选练习50
  2. python中的logging日志
  3. 不歧视双非的计算机院校,公平!考研西工大,双非院校倒数第一名考生上岸,本校考生被刷...
  4. python学起来难不难-Python自学难不难,培训班推荐?
  5. 第四讲:debugging simulation mismatches
  6. RK3399Pro Android Rock-X 人工智能开发系列(1)
  7. (一)Mina源代码解析之总体架构
  8. WinAPI: LoadBitmap - 从资源中载入位图
  9. 微软商店下载的python_微软商店可下载安装Python 3.7啦
  10. linux酷q运行不了,Linux上使用docker运行酷Q机器人
  11. 拉格朗日插值(知识整理+公式推导+板子总结)
  12. 网络安全策略防御加固
  13. matlab中如何设置曲线图,(excel表格制图表)如何将excel表中数据做出曲线图
  14. 关于安装LINUX时找不到硬盘问题解决
  15. 弘辽科技:淘宝提升展现词好吗?淘宝展现词如何提升?
  16. 2018计算机通信网络,2018年1-12月我国计算机、通信和其他电子设备制造业企业数量共计16656个...
  17. Python客户端开发
  18. 用python输出pi的近似值_Python-Pi近似
  19. 开发2d游戏要用什么引擎_下一个游戏要使用什么2D游戏引擎
  20. Numpy 数组的其他函数--索引argwhere、去重unique、排序sort

热门文章

  1. Javascript 面向对象编程(一):封装
  2. 黑龙江计算机比赛,信息工程学院在第十三届中国大学生计算机设计大赛黑龙江省赛中喜获佳绩...
  3. Win10怎么进Bios Win10系统进入BIOS界面的方法图文详解
  4. 《英语语法新思维初级教程——走近语法》阅读笔记(持续更新中)
  5. 网络安全守护神(SOC)
  6. 《CODE》读后笔记——第14~20章
  7. Google Play商店的各种报错解释以及修复方法。
  8. 2021-07-06 游戏日报
  9. 诺基亚、罗永浩,中国手机2014八大关键词
  10. 在电脑上部署网站lls 浏览器上访问