c++商品管理程序_第1页
c++商品管理程序_第2页
c++商品管理程序_第3页
c++商品管理程序_第4页
c++商品管理程序_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c+商品管理程序 -作者xxxx -日期xxxx 【精品文档】 【精品文档】 淮阴工学院 C+C+程序设计课程设计报告程序设计课程设计报告 选题选题名称名称: 商品管理系统 系(院)系(院): 计算机工程学 院 专专 业业: 计算机科学与技术 班班 级级: 计算机#班 姓姓 名名: # 学学 号号: # 指指导导教教师师: 步山岳 学年学期学年学期: 2015 2016 学年 第 1 学期 【精品文档】 【精品文档】 2015 年 12 月 29 日 【精品文档】 【精品文档】 设计任务书设计任务书 课题课题 名称名称 商品管理系统 设计设计 目的目的 1.调研商品管理系统的功能; 2.学习与

2、商品管理系统相关的参考资料和基于VC+集成环境的编程技术; 3.通过实际编程加深对基础知识的理解,提高实践能力; 4.学习开发资料的收集与整理,学会撰写课程设计报告。 实验实验 环环境境 1.微型电子计算机(PC); 2.安装Windows 2000以上操作系统,Visual C+6.0开发工具,Microsoft Office PowerPoint 2003。 任任务务 要求要求 1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求, 注意材料收集与整理; 2.在第,17周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作; 3.本课题主要功能有:1)添加:即

3、增加一个商品的记录到系统中;2)删除:即从系 统中删除一个商品的记录;3)查询:可根据商品名称、编号查找商品的相关信息 ,若找到显示该商品的全部信息;4)修改:可修改一个商品的除名称外的其它信 息;5)状态:提供该商品在库、不在库的状态。 4.结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结 论正确,正文字数不少于3000字(不含代码)。 工作工作进进度度计计划划 序号序号起止日期起止日期工工 作作 内内 容容 1 在预设计的基础上,进一步查阅资料,完善设计方 案,形成书面材料。 22015.12. 272015.12. 29 设计总体方案,构建、绘制流程框图,编写代码

4、,上 机调试。 32015.12. 292015.12. 30 测试程序,优化代码,增强功能,撰写设计报告。 42015.12. 302015.12. 31 提交软件代码、设计报告,参加答辩,根据教师反馈 意见,修改、完善设计报告。 指指导导教教师师( (签签章):章): 年年 月月 日日 【精品文档】 【精品文档】 摘要: 分别对软件的需求进行分析,对软件的概要设计和软件的详细设计进行阐述,以及对软 件的组装及测试的详细叙述,并附加了软件的使用说明书(操作手册)。程序设计一般由 两部分组成:算法和数据结构,合理选择和实现一个数据结构与处理这些数据结构具有 同样的重要性。以将每个功能分别编译实

5、现,再通过函数包含,调用等方法实现各项功 能间的连接为设计思想,并采用将商品当作一个整体,整体类型为结构体,结构体中的 域表示商品的属性的这种定义结构作为数据结构。软件将各个模块的功能分为列菜单、 商品登记、添加、查询、修改、删除、显示等来组成整个程序,实现对商品信息的系统管 理。该程序界面友好,易于操作,使操作者和使用者应用更加方便。 关键词:课程设计;商品管理;VC+;代码 【精品文档】 【精品文档】 目目 录录 1 1课题综述课题综述.1 1 课题来源.1 课题意义.1 预期目标.1 面对问题.1 需要解决的关键技术.2 2 2 系统分析系统分析.3 3 涉汲的基础知识.3 解决问题的基

