当前位置:网站首页>如何用C语言代码实现商品管理系统开发
如何用C语言代码实现商品管理系统开发
2022-08-04 00:52:00 【亿速云】
如何用C语言代码实现商品管理系统开发
这篇文章主要讲解了“如何用C语言代码实现商品管理系统开发”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用C语言代码实现商品管理系统开发”吧!
程序介绍
商品管理系统主要是对商品的基本信息进行增、删、改、查以及商品的插入的操作,以便用户可以快速地对这些信息进行管理。
操作流程
用户在编译完成后会产生一个系统的可执行文件,用户只要双击可执行文件就可以进入系统,如图所示,用户根据自己需要的操作选择相应的功能。
代码
#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<string.h>#define LEN sizeof(struct commdity)#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf\n"#define DATA comm[i].num,comm[i].name,comm[i].price,comm[i].count,comm[i].totalstruct commdity/*定义商品信息结构体*/{ int num;/*编号*/ char name[15];/*商品名称*/ double price;/*单价*/ double count;/*数量*/ double total;/*总金额*/};struct commdity comm[50];/*定义结构体数组*/void in();/*录入商品信息*/void show();/*显示商品信息*/void order();/*按总金额排序*/void del();/*删除商品信息*/void modify();/*修改商品息*/void menu();/*主菜单*/void insert();/*插入商品信息*/void total();/*计算总商品数*/void search();/*查找商品信息*//** * 主 函 数*/int main(int argc,char *argv[]){ system("color f0\n"); //白底黑字 int n = 0; menu(); scanf("%d",&n);/*输入选择功能的编号*/ while(n) { switch(n) { case 1: in(); /*调用录入商品信息过程*/ break; case 2: search(); /*查找商品信息过程*/ break; case 3: del(); /*调用删除商品信息的过程*/ break; case 4: modify(); /*调用修改商品信息的过程*/ break; case 5: insert(); /*调用插入数据的过程*/ break; case 6: order(); /*调用排序过程*/ break; case 7: total(); /*计算总数*/ break; default:break; } getch(); menu(); /*执行完功能再次显示菜单界面*/ scanf("%d",&n); } return 0; }void in()/*录入商品信息*/{ int i,m=0;/*m是记录的条数*/ char ch[2]; FILE *fp;/*定义文件指针*/ if((fp=fopen("data","ab+"))==NULL)/*打开指定文件*/ { printf("不能打开文件!\n"); return; } while(!feof(fp)) { if(fread(&comm[m] ,LEN,1,fp)==1) m++;/*统计当前记录条数*/ } fclose(fp); if(m==0) printf("没有找到!\n"); else { system("cls"); show();/*调用show函数,显示原有信息*/ } if((fp=fopen("data","wb"))==NULL) { printf("不能打开文件!\n"); return; } for(i=0;i<m;i++) fwrite(&comm[i] ,LEN,1,fp);/*向指定的磁盘文件写入信息*/ printf("是否输入?(y/n):"); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/ { printf("编号:"); scanf("%d",&comm[m].num);/*输入学生学号*/ for(i=0;i<m;i++) if(comm[i].num == comm[m].num) { printf("该记录已经存在,按任意键继续!"); getch(); fclose(fp); return; } printf("商品名:"); scanf("%s",comm[m].name); /*输入学生姓名*/ printf("单价:"); scanf("%lf",&comm[m].price); /*输入商品单价*/ printf("数量:"); scanf("%lf",&comm[m].count); /*输入商品数量*/ comm[m].total=comm[m].price * comm[m].count; /*计算出总金额*/ if(fwrite(&comm[m],LEN,1,fp)!=1) /*将新录入的信息写入指定的磁盘文件*/ { printf("不能保存!"); getch(); } else { printf("%s 已经保存!\n",comm[m].name); m++; } printf("是否继续?(y/n):");/*询问是否继续*/ scanf("%s",ch); } fclose(fp); printf("OK!\n");}void show() /*显示商品信息*/{ FILE *fp; int i,m=0; fp=fopen("data","ab+"); while(!feof(fp)) { if(fread(&comm[m] ,LEN,1,fp)==1) m++; } fclose(fp); printf("编号 商品名称 单价 数量 总金额\t\n"); for(i=0;i<m;i++) { printf(FORMAT,DATA);/*将信息按指定格式打印*/ }}void menu() /*自定义函数实现菜单功能*/{ system("cls"); printf("\n\n\n\n\n"); printf("\t\t|-------------------商品管理系统-----------------|\n"); printf("\t\t|\t\t\t\t\t\t |\n"); printf("\t\t|\t\t 1. 录入记录 |\n"); printf("\t\t|\t\t 2. 查找记录 |\n"); printf("\t\t|\t\t 3. 删除记录 |\n"); printf("\t\t|\t\t 4. 修改记录 |\n"); printf("\t\t|\t\t 5. 插入记录 |\n"); printf("\t\t|\t\t 6. 排序记录 |\n"); printf("\t\t|\t\t 7. 统计记录 |\n"); printf("\t\t|\t\t 0. 退出 |\n"); printf("\t\t|\t\t\t\t\t\t |\n"); printf("\t\t|------------------------------------------------|\n\n"); printf("\t\t\t选择(0-7):");}void order() /*自定义排序函数*/{ FILE *fp; struct commdity t; int i=0,j=0,m=0; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件!\n"); return; } while(!feof(fp)) if(fread(&comm[m] ,LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("没有记录!\n"); return; } for(i=0;i<m-1;i++) for(j=i+1;j<m;j++) /*双重循环实现总金额比较并交换*/ if(comm[i].total < comm[j].total) { t=comm[i]; comm[i]=comm[j]; comm[j]=t; } if((fp=fopen("data","wb"))==NULL) { printf("不能打开\n"); return; } for(i=0;i<m;i++)/*将重新排好序的内容重新写入指定的磁盘文件中*/ if(fwrite(&comm[i] ,LEN,1,fp)!=1) { printf("%s 不能保存!\n"); getch(); } fclose(fp); printf("保存成功\n");}/*自定义删除函数*/void del() { FILE *fp; int snum,i,j,m=0; char ch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(!feof(fp)) if(fread(&comm[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("没有记录!\n"); return; } printf("请输入编号:"); scanf("%d",&snum); for(i=0;i<m;i++) if(snum==comm[i].num) break; if(i==m) { printf("没有找到!"); getchar(); return; } printf("已经找到该记录,是否删除?(y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) /*判断是否要进行删除*/ { for(j=i;j<m;j++) comm[j] = comm[j+1]; /*将后一个记录移到前一个记录的位置*/ m--; /*记录的总个数减1*/ printf("成功删除!\n"); } if((fp=fopen("data","wb"))==NULL) { printf("不能打开!\n"); return; } for(j=0;j<m;j++) /*将更改后的记录重新写入指定的磁盘文件中*/ if(fwrite(&comm[j] ,LEN,1,fp)!=1) { printf("不能保存!\n"); getch(); } fclose(fp); }void search()/*自定义查找函数*/{ FILE *fp; int snum,i,m=0; char ch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } if(fread(&comm[m],LEN,1,fp)==1) { m++; } fclose(fp); if(m==0) { printf("没有记录!\n"); return; } printf("请输入编号:"); scanf("%d",&snum); for(i=0;i<=m;i++) { if(snum == comm[i].num)/*查找输入的编号是否在记录中*/ { printf("已经找到该记录,是否显示?(y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("编号 商品名称 单价 数量 总金额 \t\n"); printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/ break; } else { return; } } else { printf("没有这条记录!\n"); return; } } }void modify()/*自定义修改函数*/{ FILE *fp; int i,j,m=0,snum; char ch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件!\n"); return; } if(fread(&comm[m],LEN,1,fp)==1) { m++; } if(m==0) { printf("没有记录!\n"); fclose(fp); return; } printf("请输入要修改的记录信息的编号!\n"); scanf("%d",&snum); for(i=0;i<m;i++) if(snum==comm[i].num)/*检索记录中是否有要修改的信息*/ { break; } if(i<m) { printf("已经找到该记录,是否修改?(y/n)\n"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("商品名:\n"); scanf("%s",comm[i].name);/*输入名字*/ printf("\n单价:"); scanf("%lf",&comm[i].price);/*输入商品单价*/ printf("\n数量:"); scanf("%lf",&comm[i].count);/*输入商品数量*/ comm[i].total = comm[i].price * comm[i].count; printf("保存成功!"); } else { return; } } else { printf("没有找到!"); getchar(); return; } if((fp=fopen("data","wb"))==NULL) { printf("不能打开文件!\n"); return; } for(j=0;j<m;j++)/*将新修改的信息写入指定的磁盘文件中*/ { if(fwrite(&comm[j] ,LEN,1,fp)!=1) { printf("不能保存!"); getch(); } } fclose(fp);}void insert() /*自定义插入函数*/{ FILE *fp; int i,j,k,m=0,snum; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件!\n"); return; } while(!feof(fp)) if(fread(&comm[m],LEN,1,fp)==1) m++; if(m==0) { printf("没有记录!\n"); fclose(fp); return; } printf("请输入要插入记录的位置!\n"); scanf("%d",&snum); /*输入要插入的位置*/ for(i=0;i<m;i++) if(snum == comm[i].num) break; for(j=m-1;j>i;j--) comm[j+1] = comm[j]; /*从最后一条记录开始均向后移一位*/ printf("now please input the new information.\n"); printf("编号:"); scanf("%d",&comm[i+1].num); for(k=0;k<m;k++) if(comm[k].num == comm[i+1].num&&k!=i+1) { printf("该编号已经存在,按任意键继续!"); getch(); fclose(fp); return; } printf("商品名:\n"); scanf("%s",comm[i+1].name); printf("\n单价:"); scanf("%lf",&comm[i+1].price); printf("\n数量:"); scanf("%lf",&comm[i+1].count); comm[i+1].total = comm[i+1].price * comm[i+1].count ; if((fp=fopen("data","wb"))==NULL) { printf("不能打开文件!\n"); return; } for(k=0;k<=m;k++) if(fwrite(&comm[k] ,LEN,1,fp)!=1) /*将修改后的记录写入磁盘文件中*/ { printf("不能保存!"); getch(); } fclose(fp);}void total() /* 统计*/{ FILE *fp; int m=0; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开记录!\n"); return; } while(!feof(fp)) if(fread(&comm[m],LEN,1,fp)==1) m++;/*统计记录个数即记录个数*/ if(m==0) { printf("没有记录!\n"); fclose(fp); return; } printf("一共有 %d 条记录!\n",m);/*将统计的个数输出*/ fclose(fp);}
感谢各位的阅读,以上就是“如何用C语言代码实现商品管理系统开发”的内容了,经过本文的学习后,相信大家对如何用C语言代码实现商品管理系统开发这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
边栏推荐
猜你喜欢
typescript55-泛型约束
Jmeter cross-platform operation CSV files
【链路聚合原理及配置】
互斥锁、读写锁、自旋锁,以及原子操作指令xaddl、cmpxchg的使用场景剖析
Nanoprobes Alexa Fluor 488 FluoroNanogold 偶联物
七夕活动浪漫上线,别让网络拖慢和小姐姐的开黑时间
研究生新生培训第四周:MobileNetV1, V2, V3
How to find the cause of Fiori Launchpad routing errors by single-step debugging
c语言分层理解(c语言指针(上))
BioVendor人Clara细胞蛋白(CC16)Elisa试剂盒检测步骤
随机推荐
js中常用的几种遍历处理数据的方法梳理
一文参透分布式存储系统Ceph的架构设计、集群搭建(手把手)
typescript55-泛型约束
中原银行实时风控体系建设实践
Tanabata festival coming, VR panoramic look god assists for you
Electronics manufacturing enterprise deployment WMS what are the benefits of warehouse management system
即席查询——Presto
After building the pytorch environment, the pip and conda commands cannot be used
Modulo operation (MOD)
typescript57 - Array generic interface
Install third-party packages via whl
Eight things to pay attention to in spot silver
机器学习——库
typescript54 - generic constraints
身为程序员的我们如何卷死别人?破局重生。
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化
LYVE1抗体丨Relia Tech LYVE1抗体解决方案
【链路聚合原理及配置】
建木DevOps流程的快速运用
Sqlnet. Ora file with the connection of authentication test