本人上周和下周正在开展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. linux 查看java最大内存配置,Linux和Windows下的内存设置
  2. 文件服务器 之 ProFTPD+MySQL 认证
  3. 复数矩阵QR分解算法的C++实现
  4. SDNU 1048.石子合并2(区间dp)
  5. Spring Security用户认证和权限控制(默认实现)
  6. 【干货】华为企业数字化转型之道.pdf(附下载链接)
  7. 批处理文件中获取当前所在路径的几种方法
  8. 编译原理教程_4 语法分析
  9. Quartz 配置详解
  10. 分期手续费率转换成年利率
  11. 如何擦除Altera FPGA的配置器件EPCS中的内容
  12. 十二生肖的相合、相冲、相刑、相害
  13. 深蓝学院-多传感器融合定位课程学习分享-专栏汇总
  14. 数字藏品到底有什么魔力?目前有哪些靠谱的团队在开发
  15. windows server 2012 安装 VC++ 安装失败0x80240017解决方法
  16. 电子器件系列二:IGBT
  17. 同步六进制加法计数电路(D触发器)
  18. python绘制图形沙漏_论计时沙漏对于学习python的重要性
  19. 【C语言】设计实现M*N矩阵和N*M矩阵相乘
  20. 自动控制领域期刊-自动化学会推荐学术期刊

热门文章

  1. 全球股市暴跌,币圈应声跳水,为什么?
  2. 为什么总是封板又打开涨停_一旦持有个股出现涨停板,却封不住反复打开,意味着什么?...
  3. C# 自定义鼠标光标
  4. ctf题库--天下武功唯快不破
  5. PNG,JPEG,BMP,JIF图片格式详解及其对比
  6. java接口和抽象函数_Java接口和抽象类区别
  7. 基于JavaWeb的小区物业管理系统的设计与实现
  8. 如何写一份优秀的投资计划书
  9. hdu 2545 树上战争
  10. MyBatis之one2one与one2many