c语言实训商店商品管理信息系统文档格式.docx

上传人:b****3 文档编号:6201535 上传时间:2023-05-06 格式:DOCX 页数:69 大小:858.06KB
下载 相关 举报
c语言实训商店商品管理信息系统文档格式.docx_第1页
第1页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第2页
第2页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第3页
第3页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第4页
第4页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第5页
第5页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第6页
第6页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第7页
第7页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第8页
第8页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第9页
第9页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第10页
第10页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第11页
第11页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第12页
第12页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第13页
第13页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第14页
第14页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第15页
第15页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第16页
第16页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第17页
第17页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第18页
第18页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第19页
第19页 / 共69页
c语言实训商店商品管理信息系统文档格式.docx_第20页
第20页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言实训商店商品管理信息系统文档格式.docx

《c语言实训商店商品管理信息系统文档格式.docx》由会员分享,可在线阅读,更多相关《c语言实训商店商品管理信息系统文档格式.docx(69页珍藏版)》请在冰点文库上搜索。

c语言实训商店商品管理信息系统文档格式.docx

在子菜单中选择4,返回主菜单;

选择0,退出整个系统。

3.统计销售额情况。

在此项中统计每种商品的销售额、剩余数、毛利(毛利=销售额-进价×

销售量)。

4.进入子菜单,并查询商品信息。

如根据品名、剩余数(小于5大于20)进行查询。

在子菜单中选择3,返回主菜单;

5.进入子菜单,并显示商品信息。

显示方式有3种,即按原来商品顺序显示、按销售额从高到低的顺序显示、按毛利从高到低的顺序显示,由于商品较多,所以要求分屏显示。

在子菜单选择4,返回主菜单;

6.创新功能——给商品分类。

7.主菜单中选择0:

显示结束信息(如“感谢使用本软件!

已正常退出,按任意键结束。

”),按任意键后,退出本系统。

3.任务分工:

(1):

编辑商品信息;

创新功能:

给商品分类的主函数、给商品分类中的按生活用品分。

(2)郭欣桐:

创建商品档案、查询商品信息;

给商品分类中的按食品分。

(3)胡岩松:

统计销售情况、显示商品信息;

给商品分类中的按学习用品分。

注:

流程图与实训报告由三个人共同分担完成。

第2部分设计实训题目功能

1.总体设计:

(1)模块设计:

如下图菜单:

-------------------------------

|请输入选项编号(0-6)|

|1——创建商品档案|

|2——编辑商品信息|

|3——统计销售情况|

|4——查询商品信息|

|5——显示商品信息|

|6——创新功能|

|0——退出系统|

--------------------------------

****************************************

|请输入选项编号(0-4)|

|1——添加新商品|

|2——删除原有商品|

|3——修改原有商品信息|

|4——返回|

*****************************************

|请输入选项编号(0-3)|

|1——按品名查询|

|2——按剩余数查询|

|3——返回|

|1——按原来顺序显示|

|2——按销售额高低显示|

|3——按毛利高低显示|

(2)定义各函数的主要功能:

①主函数:

将需要的函数都放在主函数中,当需要不同的函数的时候便可用主函数调用不同的函数,运用主函数可以方便调用其它函数。

②创建商品档案函数:

向原有商品档案中添加新的商品以及有关信息。

③编辑商品信息函数:

可以添加新商品、删除原有商品、修改原有商品信息。

④统计销售情况函数:

可以统计每种商品的销售额、剩余数、毛利。

⑤查询商品信息函数:

可以查询商品信息,分为按品名查询、按剩余数查询。

⑥显示商品信息函数:

可以显示出商品信息,按原来顺序显示、按销售额高低显示、按毛利高低显示。

⑦创新功能函数:

给商品分类——可以将商品分为3类,按生活用品分类、按食品分类、按学习用品分类。

(3)程序模块图:

2.算法设计:

(1)显示子菜单。

用printf函数将菜单项一项项地打印到屏幕上,界面中的边框可以通过多个printf语句输出的“|”和“-”拼接起来。

(2)菜单项的选择。

菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选择选项的功能。

鉴于目前仅仅是做主菜单,还不能实现各菜单项的具体功能,因此该程序中暂时根据用户的选择,输出对应菜单的编号。

根据题意,主菜单含有7个菜单项,属于多分支条件判断,使用带break的switch语句最为合适。

需要注意的是,还要处理当用户输入错误时的情况。

(3)重复显示主菜单。

因为本实例具有重复选择主菜单的功能,因此需要使用循环结构。

在本实例中主菜单至少显示一次,然后才判断是否继续选择主菜单,所以使用do-while循环比较好,因为do-while循环是先执行循环体,然后在判断表达式。

作为菜单,应该给用户一个正常的出口,即满足一定条件时退出程序。

为了给用户提供方便,我们采用人机对话形式,当用户选择某一菜单项后,系统立即完成相应的功能,然后询问用户是否需要继续选择,只要用户选择继续(输入y或Y),主菜单就在屏幕上反复出现,只有单用户选择不再继续(输入n或N)时,才可以退出主菜单。

除此之外,为了使用方便,在主菜单中还特设0选项,选择它也能正常退出程序。

为了实现上述功能,有关语句都应放在do-while循环体中。

设计算法时应考虑如何时程序具有容错能力。

例如,当用户在应答是否继续时,如果输入的是合法数据(即y、Y、n或N),则程序继续下一步操作;

如果输入的是非法数据(即y、Y、n或N以外的字符),则应让用户重新输入,这时需要在是否继续的问题上加一个循环判断,这种功能常用do-while实现。