6、本思路.4 总体方案.4 3 3 系统设计系统设计.5 5 系统达到的目的.5 系统功能说明.5 3.2.1 功能分析说明图.5 3.2.2 各项功能说明.5 系统设计环境与模块的划分.6 3.3.1 系统设计环境.6 3.3.2 系统模块的划分.6 软件设计主要原理.7 3.4.1 采用的主要数据结构类型.7 3.4.2 各个模块之间的调用关系和数据储存格式说明.8 3.4.3 主要流程图.8 4 4 代码编写代码编写.1414 各模块之间的调用方式.14 程序中实现各项功能的函数与程序代码.14 5 5 程序调试程序调试.2323 出现问题及解决方法.23 6 6 运行与测试运行与测试.2

7、424 总总 结结 .2929 致致 谢谢 .2929 参考文献参考文献.2929 【精品文档】 【精品文档】 1课题综述课题综述 本章主要阐述了课题的来源、意义、预期的目标以及要面对的问题和需要解决的关 键技术。 “C+程序设计”是计算机科学与技术专业最重要的一门专业基础课程,涉及知识点 多,教、学难度非常大,往往费了大量时间而达不到预期效果。俗语说:学习的最好方法 是实践。为了给我们提供一个理论联系实际的机会,学院特课设课程设计实践课,布置 一定难度的课题,要求我们独立完成。本课题便是来自课程设计实践课中的课题。 通过设计商品管理系统这一实践活动,可以促使我们建立课程设计的整体思想,锻 炼

8、我们的编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经 验、探索前沿知识的习惯,树立团队协作精神。 写出代码,不断调试修改,最终实现登记商品信息、添加一个商品记录、查询一个商品 的全部信息(包括按商品编号查询和商品名称查询)、修改一个商品除名称外的全部信 息、删除一个商品记录等功能。 【精品文档】 【精品文档】 如何去实现预期的功能?比如在修改商品信息的时候如果出现编号重复了,如何实现 对此的辨别?在修改商品信息时,如果遇到不需要修改的信息,如何简化工作,跳过对 某一信息的修改,而非将愿信息重新输入一边等。这些都是要面对的问题。 选择使用结构,则须知道结构体的基础知识,要定

9、义的域内容,各数据的类型。需 要用到的函数及其定义,熟练运用循环语句。 确立菜单形式选项,则要熟悉switch语句。 【精品文档】 【精品文档】 2 系统分析系统分析 基本数据基本数据类类型:型:整型(int)、浮点型(单精度float、双精度double)、字符型(char)。 结结构体构体:自定义数据类型中的一种,它可将多种数据类型组合在一起使用,方便 描述现实世界的各种各样的客观对象之间的关系。 If语语句句:也称条件语句,主要功能是当程序运行到此处可以根据条件的不同而决 定执行什么样的后续语句。它的语法有两种形式: if ( (表达式表达式) ) 语语句句; ; if ( (表达式表达

10、式) ) 语语句句1; ; else 语语句句2; ; Switch语语句句:也称开关语句,它是多分支结构。 一般形式为: case : break; case : break; case : break; default: : 注意点:注意点:Switch括号中的表达式只能是整型、字符型或枚举型表达 式。Case后面的常量表达式之类型必须而与其匹配。 【精品文档】 【精品文档】 头头文件:文件:是诸多字符空间操作的库函数集合。 本系统用到“strcmp”来实现字符的比较。 函数:函数:由能完成特定任务的独立程序代码块组成; ;其内部工作对程序的其余部分 是不可见的。 形式如下: 返回返回类类

11、型型 函数名(参数表)函数名(参数表) 语语句句块块; ; 函数名:函数名:应尽可能反映函数的功能; 参数表:参数表:0个或多个变量,用于向函数传送数值或从函数带回数值。如果参 数表列中参数个数为0,称为无参函数 返回返回类类型:型:用return返回函数值的类型。如果函数没有返回值,返回类型应 为void。一个函数也可以有多个return语句,在函数的执行过程 中,遇到任一个return语句,将立即停止执行,并返回到调用函 数。 函数体:函数体:花括号中的语句称为函数体。一个函数的功能,通过函数体中的语 句来完成。 针对相应的问题,选择合适的语句。通过函数调用,来实现各个功能。 【精品文档】

