C语言宠物商店管理系统实训分析报告.docx
- 文档编号:10460738
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:17
- 大小:138.47KB
C语言宠物商店管理系统实训分析报告.docx
《C语言宠物商店管理系统实训分析报告.docx》由会员分享,可在线阅读,更多相关《C语言宠物商店管理系统实训分析报告.docx(17页珍藏版)》请在冰豆网上搜索。
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日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 宠物商店 管理 系统 分析 报告