计算机程序设计基础谌卫军大作业报告2Word格式文档下载.docx
- 文档编号:20592058
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:26
- 大小:23KB
计算机程序设计基础谌卫军大作业报告2Word格式文档下载.docx
《计算机程序设计基础谌卫军大作业报告2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机程序设计基础谌卫军大作业报告2Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
5、排序、查看库存量
6、排序、查看交易额
7、查看当日入库记录
8、查看当日出库记录及总结
9、查看商品获得的评价
客户方面:
1、新用户注册
2、查看基本信息
3、查看客户喜爱的商品、支付方式
针对上述功能模块进行设计各个函数,并将一些功能有机结合起来。
还要考虑,这个程序要长期使用,必然存在第一天首次使用和今后使用提取之前记录的问题。
三、各个函数功能简介
首先是两个结构体
inf1数组fruit[10]用来储存商品信息,包括名称、价格、最大价格(因为要算折扣率)、num1~4,1总入库量2总销售量3当前量4退货量,area产地,neva评价数量,eva字符串数组存评价
inf2数组cus[many]用来储存用户信息,包括用户名,qq,电话号码,地址,buy[10]储存买每种商品的数量,ret[10]每种商品的退货量,fb[3]记录三种支付方式分别使用过的次数
全局变量dayin入库数,dayout出库数,re退货数,maxcus当前用户总数,sr表示会有损失的退货商品记录,by[3]记录所有用户的三种支付方式使用过的次数,date表示这是第几天用
各个函数:
Call指向函数的指针所需
Bulid建立文件夹用
Show初始化界面用
Show1主菜单界面
Init1首次使用该程序的初始化界面
Init2再次使用,需要从目录文件中读取相关商品信息、用户信息
Create注册新用户
Pos计算某商品现在的评价总数
Table界面输出一个序列号和商品名称对应的表格,便于选择
Input入库并更新库存量
Sortout1库存量由高到低排序
Sortout2交易额由高到低排序
Change改价并记录最高价格
Find根据用户名查找该用户序号便于之后的操作
Sell增加销售记录,输入用户名时发现是新用户名即提示注册,购买商品数超过库存量会报错,且会记录下这次销售中客户的支付方式、评价等信息
Retu退货记录要退货的用户名输入错误、退货的商品信息与购买记录矛盾都会报错,会记录客户的退货理由,还会记录是否影响二次销售,影响则计入损失,不影响则入库
Dayinp统计当日入库情况并同时输出到屏幕和文件,每日的出库入库信息会保存在目录下的date文件中,不会删除之前的,而是增加,便于日后调阅。
如果发现某件商品已经库存很多就会提示积压严重请采取降价等措施
Dayoutp统计出库信息,还会有当日总销售量、总收入和退货损失等的统计。
同样某件商品库存不足或者无货会提示进货。
Clike了解客户信息包括0具体信息(qq,电话地址等),1客户支付习惯,包括所有用户中最喜欢的和某个特定用户中最喜欢的,2客户最爱商品,3了解商品的评价
Fwrite最终记录信息,将全部今后会用到信息(商品信息、客户信息等)记录到目录文件中
四、全部源代码
注:
鉴于函数功能简介已较清楚解释各个功能,此处不再具体解释每一个变量含义,可能会挑选一部分加以注释。
#defineten10\\运用define,前期调试时商品数量改为1,便于调试
#definemany100\\允许的最大用户数量
#include"
stdio.h"
string"
stdlib.h"
structinf1
{
charname[10];
floatprize,maxprize;
intnum1,num2,num3,num4;
chararea[10];
intneva;
chareva[many][1000];
}fruit[10];
structinf2
charname[20],qq[11],tel[15],add[1000];
intbuy[10],ret[10],fb[3];
intmax,like;
}cus[many];
intdayin[10],dayout[10],re[10],maxcus=0,sr[10],by[3],date;
voidcall(void(*func)())
return((*func)());
}
voidbuild()
system("
mdd:
\\system"
);
voidshow()
{
printf("
\n"
\n■■■■■■■■■■■■■■■■■■■■■■■■■■■"
\n■☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆■"
\n■☆■■■■■■■■■■■■■■■■■■■■■■■☆■"
\n■☆■欢迎使用■☆■"
\n■☆■------------------------------------------■☆■"
\\word排版问题,执行时不是这样
\n■☆■超级威武霸气无敌网店信息管理系统■☆■"
\n■☆■环33高一凡■☆■"
}
voidshow1()
\n|----------------------------------------|"
\n|█主菜单█|"
\n|1入库|"
\n|2增加销售纪录|"
\n|3修改商品单价|"
\n|4查看商品库存量|"
\n|5查看今日交易额|"
\n|6增加退货记录|"
\n|7查看入库清单|"
\n|8查看出库清单|"
\n|9了解客户|"
\n|0退出并保存文件|"
\n|请您选择一个任务|"
\n|----------------------------------------|\n\n\n"
voidshow2()\\word排版问题,执行时不是这样
\n|█了解客户█|"
\n|1客户信息|"
\n|2支付习惯|"
\n|3客户最爱商品|"
\n|4商品销售排行榜|"
\n|5商品退货排行榜|"
\n|6商品评价|"
voidinit1()
inti,j;
chars[10];
date=1;
build();
for(i=0;
i<
ten;
i++)
{
printf("
请依次输入第%d个商品的名称、单价、入库量、产地,以空格隔开:
i+1);
scanf("
%s%f%d%s"
fruit[i].name,&
fruit[i].prize,&
fruit[i].num1,fruit[i].area);
fruit[i].num3=fruit[i].num1;
fruit[i].maxprize=fruit[i].prize;
for(j=0;
j<
many;
j++)strcpy(fruit[i].eva[j],"
"
dayin[j]+=fruit[i].num1;
}
商品初始化录入完毕!
\n\n"
voidinit2()
FILE*fp;
chart[1000],tt[1000];
if((fp=fopen("
d:
\\system\\fruit.txt"
"
r"
))==NULL)
打开商品记录失败!
else
fscanf(fp,"
%d"
&
date);
date++;
fscanf(fp,"
%s%f%f%d%d%d%d%s%d"
fruit[i].maxprize,&
fruit[i].num1,&
fruit[i].num2,&
fruit[i].num3,&
fruit[i].num4,fruit[i].area,&
fruit[i].neva);
for(j=0;
fruit[i].neva;
j++)
fscanf(fp,"
%s"
fruit[i].eva[j]);
fclose(fp);
读入商品记录成功!
\\system\\customer.txt"
打开客户记录失败!
{
maxcus);
for(i=0;
3;
by[i]);
maxcus;
%s%s%s%d%d"
cus[i].name,cus[i].qq,cus[i].tel,&
cus[i].max,&
cus[i].like);
fscanf(fp,"
cus[i].add);
j++)fscanf(fp,"
cus[i].buy[j]);
cus[i].ret[j]);
cus[i].fb[j]);
读入客户记录成功!
voidcreate(intp,charstr[20])
chart[1000];
新用户名!
需要注册登记!
strcpy(cus[p].name,str);
请依次输入新用户的qq号码和手机号码,以空格隔开:
scanf("
%s%s"
cus[p].qq,cus[p].tel);
请输入新用户的地址:
gets(t);
gets(cus[p].add);
maxcus+=1;
cus[p].max=0;
cus[p].like=-1;
新用户注册成功!
intpos(intn)
inti;
;
if(strcmp(fruit[n].eva[i],"
\0"
)==0)break;
return(i);
voidtable()
商品名称与序列号对照表:
序列号商品名称\n"
%d%s\n"
i+1,fruit[i].name);
voidinput()
inti,j,n,p;
请输入要入库的商品的种数\n"
n);
table();
n;
请输入第%d个商品的序列号和入库量,以空格隔开\n"
%d%d"
j,&
p);
j-=1;
dayin[j]+=p;
fruit[j].num1+=p;
fruit[j].num3+=p;
入库成功!
商品“%s”目前库存量为:
%d\n\n"
fruit[j].name,fruit[j].num3);
voidsortout1()
inti,j,t,found,tt;
inta[10],b[10];
{
a[i]=fruit[i].num3;
b[i]=i;
found=0;
ten-i-1;
if(a[j]<
a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
tt=b[j];
b[j]=b[j+1];
b[j+1]=tt;
found=1;
}
if(found==0)break;
库存量由高到低排序的结果为:
商品名称库存量\n"
%s%d\n"
fruit[b[i]].name,a[i]);
voidsortout2()
a[i]=dayout[i];
交易额由高到低排序的结果为:
商品名称交易额\n"
voidsortout3()
a[i]=fruit[i].num2;
总销售量由高到低排序的结果为:
商品名称总销售量\n"
voidsortout4()
a[i]=fruit[i].num4;
退货量由高到低排序的结果为:
商品名称退货量\n"
voidchange()
inti,j,n;
floatp;
请输入要修改单价的商品的种数\n"
请输入第%d个商品的序列号和新价格,以空格隔开\n"
%d%f"
if(fruit[j].maxprize<
p)fruit[j].maxprize=p;
fruit[j].prize=p;
单价修改成功!
商品“%s”目前单价为:
%0.2f\n"
fruit[j].name,fruit[j].prize);
intfind(charstr[20])
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 基础 谌卫军大 作业 报告