# 一、课程设计的任务及要求
| 题目 13 | 结构数组的应用(可以自己设计功能)(管理类) |
| -------- | ---------------------------------------------------------------------- |
| 设计任务 | 模拟一个商店的商品销售管理系统(P209 例题 7-17) |
| 设计要求 | 库存表数据录入;销售表数据录入;销售商品;库存表查询;销售表查询;退出 |
# 二、课程设计主要数据和函数介绍
- 主要数据:commodity 商品物品,包含 id、姓名、价格、库存量、销售量等属性
- 主要数据:commodity_list 商品物品列表,同时可以作为库存表和销售表。
- 函数:display_have 展示库存表的商品
- 函数:display_sale 展示销售表的商品
- 函数:add_have 向库存表添加商品
- 函数:add_sale 向销售表添加商品
- 函数:buyed 出售商品
# 三、课程设计的问题分析
流程图如下:
![](https://www.writebug.com/myres/static/uploads/2022/6/5/9e0d60581a70178707583e175568ee39.writebug)
本系统使用 1 个表来实现系统中的库存表和销售表,使用不同的展示形式来完成不同表的展示,这是更接近于实际生活。然后使用 5 个函数将本系统拆分成 5 个模块,这样更加的易于管理。其实向销售表添加商品比较麻烦,首先先判断仓库中是否有这个商品,如果有则直接对商品的销售量进行修改,如果没有则直接添加一个新商品,其库存量为 0。在出售商品的时候比较简单,可以直接根据商品的 ID,进行库存量-1,商品量 +1 的操作。
# 四、源程序代码及运行结果
运行结果:
![](https://www.writebug.com/myres/static/uploads/2022/6/5/0860bc2fbce3a0a4485f60f2cf65e5e7.writebug)
首先我们先对仓库和销售表添加奥迪汽车和宇航服两件商品。
![](https://www.writebug.com/myres/static/uploads/2022/6/5/8abbad94aa9f0159ad718e178e9f8a1f.writebug)
接下来我们查看仓库和销售表的信息。可以看到奥迪汽车库存 10 个,销售量 0 个。宇航服库存 0 个,销售 9 个。
![](https://www.writebug.com/myres/static/uploads/2022/6/5/7b0dea1e291d89fb966315c1c969c9b4.writebug)
最后我们进行商品的出售,我们可以看到奥迪汽车的库存量减一,销售量加一。
程序源代码:head.h 文件
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct T{
int id;
char name[100]; // 商品名称
int money; // 商品价格
int have_number; // 商品有数量
int sale_number; // 商品销售数量
}commodity;
commodity commodity_list[100];
int head=1;
int i,j;
// 展示仓库的商品
void display_have();
// 展示销售的商品
void display_sale();
// 添加仓库的商品
void add_have();
// 添加销售的商品
void add_sale();
// 出售商品
void buyed();
void add_have(){
commodity t;
printf("你想添加的商品的名称是:");
scanf("%s",t.name);
printf("你想添加的商品的价格是:");
scanf("%d",&t.money);
printf("你想添加的商品的数量是:");
scanf("%d",&t.have_number);
t.sale_number = 0;
t.id = head;
commodity_list[head-1] = t;
head++;
}
void add_sale(){
char c;
char t[100];
int data;
printf("你想添加的商品是否在库存表中有?");
scanf("%c",&c);
scanf("%c",&c);
if(c == 'y'){
printf("你要录入的商品名称为?");
scanf("%s",t);
for(i=0;i<head-1;i++){
for(j=0;j<strlen(t);j++){
if(t[j] != commodity_list[i].name[j]) return;
}
printf("你要将该商品的销售量改为?");
scanf("%d",&data);
commodity_list[i].sale_number = data;
}
}else{
commodity tdata;
printf("你想添加的商品的名称是:");
scanf("%s",tdata.name);
printf("你想添加的商品的价格是:");
scanf("%d",&tdata.money);
printf("你想添加的商品的销售量为:");
scanf("%d",&tdata.sale_number);
tdata.have_number = 0;
tdata.id = head;
commodity_list[head-1] = tdata;
head++;
}
}
// 展示仓库的商品
void display_have(){
printf("库存表的商品如下:\n");
for(i=0;i<head-1;i++){
printf("---------------%d----------------\n",(i+1));
printf("商品的ID是:%d\n",commodity_list[i].id);
printf("商品的名称是:%s\n",commodity_list[i].name);
printf("商品的价格是:%d\n",commodity_list[i].money);
printf("商品的库存量是:%d\n",commodity_list[i].have_number);
}
}
// 展示销售表的商品
void display_sale(){
printf("销售表的商品如下:\n");
for(i=0;i<head-1;i++){
printf("---------------%d----------------\n",(i+1));
printf("商品的ID是:%d\n",commodity_list[i].id);
printf("商品的名称是:%s\n",commodity_list[i].name);
printf("商品的价格是:%d\n",commodity_list[i].money);
printf("商品的销售量是:%d\n",commodity_list[i].sale_number);
}
}
// 出售商品
void buyed(){
int id;
printf("出售的商品的ID是:");
scanf("%d",&id);
if( commodity_list[id-1].have_number > 0 ){
commodity_list[id-1].have_number -= 1;
commodity_list[id-1].sale_number += 1;
printf("出售成功!\n");
return;
}
printf("出售失败!\n");
}
```
程序源代码:main.c 文件
```c++
#include <stdio.h>
#include <stdlib.h>
#include "head.h"
int main()
{
int choose = 0;
while(choose !=6){
printf("--------------------商品销售系统--------------------\n");
printf("(1) 添加仓库的商品\n");
printf("(2) 添加销售的商品\n");
printf("(3) 展示仓库的商品\n");
printf("(4) 展示销售的商品\n");
printf("(5) 出售商品\n");
printf("(0) 退出系统\n");
printf("请输入你的选择:\n");
scanf("%d",&choose);
switch(choose){
case 1:add_have(); break;
case 2:add_sale(); break;
case 3:display_have(); break;
case 4:display_sale(); break;
case 5:buyed(); break;
case 6:exit(0);
}
}
return 0;
}
```
# 五、课程设计收获及体会
在本次课设,我成功搭建了一个完整的系统,在搭建的过程中,我明白了 C 语言是一个面向过程的语言,所以我在实现中,尽量的使系统更加的模块化,例如头文件和源文件的分类,在头文件中尽量将函数在开始先进行声明,然后在下面在进行实现。这样使代码更加的规范。这次课设对我来说是一个大工程,让我学到了许多。
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言实现(控制台)商品销售系统【100010804】
共5个文件
md:1个
c:1个
docx:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 5 浏览量
2023-02-14
11:13:32
上传
评论
收藏 139KB ZIP 举报
温馨提示
本系统使用 1 个表来实现系统中的库存表和销售表,使用不同的展示形式来完成不同表的展示,这是更接近于实际生活。然后使用 5 个函数将本系统拆分成 5 个模块,这样更加的易于管理。其实向销售表添加商品比较麻烦,首先先判断仓库中是否有这个商品,如果有则直接对商品的销售量进行修改,如果没有则直接添加一个新商品,其库存量为 0。在出售商品的时候比较简单,可以直接根据商品的 ID,进行库存量-1,商品量 +1 的操作。
资源推荐
资源详情
资源评论
收起资源包目录
100010804-基于C语言实现(控制台)商品销售系统.zip (5个子文件)
commodity
LICENSE 1KB
商品销售系统.docx 136KB
main.c 783B
README.md 7KB
head.h 3KB
共 5 条
- 1
资源评论
神仙别闹
- 粉丝: 2677
- 资源: 7667
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功