C++商品销售管理系统.docx

上传人:b****5 文档编号:11942666 上传时间:2023-04-16 格式:DOCX 页数:22 大小:170.92KB
下载 相关 举报
C++商品销售管理系统.docx_第1页
第1页 / 共22页
C++商品销售管理系统.docx_第2页
第2页 / 共22页
C++商品销售管理系统.docx_第3页
第3页 / 共22页
C++商品销售管理系统.docx_第4页
第4页 / 共22页
C++商品销售管理系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C++商品销售管理系统.docx

《C++商品销售管理系统.docx》由会员分享,可在线阅读,更多相关《C++商品销售管理系统.docx(22页珍藏版)》请在冰豆网上搜索。

C++商品销售管理系统.docx

C++商品销售管理系统

课程设计(论文)任务书

软件 学  院  软件工程 专  业 2012-1 班   

一、课程设计(论文)题目小型商品销售管理系统

二、课程设计(论文)工作自2013年6月17日起至2013年6月21日止。

三、课程设计(论文)地点:

软件学院创新大楼

四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)使学生掌握系统各功能模块的基本工作原理;

(2)掌握C++的基本编程原理和及基本的编程方法;

(3)使学生学会系统调试;

(4)培养学生分析、解决问题的能力;

(5)提高学生的软件文档写作能力。

2.课程设计的任务及要求

1)基本要求:

(1)分析系统各功能模块的工作原理;

(2)至少有查找,排序、插入、删除等功能;

(3)提出系统的设计方案;

(4)对所进行编程、调试、修改。

2)创新要求:

在基本要求达到后,可进行创新设计.

3)课程设计论文编写要求

(1)要按照书稿的规格打印誊写课设论文

(2)论文包括设计目的和要求、设计内容、流程图、程序实现、程序调试、设计小结、参考文献等

(3)毕业论文装订按学校的统一要求完成

4)答辩与评分标准:

(1)完成原理分析:

20分;

(2)完成设计过程:

25分;

(3)完成调试运行结果正确:

40分;

(4)答辩:

15分。

5)参考文献:

(1)谭浩强.《C++程序设计实践指导》清华大学出版社

(2)谭浩强.《C++程序设计》清华大学出版社

(3)http:

//

6)课程设计进度安排

内容天数     地点

总体需求与分析构思及收集资料1     图书馆

各模块的编程实现,调试与修改3     机房

撰写论文与答辩1     图书馆,

学生签名:

2013年6月17日

课程设计(论文)评审意见

(1)完成原理分析(20分):

优( )、良( )、中( )、一般( )、差( );

(2)设计分析  (25分):

优( )、良( )、中( )、一般( )、差( );

(3)完成调试  (20分):

优( )、良( )、中( )、一般( )、差( );

(4)运行结果  (20分):

优( )、良( )、中( )、一般( )、差( );

(5)答辩  (15分):

优( )、良( )、中( )、一般( )、差( );

(6)格式规范性及考勤是否降等级:

是( )、否( )

评阅人签名:

 职称:

讲师

2013年6月22日

 

 

一:

设计目的和要求

1.设计目的

课程设计的目的是培养应用《C++面向对象程序设计》设计方法及思想解决实际问题的能力,掌握使用面向对象设计语言C++,熟悉面向对象开发平台VisualC++6.0,提高调查研究、查阅技术资料以及编写技术文献的能力。

2.设计要求

用C++编写一系统,实现商品销售管理:

1)商品基本信息的键盘录入,删除,修改,磁盘导入和保存;

2)商品库存信息的键盘录入,删除,修改,磁盘导入和保存;

A)输入一个商品编号,能自动搜索并在屏幕上输出商品的库存信息

B)输入一个商品编号和新增库存,能更新商品的库存信息。

如商品001,输入新增库存4单位,若商品001原来的库存为3单位,则更新其库存为7单位,并保存至磁盘;

3)销售记录的键盘录入和磁盘保存。

要求在输入一条销售记录时,只能手动录入商品编号和销售数量,其他相关信息自动生成后,将完整的(包含商品基本信息,价格,销售数量,销售金额,销售日期,以及库存数量)销售记录和商品库存信息在屏幕上输出,并保存在指定的磁盘文本中,不得覆盖之前的销售记录和库存信息。

4)输入一个销售日期,如201212,能自动计算出2012年12月份的商品总销售额。

 

二:

设计内容

1.主要类设计

对于整个商品销售管理系统来说,首先,定义个Ware类作为基类:

classWare//基本信息类

{public:

Ware(){num=0;name[0]='N';price=0;}

Ware(intn1,charname1,doubleprice1)

{num=n1;name[0]=name1;price=price1;}

voidinput();

voidoutput();

intnum;

charname[10];

doubleprice;

};