12、 【精品文档】 将各功能,以菜单的形式列出。建立菜单,通过使用case语句,选择相应的功能。 将每一个功能以函数的形式写出,在主函数的每一个case语句中调用。 3 系统设计系统设计 系统达到的目的系统达到的目的 该系统主要是实现对商品信息进行系统化的管理,首先可以对商品基本信息进行 登记,其次在有需要的情况下可以继续添加一条或多条商品记录,然后可以按照商品的 编号或者名称查询商品的全部信息,还可以实现修改商品除名称外的所有信息以及删 除商品记录等。由此来系统化管理商品信息,并达到简易操作的目的。 系统功能说明系统功能说明 3.2.1 功能分析说明图 该软件功能分析说明图如3-1所示 【精品文

13、档】 【精品文档】 图3-1 商品管理系统分析说明图 3.2.2 各项功能说明 (1)登记商品信息: 这部分的功能主要是商品信息的登记。按照提示依次输入商品的编号、名称、价格 以及库存。 (2)添加商品信息: 此功能是在已登记的基础上如果需要添加则选择此项。 (3)按编号查找商品信息: 此项功能可以根据用户输入的商品编号查出该商品的所有信息。 (4)按名称查找商品信息: 此项功能可以根据用户输入的商品名称查出该商品的所有信息。 (5)删除学生信息: 进入该项功能界面后,用户可以通过学生的编号对某个商品记录进行删除。 (6)修改商品信息: 商品管理系统 按 编 号 按 名 称 修 改 编 号 修

14、 改 价 格 修 改 库 存 【精品文档】 【精品文档】 进入修改界面,系统将提示输入要修改的商品编号,用户正确输入编号后会出现子 菜单,其中包括修改编号、价格、库存以及返回主菜单。如果修改后的编号与库存中其 他商品编号重复,将提示重新输入。 (7)商品库存状态: 此项功能可以根据用户输入的商品编号查出该商品库存是否为零,如果为零,则显示“ 该商品不在库!”。不为零,则显示“该商品在库!”。 (8)显示商品的所有信息: 选择此项功能后,系统将自动在屏幕上显示出所有商品的信息。 (9)退出系统: 选择此项功能后,退出系统,结束任务。 系统设计环境与模块的划分系统设计环境与模块的划分 3.3.1

15、系统设计环境 :美国微软公司开发的C+集成开发环境,它集源程序的编写、编译、连接、调试、运行, 以及应用程序的文件管理于一体,是当前PC机上最流行的C+程序开发环境。 3.3.2 系统模块的划分 该软件主要组成模块和各个模块之间的调用关系如图3-2: 商品管理系商品管理系统统 主菜单 主函数(包括以 下所有函数) 登 记 商 品 信 息 添 加 商 品 信 息 查 找 商 品 信 息 修 改 商 品 信 息 退 出 系 统 【精品文档】 【精品文档】 图3-2 模块调用关系图 软件设计主要原理软件设计主要原理 3.4.1 采用的主要数据结构类型 该程序采用的是结构体类型来处理学生的所有基本信息

16、,如下所述: 包含的库函数有: #include/数据流输入/输出 #include /字符串处理 #include /参数化输入/输出 setw() #include /进程处理 system(cls) #include /standard input and output #define N 100 /宏定义又称为预定义,可以定义常量 /商品结构体定义 struct shangpin 删 除 商 品 信 息 商 品 在 库 状 态 显 示 所 有 商 品 信 息 【精品文档】 【精品文档】 int id; /商品编号 char spname20; /商品名称 float price; /商

17、品价格 int kucun; /商品库存 ; shangpin spN=0,0,0,0; /结构体初始化 int count=0,temp; /定义全局变量count,temp; /函数声明: void tianjia(); /添加商品记录 void bianhaochazhao(); /按编号查找商品信息 void namechazhao(); /按名称查找商品信息 void xiugai(); /修改商品信息 void shanchu(); /删除商品记录 void zhuangtai(); /商品库存状态 void xianshi(); /显示所有商品信息 void xiugaibian