(4)流程图(如下图所示):

主模块流程图

创建商品档案模块的流程图

编辑商品信息模块的流程图

添加新商品模块的流程图

删除原有商品模块的流程图

修改原有商品信息流程图

统计销售情况的流程图

查询商品信息的流程图

按品名查询流程图

按剩余数查询流程图

显示商品信息流程图

按原来顺序显示模块的流程图

按销售额高低显示的流程图

按毛利高低显示的模块

创新功能流程图

按生活用品分类流程图

按食品和学习用品分类似

3.数据结构:

structgoods

{charbh[10];

charpm[30];

floatjj;

floatsj;

intjhl;

intxsl;

floatxse;

intsys;

floatml;

};

此结构体为存放商品信息,编号bh[10],商品名pm[30],进价jj,售价sj,进货量jhl,销售量xsl,销售额xse,剩余数sys,毛利ml.

4.程序代码设计:

voidmycreate()

{inti=1;

floatx,y,z,t;

structgoodstemp={0};

FILE*fp=NULL;

fp=fopen("

d:

\\cwz\\goods.txt"

"

w"

);

if(fp==NULL)

{printf("

\n打开文件夹失败!

\n"

return;

}

system("

cls"

printf("

\n请输入第1个记录:

编号(用#结束输入):

"

do

{gets(temp.bh);

}while(strcmp(temp.bh,"

)==0);

品名(用#结束输入):

gets(temp.pm);

进价(用#结束输入):

scanf("

%f"

&

x);

temp.jj=x;

售价(用#结束输入):

y);

temp.sj=y;

进货量(用#结束输入):

%d"

temp.jhl);

销售量(用#结束输入):

temp.xsl);

销售额(用#结束输入):

z);

temp.xse=z;

剩余数(用#结束输入):

temp.sys);

毛利(用#结束输入):

t);

temp.ml=t;

while(temp.bh[0]!

='

#'

&

temp.pm[0]!

{fprintf(fp,"

%4s%12s%8.1f%8.1f%8d%8d%8.1f%8d%8.1f\n"

temp.bh,temp.pm,

temp.jj,temp.sj,temp.jhl,temp.xsl,temp.xse,temp.sys,temp.ml);

i++;

printf("

\n请输入第%d个记录:

i);

do

{gets(temp.bh);

}while(strcmp(temp.bh,"

gets(temp.pm);

scanf("

temp.jj=x;

temp.sj=y;

temp.xse=z;

temp.ml=t;

}

fclose(fp);

voidmyedit()

{charchoose='

\0'

yes_no='

;

{

myprint1();

choose=getch();

switch(choose)

{case'

1'

:

myadd();

break;

case'

2'

mydelete();

3'

mymodify();

4'

return;

0'

exit(0);

default:

\n%c为非法选项!

choose);

}

if(choose=='

)break;

\n要继续选择吗(Y/N)?

{

yes_no=getche();

}while(yes_no!

Y'

&

yes_no!

y'

N'

n'

}while(yes_no=='

||yes_no=='

voidmyadd()

{

charc='

intn=0;

structgoodstemp={0},record[N]={0},*p=NULL;

r"

\n打开文件失败!

p=record;

原有商品信息为:

while(feof(fp)==0)

{fscanf(fp,"

%s%s%f%f%d%d%f%d%f"

p->

bh,p->

pm,&

x,&

y,&

p->

jhl,&

xsl,&

z,&

sys,&

pm,x,y,p->

jhl,p->

xsl,z,p->

sys,t);

p->

jj=x;

sj=y;

xse=z;

ml=t;

p++;

n++;

getchar();

\n请输入新记录的编号:

}while(strcmp(temp.bh,"

请输入新记录的品名:

gets(temp.pm);

请输入新记录的进价:

temp.jj);

请输入新记录的售价:

temp.sj);

请输入新记录的进货量:

请输入新记录的销售量:

请输入新记录的销售额:

temp.xse);

请输入新记录的剩余数:

请输入新记录的毛利:

temp.ml);

for(p=record;

p<

record+n;

p++)

if(strcmp(temp.bh,p->

bh)==0)

{printf("

编号重复,要重新输入吗(Y/N)?

do

{c=getche();

}while(c!

c!

putchar('

/n'

break;

if(p==record+n){*p=temp;

break;

}while(c=='

||c=='

for(p=record;

record+n+1;

fprintf(fp,"

pm,p->

jj,p->

sj,p->

xsl,p->

xse,p->

sys,p->

ml);

voidmydelete()

\n按商品编号删除(b),还是按品名删除(p)?

c=getche();

if(c=='

b'

B'

)del_bh();

elseif(c=='

p'

P'

)del_pm();

elseprintf("

\n非法字符!

voiddel_bh()

chartempbh[10]="

structgoodsrecord[N]={0},*p=NULL,*k=NULL;

pm,

&

jj=x,p->

sj=y,p->

x,y,p->

\n请输入要删除的商品编号:

gets(tempbh);

for(k=record;

k<

k++)

if(strcmp(tempbh,k->

bh)==0)break;

if(k<

record+n)

{for(p=k;

k+n-1;

*p=*(p+1);

record+n-1;

else

\n无此商品!

fp=fopen("

if(fp==NULL)

fprintf(fp,"

fclose(fp);

voiddel_pm()

chartemppm[10]="

%4s%12s%8.1f%8.1f%8d%10d%10.1f%8d%10.1f\n"

\n请输入要删除的商品名:

gets(temppm);

if(strcmp(temppm,k->

pm)==0)

re

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2