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

下载本文档

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

文档简介

1、淮阴工学院 C+C+程序设计课程设计报告程序设计课程设计报告 选题名称选题名称: 商品管理系统 系(院)系(院): 计算 机 工 程 学 院 专专 业业: 计算机科学与技术 班班 级级: 计算机#班 姓姓 名名: # 学学 号号: # 指导教师指导教师: 步山岳 学年学期学年学期: 2015 2016 学年 第 1 学期 2015 年 12 月 29 日 设计任务书设计任务书 课题课题 名称名称 商品管理系统 设计设计 目的目的 1.调研商品管理系统的功能; 2.学习与商品管理系统相关的参考资料和基于 VC+集成环境的编程技术; 3.通过实际编程加深对基础知识的理解,提高实践能力; 4.学习开

2、发资料的收集与整理,学会撰写课程设计报告。 实验实验 环境环境 1.微型电子计算机(PC) ; 2.安装 Windows 2000 以上操作系统,Visual C+6.0 开发工具,Microsoft Office PowerPoint 2003。 任务任务 要求要求 1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求, 注意材料收集与整理; 2.在第,17 周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作; 3.本课题主要功能有:1)添加:即增加一个商品的记录到系统中;2)删除:即从系 统中删除一个商品的记录;3)查询:可根据商品名称、编号查找商品的相关

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

4、程序,优化代码,增强功能,撰写设计报告。 42015.12. 302015.12. 31 提交软件代码、设计报告,参加答辩,根据教师反 馈意见,修改、完善设计报告。 指导教师(签章):指导教师(签章): 年年 月月 日日 摘要: 分别对软件的需求进行分析,对软件的概要设计和软件的详细设计进行阐述,以 及对软件的组装及测试的详细叙述,并附加了软件的使用说明书(操作手册) 。程序 设计一般由两部分组成:算法和数据结构,合理选择和实现一个数据结构与处理这些 数据结构具有同样的重要性。以将每个功能分别编译实现,再通过函数包含,调用等 方法实现各项功能间的连接为设计思想,并采用将商品当作一个整体,整体类

5、型为结 构体,结构体中的域表示商品的属性的这种定义结构作为数据结构。软件将各个模块 的功能分为列菜单、商品登记、添加、查询、修改、删除、显示等来组成整个程序, 实现对商品信息的系统管理。该程序界面友好,易于操作,使操作者和使用者应用更 加方便。 关键词:课程设计;商品管理;VC+;代码 目目录录 1 1 课题综述课题综述 .1 1 1.1 课题来源.1 1.2 课题意义.1 1.3 预期目标.1 1.4 面对问题.1 1.5 需要解决的关键技术.2 2 2 系统分析系统分析.3 3 2.1 涉汲的基础知识.3 2.2 解决问题的基本思路.4 2.3 总体方案.4 3 3 系统设计系统设计.5

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

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

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

9、的问题。 1.5 需要解决的关键技术需要解决的关键技术 选择使用结构,则须知道结构体的基础知识,要定义的域内容,各数据的类型。 需要用到的函数及其定义,熟练运用循环语句。 确立菜单形式选项,则要熟悉 switch 语句。 2 系统分析系统分析 2.1 涉汲的基础知识涉汲的基础知识 基本数据类型:基本数据类型:整型(int) 、浮点型(单精度 float、双精度 double) 、字符型 (char) 。 结构体结构体:自定义数据类型中的一种,它可将多种数据类型组合在一起使用,方 便描述现实世界的各种各样的客观对象之间的关系。 If 语句语句:也称条件语句,主要功能是当程序运行到此处可以根据条件

10、的不同而 决定执行什么样的后续语句。它的语法有两种形式: if ( (表达式表达式) ) 语句语句; ; if ( (表达式表达式) ) 语句语句 1; ; else 语句语句 2; ; Switch 语句语句:也称开关语句,它是多分支结构。 一般形式为: case : break; case : break; case : break; default: : 注意点:注意点:Switch 括号中的表达式只能是整型、字符型或枚举型表 达式。Case 后面的常量表达式之类型必须而与其匹配。 String.h 头文件:头文件:是诸多字符空间操作的库函数集合。 本系统用到“strcmp”来实现字符的

11、比较。 函数:函数:由能完成特定任务的独立程序代码块组成;其内部工作对程序的其余部分 是不可见的。 形式如下: 返回类型返回类型 函数名(参数表)函数名(参数表) 语句块;语句块; 函数名:函数名:应尽可能反映函数的功能; 参数表:参数表:0 个或多个变量,用于向函数传送数值或从函数带回数值。如果 参数表列中参数个数为 0,称为无参函数 返回类型:返回类型:用 return 返回函数值的类型。如果函数没有返回值,返回类型 应为 void。一个函数也可以有多个 return 语句,在函数的执行 过程中,遇到任一个 return 语句,将立即停止执行,并返回到 调用函数。 函数体:函数体:花括号中

