智能超市

更新时间:2023-03-13 21:50:40 阅读: 评论:0

青菜水-北大西门

智能超市
2023年3月13日发(作者:中国沙发十大排名)

超市智能商品推荐系统设计

超市智能商品推荐系统设计

根据客户以往商品选购情况(⽤户登录后检索以往的商品选购和商品查询情况),并能根据⽤户的兴趣爱好⾃动地推荐给每个⽤户可能

感兴趣的商品,实现具有⼀种类似采购助⼿的功能来帮助⽤户选购商品。提供不少于10个种类,100种商品,并以⽂件形式存储。

设计⽤户及商品的信息数据结构,实现如下功能:

(1)以⽂件形式存储⽤户信息,并以⽂件形式存储⽤户的商品选购和查询情况;

(2)设计商品兴趣度简单的数学模型(要求参数有权重【购买*2查询*1】、或者提供数据模型);

(3)应⽤排序算法实现商品的排名推荐(及格);

(4)实现商品分类推荐(良好);

(5)实现多⽤户不同商品兴趣度个性化推荐(优秀)。

要求:

(1)理解及熟练运⽤内部排序算法;

(2)理解运⽤数据的分类组织和存储;

(3)理解运⽤相关查询技术;

(4)界⾯友好、系统运⾏应该快速、稳定、⾼效和可靠。

XpVawTpNkK2SljsoMPnf6FaNHj3bix

QqBcn184r6zk0aiQAkiNphzNIW0twj

oVMZr1Ikl9PXDiBpYqtahi24kHQSqL

XEnKbfX5YKsLZDFS3zTVgQDA9XPfYt

XpVawTpNkK2SljsoMPnf6FaNHj3bix

QqBcn184r6zk0aiQAkiNphzNIW0twj

oVMZr1Ikl9PXDiBpYqtahi24kHQSqL

XEnKbfX5YKsLZDFS3zTVgQDA9XPfYt

XpVawTpNkK2SljsoMPnf6FaNHj3bix

QqBcn184r6zk0aiQAkiNphzNIW0twj

#define_CRT_SECURE_NO_WARNINGS

#include

#include

#include

#include

structCommodity//商品结构体

{

intCategory;//商品的种类

intid;//商品id

charname[4];//商品名称

};

structCustomer//⽤户结构体

{

charid[10];//⽤户ID

charpassword[10];//⽤户密码

inteCategory[10];//记录⽤户查看种类次数

intbuyCategory[10];//记录⽤户购买种类次数

inteCommodity[10][10];//记录⽤户查看商品的次数

intbuyCommodity[10][10];//记录⽤户购买商品的次数

floatinterCategory[10];//记录⽤户对种类的感兴趣度

floatinterCommodity[10][10];//记录⽤户对商品感兴趣度

};

voidInitialize(Commodity[][10],Customer&);//初始化结构体数组

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];//假设⼀共10类商品,每类有10个商品

Customercustomer;//⽤户

Initialize(com,customer);//初始化

LogIn(customer);//登录

Interaction(com,customer);//⼈机交互界⾯

system("pau");

return0;

}

voidInitialize(Commoditycom[10][10],Customer&customer)//初始化结构体数组

{

inti,j;

FILE*fp;

//初始化商品结构体数组

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");

}

}

//初始化客户结构体变量

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);//读取密码到⽤户结构体变量

if(strcmp(password,rd)==0)//如果密码正确

{

for(i=0;i<10;i++)//写⼊查看种类次数

{

fscanf(fp,"%d",&egory[i]);

}

for(i=0;i<10;i++)//写⼊购买种类次数

{

fscanf(fp,"%d",&egory[i]);

}

for(i=0;i<10;i++)//写⼊查看商品次数

{

for(j=0;j<10;j++)

{

fscanf(fp,"%d",&modity[i][j]);

}

}

for(i=0;i<10;i++)//写⼊购买商品次数

{

for(j=0;j<10;j++)

{

fscanf(fp,"%d",&modity[i][j]);

}

}

fclo(fp);

}

el//如果密码错误

{

printf("您输⼊的账号或密码不正确,请重新输⼊!n");

fclo(fp);

system("pau");

LogIn(customer);//未登录成功,递归执⾏登录操作,直到登录成功为⽌

return;

}

}

el//如果为⾸次使⽤,创建⽤户⽂件

{

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];

//计算感兴趣度。购买的权值为7,查看的权值为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]);

}

/**************************************应⽤冒泡排序算法实现商品的排名推荐**************************************************************/

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("根据您的购物习惯和购物历史,为您推荐以下商品: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);

}

/*******************************************实现商品分类推荐***********************************************************/

for(i=0;i<10;i++)//给temCategory赋值

{

temCategory[i].category=i;

temCategory[i].interCategory=ategory[i];

}

for(i=0;i<10-1;i++)//冒泡法排序,实现商品分类推荐

{

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("根据您的购物习惯和购物历史,为您推荐以下类别商品: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++)//写⼊查看种类次数

{

fprintf(fp,"%d",egory[i]);

}

for(i=0;i<10;i++)//写⼊购买种类次数

{

fprintf(fp,"%d",egory[i]);

}

for(i=0;i<10;i++)//写⼊查看商品次数

{

for(j=0;j<10;j++)

{

fprintf(fp,"%d",modity[i][j]);

}

}

for(i=0;i<10;i++)//写⼊购买商品次数

{

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;

}

}

本文发布于:2023-03-13 21:50:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/16787154409610.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:智能超市.doc

本文 PDF 下载地址:智能超市.pdf

上一篇:班班有歌声
下一篇:返回列表
标签:智能超市
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|