18、hao(); /修改编号 void xiugaijiage(); /修改价格 void xiuggaikucun(); /修改库存 3.4.2 各个模块之间的调用关系和数据储存格式说明 各函数模块之间的调用关系主要是主函数调用所有其它功能函数和菜单函数,并 利用循环使各个功能函数运行完毕后都会回到菜单。该程序的数据以二进制储存。 【精品文档】 【精品文档】 3.4.3 主要流程图 一、主函数 图图3-3 主函数流程图 二、添加商品信息 图3-4登记商品信息流程图 开始 选择功能 结束 开始 输入商品的编号 、名称、价格、库 存提示是否继 续输入(y/n) 自动保 存 结束 登 记 商 品 信

19、息 添 加 商 品 信 息 按 编 号 查 找 商 品 信 息 修 改 商 品 信 息 删 除 商 品 信 息 商 品 在 库 状 态 退 出 系 统 显 示 所 有 商 品 信 息 按 名 称 查 找 商 品 信 息 【精品文档】 【精品文档】 三、查找商品信息 图图3-5查找商品信息流程图 开始 选择操作3或操 作4 按提示输入 编号或者名 称 输出相应 商品信息 返回主菜 单 结束 【精品文档】 【精品文档】 四、修改商品信息 图3-6修改商品信息 输入要修改 的商品编号 选择操作4 返回本函数菜 单 输入新 编号 开始 选择操作 1 选择操作 2 选择操作 4 选择操作 3 进入编号

20、修改界面 返回主菜 单 进入库存 修改界面 进入价格 修改界面 输入新 价格 输入新 库存 结束 【精品文档】 【精品文档】 五、删除商品信息 图图3-7删除商品信息流程图 六、商品在库状态 开始 选择操作6 输入要删 除的商品 编号 系统对此编号商品的 所有进行清零实现删 除 结束 开始 选择操作 7 输入要查询 的商品编 号 输出相应商 品在库状态 返回主菜 单 结束 【精品文档】 【精品文档】 图图3-7商品在库状态流程图 七、显示所有商品信息 图图3-8显示所有商品信息流程图 八、退出函数 图图3-9退出函数流程图 开始 选择操作9 退出程 序 结束 开始 选择操作8 输出所有商 品的

21、编号、名 称、价格、库 存清单 结束 【精品文档】 【精品文档】 4 代码编写代码编写 各模块之间的调用方式各模块之间的调用方式 程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现 的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数 进行调用。 程序中实现程序中实现各项功能的函数与程序代码各项功能的函数与程序代码 一、头文件及宏定义: #include/数据流输入/输出 #include /字符串处理 #include /参数化输入/输出 setw() #include /进程处理 system(cls) #include /standard input and

22、 output #define N 100 /宏定义又称为预定义,可以定义常量 /商品结构体定义 struct shangpin int id; /商品编号 char spname20; /商品名称 float price; /商品价格 int kucun; /商品库存 ; shangpin spN=0,0,0,0; /结构体初始化 int count=0,temp; /定义全局变量count,temp; /函数声明: void tianjia(); /添加商品记录 【精品文档】 【精品文档】 void bianhaochazhao(); /按编号查找商品信息 void namechazhao

23、(); /按名称查找商品信息 void xiugai(); /修改商品信息 void shanchu(); /删除商品记录 void zhuangtai(); /商品库存状态 void xianshi(); /显示所有商品信息 void xiugaibianhao(); /修改编号 void xiugaijiage(); /修改价格 void xiuggaikucun(); /修改库存 /主菜单 void MenuMain() system(cls); /清屏 cout-欢迎使用我们的商品管理系统- endl; cout- endl; coutendl; cout-endl; cout 请选择