然后我们再定义两个派生类:

Stock类,即商品库存信息类;Sell类,即商品销售信息类;具体实现如下:

classStock:

publicWare//库存类

{

public:

Stock(){number=0;}

Stock(intn):

number(n){};

voidinput();

voidoutput();

intnumber;

};

classSell:

publicWare//销售类

{

public:

Sell(){numb=0;count=0;sale=0;time[0]='N';}

voidinput();

voidoutput();

intsell();

intnumb;

doublecount;

doublesale;

chartime[64];

};

2.其它各函数的主要功能实现

4)函数按功能来分可分为两大类,其一是功能实现类,作用是实现题目要求的各种功能,如商品基本信息的键盘录入,删除,修改,磁盘导入和保存;商品库存信息的键盘录入,删除,修改,磁盘导入和保存等。

intinputware();//输入商品基本信息并且存至文件

intoware();//输出商品基本信息

intcware();//修改Ware数据

intinquire();//查询库存信息

intcstock();//修改库存信息

intsell();//输入商品销售信息

intsalecase();//查看商品销售信息

intsum();//查看特定时段的销售额

intsalesum();//总销售额

voidDelete()//删除函数

另一类是导航菜单类,主要作用是链接程序的各个模块,并且给使用者做部分导航,是使用者更清晰明了的使用本系统。

它们有:

voidwelcome();//欢迎函数,作为主菜单链接以下四个函数

voidWARE();//调用和商品基本信息有关的函数

voidSTOCK();//调用和商品库存有关的函数

voidSALE();//调用和商品销售有关的函数

voidExit();//退出函数

3.主函数main()

主函数main()中用了switch语句,可实现选择个功能,即选择对商品的哪些性质进行操作,1,对商品的基本信息进行操作。

2,对商品的库存进行操作。

3,对商品的销售进行操作。

0为退出程序。

进入程序后,可选择执行的功能;

流程图1中简单介绍了该商品管理系统的主要功能,在后面会对各部分进行分析。

3.以下具体功能具体分析

1).在Ware()函数中,用了switch语句,可实现5个功能,即1.信息输入2.信息查询3.修改信息4.返回菜单0.退出。

2)在Sell()函数中,用了switch语句,可实现6个功能,即1.输入销售信息2.销售信息查询3.查询总销售额4.查询特定时刻的销售额5.返回菜单0.退出。

3)在Stock()函数中,用了switch语句,可实现4个功能,即1.库存信息输入2.库存信息查询3.库存修改信息4.返回菜单0.退出。

4)在Delete()函数中,用了switch语句,可实现5个功能,即1.信息输入2.信息查询3.修改信息4.返回菜单0.退出。

5)Exit()函数作为退出函数。

 

三.流程图

 

 

 

 

 

四:

程序实现

1.在主函数中调用了welcome函数,使用了Sleep函数和cout函数使程序更加美观;

intmain()

{inti;

cout<<"********************************"<

cout<<"欢迎使用"<

cout<<"********************************"<

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

{cout<<".";

Sleep(120);

}

welcome();

return0;

}

2.Welcome的功能实现如下所示

voidwelcome()

{

intm;

system("cls");

cout<<"*********************************"<

cout<<"[1]商品基本信息操作"<

cout<<"[2]商品库存操作"<

cout<<"[3]销售情况记录"<

cout<<"[4]删除商品信息"<

cout<<"[0]退出程序"<

cout<<"*********************************"<

 

cin>>m;

switch(m)

{

case1:

WARE();break;

case2:

STOCK();break;

case3:

SALE();break;

case4:

Delete();break;

case0:

Exit();break;

};

}

在该函数中使用是Switch语句,通过switch()语句可选择各功能,为了使界面更美观,也使用了cout函数作为显示菜单;

3.删除函数,本函数是将文件中保存的商品数据导出至商品类的对象数组中,然后通过商品编号来进行判断,如果符合条件,删除该商品所有数据,并且重新读入文件,覆盖旧数据。

voidDelete()

