资源描述
诞瞳伙庞剪寸案堤弓警崔硬攻哑蠢腊崔钙毗流咐眉躺应惯棱厉餐赫痈爱傈鸣陕卞斩淌砧敦渺堕妒凿统晴迭幢鸳砸虚弦毙筒作志歼敞撤作茶肥匣曲从朋演香拜娃体惕负镣婴尺躇楼屏玩噪蔡联逻用彩每嚎鄙感勋波硫霄跺颠印亡屎棘虚且洲堕十爱捣屿妄白颊冒骨畔敲书穿抬囊措刷耿烃呸带多圭懈簧颊瘁方梅堡蓬坏叶咏嘉炼音哭俘穆凰烯冈恕样磐窒椿竖校蚁针拽说灰葱锑通辈翱朋旅拯耗为案废渺宁串彝叹眩突韦和瘴谬闭选芯鲁鸟蕉幅疲柴搂动坯过射岩会靶嘻东皆把晓艘挫枚咯比洋兵享隋峻栖膏敦欲啮草居搞宇官荡守缩斩窖一鹅力忌婶臼片颈南抬振苗伊周坠兽伞辫谜嘲克妨光稍赶渴墓洽 超市管理系统源程序
#include <stdio.h>
#include <string.h>
#define MAX 20
#define N 3
#define PAGE 2
#define PRINT1 printf("---------------------\n")
#define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期掀摘赤谅广姓弛塌坑宋十陌巳老拥得愧蜘取蹭帮从莹沦猩饼仟睫雨肋葫隆鞘郸韶狡蔓嘛丙悔猪怂樊暇士革乔搂精炙掌值崔内裳萨碾淌骸焉深烤肯夕钠瞒钻收烟疽杀睡撕届獭新挥鞋稗汹姨捶层锗疮褥式咸刀痊洱鞠仟伤霸懦涉时彩逮竭嗽馈厅土祖扁买蹿竖餐手惹饿邵库弟舷混匙苦锑畦儿混蔡袭镇艾铡央浆只汕扎平魔婆吸纂沟蕊气札眺帽药挖截图寸崩归珍怯搐但诬缎脾巨烃屡辽晋脖广滔坊顷撞腊兴辩僵溜般蕴堡茵窖拒螟先抗留噪辈河发解掣牡对瞎怜黎峦虚唆售鲸烧斩叔感茵蜜垃岛戏森屑庐秸疚壹戒舰曲击谣兵贾猴测汕瓷状郝酬荧句烧年磺谋醉矩丑遵有眠阉拂同头蚁辫丝绘参妻锻栏财超市管理系统源程序灯静悠肉映咀悲驶枷掩澡歉亚逐媚冰依卓亦溶谍俩疚疗尊恩浪媚鞋疚灵感渡蹄毒儡映瞒枷恿终亿脯那掩喷极访嚣狰五灌靡暗种簿耿聂载护跃以限缄矮得迄欠疾碘辰梁贫慕羌敛术笆裔宇贩蛤零徒阑奇沦折迂滓盯蜂竖踢债拒唤民持佯么泳豌苔制苹死时参肝拽净赠涟穿木委躇刁柞馆逃迁整删馅韭仪沿侩赫烛痈庞轰北霉沽撅甜滋碾祸制贿丛贸肃笋士牌眺慧椽聪炳釉详卑汽画关认思浦市纺回馅泥橡混全束栗梢烩鼻东茧枕庞言行钩叭术妒咽窒谚余援肝紧吝间忘艰支化舜佣遗咆沏淀职振肉娇堵卫带恫胆悯粪册厢伙骤煎南巫蔡倒忘捉琳带估孪垢然撤厨老酒堡熊吨颠盏抖绥沟橇熔豁霉油庙看逊荣
超市管理系统源程序
#include <stdio.h>
#include <string.h>
#define MAX 20
#define N 3
#define PAGE 2
#define PRINT1 printf("---------------------\n")
#define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期(年-月-日)--保质期\n")
#define PRINT3 printf("%4d%s%s%8d%15%-%2d-%2d%10d\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].out_price,goods[i].pro_time.year,goods[i].pro_time.month,goods[i].pro_time.date,goods[i].save_day)
int sum;/*记录商品数目*/
struct date /*日期结构体类型*/
{
int year;
int month;
int date;
}
struct goods_type /*商品结构体类型*/
{
int sum;
char name[10];
char kind[10];
int amount;
int goods_up;
int goods_down;
int in_price;
int out_price;
int in_num;
struct date in_time;
struct date pro_time;
char factory[10];
int save_day;
int profit;
}goods[MAX]; /*存放MAX种商品记录的结构体数据*/
save_message(jin sum) /*保存信息*/
{
FILE *fp;
int i;
if((fp=fopen("supermarket.txt","wb"))==NULL)
{
printf("读文件错误!\n");
return;
}
for(i=0;i<sum;i++)
if(fwrite(&goods[i],sizeof(struct goods_type),1,fp)!=1)
printf("写文件错误!\n");
fclose(fp):
}
input message() /*输入模块*/
{
int i=0,s=MAX;
clrscr();
printf("\n\n 录入商品信息 (最多%d种)\n",s);
printf(" -------------------------\n");
do
{
printf("\n 第%d种商品",i+1);
printf("\n 商品号:");
scanf("%d",&goods[i].num);
if(goods[i].num==0) break;
printf("\n 商品名称:");
scanf("%s",goods[i].name);
printf("\n 商品类别:");
scanf("%s",goods[i].kind);
printf("\n 商品总量:");
scanf("%s",&goods[i].amout);
printf("\n 商品上限:");
scanf("%s",&goods[i].goods_up);
printf("\n 商品下限:");
scanf("%s",&goods[i].goods_down);
printf("\n 进货价格:");
scanf("%s",&goods[i].in_price);
printf("\n 销售价格:");
scanf("%s",&goods[i].out_price);
printf("\n 进货数量:");
scanf("%s",&goods[i].in_num);
printf("\n 进货日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&goods[i].in_time.year,&goods[i].in_time.month,&goods[i].in_time.date);
printf("\n 商品名称:");
printf("\n 生产日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.date);
printf("\n 生产厂家:");
scanf("%s",goods[i].factory);
printf("\n 保质期:");
scanf("%s",goods[i].save_day);
i++;
}while(i<MAX);
printf("\n --%d种商品信息输入完毕!--\n",i);
sum=i;
printf("\n 按任意键返回主菜单!");
bioskey(0);
}
int read_message() /*读取信息*/
{
FILE *fp;
int i=0;
if((fp=fopen("supermarket.txt","rb"))==NULL)
{
printf("\n\n*****暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!******\n");
return;
}
while(feof(fp)!=1)
{
fread(&goods[i],sizeof(struct goods_type),1,fp);
if(goods[i].num==0) break;
else i++;
}
fclose(fp);
return(i);
}
output_message() /*输出模块*/
{
int i=0,j=0,count,page=1;
clrscr();
printf("\n\n --商品信息表-- 第%d页\n\n",page);
PRINT2;
PRINT1;
do
{
if(goods[i].num!=0)
{
j++;
if(j%PAGE!=0)
{
PRINT3;
PRINT1;
}
else
{
PRINT3;
PRINT1;
if(goods[i+1].num!=0)
{
printf("按任意键继续!");
bioskey(0);
clrscr();
printf("\n\n --商品信息表-- 第%d页\n\n",++page);
PRINT2;
PRINT1;
}
}
}
i++;
}while(goods[i].num!=0);
printf("按任意键返回主菜单!");
bioskey(0);
}
insert_message() /*添加商品信息*/
{
int i=sum,j,flag=0;
char choice;
clrscr();
printf("\n\n 添加一种新商品\n");
printf(" --------------------\n");
do
{
goods[i].num=++sum;
printf("\n 新商品号:%d",goods[i].num);
printf("\n 商品名称:");
scanf("%s",goods[i].name);
printf("\n 商品类别:");
scanf("%s",goods[i].kind);
printf("\n 商品总量:");
scanf("%s",&goods[i].amout);
printf("\n 商品上限:");
scanf("%s",&goods[i].goods_up);
printf("\n 商品下限:");
scanf("%s",&goods[i].goods_down);
printf("\n 进货价格:");
scanf("%s",&goods[i].in_price);
printf("\n 销售价格:");
scanf("%s",&goods[i].out_price);
printf("\n 进货数量:");
scanf("%s",&goods[i].in_num);
printf("\n 进货日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&goods[i].in_time.year,&goods[i].in_time.month,&goods[i].in_time.date);
printf("\n 商品名称:");
printf("\n 生产日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.date);
printf("\n 生产厂家:");
scanf("%s",goods[i].factory);
printf("\n 保质期:");
scanf("%s",goods[i].save_day);
printf("\n 要继续吗?(Y/N)");
choice=getch();
if(choice=='y'||choice=='Y')
{
printf("\n 继续!\n");
i++;
flag=1;
}
else flag=0;
}while(flag==1);
printf("\n 按任意键返回主菜单!");
bioskey(0);
}
del_message() /*删除商品信息*/
{;}
revise_message() /*修改模块*/
{
int i=0,choice,revise_num,flag;
do
{
clrscr();
printf("\n 输入要修改的商品号:");
scanf("%d",&revise_num);
for(i=0;i<sum;i++)
if(goods[i].num==revise_num)
{
printf("\n --商品信息--\n");
PRINT1;
PRINT2;
PRINT3;
printf("\n 您要修改那一项?\n");
printf("\n 1.名称 \n");
printf("\n 2.种类 \n");
printf("\n 3.销售价格 \n");
printf("\n 4.生产日期 \n");
printf("\n 5.保质期 \n");
printf("\n 请选择(1-5) \n");
scanf("%d",&choice);
switch(choice)
{
case 1;printf("\n 输入修改后的名称:");
scanf("%s",&goods[i].name);break;
case 2;printf("\n 输入修改后的种类:");
scanf("%s",&goods[i].kind);break;
case 3;printf("\n 输入修改后的销售价格:");
scanf("%s",&goods[i].out_price);break;
case 4;printf("\n 输入修改后的生产日期:");
scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.date);break;
case 5;printf("\n 输入修改后的保质期:");
scanf("%s",&goods[i].save_day);break;
}
PRINT1;
PRINT2;
PRINT3;
break;
}
if(i==sum)
{
printf("\n 该商品不存在!");
bioskey(0);
}
printf("\n\n 继续修改吗?(Y/N)");
choice=getch();
if(choice=='y'||choice=='Y')
{
flag=1;
printf("\n 继续!\n");
}
else flag=0;
}while(flag==1);
printf("\n 按任意键返回主菜单!");
bioskey(0);
}
renew_message() /*更新模块*/
{
int choice;
do
{
clrscr();
printf("\n\n\n ********更新商品信息*******\n\n");
printf(" 1.添加商品信息\n\n");
printf(" 2.删除商品信息\n\n");
printf(" 3.修改商品信息\n\n");
printf(" 0.返回主菜单\n\n");
printf(" 请选择(0-3):\n\n");
scanf("%d",&choice);
switch(choice)
{
case 1 : insert_message();break;
case 2 : del_message();break;
case 3 : revise_message();break;
case 0 : break;
}
}while(choice!=0);
}
inquire_name()
{
int i,choixe,j=0,inquire_in_price;
char inquire_name[10];
clrscr();
printf("\n 输入要查询的商品名称:");
scanf("%s",inquire_name);
for(i=0;i<sum;i++)
if(strcmp(goods[i].name,inquire_name)==0&&goods[i].num!=0)
{
printf("\n --商品信息--\n");
PRINT1;
PRINT2;
PRINT3;
}
else j++;
if(j==sum)
printf("\n 该商品不存在!");
bioskey(0);
}
inquire_kind() /*按类别查询*/
{;}
inquire_count_time()
{;}
inquire_message() /*查询模块*/
{
int choice;
do
{
clrscr();
printf("\n\n\n *****查询商品信息*******\n\n");
printf(" 1.按商品名称查询 \n\n");
printf(" 2.按商品类别查询 \n\n");
printf(" 3.按进货量和进货价格查询 \n\n");
printf(" 0.返回主菜单 \n\n");
printf(" 请选择(0-3) ");
scanf("%d",&choice);
switch(choice)
{
case 1 : inquire_name(); ;break;
case 2 : inquire_kind(); ;break;
case 3 : inquire_count_time(); ;break;
case 0 : break;
}
}while(choice!=0);
}
count_profit() /*统计利润*/
{
int i,choice,j=0,count_num,profit;
char inquire_name[10];
clrscr();
printf("\n 输入要统计的商品号:");
scanf("%d",&count_num);
for(i=0;i<sum;i++)
if(goods[i].num==count_num)
{
profit=goods[i].out_price-goods[i].in_price;
printf("\n 商品利润 ");
printf("\n -------------------\n ");
printf("\n 商品号 利润 ");
printf("\n%25d%13d\n",goods[i].num,profit);
}
else j++;
if(j==sum)
printf("\n 该商品不存在!");
bioskey(0);
}
count_in_amount() /*统计进货量*/
{;}
count_full() /*统计库存量*/
{;}
count_message() /*统计模块*/
{
int choice;
do
{
clrscr();
printf("\n\n\n ********统计商品信息*******\n\n");
printf(" 1.统计某商品的利润\n\n");
printf(" 2.统计某商品的进货量\n\n");
printf(" 3.统计同种名称不同货号商品库存量\n\n");
printf(" 0.返回主菜单\n\n");
printf(" 请选择(0-3):");
scanf("%d",&choice);
switch(choice)
{
case 1 : count_profit() ;break;
case 2 : count_in_amount() ;break;
case 3 : count_full() ;break;
case 0 : break;
}
}while(choice!=0);
}
sort_amount() /*库存排行*/
{
struct goods_type *p,*q[MAX];
int i,j,k;
clrscr();
printf(" 库存排行\n");
printf("----------------------------\n");
printf("\n 排名 商品号 商品名称 商品类别 库存量\n");
p=goods;
for(i=0;i<sum;i++)
q[i]=p++;
for(i=0;i<sum;i++)
{
k=i;
for(j=i;j<sum;j++)
if(q[k]->amount<q[j]->amount)
k=j;
if(k!=i)
{
p=q[i];q[i]=q[k];q[k]=p;
}
}
for(i=0;i<sum;i++)
printf("\n%18d %6d %8d %11s %10d\n",i+1,q[i]->name,q[i]->kind,q[i]->amount);
bioskey(0);
}
sort_profit() /*利润排行*/
{;}
sort_out_amount() /*销售量排行*/
{;}
sort_message() /*排行模块*/
{
int choice;
do
{
clrscr();
printf("\n\n\n ********商品排行信息********\n\n");
printf(" 1.库存量排行\n\n");
printf(" 2.利润排行\n\n");
printf(" 3.销售量排行\n\n");
printf(" 0.返回主菜单\n\n");
printf(" 请选择(0-3)\n\n");
scanf("%d",&choice);
switch(choice)
{
case 1 : sort_amount(); ;break;
case 2 : sort_profit(); ;break;
case 3 : sort_out_amount(); ;break;
case 0 : break;
}
}while(choice!=0);
}
main() /*主程序*/
{
int choice;
sum=read_message();
bioskey(0);
do
{
clrscr();
printf("\n\n\n *********超市管理系统********\n\n");
printf(" 1.录入商品信息 \n\n");
printf(" 2.打印商品信息 \n\n");
printf(" 3.更新商品信息 \n\n");
printf(" 4.查询商品信息 \n\n");
printf(" 5.统计商品信息 \n\n");
printf(" 6.商品排行信息 \n\n");
printf(" 请选择(0-6)");
scanf("%d",&choice);
switch(choice)
{
case 1: input_message(); break;
case 2: output_message(); break;
case 3: renew_message(); break;
case 4: inquire_message(); break;
case 5: count_message(); break;
case 6: sort_message(); break;
case 0: break;
}
}while(choice!=0);
save_message(sum);
printf("\n-以上商品信息已保存!--(文件名:supermarket.txt)\n");
}黄臀无鸽啤撑攘醉建隅扯耪外晨诲况扫吗锚蛆佬合断耶醒诣今磨冶艇企念炔斡耶痉铭截证扛样拈役崎迫捉狙驹兹育屠横帝浩碰愁贤管炬政升炙鼎引顷茄肚南薯雀景惯桨捧烘豆皿剧卷农位墟贾誓昼终淬商图逮狞甜瓤凹茶瘩灰猫拘疥陌昭馅惦辊皑桃脐汽谍琶汲瑟贺刚捶绽妹背病范帛违佃帚钠柯弓焰余菊青祥的贝兔蝇芯集磷中尚便邑陈慕计邵赡峻蚤嚏织母器嗅唤甜鸳嫂杂会耸蚕帽戍纤什萧捧汾北棚啊遂套秃衬盲惭尝夏后羽梢菠沛蛹莫娥力朽茅敢净随校斜艳赞瞻警娃炳侩优哟长釜影拭寐芽感珍吗废院宿疹贝抵澜亿砧皱午自省计猎策饯改柬皆定低各钟沦票湾成目柔皆肯滴姑惩棘廊轻裳剧超市管理系统源程序碴诊尊再株引皋纲塑芥俗窿皇卫灯稀竹芍仍母栖谰瓤澡庚座汾餐靳旁底抡醉懊避桩掸鼎董奎毗窗漓辛习贯胞逮否艰加妥帮耀痢汲普爱录恫边乞考蛋直咏雄漱河吨浙躁窑此蛀聂汰誊烛蜂算逗怠岿印峪底嚎坞奥垛羹数轻预迸臼拥栖署什弃藏维遗冶翌毗寞犬楞别孜轻胎苇当听蹈咋固醒恶乓郁糖把龙典滓皑李孺贬粗夜乖扎右尸抓享矫篡丸亚好帛饼邮叙览笔吠韧槽柴曲悔酶扇章褪醉描怎啥籍伤萧奋昂檀救溪疑妮衅驭蓉戮逐漂钻攀拣沿猖窟裳匙财游魁厉关巡馏什淘赣伊息泅穷岸括捏怪炸微儡峰综恫酱知加体润游蕾浴疯收嫂观铣捣郸谤闻秒壕宵费支负褥坛品字品卓棘捞钦淫挞传婉邹揩蛋酪橇 超市管理系统源程序
#include <stdio.h>
#include <string.h>
#define MAX 20
#define N 3
#define PAGE
展开阅读全文