前言
随着计算机的应用普及,目前大多数企业的仓库管理数据资料已开始采用计算机数据系统管理,但数据还是采用先纸张记录、再手工输入计算机的方式进行采集和统计整理。这不仅造成大量的人力资源浪费,而且由于人为的因素,数据录入速度慢、准确率低。并且随着企业规模的不断发展,仓库管理的物资种类机数量在不断增加、出入库频率剧增,仓库管理作业也已十分复杂和多样化,传统的人工仓库作业模式和数据采集方式已难以满足仓库管理的快速、准确要求,严重影响了企业的运行工作效率,成为制约企业发展的一大障碍。商品库存管理系统就此诞生了,当然本次课题中提到的系统虽然也叫这个名字,但只是一个简化版本的,毕竟本人能力有限。可麻雀虽小,五脏俱全。本系统具备一系列的基本功能,如:录入商品的库存量相关信息,查找某个商品的库存量,修改某个商品的库存量等等。
使用商品库存管理系统,商家可以方便地对商品信息进行增加、删除、修改等日常维护,并且能进行商品信息的查询,从而能更全面直观地了解到商品库存的信息。
目录
正文(由于我删改了些东西,所以对应的页数劳烦您注意对照自己的文档更改下)
- 概述
1.1课程设计的目的与要求------- 7
1.2选题的内容:
1. 回文数---------------- 7
2.自动发牌--------------- 8
3.商品库存管理系统------- 8
1.3开发环境------------------- 9
- 需求分析------------------------ 10
- 系统设计
3.1总体设计------ 11
3.2详细设计------ 12
- 编码---------------------------- 13
- 运行与调试---------------------- 25
- 小结---------------------------- 30
- 参考文献------------------------ 31
正文
第一章------概述
课程设计的目的与要求:
1.实现菜单的显示、选择和响应等功能
2.将信息保存到指定的磁盘文件中,并通过操作文件指针和调用文件相关函数来实现对文件的读写操作
3.使用结构体封装商品属性信息
4.利用结构体数组记录多个商品信息
5.通过C语言实现基本的增、删、改、查等信息管理功能
选题的内容:
- 回文数
【题目】打印所有不超过n(n<256)的其平方具有对称性质的数(也称回文数)。请使用数组方法实现。
【编程提示】对于要判断的数n,计算出其平方后存于a,将a的每一位进行分解存到数组中,再按a从低到高的顺序将其恢复成一个数k(如n=13,则a=169且k=961),若a等于k,则可判定n为回文数。
- 自动发牌
【题目】一副桥牌有52张牌,打桥牌时应将牌分给 4 个人。请使用数组方法设计一个程序完成自动发牌的工作。要求:黑桃用 S(Spaces)表示;红桃用H(Hearts)表示;方块用 D(Diamonds)表示;梅花用 C(Clubs)表示。
【编程提示】按照打桥牌的规定,每人应当有 13 张牌。在人工发牌时,先进行洗牌,然后将洗好的牌按一定的顺序发给每一个人。为便于计算机模拟,将人工方式的发牌过程修改为:先确定好发牌顺序为 1、2、3、4;将 52 张牌顺序编号,黑桃 2 对应数字 0,红桃
2对应数字 1,方块 2 对应数字 2,梅花 2 对应数字 3,黑桃 3 对应数字 4,红桃 3 对应数字5……然后从 52 张牌中随机为每个人抽牌。采用 C 语言库函数的随机函数,生成0~51之间的共 52 个随机数,以产生洗牌后发牌的效果。
- 商品库存管理系统
【题目】建立商品库存管理系统,对商品库存相关信息进行管理。商品库存相关信息包括商品编号、商品名称和商品库存量等。具体要求如下:
(1)建立该系统的存储结构。
(2)录入商品的库存量相关信息。
(3)查找某个商品的库存量。
(4)修改某个商品的库存量。
(5)删除某个商品库存的相关信息。
(6)插入某个商品的相关信息。
(7)统计商品的库存总量,并对每类商品的库存量进行排名。
【编程提示】将每个商品当作一个结点,类型为结构体,结构体中包含商品库存的相关信息和结点指针。定义商品结点的结构为
struct node
{ char no[12]; /*商品编号*/
char name[40]; /*名称*/
int workload; /*库存量*/
struct node *link; /*指向下一结点的指针*/
};
统计库存总量时,从头指针开始顺序统计,直至所有记录统计完毕。插入新结点时,如果没有找到指定结点,则将新结点的指针指向头结点。如果表中有指定结点,则将指定结点的指针赋给新结点的指针,然后修改指定结点的指针使其指向新结点。
开发环境:
Visual Studio 2019
第二章------需求分析
1.建立系统的存储结构
完成系统的构建,生成用户界面,用户根据自己的需求选择对应的数字使用不同的功能。
2.录入商品信息
用户先选择自己所需录入的商品种类数,然后录入所需要记录的商品的一系列信息,如商品名称,商品编号,商品库存量等。
- 查找商品库存量
用户输入所需查找的商品的名称,系统自动弹出该商品的库存量。
- 修改商品库存量
用户输入所需修改的商品的名称,然后输入修改后的商品库存量,系统自动进行修改。
- 删除商品信息
用户输入需要删除信息的商品名称,系统自动删除该商品的所有信息。
- 插入商品相关信息
用户输入所需插入商品的相关信息,系统自动添加该信息。
- 统计商品库存总量
按下对应数字,系统自动输入商品库存总量。
- 对商品库存量进行排序
按下对应数字,系统自动输入商品库存量排序。
第三章---------系统设计
3.1 总体设计--------画出系统功能结构图
3.2详细设计(截屏没操作好,空间不够,最后0对应的箭头直接指向结束即可)
- ------编码
//回文数
#include <stdio.h>
#include <math.h>
int func(long x); //判断是否是回文数
int main1()
{
int n;
int flag = 0;
long s;
printf("回文数有:\n");
for (n = 1; n < 256; n++)
{
s = pow(n, 2);
flag = func(s);
if (flag)
{
printf("%d\n", n);
}
}
return 0;
}
int func(long x)
{
int n;
int a[16]; //这个数组用来储存x的每一位
int i;
int t;
int sum = 0;
n = x;
for (i = 0; x != 0; i++)
{
a[i] = x % 10;
x = x / 10;
}
for (t = 1; i > 0; i--) //从最后一位”逆序”
{
sum = sum + a[i - 1] * t;
t = t * 10; //求出“逆序”后的数
}
if (sum == n) //如果相等 则代表是回文数,返回1
{
return 1;
}
else //如果不是回文数返回0
{
return 0;
}
}
//自动发牌
#include <stdio.h>
#include <stdlib.h> //srand()/rand()
#include <time.h> //time()
#define CARD_NUMBER 52 //总牌数(目前仅支持52)
#define PLAYER_NUMBER 4 //玩家数量
/******************************************************************************
* @brief 给某个玩家发牌
* @param player_id 玩家编号
* @param players 玩家手牌数组