C语言课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
商品库存管理系统
常州大学课程设计
第1章 系统分析与设计
1.1 系统分析
1.1.1解决问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
运用现代信息化和智能化的管理方式,解决商品库存信息在日常生活中易于丢失、遗忘,不易保存、管理的问题,从而使企业和商家能够更全面,更直观地了解到商品库存信息。
1.1.2软件功能
将商品库存信息进行入库、出库、查询、修改、盘点、排序等操作,更直观反映商品库存信息。
1.2 系统设计
1.2.1系统设计思路
以简便快捷和人性化为最终目标,力求最简单有效地管理商品库存信息。
1.2.2系统功能划分
通过对数据的不同处理方式,将系统分成了商品入库、商品出库、查询商品、修改商品、日盘点、出库排序六大类,在查询商品中又包含了关键字(选项)查询,在出库排序中又包含升降排序等功能。
1.2.3功能结构图
商品库存管理系统
商商查修日出退
品品询改盘库出
点 入出商商排系
库 库 品 统 品 序
返回主菜单
图0
第 1 页 共 37 页
常州大学课程设计
第2章 详细设计与编码
2.1详细设计
2.1.1主要函数算法设计
Void save (); 创建text.txt,并对其添加内容 void read (); 读取text.txt内容,将其赋给数组 void input(); 添加商品入库
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
void output(); 添加商品出库记录 void find_1() 通过名称查询商品信息 void find_2(); 通过代码查询商品信息 void find_3(); 通过生产商查询商品信息 void find (); 查询商品信息 void change(); 修改商品信息 void display(); 商品信息的盘点 void shun(); 商品出库按升序排序 void dao(); 商品出库按降序排序 void quit(); 退出系统
图1
第 2 页 共 37 页
常州大学课程设计
.1.2流程图
1.主函数:main函数
函数原型:void main()
功能是输出一个欢迎界面,并调用函数,提供1,7个功能选项。
开始
显示主菜单
根据需要选择序号
输入n,n为1-7
调用调用调用调用调用调用退 inputoutputfind函changedispyorder出 函数函数数进函数函数函数系
统 进入进入入 商进入进入进入
商品商 品 品查商品日盘出库
入 库 出 库 询 修 改 点 排 序
Y N 是否退出系统
退出系统 继续操作
结束
图 2
第 3 页 共 37 页
常州大学课程设计
2.分函数
(1)商品入库:input
函数原型:void input()
功能是录入商品信息
开始
输入商品名称
Y
是否存在改商品
N
输入名称,代码,生产商,生产日期,输 入
数量,价格,出库量,入库量 数 量
是否继续录入
结束
图3
第 4 页 共 37 页
常州大学课程设计
2)商品出库:output
函数原型:void output() 功能是商品出库(减少库存商品数量)
开始
输入商品名称
N
是否存在改商品
Y
输入出库数量
Y
是否继续出库
N
结束
图4
第 5 页 共 37 页
常州大学课程设计
(3)查询商品 find
函数原型:void find()
void find_1()
void find_2()
void find_3()
三种方式查询
开始
显示序号1-3,根据需
要输入序号查询
2.按代码查询 3.按生产商查询 1.按名称查询
显示名称,代码,生产商,生产日期
数量,价格,入库,出库
结束
图5
第 6 页 共 37 页
常州大学课程设计
1,.按名称查询
开始
输入名称
N
是否存在商品
Y
输出商品信息
结束
图6
2. 按代码查询
开始
输入.代码
N
是否存在商品
输出商品信息
结束
图7
第 7 页 共 37 页
常州大学课程设计
3.按生产商查询
开始
输入生产商
N
是否存在商品
输出商品信息
结束
图8
第 8 页 共 37 页
常州大学课程设计
4.修改商品 change()函数原型:void change()
开始
输入名称
Y
输入新名称 名称是否修改
N
Y 输入新代码 代码是否修改
N
Y 输入新生产商 生产商是否修改
N
Y 输入新日期 日期是否修改
N
Y 输入新数量 数量是否修改
N
Y 输入新价格 价格是否修改
N Y 输入新出库量 出库,入库是否
修改
结 束
图9
第 9 页 共 37 页
常州大学课程设计
6,出库排序
开始
显示序号1.2,根据输入序
号查看出库量排序
2.降序排序 1.升序排序
显示图书编号、书名、作者、出
版社、出版时间、数量
结束
图10
第 10 页 共 37 页
常州大学课程设计
2.2系统编码
#include "stdio.h" #include "string.h" #include
#define N 80 /*最大容量限定*/
struct a /*商品库内结构体*/
{
char name[10];
int numb;
char boss[6];
int date ;
int count;
int price;
int chu;
int ru;
}goods[1];
struct a product[N]={{"ac",1,"AC",1,15,5,0,0},{"bd",2,"BD",2,10,20,0,0}};
int num=2;
void read()
{
FILE*fp;
int i;
system("cls");
fp=fopen("text.txt","r+");
if(fp==NULL)
{
printf("不能打开文件!\n");
exit(0);
}
i=0;
while(!feof(fp))
{ if(fread(&product[i],sizeof( struct a),1,fp)==1)
i++;
} num=i;
fclose(fp);
第 11 页 共 37 页
常州大学课程设计
}
void save()/*保存商品的信息*/
{
FILE*fp;
int i;
if((fp=fopen("text.txt","w"))==NULL)
{
printf("cannot open file");
return;
}
for(i=0;i=num)
{
printf("库存中无此商品!\n");
printf("请输入商品名称:");
scanf("%s",product[num].name);
printf("请输入商品代码:");
scanf("%d",&product[num].numb);
printf("请输入商品生产商:");
scanf("%s",product[num].boss);
printf("请输入商品生产日期:");
scanf("%d",&product[num].date);
printf("请输入商品数量:");
scanf("%d",&product[num].count);
printf("请输入商品价格:");
scanf("%d",&product[num].price);
printf("请输入商品入库:");
scanf("%d",&product[num].ru);
printf("请输入商品出库:");
scanf("%d",&product[num].chu);
num++;
save();
}
printf("是否还想入库商品??\n");
printf("按y为继续添加,按n为不添加");
scanf("\n%c",&g);
if(g=='y')
{input();
getch();
}
}
void output()
{
int k,i;
char str[10],l;
system("cls"); /*清屏*/
第 13 页 共 37 页
常州大学课程设计
printf("\n请输入要出库的商品名称:");
scanf("%s",str);
getchar();
for(i=0;i=num)
{
printf("没有该商品!\r\n");
}
printf("是否还想出库商品??\n");
printf("按y为继续出库,按n为不出库\n");
l=getche();
if(l=='y')
{
output();
getch();}
save();
}
void find_1()
{
char str[10];
第 14 页 共 37 页
常州大学课程设计
int i;
system("cls"); /*清屏*/
printf("输入要找的商品的名称\n");
scanf("%s",str);
printf("名称\t 代码\t 生产商\t 生产日期\t 数量\t 价格\t出库\t入库\n");
for(i=0;i=num)
printf("没有该商品");
printf("按回车键返回!");
getch();
}
void find_2()
{
int i;
int x;
system("cls"); /*清屏*/
printf("输入要找的商品的代码\n");
scanf("%d",&x);
printf("名称\t 代码\t 生产商\t 生产日期\t 数量\t 价格\t出库\t入库\n");
for(i=0;i=num)
printf("没有该商品");
printf("按回车键返回!");
getch();
}
void find_3()
{
char a[6];
int i;
system("cls"); /*清屏*/
printf("输入要找的商品的生产商\n");
scanf("%s",a);
printf("名称\t 代码\t 生产商\t 生产日期\t 数量\t 价格\t出库\t入库\n");
for(i=0;i=num)
printf("没有该商品");
printf("按回车键返回!");
第 16 页 共 37 页
常州大学课程设计
getch();
}
void find ()
{
int j;
getch();
printf("查询商品,用商品名称查询请按1,用代码查询请按2,用商品生产商查询请按3");
scanf("%d",&j);
switch(j)
{ case 1:printf("按商品名称查询\n");find_1();break;
case 2:printf("按代码查询\n");find_2();break;
case 3:printf("按生产商查询\n");find_3();break;
default:break;
}
}
void change()
{
int i,k;
char str[10];
system("cls"); /*清屏*/
printf("输入准备修改的商品名称:");
scanf("%s",str);
for(i=0;i:\n");
第 17 页 共 37 页
常州大学课程设计
k=getche();
if (k=='y')
{
printf("请输入新的名称:\n");
scanf("%s",product[i].name);}
printf("是否修改代码:\n");
k=getche();
if(k=='y')
{
printf("请输入新的代码:\n");
scanf("%d",&product[i].numb);}
printf("是否修改生产商:\n");
k=getche();
if(k=='y')
{
printf("请输入新的生产商:\n");
scanf("%s",product[i].boss);}
printf("是否修改生产日期:\n");
k=getche();
if(k=='y')
{
printf("请输入新的生产日期:\n");
scanf("%d",&product[i].date);
printf("是否修改数量:\n");
k=getche();
if(k=='y')
{
printf("请输入新的数量:\n");
scanf("%d",&product[i].count);}
printf("是否修改价格:\n");
k=getche();
if(k=='y')
{
printf("请输入新的价格:\n");
第 18 页 共 37 页
常州大学课程设计
scanf("%d",&product[i].price);}
printf("是否修改出库量:\n");
k=getche();
if(k=='y')
{
printf("请输入新的出库量:\n");
scanf("%d",&product[i].chu);}
printf("是否修改入库量:\n");
k=getche();
if(k=='y')
{
printf("请输入新的入库量:\n");
scanf("%d",&product[i].ru);
}
}
}
}
void display()
{
int i;
system("cls"); /*清屏*/
printf("\n\n名称\t 编号\t 生产商\t 生产日期\t 数量\t 价格\t出库\t入库\n");
for(i=0;i0)
第 19 页 共 37 页
常州大学课程设计
{
printf("%s\t %d\t %s\t %d\t %d\t %d\t %d\t %d\n",product[i].nam
e,product[i].numb,
product[i].boss,product[i].date,product[i].count,product[i].price,product[i].chu,
product[i].ru);
}
printf("\n\n统计并输出商品(入库)的量\n");
printf("名称\t 编号\t 生产商\t 生产日期\t 数量\t 价格\t出库\t入库\n");
for(i=0;i0)
{
printf("%s\t %d\t %s\t %d\t %d\t %d\t %d\t %d\n",product[i].nam
e,product[i].numb,
product[i].boss,product[i].date,product[i].count,product[i].price,product[i].chu,
product[i].ru);
}
}
printf("按回车键返回!");
getch();
}
void shun()
{
int i;
int j;
printf("名称\t 编号\t 生产商\t 生产日期\t 数量\t 价格\t出库\t入库\n");
for(i=0;iproduct[j+1].chu )
{
goods[0]=product[j];
product[j]=product[j+1];
product[j+1]=goods[0];
}
for(i=0;i
手册
华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载
. 1.用户首先进入欢迎界面,按回车键进入到主菜单中,然后输入功能选项所对应的数
第 33 页 共 37 页
常州大学课程设计
字进行操作。
2.商品入库功能,根据提示输入商品信息,输入完成后,根据实际情况再按照提示选择是否继续进行商品入库。
3.商品出库功能,根据提示输入商品名称,根据提示输入出库数量,根据实际情况再按照提示选择是否继续进行商品出库。
4.查询商品,根据提示,选择输入适当的关键词,从而获取商品信息。
5.修改商品,根据提示,输入要修改的商品,根据实际情况在按照提示选择修改商品信息。
6.日盘点,直接使用。
7.出库排序,根据提示选择排序方式。
第4章 日志
6.13(今天第一次来做课程设计,一开始有点迷茫,不知道哪里从哪里开始。但是很快自己
第 34 页 共 37 页
常州大学课程设计
投入了状态,明白了一切从主函数开始,我就先弄好主函数。并且分几个调用函数来实现~~不过调用还没开始~~
6.16(下午本想做完第一个调用函数的,可是在调用函数过程中,出现好多问题,不明白到底该如何去执行调用函数,不过最后讨论后,感觉还好。
6。16晚上,在做第一个调用时,以为先输入商品信息在比较,原来错了,是要先比较在输入,因为在主函数中我们要弄个文件,到时就可以比较了~很快第一个调用做完了~~~
6(18晚上,
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
做完第二三个,想早点做完,可是就做一个多点啊啊~~因为在出库的环节上出错了,修改错误弄了好久,并且组员对一些程序有疑问,跟他们讨论~~
6(19晚上,在做第四个调用时,由于粗心大意好多简单的东西给弄错了~~用分步查询错误~~花了好长时间~~
6.22今天写程序时,写完了第五个程序,不过在程序调试时出了错,有些变量的忘了给他定义,于是一个个查了过去~~也有的运行不是想象中那样,一步一步的慢慢地改,现在还有些问题~~不过已经下课了,只能下午把程序好好的改一下~~
6.22下午,主要是检查程序,然后把它修正,在修正程序后开始先作第七个调用,因为第七个会比较简单~~所以很快我就做完了第七个~~然后准备做第六个了~~
6.23 今天在做第六个调用,首先要判断要升序还是降序,然后要进行冒泡排序,一开始以为只要将出库量进行调换,不过那样根本就不能进行排序,后来听了老师说,只需将 变量之间进行调换就行了~~
6.23下午,开始调试了第一调用 ,但是结果不是我所预期的哪样,它会自动的跳到不个步骤,而那不应该是这样的啊!!只能去改别的程序了~~其他还好,改的都还可以~~改了2个~~并且能够运行~~~
6.25今天还是准备把上一次没修改好的第一个调用弄好,并且把其他几个也调试了, 争取把程序快点弄好啊~来了一下午,效果还是可以的,第一个改完了,并且还弄了两个调用~~还能正常运行~~功夫不负有心人!!!
6.26下午准备给程序加上文件~~使整个系统整体化~我分别给调用函数中添加文件的读和写,可是有时还是会出错~~我试着将文件删掉,程序还是可以运行,我就请教老师,老师叫我把文件放在主函数里会比较好,可是我觉得这是没有差的~~就没改~
6(26晚上,我做了入库商品时,由于它只能进行一次,不能反复的进行入库,我就开始改这个程序,我最后用了间接的调用了入库这个函数~使它能够循环的运行~
6(27下午,我把商品出库也做了循环,还是按照入库商品的模式来制作~还把日盘点的程序进行完善,把它弄得更清楚,更明了~我就把输出的字距改一下然后在然后再让它分别输出入库和出库的商品的所有信息~~
6.27晚上,我将出库排序用了两个调用,来输出出库量的升序排列,和降序排列!并且准备写报告~~
第 35 页 共 37 页
常州大学课程设计
第5章 思考与总结
本次课程设计是商品库存管理系统。经过不懈努力,系统的所有功能基本实现,成功达到了预期的目标。
在编译的初期,我天真的认为只要通过简单地修改就可以将所给示例改编成商品库存管理系统,经过实际操作,事实告诉我,这两者差距太大了,刚开始还想直接修改,现在看来整个程序和重新编写的也没有多大区别了。
这次的程序编写,让我学到了很多,懂得了很多,其中遇到了很多的问题和困难,编写程序时错误可谓是层出不穷,有些错误很细微,有些错误则是技术型的,很多时候都是同学们一起帮我修改的,让我从团队协作中感受到了力量。
这次的程序编写除了课堂时间外还包含了我几个晚上的通宵工作,尽管程序存在着某些缺陷,但其中不乏亮点,能够让我的程序成功运作,能够将功能基本实现,我真的很开心。
第 36 页 共 37 页
常州大学课程设计
参考文献
[1]甘玲著.解析C程序设计.北京:清华大学出版社,2005. [2]谭浩强著.C程序设计.第3版.北京:清华大学出版社,2005. [3]向艳著.C语言程序设计.第2版.北京:清华大学出版社,2011. [4]崔武子著.C程序设计教程.第2版.北京:清华大学出版社,2007. [5]徐士良著.C语言程序设计教程.第2版.北京:人民邮电出版社,2003.
第 37 页 共 37 页