
超市智能商品推薦系統(tǒng)設(shè)計
超市智能商品推薦系統(tǒng)設(shè)計
根據(jù)客戶以往商品選購情況(?戶登錄后檢索以往的商品選購和商品查詢情況),并能根據(jù)?戶的興趣愛好?動地推薦給每個?戶可能
感興趣的商品,實現(xiàn)具有?種類似采購助?的功能來幫助?戶選購商品。提供不少于10個種類,100種商品,并以?件形式存儲。
設(shè)計?戶及商品的信息數(shù)據(jù)結(jié)構(gòu),實現(xiàn)如下功能:
(1)以?件形式存儲?戶信息,并以?件形式存儲?戶的商品選購和查詢情況;
(2)設(shè)計商品興趣度簡單的數(shù)學(xué)模型(要求參數(shù)有權(quán)重【購買*2查詢*1】、或者提供數(shù)據(jù)模型);
(3)應(yīng)?排序算法實現(xiàn)商品的排名推薦(及格);
(4)實現(xiàn)商品分類推薦(良好);
(5)實現(xiàn)多?戶不同商品興趣度個性化推薦(優(yōu)秀)。
要求:
(1)理解及熟練運?內(nèi)部排序算法;
(2)理解運?數(shù)據(jù)的分類組織和存儲;
(3)理解運?相關(guān)查詢技術(shù);
(4)界?友好、系統(tǒng)運?應(yīng)該快速、穩(wěn)定、?效和可靠。
:
XpVawTpNkK2SljsoMPnf6FaNHj3bix
QqBcn184r6zk0aiQAkiNphzNIW0twj
oVMZr1Ikl9PXDiBpYqtahi24kHQSqL
XEnKbfX5YKsLZDFS3zTVgQDA9XPfYt
XpVawTpNkK2SljsoMPnf6FaNHj3bix
QqBcn184r6zk0aiQAkiNphzNIW0twj
oVMZr1Ikl9PXDiBpYqtahi24kHQSqL
XEnKbfX5YKsLZDFS3zTVgQDA9XPfYt
XpVawTpNkK2SljsoMPnf6FaNHj3bix
QqBcn184r6zk0aiQAkiNphzNIW0twj
#define_CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
structCommodity//商品結(jié)構(gòu)體
{
intCategory;//商品的種類
intid;//商品id
charname[4];//商品名稱
};
structCustomer//?戶結(jié)構(gòu)體
{
charid[10];//?戶ID
charpassword[10];//?戶密碼
inteCategory[10];//記錄?戶查看種類次數(shù)
intbuyCategory[10];//記錄?戶購買種類次數(shù)
inteCommodity[10][10];//記錄?戶查看商品的次數(shù)
intbuyCommodity[10][10];//記錄?戶購買商品的次數(shù)
floatinterCategory[10];//記錄?戶對種類的感興趣度
floatinterCommodity[10][10];//記錄?戶對商品感興趣度
};
voidInitialize(Commodity[][10],Customer&);//初始化結(jié)構(gòu)體數(shù)組
voidLogIn(Customer&customer);//?戶登錄
voidRecommend(Commodity[][10],Customer&);//推薦商品
voidBuy(Commodity[][10],Customer&);//?戶購買某商品
voidSee(Commodity[][10],Customer&);//?戶查看某商品
voidInteraction(Commodity[][10],Customer&);//交互界?
voidSaveCustomer(Customer&,FILE*);//?戶信息存儲
charpathName[20];//存儲?戶?件
intmain()
{
Commoditycom[10][10];//假設(shè)?共10類商品,每類有10個商品
Customercustomer;//?戶
Initialize(com,customer);//初始化
LogIn(customer);//登錄
Interaction(com,customer);//?機交互界?
system("pau");
return0;
}
voidInitialize(Commoditycom[10][10],Customer&customer)//初始化結(jié)構(gòu)體數(shù)組
{
inti,j;
FILE*fp;
//初始化商品結(jié)構(gòu)體數(shù)組
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
com[i][j].Category=i;
com[i][j].id=j;
strcpy(com[i][j].name,"no");
}
}
//初始化客戶結(jié)構(gòu)體變量
strcpy(,"no");
strcpy(rd,"no");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
modity[i][j]=0;
modity[i][j]=0;
ommodity[i][j]=0.0;
}
egory[i]=0;
egory[i]=0;
ategory[i]=0.0;
}
//讀取商品信息?件
i=0;
fp=fopen("","r+");
while(fscanf(fp,"%s%s%s%s%s%s%s%s%s%sn",com[i][0].name,com[i][1].name,com[i][2].name,
com[i][3].name,com[i][4].name,com[i][5].name,
com[i][6].name,com[i][7].name,com[i][8].name,com[i][9].name)!=EOF)//讀到?件尾停?
{
++i;
}
}
voidLogIn(Customer&customer)
{
system("cls");//清屏
inti,j;
charid[10],password[10];//臨時存儲輸?的賬號密碼
FILE*fp;
printf("您需要登錄請輸?ID和密碼:n");
scanf("%s",id);
scanf("%s",password);
strcpy(pathName,id);
strcat(pathName,".txt");//?成?件名
fp=fopen(pathName,"r+");//打開?戶?件
if(fp)//如果?戶?件存在,即?戶??次登陸
{
fscanf(fp,"%s%s",,rd);//讀取密碼到?戶結(jié)構(gòu)體變量
if(strcmp(password,rd)==0)//如果密碼正確
{
for(i=0;i<10;i++)//寫?查看種類次數(shù)
{
fscanf(fp,"%d",&egory[i]);
}
for(i=0;i<10;i++)//寫?購買種類次數(shù)
{
fscanf(fp,"%d",&egory[i]);
}
for(i=0;i<10;i++)//寫?查看商品次數(shù)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%d",&modity[i][j]);
}
}
for(i=0;i<10;i++)//寫?購買商品次數(shù)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%d",&modity[i][j]);
}
}
fclo(fp);
}
el//如果密碼錯誤
{
printf("您輸?的賬號或密碼不正確,請重新輸?!n");
fclo(fp);
system("pau");
LogIn(customer);//未登錄成功,遞歸執(zhí)?登錄操作,直到登錄成功為?
return;
}
}
el//如果為?次使?,創(chuàng)建?戶?件
{
fp=fopen(pathName,"w+");
strcpy(,id);
strcpy(rd,password);
SaveCustomer(customer,fp);//保存?件
fclo(fp);
}
}
voidBuy(Commoditycom[10][10],Customer&customer)
{
FILE*fp=NULL;
intcategory=0,id=0;
fp=fopen(pathName,"w+");
system("cls");
printf("請輸?您要購買的商品的類別:n");
scanf("%d",&category);
printf("請輸?您要購買的商品的編號:n");
scanf("%d",&id);
printf("您要購買的商品名稱是:%s,謝謝您的選購!n",com[category][id].name);
egory[category]+=1;//記錄?戶購買的種類
modity[category][id]+=1;//記錄?戶購買的商品
SaveCustomer(customer,fp);//保存?戶的購物記錄
system("pau");
}
voidSee(Commoditycom[10][10],Customer&customer)
{
system("cls");
FILE*fp=NULL;
intcategory=0,id=0;
fp=fopen(pathName,"w+");
printf("請輸?您要查看的商品的類別:n");
scanf("%d",&category);
printf("請輸?您要查看的商品的編號:n");
scanf("%d",&id);
printf("您要查看的商品名稱是:%s。n",com[category][id].name);
egory[category]+=1;//記錄?戶查看的種類
modity[category][id]+=1;//記錄?戶查看的商品
SaveCustomer(customer,fp);//保存?戶瀏覽記錄
system("pau");
}
voidRecommend(Commoditycommodity[10][10],Customer&customer)
{
inti,j,m=0;
struct//臨時存儲?戶喜歡的商品
{
intcategory;
intid;
floatinterCommodity;
}temCommodity[101];
struct//臨時存儲?戶喜歡的種類
{
intcategory;
floatinterCategory;
}temCategory[11];
//計算感興趣度。購買的權(quán)值為7,查看的權(quán)值為3
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
ommodity[i][j]=(float)(7.0*modity[i][j]+3.0*modity[i][j]);
}
ategory[i]=(float)(7.0*egory[i]+3.0*egory[i]);
}
/**************************************應(yīng)?冒泡排序算法實現(xiàn)商品的排名推薦**************************************************************/
for(i=0;i<10;i++)//給temCommodity賦值
{
for(j=0;j<10;j++)
{
temCommodity[m].category=i;
temCommodity[m].id=j;
temCommodity[m].interCommodity=ommodity[i][j];
m++;
}
}
for(i=0;i<100-1;i++)//冒泡排序,商品排名推薦
{
for(j=0;j<100-1-i;j++)
{
if(temCommodity[j+1].interCommodity>temCommodity[j].interCommodity)
{
temCommodity[100]=temCommodity[j+1];
temCommodity[j+1]=temCommodity[j];
temCommodity[j]=temCommodity[100];
}
}
}
printf("根據(jù)您的購物習(xí)慣和購物歷史,為您推薦以下商品:n");
for(i=0;i<10;i++)
{
printf("類別:%d,編號:%d,名字:%sn",commodity[temCommodity[i].category][temCommodity[i].id].Category,commodity[temCommodity[i].category][t
emCommodity[i].id].id,commodity[temCommodity[i].category][temCommodity[i].id].name);
}
/*******************************************實現(xiàn)商品分類推薦***********************************************************/
for(i=0;i<10;i++)//給temCategory賦值
{
temCategory[i].category=i;
temCategory[i].interCategory=ategory[i];
}
for(i=0;i<10-1;i++)//冒泡法排序,實現(xiàn)商品分類推薦
{
for(j=0;j<10-1-i;j++)
{
if(temCategory[j+1].interCategory>temCategory[j].interCategory)
{
temCategory[10]=temCategory[j];
temCategory[j]=temCategory[j+1];
temCategory[j+1]=temCategory[10];
}
}
}
printf("根據(jù)您的購物習(xí)慣和購物歷史,為您推薦以下類別商品:n");
for(i=0;i<3;i++)
{
printf("類別:%dn",temCategory[i].category);
}
}
voidSaveCustomer(Customer&customer,FILE*fp)
{
inti,j;
fprintf(fp,"%s%s",,rd);//保存賬號密碼
for(i=0;i<10;i++)//寫?查看種類次數(shù)
{
fprintf(fp,"%d",egory[i]);
}
for(i=0;i<10;i++)//寫?購買種類次數(shù)
{
fprintf(fp,"%d",egory[i]);
}
for(i=0;i<10;i++)//寫?查看商品次數(shù)
{
for(j=0;j<10;j++)
{
fprintf(fp,"%d",modity[i][j]);
}
}
for(i=0;i<10;i++)//寫?購買商品次數(shù)
{
for(j=0;j<10;j++)
{
fprintf(fp,"%d",modity[i][j]);
}
}
}
voidInteraction(Commoditycom[10][10],Customer&customer)//?機交互界?
{intn;
system("cls");
Recommend(com,customer);//推薦商品
printf("nn請您選擇要進?的操作:n");
printf("1.購買商品n");
printf("2.查看商品n");
printf("3.退出n");
scanf("%d",&n);
switch(n)
{
ca1:
Buy(com,customer);//購買
Interaction(com,customer);//遞歸
break;
ca2:
See(com,customer);//購買
Interaction(com,customer);//遞歸
break;
ca3:
exit(0);//退出
break;
default:
Interaction(com,customer);//遞歸
break;
}
}
本文發(fā)布于:2023-03-13 21:50:40,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/16787154409610.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:智能超市.doc
本文 PDF 下載地址:智能超市.pdf
| 留言與評論(共有 0 條評論) |