{

intnum,i;

Stockstock[N];

Wareware[N];

fstreaminstock("stock.dat",ios:

:

in|ios:

:

out|ios:

:

app);

fstreaminware("ware.dat",ios:

:

in|ios:

:

out|ios:

:

binary);

check(instock);

check(inware);

for(i=0;i

{

instock>>stock[i].number;

inware.read((char*)&ware[i],sizeof(ware[i]));

}

 

cout<<"请输入要删除的商品编号:

";

cin>>num;

for(i=0;i

{

if(num==ware[i].num)

{

ware[i].output();

stock[i].output();

for(intm=i;m

{ware[m]=ware[m+1];

stock[m]=stock[m+1];

}

break;

}

}

inware.close();

instock.close();

for(i=0;i

{

fstreaminstock1("stock.dat",ios:

:

in|ios:

:

out);

instock1.seekp(i*sizeof(stock[i].number),ios:

:

beg);

instock<

fstreaminware("ware.dat",ios:

:

in|ios:

:

out|ios:

:

binary);

inware.seekp(i*sizeof(ware[i]),ios:

:

beg);

inware.write((char*)&ware[i],sizeof(ware));

}

instock.close();

inware.close();

cout<<"返回上一级请按1,退出程序请按0;";

cin>>i;

if(i)

welcome();

elseExit();

}

4.商品销售函数

通过switch来链接各个功能函数

switch(m)

{

case1:

oware();break;

case2:

inputware();break;

case3:

cware();break;

case4:

welcome();

case0:

Exit();break;

};

}

5.商品库存函数

switch(m)

{

case1:

inquire();break;

case2:

cstock();break;

case3:

welcome();

case0:

Exit();break;

};

}

6.商品销售函数

switch(m)

{

case1:

sell();break;

case2:

salecase();break;

case3:

sum();break;

case4:

salesum();break;

case5:

welcome();

case0:

Exit();break;

};

}

7.退出函数

voidExit()

{

system("cls");

cout<<"*********************************"<

cout<<"谢谢使用"<

cout<<"*********************************"<

}

8.修改商品基本数据。

首先通过文件操作读取已存的商品数据,然后输入商品编号,然后进行判断,若符合条件,则调用输入函数,使用文件指针,然后对原来的数据进行输出,覆盖旧数据。

intcware()

{

inti,num;

Wareware[N];

fstreaminware("ware.dat",ios:

:

in|ios:

:

out|ios:

:

binary);

check(inware);

cout<<"修改数据"<

for(i=0;i

{

inware.read((char*)&ware[i],sizeof(ware[i]));

if(ware[i].num==0)continue;

if(inware.eof())break;

}

cout<<"num:

";

cin>>num;

for(i=0;i

{

if(num==ware[i].num)

{

ware[i].input();

inware.seekp(i*sizeof(ware[i]),ios:

:

beg);

inware.write((char*)&ware[i],sizeof(ware));

break;

}

}

inware.close();

cout<<"返回上一级请按1,退出程序请按0;";

cin>>i;

if(i)

WARE();

elseExit();

return0;

}

 

9.

Sum是查询某一段时间销售额的函数,首先定义了两个字符串用来存储时间的头尾,然后从文件中读取数据进行判断,如果符合第一个条件,就开始叠加销售额,知道第二个条件满足时,停止循环并且输出销售额。

intsum()

{Sellsell;

chartime1[64],time2[64];

doubleSale=0;

inti=0;

fstreaminsell("sell.dat",ios:

:

in|ios:

:

out|ios:

:

app|ios:

:

binary);

check(insell);

cout<<"输入时间1:

";

cin>>time1;

cout<<"输入时间2:

";

cin>>time2;

do

{

insell.seekg(0,ios:

:

cur);

insell.read((char*)&sell,sizeof(sell));

if(strcmp(time1,sell.time)==0)

{

Sale+=sell.sale;

}

}while(!

strcmp(time2,sell.time)==0);

cout<

insell.close();

cout<<"返回上一级请按1,退出程序请按0;";

cin>>i;

if(i)

SALE();

elseExit();

return0;

}

 

五.程序调试

 

六.设计小结

通过编写商品销售管理系统这个程序,感觉到自己有很多方面的不足,在编写过程中不断的求助于同学,不断的查找资料和翻书本,自己真是受益匪浅。

首先,在编程学习中,实践是非常重要的,无论自己在读程序看程序时是多么的明白,但到了电脑面前,才知道在实际操作中有很多问题等着我们去解决。

而且我也意识到学习在很大程度上靠自觉,要自己积极主动的去发现问题和解决问题,遇到不懂得一定要打破沙锅问到底,拿出积极的学习态度!

这样才能巩固我们的基础知识,有利于我们今后的发展,所以以后要多多加强动手操作和编写能力。

其次要多和同学老师交流,因为写程序是有很多技巧和方法的,这是一笔宝贵的经验等着我们去学习,在经常的交流和实践中,才能准确快速的编写出所需要的程序,通过程序进而解决问题。

在这次设计中,我也深刻认识到自己的不足,今后一定要不断的进步,好好锻炼自己的编码能力!

成为一个出色的程序员!

 

七:

参考文献

[1]谭浩强《C++程序设计实践指导》清华大学出版社

[2]谭浩强《C++程序设计》清华大学出版社

 

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

当前位置:首页 > 成人教育 > 专升本

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

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