24、服务 endl; cout 1 - 添加商品记录 endl; cout 2 - 按编号查找商品信息 endl; cout 3 - 按名称查找商品信息 endl; cout 4 - 修改商品信息 endl; cout 5 - 删除商品记录 endl; cout 6 - 商品库存状态 endl; cout 7 - 显示所有商品信息 endl; cout 8 - 安全退出 endl; cout-endl; 【精品文档】 【精品文档】 coutoptions; switch (options) case 1: tianjia(); /调用添加函数 break; case 2: bianhaochazh

25、ao(); /调用编号查找函数 break; case 3: namechazhao(); /调用名称查找函数 break; case 4: xiugai(); /调用修改函数 break; case 5: shanchu(); /调用删除函数 break; 【精品文档】 【精品文档】 case 6: zhuangtai(); /调用库存状态函数 break; case 7: xianshi(); /调用显示函数 break; case 8: cout谢谢使用!endl; return; /getchar(); /添加商品记录 void tianjia() char str; for(int

26、i=0;iN;i+) cout请输入商品编号、名称、价格、库存:spi.idspi.spnamespi.pricespi.kucun; count+; cout继续(y/n)str; if(str= n) break; /按编号查找商品信息 void bianhaochazhao() 【精品文档】 【精品文档】 int num,flag=0; coutnum; for(int i=0;icount;i+) if(num=spi.id) flag=1; coutsetw(6)编号setw(20)名称setw(6)价格setw(6) 库存endl; coutsetw(6)spi.id setw(2

27、0)spi.spname setw(6)spi.price setw(6)spi.kucun; coutendl; break; if(flag!=1) cout对不起,该编号不存在!endl; getchar(); /按名称查找商品信息 void namechazhao() int flag=0; char sppname20; coutsppname; for(int i=0;icount;i+) if(strcmp(spi.spname,sppname)=0) /相等返回0 flag=1; 【精品文档】 【精品文档】 coutsetw(6)编号setw(20)名称setw(6)价格set

28、w(6) 库存endl; coutsetw(6)spi.id setw(20)spi.spname setw(6)spi.price setw(6)spi.kucun; coutendl; break; if(flag!=1) cout对不起,该商品不存在!endl; getchar(); /修改商品信息 void xiugai() int flag=0; int t,m; cout请输入要修改的商品编号:m; for(int i=0;icount;i+) if(m=spi.id) flag=1; temp=i; break; if(flag=1) edit: cout 修改商品信息 endl

29、; cout-endl; cout 请选择: endl; cout 1 - 修改编号 endl; cout 2 - 修改价格 endl; 【精品文档】 【精品文档】 cout 3 - 修改库存 endl; cout 4 - 返回主菜单 endl; cout-t; switch (t) case 1: xiugaibianhao(); goto edit; break; case 2: xiugaijiage(); goto edit; break; case 3: xiuggaikucun(); goto edit; break; case 4: break; if(flag!=1) cout

30、对不起,该商品不存在!endl; /修改编号 void xiugaibianhao() int flag=0,s1; cout请输入商品的新编号:s1; for(int i=0;icount;i+) if(spi.id=s1) flag=1; temp=i; break; 【精品文档】 【精品文档】 if(flag=1) cout该编号已存在!endl; else sptemp.id=s1; /修改价格 void xiugaijiage() float s2; cout请输入商品的新价格 :s2; sptemp.price=s2; /修改库存 void xiuggaikucun() int s

31、3; cout请输入商品库存 :s3; sptemp.kucun=s3; /删除商品记录 void shanchu() int m; cout请输入要删除的商品编号:m; for(int i=0;icount;i+) if(m=spi.id) spi = spi+1; count-; 【精品文档】 【精品文档】 /商品库存状态 void zhuangtai() int num,flag=0,m; coutnum; for(int i=0;icount;i+) if(num=spi.id) flag=1; m=i; if (flag=1) if(spm.kucun=0) cout该商品不在库!e

