#include /*输入/输出函数*/ #include /*常用子程序*/ #include /*调用DOS控制台l/O*/ #include /*串操作和内存操作函数*/ #define LEN sizeof(struct commdity) #define FORMAT "%-8d%=15s%-12.1lf%-12.1lf%-12.1f\n" #define DATA comm[i].num,comm[i].name,comm[i].price,comm[i].count,comm[i].total struct commdity /*定义商品信息结构体*/ { int num; /*编号*/ char name[15]; /*商品名称*/ double price; /*单价*/ double count; /*数量*/ double total; /*总金额*/ }comm[50]; /*定义结构体数组*/ void in(); /*录入商品信息*/ void show(); /*显示商品信息*/ void order(); /*按总金额排序*/ void del(); /*删除商品信息*/ void modify(); /*修改商品信息*/ void menu(); /*主菜单*/ void insert(); /*插入商品信息*/ void total(); /*计算总商品数*/ void search(); /*查找商品嘻嘻*/ void menu() { system("cls"); printf("\n\n\n\n\n"); printf("\t\t|---------------商品管理系统----------------|\n"); printf("\t\t\t| 0.退出 |\n"); printf("\t\t\t| 1.录入记录 |\n"); printf("\t\t\t| 2.查找记录 |\n"); printf("\t\t\t| 3.删除记录 |\n"); printf("\t\t\t| 4.修改记录 |\n"); printf("\t\t\t| 5.插入记录 |\n"); printf("\t\t\t| 6.排序记录 |\n"); printf("\t\t\t| 7.统计记录 |\n"); printf("\t\t|-----------------------------------------|\n\n"); printf("\t\t\t选择(0-7):"); } void main() /*主函数*/ { int n; 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); } } 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","wd"))==NULL) { printf("不能打开文件!\n"); return; } for(i=0;i