C语言宠物商店管理系统实训分析报告.docx
《C语言宠物商店管理系统实训分析报告.docx》由会员分享,可在线阅读,更多相关《C语言宠物商店管理系统实训分析报告.docx(17页珍藏版)》请在冰豆网上搜索。
![C语言宠物商店管理系统实训分析报告.docx](https://file1.bdocx.com/fileroot1/2023-2/13/594cd7b7-3e00-4d3b-83a3-f4a2148a0d8e/594cd7b7-3e00-4d3b-83a3-f4a2148a0d8e1.gif)
C语言宠物商店管理系统实训分析报告
C语言-宠物商店管理系统-实训报告
————————————————————————————————作者:
————————————————————————————————日期:
实训报告
实训项目:
宠物商店管理系统
院别专业:
信息管理学院
班级学号:
学生姓名:
煜
指导教师:
实训成绩:
实验日期:
2018年6月8日
制
信息管理学院
实践教学中心
一、实训目的:
1掌握C语法,函数,界面程序设计,文件操作。
2掌握C文件编程方法。
二、实训内容及要求:
用C语言设计基于文件的宠物商店管理系统。
要求具有信息显示、录入、修改、查询和删除的界面并完成相关功能。
三、实训方案:
系统功能结构、主要界面与主要代码:
1.功能结构如下:
以下图仅供参考,以实际所做的系统功能为准!
!
!
!
!
2.主要功能介绍:
(1)添加宠物类型。
(2)修改宠物类型。
(3)显示添加的全部宠物类型。
(4)显示宠物全部的交易记录。
(5)显示宠物月度交易统计数据。
(6)显示主功能菜单
3主要代码:
#include
#include
#include
#defineSIZE3
#defineSIZET100
structpettype
{
inttypeId;
charname[20];
intpetstore;
}pettypes[SIZE];
structpettransinfo
{
inttransId;
inttypeId;
intnum;
inttranstype;
intyear;
intmonth;
intday;
}pettransinfos[SIZET];
intgetcurrenttypeindex();
intgetcurrenttypeinfoindex();
intgetcurrenttransinfoindex();
/*添加宠物类型*/
voidtjcwlx();
/*修改宠物类型*/
voidxgcwlx();
/*显示全部的宠物类型*/
voidtjqbdcwlx();
/*添加宠物进货记录*/
voidtjcwxsjl();
/*添加宠物销售记录*/
voidxscwqbjyjl();
/*显示宠物全部交易记录*/
voidxscwjytjxx();
/*显示宠物交易统计信息*/
voidxszgncd();
/*显示主功能菜单*/
voidshowmenu();
intistypeexistsbyId(inttypeId);
intupdatepetstore(inttypeId,intnum);
intmain(intargc,constchar*argv[])
{
showmenu();
return0;
}
voidshowmenu()
{
intn;
do
{
system("cls");
printf("******************************************\n");
printf("*欢迎使用宠物商店*\n");
printf("*===============================*\n");
printf("*1.添加宠物类型*\n");
printf("*2.修改宠物类型*\n");
printf("*3.显示全部宠物类型*\n");
printf("*4.添加宠物进货记录*\n");
printf("*5.添加宠物销售记录*\n");
printf("*6.显示宠物全部交易记录*\n");
printf("*7.显示宠物月度交易统计数据*\n");
printf("*8.退出*\n");
printf("******************************************\n");
printf("请选择您需要的操作:
");
scanf("%d",&n);
switch(n)
{
case1:
tjcwlx();break;
case2:
xgcwlx();break;
case3:
tjqbdcwlx();break;
case4:
tjcwxsjl();break;
case5:
xscwqbjyjl();break;
case6:
xscwjytjxx();break;
case7:
xszgncd();break;
case8:
printf("欢迎你再次使用宠物商店系统\n");return;
default:
break;
}
printf("按回车继续!
\n");
fflush(stdin);
getchar();
getchar();
}
while
(1);
}
/*添加宠物类型*/
voidtjcwlx()
{
inttypeId;
chartypeName[20];
typeId=getcurrenttypeindex();
if(typeId==-1)
{
printf("当前宠物类型的数量已达上限,无法再次添加!
\n");
return;
}
printf("请输入新增宠物类型:
");
scanf("%s",typeName);
pettypes[typeId-1].typeId=typeId;
strcpy(pettypes[typeId-1].name,typeName);
pettypes[typeId-1].petstore=0;
printf("新宠物类型%s,已经添加成功!
\n",typeName);
};
/*修改宠物类型*/
voidxgcwlx()
{
inttypeId;
chartypeName[20];
printf("请输入需要修改宠物类型编号:
");
scanf("%d",&typeId);
if(istypeexistsbyId(typeId)==-1)
{
printf("当前系统不存在您输入的宠物类型编号!
\n");
return;
}
else
{
printf("名称:
%s\n",pettypes[typeId-1].name);
}
printf("请输入修改后的宠物名称:
");
scanf("%s",typeName);
strcpy(pettypes[typeId-1].name,typeName);
printf("编号是%d的宠物类型名称已经改成%s!
\n",typeId,typeName);
};
/*显示全部的宠物类型*/
voidtjqbdcwlx()
{
inti;
printf("类型编号\t类型名称\n");
for(i=0;i{
if(pettypes[i].typeId==0)
{
break;
}
printf("%3d\t\t%s\n",pettypes[i].typeId,pettypes[i].name);
}
};
/*添加宠物进货记录*/
voidtjcwxsjl()
{
inttransId;
inttypeId;
intpurchasenum;
time_ttp;
structtm*p;
time(&tp);
p=localtime(&tp);
transId=getcurrenttransinfoindex();
if(transId==-1)
{
printf("宠物交易记录次数已经达到上限,无法再次进货!
");
return;
}
printf("请输入本次进货的宠物类型编号:
");
scanf("%d",&typeId);
if(istypeexistsbyId(typeId)==-1)
{
printf("当前系统不存在您输入的宠物类型编号!
\n");
return;
}
printf("请输入本次宠物进货的数量:
");
scanf("%d",&purchasenum);
if(purchasenum<1)
{
printf("进货数量不能小于1,操作失败!
\n");
return;
}
time(&tp);
p=gmtime(&tp);
pettransinfos[transId-1].year=p->tm_year+1900;
pettransinfos[transId-1].month=p->tm_mon+1;
pettransinfos[transId-1].day=p->tm_mday;
//strftime(pettransinfos[transId-1].data,sizeof(pettransinfos[transId-1].data),"%Y-%m-%d",localtime(&tp));
pettransinfos[transId-1].transId=transId;
pettransinfos[transId-1].typeId=typeId;
pettransinfos[transId-1].num=purchasenum;
pettransinfos[transId-1].transtype=0;
updatepetstore(typeId,purchasenum,1);
printf("本次宠物进货完成记录!
");
};
/*添加宠物销售记录*/
voidxscwqbjyjl(){
inttransId;
inttypeId;
intpurchasenum;
time_ttp;
structtm*p;
time(&tp);
p=localtime(&tp);
transId=getcurrenttransinfoindex();
if(transId==-1)
{
printf("宠物交易记录次数已经达到上限,无法再次销售!
");
return;
}
printf("请输入本次销售的宠物类型编号:
");
scanf("%d",&typeId);
if(istypeexistsbyId(typeId)==-1)
{
printf("当前系统不存在您输入的宠物类型编号!
\n");
return;
}
printf("请输入本次销售的宠物数量:
");
scanf("%d",&purchasenum);
if(purchasenum>pettypes[typeId-1].petstore)
{
printf("当前该类型宠物的库存数量不足,无法进行销售!
\n");
return;
}
time(&tp);
p=gmtime(&tp);
pettransinfos[transId-1].year=p->tm_year+1900;
pettransinfos[transId-1].month=p->tm_mon+1;
pettransinfos[transId-1].day=p->tm_mday;
//strftime(pettransinfos[transId-1].data,sizeof(pettransinfos[transId-1].data),"%Y-%m-%d",localtime(&tp));
pettransinfos[transId-1].transId=transId;
pettransinfos[transId-1].typeId=typeId;
pettransinfos[transId-1].num=purchasenum;
pettransinfos[transId-1].transtype=1;
updatepetstore(typeId,purchasenum,2);
printf("本次宠物销售完成记录!
");
};
/*显示宠物全部交易记录*/
voidxscwjytjxx(){
inti;
char*name;
printf("宠物编号\t宠物名称\t交易数量\t交易日期\t交易类型\n");
for(i=0;i{
if(pettransinfos[i].transId==0)
{
break;
}
if(pettransinfos[i].transtype==0)
{
name="入库";
}
elseif(pettransinfos[i].transtype==1)
{
name="售出";
}
else
{
name="未知";
}
printf("%3d\t\t%s\t\t%3d\t\t%d-%d-%d\t%s\n",pettransinfos[i].typeId,pettypes[pettransinfos[i].typeId-1].name,pettransinfos[i].num,pettransinfos[i].year,pettransinfos[i].month,pettransinfos[i].day,name);
}
};
/*显示宠物交易统计信息*/
voidxszgncd(){
constchar*split="-";
inti;
char*name;
intmonth;
intj;
intpurchasenum=0;
intsalenum=0;
printf("请输入需要查看的月份:
");
scanf("%d",&month);
printf("类型编号\t类型名称\t入库数量\t销售数量\t库存数\n");
for(i=0;i{
if(pettypes[i].typeId==0)
{
break;
}
for(j=0;j{
if(pettransinfos[j].transId==0)
{
break;
}
if(pettransinfos[j].month==month&&pettransinfos[j].typeId==pettypes[i].typeId)
{
if(pettransinfos[j].transtype==0)
{
purchasenum+=pettransinfos[j].num;
}
else
{
salenum+=pettransinfos[j].num;
}
}
}
printf("%3d\t\t%s\t\t%3d\t\t%3d\t\t%3d\n",pettypes[i].typeId,pettypes[i].name,purchasenum,salenum,purchasenum-salenum);
}
};
intgetcurrenttypeindex()
{
intindex=-1;
inti;
for(i=0;i{
if(pettypes[i].typeId==0)
{
index=i+1;
break;
}
}
returnindex;
}
intgetcurrenttransinfoindex()
{
intindex=-1;
inti;
for(i=0;i{
if(pettransinfos[i].transId==0)
{
index=i+1;
break;
}
}
returnindex;
}
intistypeexistsbyId(inttypeId)
{
if(typeId<1||typeId>SIZE||pettypes[typeId-1].typeId==0)
{
return-1;
}
else
{
return1;
}
}
intupdatepetstore(inttypeId,intnum,intrecordtype)
{
intcount;
count=pettypes[typeId-1].petstore;
if(recordtype==1)
{
count+=num;
}
else
{
count-=num;
}
if(count>=0)
{
pettypes[typeId-1].petstore=count;
}
returncount;
}
四、实训结果与分析:
系统运行截图:
系统运行结果说明:
本系统为宠物商店提供对宠物进行统计的功能,通过本系统卖家可以实现对宠物类型.进货记录.销售记录的添加,可以查询销售记录.全部交易记录.月度交易统计数据功能。
五、实训心得:
本学系统是宠物商店系统。
通过本次实训本人学会了如何应用链表,循环等,先构建系统大概结构。
会独自分析问题解决问题,提高解决问题的能力提高分析问题和解决问题的能力,提高程序设计水平,遇到问题及时询问老师同学。
六、教师评语:
成绩
主讲教师:
2018年6月8日