32、ndl; else cout该商品在库!endl; if(flag!=1) cout对不起,该商品不存在!endl; getchar(); /显示所有商品信息 void xianshi() cout 商品信息 endl; cout- endl; 【精品文档】 【精品文档】 coutsetw(6)编号setw(20)名称setw(6)价格setw(6) 库存endl; for(int i=0;icount;i+) coutsetw(6)spi.id setw(20)spi.spname setw(6)spi.price setw(6)spi.kucun; coutendl; getchar();

33、 5 程序调试程序调试 出现问题及解决方法出现问题及解决方法 (1)、修改商品信息函数无法运行 原因:函数结构混乱,case中镶入了太多的函数内容,混乱之下,容易含糊 解决方法:将case 下的各函数剥离出来,分别写void xiugaibianhao()、void xiugaijiage()、void xiuggaikucun()将商品信息的编号修改、价格修改、库存修改以三个子函 数的形式写出来,然后镶嵌到修改商品信息的主体函数中。 (2)、添加商品信息时,已登记的信息被清空 【精品文档】 【精品文档】 原因:for(int i=0;iN;i+),此for循环中从0重新开始计数,前面内容被替

34、代 解决方法:在商品信息登记中定义(int count=0)来计数,将添加商品记录函数中for循环中的i初值定位count(即 int i=count)。 6 运行与测试运行与测试 将把程序运行过程写出,并对此程序的一些细节和具体的操作方法加以说明,说明如下 : 1、 进入系统,主要有选项1-登记商品信息、2-添加商品信息、3- 按编号查找商品信息、4-按名称查找商品信息、5-修改商品信息、6- 删除商品记录、7-商品库存状态、8-显示所有商品信息、9- 安全退出。界面如图6-1: 【精品文档】 【精品文档】 图6-1 商品管理系统主界面 2、 选择1 登记商品信息,进入界面,跟据提示依次输入

35、商品编号、名称、价格、库存。如: 1 lxq 66 1545。如图6-2: 图6-2登记商品信息界面图a 【精品文档】 【精品文档】 输入y,继续输入商品记录,2 ppp 69 1626。如图6-3: 图6-3登记商品信息界面图b 输入n,确认。返回主菜单,如图6-4: 图6-4登记商品信息界面图c 3、选择2,添加商品信息,根据提示,依次输入商品信息:3 a 6 0。如图6-5: 图6-5添加商品信息 输入库存为0,为下面测试,第7个选项,商品库存状态作铺垫;输入n返回 主菜单。 4、选择3 按编号查找商品信息,进入界面,按提示输入要查询的商品编号,输入1。如图 6-6: 【精品文档】 【精

36、品文档】 图6-6 编号查找商品信息a 确认,显示该编号商品的所有信息,如图6-7: 图6-7编号查找商品信息b 按任意键返回主菜单。 5、选择4 按名称查找商品信息,进入界面,按提示输入要查询的商品名称,输入a。如图 6-8: 图6-8按名称查找商品信息a 确认,显示该编号商品的所有信息,如图6-9: 图6-9按名称查找商品信息b 按任意键返回主菜单。 6、选择5修改商品信息,按提示输入要修改的商品的编号,输入1。如图6-10: 图6-10修改商品信息a 确认,进入操作界面,如图6-11: 图6-11修改商品信息b 【精品文档】 【精品文档】 选择1,进入编号修改界面,并输入新编号2。如图6-12: 图6-11修改商品信息c 如果编号重复,系统将提示编号已存在,要求返回上级菜单,重新选择输入, 如图6-13: 图6-11修改商品信息d 选择1,重新输入新编号99。如图6-14: 图6-11修改商品信息e 确认,并返回上级菜单,选择2,修改价格,输入新价格56。如图6-15: 图6-11修改商品信息f 确认,并返回上级菜单,选择3,修改库存,输入新库存0。如图6-16: 图6-11修改商品信息g 确认,并返回上级菜单,选择4,返回主菜单。 【精品文档】 【精品文档】 7、选择8,显示所有商品信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论