12、的语句称为函数体。一个函数的功能,通过函数体中的 语句来完成。 2.2 解决问题的基本思路解决问题的基本思路 针对相应的问题,选择合适的语句。通过函数调用,来实现各个功能。 2.3 总体方案总体方案 将各功能,以菜单的形式列出。建立菜单,通过使用 case 语句,选择相应的功 能。将每一个功能以函数的形式写出,在主函数的每一个 case 语句中调用。 3 系统设计系统设计 3.1 系统达到的目的系统达到的目的 该系统主要是实现对商品信息进行系统化的管理,首先可以对商品基本信息进行 登记,其次在有需要的情况下可以继续添加一条或多条商品记录,然后可以按照商品 的编号或者名称查询商品的全部信息,还可

13、以实现修改商品除名称外的所有信息以及 删除商品记录等。由此来系统化管理商品信息,并达到简易操作的目的。 3.2 系统功能说明系统功能说明 3.2.1 功能分析说明图 该软件功能分析说明图如 3-1 所示 图 3-1 商品管理系统分析说明图 3.2.2 各项功能说明 (1)登记商品信息: 这部分的功能主要是商品信息的登记。按照提示依次输入商品的编号、名称、价 格以及库存。 (2)添加商品信息: 商品管理系统 按 编 号 按 名 称 修 改 编 号 修 改 价 格 修 改 库 存 此功能是在已登记的基础上如果需要添加则选择此项。 (3)按编号查找商品信息: 此项功能可以根据用户输入的商品编号查出该

14、商品的所有信息。 (4)按名称查找商品信息: 此项功能可以根据用户输入的商品名称查出该商品的所有信息。 (5)删除学生信息: 进入该项功能界面后,用户可以通过学生的编号对某个商品记录进行删除。 (6)修改商品信息: 进入修改界面,系统将提示输入要修改的商品编号,用户正确输入编号后会出现 子菜单,其中包括修改编号、价格、库存以及返回主菜单。如果修改后的编号与库存 中其他商品编号重复,将提示重新输入。 (7)商品库存状态: 此项功能可以根据用户输入的商品编号查出该商品库存是否为零,如果为零,则 显示“该商品不在库!” 。不为零,则显示“该商品在库!” 。 (8)显示商品的所有信息: 选择此项功能后

15、,系统将自动在屏幕上显示出所有商品的信息。 (9)退出系统: 选择此项功能后,退出系统,结束任务。 3.3 系统设计环境与模块的划分系统设计环境与模块的划分 3.3.1 系统设计环境 Microsoft Visual C+ 6.0:美国微软公司开发的 C+集成开发环境,它集源程序的 编写、编译、连接、调试、运行,以及应用程序的文件管理于一体,是当前 PC 机上 最流行的 C+程序开发环境。 3.3.2 系统模块的划分 该软件主要组成模块和各个模块之间的调用关系如图3-2: 图 3-2 模块调用关系图 3.4 软件设计主要原理软件设计主要原理 3.4.1 采用的主要数据结构类型 该程序采用的是结

16、构体类型来处理学生的所有基本信息,如下所述: 包含的库函数有: #include/数据流输入/输出 #include /字符串处理 #include /参数化输入/输出 setw() #include /进程处理 system(cls) #include /standard input and output #define N 100 /宏定义又称为预定义,可以定义常量 /商品结构体定义 struct shangpin int id; /商品编号 商品管理系统商品管理系统 主菜单 主函数(包括以 下所有函数) 登 记 商 品 信 息 添加 商品 信息 查找 商品 信息 修改 商品 信息 删除

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

18、商品记录 void zhuangtai(); /商品库存状态 void xianshi(); /显示所有商品信息 void xiugaibianhao(); /修改编号 void xiugaijiage(); /修改价格 void xiuggaikucun(); /修改库存 3.4.2 各个模块之间的调用关系和数据储存格式说明 各函数模块之间的调用关系主要是主函数调用所有其它功能函数和菜单函数,并 利用循环使各个功能函数运行完毕后都会回到菜单。该程序的数据以二进制储存。 3.4.3 主要流程图 一、主函数 开始 图图 3-3 主函数流程图 二、添加商品信息 图 3-4 登记商品信息流程图 三、

19、查找商品信息 选择功能 结束 开始 输入商品的编号、 名称、价格、库存 提示是否继续 输入(y/n) 自动保存 结束 登 记 商 品 信 息 添加 商品 信息 按编 号 查找 商品 信息 修改 商品 信息 删除 商品 信息 商品 在库 状态 退 出 系 统 显示 所有 商品 信息 按名 称 查找 商品 信息 图图 3-5 查找商品信息流程图 开始 选择操作 3 或操作 4 按提示输入编 号或者名称 输出相应商 品信息 返回主菜单 结束 四、修改商品信息 图 3-6 修改商品信息 五、删除商品信息 输入要修改 的商品编号 选择操作 4 返回本函数菜单 输入新 编号 开始 开始 选择操作 6 输入

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

