用c语言编写商品管理系统(共10页).doc
精选优质文档-倾情为你奉上#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.11f%-12.11f%-12.11fn"#define DATA commi.num,commi.name,commi.price,commi.count,commi.total /*定义商品的结构体*/ struct commdity int num; char name15; double count; double total; comm,t; /*函数的声明*/ void in(); /*商品录入并保存*/ void show(); /*显示商品记录*/ void order(); /*商品记录排序*/ void del(); /*商品记录删除*/ void modify(); /*商品记录修改*/ void menu(); /*主菜单*/ void insert(); /*商品记录插入*/ void total(); /*商品统计*/ void search(); /*查看商品记录*/ void main() int n; menu(); scanf("%d",&n); while(n) switch(n) case 0:break; 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:printf("error! 操作错误.n");break; getch(); menu(); scanf("%d",&n); /*自定义主菜单函数*/ void menu() system("cls"); /*清屏*/ printf("nnnnn"); printf("tt-欢迎将进入商品管理系统-n"); printf("tt|t0.退出 |n"); printf("tt|t1.录入记录 |n"); printf("tt|t2.查找记录 |n"); printf("tt|t3.删除记录 |n"); printf("tt|t4.修改记录 |n"); printf("tt|t5.插入记录 |n"); printf("tt|t6.排序记录 |n"); printf("tt|t7.统计记录 |n"); printf("tt|-|n"); printf("ttt请输入您的操作类型【0-7】: n"); /*自定义商品录入并保存函数*/ void in() int i,m=0; char ch2; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开文件!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("无商品记录.n"); else system("cls"); show(); if(fp=fopen("data.txt","wb")=NULL) printf("不能打开文件!n"); return; for(i=0;i<m;i+) fwrite(&commi,LEN,1,fp); printf("是否输入?(y/n):n"); scanf("%s",ch); while(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) printf("编号:n"); scanf("%d",&commm.num); for(i=0;i<m;i+) if(commm.num=commi.num) printf("该记录已经存在,按任意键返回.n"); getch(); fclose(fp); return; printf("商品名:n"); scanf("%s",commm.name); printf("单价:n"); scanf("%lf",&commm.price); printf("数量:n"); scanf("%lf",&commm.num); commm.total=commm.count*commm.price; if(fwrite(&commm,LEN,1,fp)!=1) printf("不能保存!n"); getch(); return; else printf("%s 已经保存!n",commm.name); m+; printf("是否继续?(y/n):n"); scanf("%s",ch); fclose(fp); printf("OK!n"); return; /*自定义显示商品记录函数*/ void show() int i,m=0; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开记录!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("无商品记录.n"); else printf("编号 商品名称 单价 数量 总金额tn"); for(i=0;i<m;i+) printf(FORMAT,DATA); /*自定义商品查看函数*/ void search() FILE *fp; int snum,i,m=0; char ch2; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开文件!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("无商品记录.n"); return; printf("编号:n"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum=commi.num) printf("已经找到记录,是否显示?(y/n):n"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) printf("编号 商品名称 单价 数量 总金额tn"); printf(FORMAT,DATA); break; else return; if(i=m) printf("没有找到相应的记录.n"); /*自定义商品记录删除函数*/ void del() int i,m=0,j,snum; char ch2; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开文件!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("无商品记录.n"); return; printf("请输入编号:n"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum=commi.num) break; if(i=m) printf("没有找到.n"); getch(); return; printf("已经找到记录,是否删除?(y/n):n"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) for(j=i;j<m;j+) commj=commj+1; m-; printf("删除成功.n"); if(fp=fopen("data.txt","wb")=NULL) printf("不能打开文件!n"); return; for(i=0;i<m;i+) if(fwrite(&commj,LEN,1,fp)!=1) printf("不能保存!n"); getch(); fclose(fp); /*自定义商品记录修改函数*/ void modify() int i,m=0,snum; char ch2; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开文件!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("无商品记录.n"); fclose(fp); return; printf("请输入您要修改信息的编号:n"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum=commi.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",commi.name); printf("单价:n"); scanf("%lf",&commi.price); printf("数量:n"); scanf("%lf",&commi.num); commi.total=commi.count*commi.price; else return; else printf("没有找到.n"); getchar(); return; if(fp=fopen("data.txt","wb")=NULL) printf("不能打开文件!n"); return; for(i=0;i<m;i+) if(fwrite(&commi,LEN,1,fp)!=1) printf("不能保存!n"); getch(); fclose(fp); /*自定义商品记录插入函数*/ void insert() int i,m=0,j,k,snum; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开文件!n"); return; while(!feof(fp) if(fread(&commm,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=commi.num) break; for(j=m-1;j>i;j-) commj+1=commj; printf("请输入您要插入的信息:n"); printf("编号:n"); scanf("%d",&commi+1.num); for(k=0;k<m;k+) if(commk.num=commi+1.num&&k!=i+1) printf("该编号已经存在,按任意键继续.n"); getch(); fclose(fp); return; printf("商品名:n"); scanf("%s",commi+1.name); printf("单价:n"); scanf("%lf",&commi+1.price); printf("数量:n"); scanf("%lf",&commi+1.num); commi+1.total=commi+1.count*commi+1.price; if(fp=fopen("data.txt","wb")=NULL) printf("不能打开文件!n"); return; for(k=0;k<m+1;k+) if(fwrite(&commk,LEN,1,fp)!=1) printf("不能保存!n"); getch(); fclose(fp); /*自定义商品记录统计函数*/ void total() int i,m=0; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开记录!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; if(m=0) printf("无商品记录.n"); fclose(fp); else printf("编号 商品名称 单价 数量tn"); for(i=0;i<m;i+) printf("%-8d%-15s%-12.11f%-12.11fn",commi.num,commi.name,commi.price,commi.count); printf("一共有%d条记录!n",m); fclose(fp); /*自定义商品记录排序函数*/ void order() int i,j,m=0; FILE *fp; if(fp=fopen("data.txt","ab+")=NULL) printf("不能打开记录!n"); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("无商品记录.n"); else for(i=0;i<m;i+) for(j=i+1;j<m;j+) if(commi.total<commj.total) t=commi; commi=commj; commj=t; printf("编号 商品名称 单价 数量 总金额tn"); for(i=0;i<m;i+) printf(FORMAT,DATA); 专心-专注-专业