C语言课程设计商场商品信息管理系统最新整理.docx

上传人:b****5 文档编号:7636034 上传时间:2023-01-25 格式:DOCX 页数:29 大小:177.14KB
下载 相关 举报
C语言课程设计商场商品信息管理系统最新整理.docx_第1页
第1页 / 共29页
C语言课程设计商场商品信息管理系统最新整理.docx_第2页
第2页 / 共29页
C语言课程设计商场商品信息管理系统最新整理.docx_第3页
第3页 / 共29页
C语言课程设计商场商品信息管理系统最新整理.docx_第4页
第4页 / 共29页
C语言课程设计商场商品信息管理系统最新整理.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言课程设计商场商品信息管理系统最新整理.docx

《C语言课程设计商场商品信息管理系统最新整理.docx》由会员分享,可在线阅读,更多相关《C语言课程设计商场商品信息管理系统最新整理.docx(29页珍藏版)》请在冰豆网上搜索。

C语言课程设计商场商品信息管理系统最新整理.docx

C语言课程设计商场商品信息管理系统最新整理

C语言课程设计-商场商品信息管理系统(最新整理)

商场商品库存信息管理系统

1系统分析...............................................................................................................2

1.1课程设计内容..............................................................................................2

1.2系统功能需求分析......................................................................................2

1.3数据结构设计..............................................................................................22系统设计...............................................................................................................3

2.1总体设计.....................................................................................................3

2.2详细设计.....................................................................................................4

2.2.1界面设计............................................................................................4

2.2.2各功能模块的设计............................................................................6

3系统编码设计.....................................................................................................10

3.1main函数...................................................................................................104系统运行.............................................................................................................225总结.....................................................................................................................26

1

1系统分析

1.1课程设计内容

商场商品信息管理系统

1.2系统功能需求分析

本系统应具有以下功能:

1、文件操作功能

文件操作:

可建立、打开、保存、关闭数据文件。

如果是新建的文件,可输入商品信息数

据:

数据包括商品编号、商品名、商品类别、商品数量、商品价格等。

2、数据输入功能

输入进货信息:

输入商品编号、数量完成进货操作。

输入销售信息:

输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应

出现错误提示。

3、数据添加、修改、删除功能

添加:

添加一种或多种新商品,并能输入其商品信息。

修改:

修改商品信息,可包括商品编号、名称、种类、数量和单价。

删除:

删除一类或多类商品的所有信息。

4、计算功能

可通过查询商品信息功能,自动计算并输出需要进货的商品信息。

5、查询功能

可分别按商品编号、名称、类别和需要进货的商品进行查询。

6、排序功能

可分别按商品编号、名称、类别等进行排序。

7、数据显示功能

可分别浏览输入、查询和排序后的商品信息。

1.3数据结构设计

structgoods/*商品结构体*/

2

{longintnum;/*商品编号*/

charname[20];/*商品名称*/

charsort[20];/*商品类别*/

longintcount;/*商品库存量*/

longintprice;/*商品单价*/

}goods[200];/*最多200个商品*/

2系统设计2.1总体设计

按系统分析的功能要求将系统划分为以下几个主要功能模块:

一、文件管理

文件打开、关闭:

对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可

以把其保存在一个文件中,并对该文件可进行打开和关闭操作。

二、进出货管理

商品进货:

输入数据后商品信息能自动更新进行添加

商品销售:

输入数据后商品信息能自动更新进行减少

三、商品数据管理

增加/删除商品:

添加或删除某条商品的信息

修改商品信息:

对某条商品的信息进行修改

四、浏览商品信息管理

查询商品信息:

可分别按商品编号、名称、类别或需要进货商品查询

排序商品信息:

可按商品编号、名称、类别分别排排序

浏览商品信息:

可浏览输入、查询或排序后的数据。

(此处可用图形描述功能模块划分,类似下图)

商场商品信息管理系统

商浏信品进文览息数出件商管3据货管品理管管理理理

输排查打进出添修关保删入序询开货货加改闭除存数数数据据据

2.2详细设计

2.2.1界面设计

1、菜单设计

欢迎界面:

系统提示:

4

菜单设计:

2、输入界面的设计

3、信息显示界面的设计

5

2.2.2各功能模块的设计

根据划分的功能模块,定义以下函数实现各功能:

(这部分应介绍各函数的原型,各功能模

块实现所用的算法,可用流程图描述)

1、主函数main()

定义主函数为空类型(void);利用选择结构(switch)实现在在主函数中的调用各个子函数,利用

goto和子函数中的return语句实现返回主菜单的循环。

声明各个子函数

输出欢迎界面

输出菜单

switch(m)

1输入商品信息

2排序商品信息

3输入商品进货信息

4输入商品销售信息

5增加/删除商品

6修改商品信息

7查询商品信息

8浏览商品信息

9保存商品信息

清屏幕

2、子函数

(1)voidinput():

<输入函数>

确定新的库存量n,输入商品信息,用for循环语句直到输入商品种类等于n,结束输入;