21、.1 各模块之间的调用方式各模块之间的调用方式 程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现 的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进 行调用。 4.2 程序中实现程序中实现各项功能的函数与程序代码各项功能的函数与程序代码 一、头文件及宏定义: #include/数据流输入/输出 开始 选择操作 9 退出程序 结束 结束 #include /字符串处理 #include /参数化输入/输出 setw() #include /进程处理 system(cls) #include /standard input and output #define

22、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(); /按名称查找商品信息 void xiugai();

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

24、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: bianhaochazhao(); /调用编号查找函数 break; case 3: namechazhao();

25、 /调用名称查找函数 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 i=0;iN;i+) cout请输入商品编号、名称、价格、库存:spi.idspi.spnamespi.prices

26、pi.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(20)spi.spname setw(6)spi.price setw(6)spi.kucun; coutendl; break; if(flag

27、!=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)价格setw(6) 库存endl; coutsetw(6)spi.id setw(20)spi.spname setw(6)spi.price setw(6)spi.kucun;

28、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; cout-endl; cout 请选择: endl; cout 1 - 修改编号 endl; cout 2 - 修改价格 endl; cout 3 - 修改库存 en

29、dl; 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对不起,该商品不存在!endl; /修改编号 void xiugaibianhao() int flag=0,s1; cout请输入商品的新编号:s1; for(int i=0;icount;i+)

30、 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 s3; cout请输入商品库存 :s3; sptemp.kucun=s3; /删除商品记录 void shanchu() int m; cout请输入要删除的商品编号:m; for(int i=0;icount;i+) if(m

31、=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该商品不在库!endl; else cout该商品在库!endl; if(flag!=1) cout对不起,该商品不存在!endl; getchar(); /显示所有商品信息 void xianshi() cout 商品信息 endl; cout-endl; couts

32、etw(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(); 5 程序调试程序调试 5.1 出现问题及解决方法出现问题及解决方法 (1) 、修改商品信息函数无法运行 原因:函数结构混乱,case 中镶入了太多的函数内容,混乱之下,容易含 糊 解决方法:将 case 下的各函数剥离出来,分别写 void xiugaibianhao()、void

33、 xiugaijiage()、void xiuggaikucun()将商品信息的编号修改、价格修改、库 存修改以三个子函数的形式写出来,然后镶嵌到修改商品信息的主体函 数中。 (2) 、添加商品信息时,已登记的信息被清空 原因:for(int i=0;iN;i+),此 for 循环中从 0 重新开始计数,前面内容被替 代 解决方法:在商品信息登记中定义(int count=0)来计数,将添加商品记录函 数中 for 循环中的 i 初值定位 count(即 int i=count) 。 6 运行与测试运行与测试 将把程序运行过程写出,并对此程序的一些细节和具体的操作方法加以说明,说明如 下: 1

34、、进入系统,主要有选项 1-登记商品信息、2-添加商品信息、3-按编号查找商 品信息、4-按名称查找商品信息、5-修改商品信息、6-删除商品记录、7-商品 库存状态、8-显示所有商品信息、9-安全退出。界面如图 6-1: 图 6-1 商品管理系统主界面 2、选择 1 登记商品信息,进入界面,跟据提示依次输入商品编号、名称、价格、 库存。如:1 lxq 66 1545。如图 6-2: 图 6-2 登记商品信息界面图 a 输入 y,继续输入商品记录,2 ppp 69 1626。如图 6-3: 图 6-3 登记商品信息界面图 b 输入 n,确认。返回主菜单,如图 6-4: 图 6-4 登记商品信息界

35、面图 c 3、选择 2,添加商品信息,根据提示,依次输入商品信息:3 a 6 0。如图 6-5: 图 6-5 添加商品信息 输入库存为 0,为下面测试,第 7 个选项,商品库存状态作铺垫;输入 n 返回 主菜单。 4、选择 3 按编号查找商品信息,进入界面,按提示输入要查询的商品编号,输 入 1。如图 6-6: 图 6-6 编号查找商品信息 a 确认,显示该编号商品的所有信息,如图 6-7: 图 6-7 编号查找商品信息 b 按任意键返回主菜单。 5、选择 4 按名称查找商品信息,进入界面,按提示输入要查询的商品名称,输 入 a。如图 6-8: 图 6-8 按名称查找商品信息 a 确认,显示该

36、编号商品的所有信息,如图 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

提交评论