scanf(n)

for(i=0;i<=n;i++)

将数据存入结构体成员

return

voidsequence():

<排序函数>

(2)

对已有的商品进行排序,可按商品编号、名称、类别进行排序;

longtemp;charp1[30],p2[30];

按编号排序for(k=0;k

if(goods[i].num>goods[i+1].num)

排序

输出排序后结果

for(k=0;k

if(strcmp(goods[i].name,goods[i+1].name)>0)

按名称排序是

排序

输出排序后结果

for(k=0;k

if(strcmp(goods[i].sort,goods[i+1].sort)>0)是按类别排序

排序

输出排序后结果

(3)voidpurchase():

<进货函数>

进货函数主要是针对已有库存的商品,在原来的商品数量再增加:

for(i=0;i

if(temp==goods[i].num);是

输入数量

Return

(4)voidsale():

<销售函数>

要求用户输入所销售的编号,系统用for循环查询该商品是否存在,不存在要求再进行输入,直到输入正确,输出销售商品:

for(i=0;i

if(k==goods[i].num)if(a>goods[i].count)

出现输入错误提示;重新输入scanf;

for(i=0;i

输出销售商品

7

(5)voidedit():

<添加/删除商品>

因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对

旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进行俩者操作的选择:

定义变量longtemp;声明函数voidadd();voiddele();

switch(k)k=1k=2

add();dele();

break;break;

(6)voidcorrect():

<修改数据函数>

对有错误信息商品进行修改,输入需要修改的商品编号,用for循环与if语句找到此商品,重

新输入该商品的新信息,并输出:

longtemp;scanf(temp);

for(i=0;i

if(temp==goods[i].num)

输入新信息

for(i=0;i

输出修改后商品信息

(7)voidsearch():

<查询函数>

用switch(k)语句可分别按商品编号、名称、类别或需要进货商品查询;每个case选择中均用

for语句查找要查询的商品,并输出查询结果。

longtemp1;chartemp2[20],temp3[20];

switch(k)

case(k)

输出查询商品信息

(8)voidscan():

<浏览商品函数>

可分别进行浏览输入的商品信息、查询的商品信息、排序后商品信息,用switch进行这三种方

式的选择。

scnaf()

switch(k)

case

for(i=0;i

8

输出所要浏览信息;break;

(9)voidreserve():

<保存文件>

建立文件FILE*fp;charfile[15]用来存放文件保存路径以及文件名,进行清屏,输入文件路径及文件名,利用fp=fopen("file","w+")实现创建并打开一个文件,并得到该文件的地址的功能,显示fprintf(fp,"商品编号\t商品名\t商品类别\t商品数量\t商品价格\n");最后输出已保存文件,程序中是由PR("商品编号\t商品名\t商品类别\t商品数量\t商品价格\n");语句执行。

scanf(n)

for(i=0;i<=n;i++)

将数据存入结构体成员

return

9

3系统编码设计

(这部分将代码列出,注意,每个函数开始处要介绍函数的功能,重要的代码应有注释,

代码格式按锯齿式编排)

3.1main函数

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#definePRprintf

#defineSCscanf

structgoods

{longintnum;

charname[20];

charsort[20];

longintcount;

longintprice;

}goods[5000];

intk,n,i;

voidmain()

{

voidinput();

voidsequence();

voidpurchase();

voidsell();

voidedit();

voidcorrect();

voidsearch();

voidscan();

voidreserve();

voidexit();

PR("\n******************************************************************\n

*\t\t\t\t\t\t\t\t*\n");

PR("*?

?

?

?

?

?

?

?

?

?

?

*");

PR("\n*\t\t\t\t\t\t\t\t*\n*Welcome\t\t\t\t\t\t*\n

*\t\t\t\t\t\t\t\t*\n");

PR("*\t\ttogointo....\t\t\t\t*");

PR("\n*\t\t\t\t\t\t\t\t*\n");

PR("*-theGoodsInformationManageaentSystem-*\n

*\t\t\t\t\t\t\t\t*\n");

10

PR("*?

?

?

?

?

?

?

?

?

?

?

?

?

?

*\n");

PR("*\t\t\t\t\t\t\t\t*\n******************************************************************");

PR("\n\n\tPleasepressanykeytocontinue:

");

getch();

system("cls");

PR("\n\n---$-----$--------$----------$-----------$---------$-------$------$-----$---");

PR("\n系统使用--温馨提示:

\n\n?

商品编号、数量、单价:

采用十进制数,规定长度最长为8位;\n\n?

商品名称为26位字母组成字符串,长度最长为20位;\n\n\t?

商品类别:

以26个小写字母分别代表着26种商品类别;\n\n\t?

该商品需要进货的库存量:

count<50;\n");

PR("---$-----$--------$----------$-----------$---------$-------$------$-----$---");

PR("\npleasepressanykeytocontinue");

getch();

system("cls");/*清屏*/

lp:

for(i=0;i<1;i++)

PR("\n\n——?

—?

——?

—?

——?

—?

——?

—?

——?

—?

——?

—\n");

PR("\n\t\t\t商品信息管理系统\t\n\n");

PR("\t1?

输入商品信息\n\n");

PR("\t2?

排序商品信息\n\n");

PR("\t3?

输入进货信息\t\t6?

修改商品信息\n\n");

PR("\t4?

输入销售信息\t\t7?

查询商品信息\n\n");

PR("\t5?

增加/删除商品\t\t8?

浏览商品信息\n\n");

PR("\t\t\t\t\t9?

保存商品信息\n\n");

PR("\t\t——?

—?

——?

—?

——?

—?

——?

—?

——?

—?

——?

—");/*菜单选择界面*/

PR("\n\n");

PR("\t请选择您所要的操作(或选择(0)退出):

");

SC("%d",&k);

system("cls");

switch(k)/*用switch语句实现功能选择*/

{

case1:

input();break;

case2:

sequence();break;

case3:

purchase();break;

case4:

sell();break;

case5:

edit();break;

case6:

correct();break;

case7:

search();break;

case8:

scan();break;

case9:

reserve();break;

case0:

PR("\n\n\t/////^_^\\\\\\\\\\\n\n\t…………谢谢使用,欢迎再来,再见O(?

_?

)O…………");exit(0);/*退出系统*/

default:

puts("输入错误,请按任意健返回主菜单:

\n");break;

}

11

system("cls");/*清屏*/

gotolp;/*返回主界面*/

}

voidinput()/*功能1:

输入商品信息*/

{

PR("\n请输入需要建立新库存的商品种类数量:

");

SC("%d",&n);

system("cls");

PR("\n…………………………………………………………………………………………………\n"

);

for(i=0;i

{

PR("\n\t*请输入商品的编号:

");

SC("%ld",&goods[i].num);

PR("\n\t请输入商品的名称:

");

SC("%s",goods[i].name);

PR("\n\t请输入商品的种类:

");

SC("%s",goods[i].sort);

PR("\n\t请输入商品的数量:

");

SC("%d",&goods[i].count);

PR("\n\t请输入商品的单价:

");

SC("%d",&goods[i].price);

PR("\n………………………………………………………………………………………………

…\n");

}

PR("\tPleasepressanykeytocontinue:

");

getch();

return;/*返回主界面*/

}

voidsequence()/*功能2:

排序商品信息*/

{

longtemp;

charp1[30],p2[30];

for(k=0;k

(1):

按编号排序*/

for(i=0;i

if(goods[i].num>goods[i+1].num)/*按编号由小到大排序*/

{

temp=goods[i].num;

goods[i].num=goods[i+1].num;

goods[i+1].num=temp;

strcpy(p1,goods[i].name);

12

strcpy(goods[i].name,goods[i+1].name);

strcpy(goods[i+1].name,p1);

strcpy(p2,goods[i].sort);

strcpy(goods[i].sort,goods[i+1].sort);

strcpy(goods[i+1].sort,p2);

}

PR("--------------------------------------------------------------------------------");

PR("\n\t\t按商品编号排序后的商品信息\n\n");

PR("\t商品编号商品名称商品类别商品数量商品单价\n");/*输

出排序后商品信息*/

for(i=0;i

{

PR("\t%5ld%5s%5s%5ld%5ld\n",goods[i].num,goods[i].na

me,goods[i].sort,goods[i].count,goods[i].price);

}

(2):

按商品名称排序*/for(k=0;k

for(i=0;i

if(strcmp(goods[i].name,goods[i+1].name)>0)

{

strcpy(p1,goods[i].name);

strcpy(goods[i].name,goods[i+1].name);

strcpy(goods[i+1].name,p1);

temp=goods[i].num;

goods[i].num=goods[i+1].num;

goods[i+1].num=temp;

strcpy(p2,goods[i].sort);

strcpy(goods[i].sort,goods[i+1].sort);

strcpy(goods[i+1].sort,p2);

}

PR("--------------------------------------------------------------------------------");

PR("\n\t\t按商品名称排序后的商品信息\n");

PR("\n\t商品名称商品编号商品类别商品数量商品单价\n");/*

输出排序后商品信息*/

for(i=0;i

{

PR("\t%5s%5ld%5s%5ld%5ld\n",goods[i].name,goods[i].num,g

oods[i].sort,goods[i].count,goods[i].price);

}

for(k=0;k

按商品类别排序*/

for(i=0;i

if(strcmp(goods[i].sort,goods[i+1].sort)>0)

13

{

strcpy(p2,goods[i].sort);

strcpy(goods[i].sort,goods[i+1].sort);

strcpy(goods[i+1].sort,p2);

temp=goods[i].num;

goods[i].num=goods[i+1].num;

goods[i+1].num=temp;

strcpy(p1,goods[i].name);

strcpy(goods[i].name,goods[i+1].name);

strcpy(goods[i+1].name,p1);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1