商场销售管理系统-C++课程设计
c语言课程设计销售管理系统

c语言课程设计销售管理系统一、教学目标本章节的教学目标旨在让学生掌握C语言编程基础,能够运用C语言设计销售管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,了解结构体和文件操作等相关概念。
2.技能目标:学生能够运用C语言进行程序设计,具备编写和调试C语言程序的能力。
学生能够运用结构体设计销售管理系统的相关数据结构,并使用文件操作实现数据的持久化存储。
3.情感态度价值观目标:学生能够体验到编程的乐趣,培养对计算机科学的兴趣。
通过完成销售管理系统的项目,培养学生的创新能力和团队合作意识。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及结构体和文件操作等相关概念。
具体安排如下:1.C语言基本语法和数据类型:介绍C语言的基本语法规则,包括变量声明、数据类型、运算符等。
2.控制结构:讲解条件语句和循环语句的用法,包括if语句、switch语句、for循环、while循环等。
3.函数:介绍函数的定义和调用,包括主函数、参数传递、返回值等。
4.结构体:讲解结构体的定义和使用,包括结构体的声明、成员访问、结构体数组等。
5.文件操作:介绍文件操作的基本方法,包括文件的打开、读写、关闭等。
6.销售管理系统的实现:引导学生运用所学知识设计和实现一个简单的销售管理系统,包括数据结构的设计、功能的实现和文件的操作。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体安排如下:1.讲授法:教师通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,引导学生理解和掌握相关概念。
2.案例分析法:教师通过分析典型的销售管理系统的案例,引导学生运用所学知识进行系统设计和功能实现。
3.实验法:教师引导学生进行实验,让学生亲自动手编写和调试C语言程序,培养学生的编程能力和解决问题的能力。
销售管理系统c语言课程设计

销售管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在销售管理系统中的应用场景和优势;2. 掌握C语言基本语法和数据结构,如数组、结构体、文件操作等;3. 学会使用C语言实现销售管理系统的基本功能,如商品信息管理、销售记录管理、数据查询等。
技能目标:1. 培养学生运用C语言解决实际问题的能力;2. 提高学生分析需求、设计系统、编写代码、调试程序的能力;3. 培养学生团队协作、沟通表达和解决问题的能力。
情感态度价值观目标:1. 培养学生对编程和计算机科学的兴趣,激发学生的创新意识;2. 增强学生的自信心,培养学生面对困难勇于挑战的精神;3. 引导学生关注社会热点问题,理解销售管理系统在现实生活中的应用,培养学生的社会责任感。
课程性质:本课程为实践性较强的课程,以项目为导向,结合实际应用场景,培养学生的编程能力和解决实际问题的能力。
学生特点:学生已经具备C语言基础知识和一定的编程能力,对实际项目有一定的了解,但可能缺乏项目实战经验。
教学要求:注重理论与实践相结合,以项目为主线,引导学生主动探究,培养其编程思维和实际操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构、函数等基本概念;2. 销售管理系统需求分析:介绍系统功能模块,如商品管理、销售记录、用户管理等;3. 数据结构设计:数组、结构体、链表等在销售管理系统中的应用;4. 文件操作:文件的打开、读取、写入和关闭,实现数据的持久化存储;5. 销售管理系统功能实现:分别实现商品信息管理、销售记录管理、数据查询等功能;- 商品信息管理:添加、修改、删除商品信息;- 销售记录管理:记录销售数据,实现销售统计;- 数据查询:根据需求查询商品信息和销售记录;6. 系统测试与优化:对销售管理系统进行功能测试、性能测试和优化;7. 项目总结与评价:总结项目实施过程中的经验和教训,进行自我评价和互相评价。
销售管理系统c课程设计

销售管理系统 c课程设计一、课程目标知识目标:1. 让学生理解销售管理系统的基本概念,掌握其功能模块和业务流程。
2. 使学生掌握数据库设计原则,能运用数据库技术进行销售数据的存储和管理。
3. 帮助学生掌握面向对象编程思想,运用编程语言实现销售管理系统的功能。
技能目标:1. 培养学生运用数据库技术进行数据分析和处理的能力,能独立完成销售数据表的创建和查询。
2. 提高学生运用编程语言进行销售管理系统功能开发的能力,能实现基本的增删改查功能。
3. 培养学生运用软件工程方法进行项目设计和团队协作的能力,能参与小型销售管理系统的设计与开发。
情感态度价值观目标:1. 培养学生对信息技术的兴趣和求知欲,激发他们主动探索新技术、新方法的热情。
2. 培养学生具备良好的职业道德,重视个人信息安全和数据保密,遵循法律法规。
3. 培养学生具备团队协作精神,学会沟通、交流,提高解决问题的能力。
本课程针对高年级学生,具有较强的实践性和综合性。
结合学生特点和教学要求,课程目标旨在使学生掌握销售管理系统相关理论知识,培养实际操作能力,同时注重培养学生的职业素养和团队协作精神,为将来从事信息技术工作打下坚实基础。
通过对课程目标的分解,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。
二、教学内容1. 销售管理系统的基本概念与功能模块:介绍销售管理系统的定义、作用及其在企业中的应用;分析销售管理系统的核心功能模块,如客户管理、销售订单管理、库存管理等。
2. 数据库设计原则与应用:讲解数据库设计的基本原则,如实体-关系模型、范式理论等;结合销售管理系统,展示如何运用数据库技术进行数据存储和管理。
3. 面向对象编程思想:介绍面向对象编程的基本概念,如类、对象、封装、继承、多态等;结合销售管理系统,分析如何运用面向对象编程思想进行系统设计与实现。
4. 销售管理系统功能实现:详细讲解如何运用编程语言(如Java、C#等)实现销售管理系统的核心功能,包括客户管理、销售订单管理、库存管理等模块的编码实现。
c课程设计销售管理系统

c 课程设计销售管理系统一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:通过学习,学生能够理解销售管理系统的概念、组成及其在企业运营中的重要性。
掌握销售管理系统的核心功能,如客户管理、销售机会管理、销售预测等。
2.技能目标:学生能够熟练操作销售管理系统,进行客户信息的录入、查询和维护;能够运用销售管理系统进行销售机会的跟踪和管理;能够根据历史数据进行销售预测。
3.情感态度价值观目标:培养学生对销售管理工作的认同感,提高学生对销售管理系统的使用积极性和主动性;培养学生团队协作意识,强化学生在实际工作中运用销售管理系统解决问题的能力。
二、教学内容本章节的教学内容主要包括以下几个部分:1.销售管理系统的概念及其组成:介绍销售管理系统的定义、特点和作用,以及销售管理系统的基本组成部分。
2.销售管理系统的核心功能:详细讲解客户管理、销售机会管理、销售预测等功能,并通过实例进行分析。
3.销售管理系统的操作与应用:教授学生如何操作销售管理系统,进行客户信息录入、查询和维护;销售机会的跟踪和管理;根据历史数据进行销售预测。
4.销售管理系统的实际应用案例:分析销售管理系统在企业运营中的实际应用,让学生了解销售管理系统在实际工作中的重要性。
三、教学方法为了提高教学效果,本章节将采用以下教学方法:1.讲授法:教师讲解销售管理系统的概念、核心功能和实际应用,为学生提供系统的知识体系。
2.案例分析法:通过分析实际应用案例,让学生了解销售管理系统在企业运营中的重要作用,提高学生的实践能力。
3.实验法:安排课堂实验,让学生动手操作销售管理系统,培养学生的实际操作能力。
4.小组讨论法:分组讨论销售管理系统的应用场景和解决策略,培养学生的团队协作能力和解决问题的能力。
四、教学资源为了支持本章节的教学,我们将准备以下教学资源:1.教材:《销售管理系统教程》等相关教材,为学生提供理论知识的学习参考。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
C语言课程设计-商场商品信息管理系统

目录1 系统分析 (2)1.1 课程设计内容 (2)1.2 系统功能需求分析 (2)1.3 数据结构设计 (3)2 系统设计 (3)2.1 总体设计 (3)2.2 详细设计 (4)2.2.1 界面设计 (4)2.2.2 各功能模块的设计 (6)3 系统编码设计 (9)3.1 main函数 (9)4 系统运行 (22)5 总结 (26)1 系统分析1.1 课程设计内容商场商品信息管理系统1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能文件操作:可建立、打开、保存、关闭数据文件。
如果是新建的文件,可输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。
2、数据输入功能输入进货信息:输入商品编号、数量完成进货操作。
输入销售信息:输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示。
3、数据添加、修改、删除功能添加:添加一种或多种新商品,并能输入其商品信息。
修改:修改商品信息,可包括商品编号、名称、种类、数量和单价。
删除:删除一类或多类商品的所有信息。
4、计算功能可通过查询商品信息功能,自动计算并输出需要进货的商品信息。
5、查询功能可分别按商品编号、名称、类别和需要进货的商品进行查询。
6、排序功能可分别按商品编号、名称、类别等进行排序。
7、数据显示功能可分别浏览输入、查询和排序后的商品信息。
1.3 数据结构设计struct goods /*商品结构体*/{ long int num; /*商品编号*/char name[20]; /*商品名称*/char sort[20]; /*商品类别*/long int count; /*商品库存量*/long int price; /*商品单价*/}goods[200]; /*最多200个商品*/2 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:一、文件管理⏹文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
c课课程设计销售管理系统

c 课课程设计销售管理系统一、教学目标本节课的教学目标是使学生掌握销售管理系统的核心概念和基本操作,培养学生运用信息技术解决实际问题的能力。
具体目标如下:1.知识目标:学生能够了解销售管理系统的定义、功能和基本框架,掌握系统的基本操作方法。
2.技能目标:学生能够运用销售管理系统进行销售数据的收集、分析和处理,提高销售管理效率。
3.情感态度价值观目标:学生认识到销售管理系统在现代商业运作中的重要性,培养学生的信息素养,激发学生对信息技术应用的兴趣。
二、教学内容本节课的教学内容主要包括销售管理系统的概念、功能、基本框架和操作方法。
具体安排如下:1.销售管理系统的概念和功能:介绍销售管理系统的定义,阐述其在企业运营中的重要作用,包括销售预测、销售计划、销售业绩评估等方面。
2.销售管理系统的基本框架:讲解销售管理系统的基本构成,包括客户管理、销售机会管理、销售订单管理、销售数据分析等模块。
3.销售管理系统的操作方法:通过实际操作演示,使学生掌握销售管理系统的基本操作方法,包括数据录入、查询、报表生成等。
三、教学方法为了提高教学效果,本节课将采用多种教学方法相结合的方式进行教学。
具体方法如下:1.讲授法:教师通过讲解销售管理系统的概念、功能和基本框架,使学生掌握基本知识。
2.案例分析法:教师提供实际案例,引导学生运用销售管理系统进行分析和解决问题,提高学生的实际操作能力。
3.实验法:学生在实验室进行销售管理系统的实际操作,巩固所学知识,提高操作技能。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:销售管理系统的相关教材,为学生提供理论支持。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作销售管理系统的教学课件和操作视频,提高教学的直观性和生动性。
4.实验设备:提供计算机和相关软件,为学生实际操作提供硬件支持。
五、教学评估为了全面、客观地评估学生的学习成果,本节课将采用多种评估方式相结合的方法。
c课程设计销售管理系统

c 课程设计销售管理系统一、教学目标本课程旨在让学生了解和掌握销售管理系统的基本概念、架构和操作流程,培养学生运用销售管理知识解决实际问题的能力。
具体目标如下:1.知识目标:(1)理解销售管理系统的定义、功能和分类。
(2)掌握销售管理系统的架构和关键技术。
(3)了解销售管理系统的应用场景和行业案例。
2.技能目标:(1)能够运用销售管理系统进行销售数据分析和决策。
(2)具备销售管理系统的搭建、配置和维护能力。
(3)能够根据实际需求,设计和优化销售管理业务流程。
3.情感态度价值观目标:(1)培养学生对销售管理工作的认识,提高其对销售管理职业的尊重。
(2)培养学生团队合作精神,增强其团队协作能力。
(3)培养学生创新意识,激发其对销售管理领域新技术、新理念的关注和研究。
二、教学内容本课程教学内容主要包括以下几个部分:1.销售管理系统概述:介绍销售管理系统的定义、功能、分类和应用场景。
2.销售管理系统架构:讲解销售管理系统的基本架构,包括前端展示、后端服务、数据库管理等。
3.销售管理系统关键技术:介绍销售管理系统中涉及的关键技术,如数据库技术、网络通信技术、信息安全技术等。
4.销售管理系统应用案例:分析销售管理系统的实际应用案例,让学生了解销售管理系统在企业运营中的作用。
5.销售管理业务流程设计:讲解如何根据企业需求,设计和优化销售管理业务流程。
6.销售数据分析与决策:教授如何运用销售管理系统进行销售数据分析,并据此做出决策。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解销售管理系统的基本概念、架构和关键技术。
2.案例分析法:分析销售管理系统的实际应用案例,让学生了解销售管理系统在企业运营中的作用。
3.讨论法:学生就销售管理系统的应用、业务流程设计等方面展开讨论,提高学生的思考和表达能力。
4.实验法:安排实验室实践环节,让学生动手搭建、配置和维护销售管理系统,提高学生的实际操作能力。
销售管理c语言课程设计

销售管理c语言课程设计一、课程目标知识目标:1. 学生能理解销售管理的基本概念和原理,掌握C语言在销售管理中的应用。
2. 学生能运用C语言的基本语法和编程技巧,设计并实现一个简单的销售管理系统。
3. 学生能理解并运用数据结构、文件操作等概念,提高销售管理系统的功能和性能。
技能目标:1. 学生掌握C语言编程的基本方法,能够独立编写、调试和优化销售管理系统的代码。
2. 学生具备分析问题、设计解决方案的能力,能够根据实际需求调整和优化销售管理系统。
3. 学生能够运用所学知识,将C语言应用于其他相关领域,提高编程能力和解决问题的能力。
情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,树立编程解决问题的信心。
2. 学生养成合作、探究的学习习惯,培养团队协作能力和沟通表达能力。
3. 学生能够认识到编程在现实生活中的应用价值,提高对计算机科学的认识和兴趣。
课程性质:本课程为实践性较强的学科,旨在让学生通过实际操作,掌握C语言在销售管理中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实践经验不足。
教学要求:教师需注重理论与实践相结合,引导学生通过实际项目设计,提高编程能力和解决问题的能力。
同时,关注学生的情感态度价值观培养,激发学生的学习兴趣和热情。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 销售管理基本原理:介绍销售管理的基本概念、流程和目标,分析销售管理系统的功能需求。
- 教材章节:第1章 销售管理概述2. C语言基础知识回顾:复习C语言的基本语法、数据类型、运算符、控制结构等。
- 教材章节:第2章 C语言基础3. 销售管理系统的设计与实现:引导学生学习面向对象编程思想,分析系统模块划分,设计数据结构和函数。
- 教材章节:第3章 面向对象编程,第4章 数据结构与算法4. C语言编程实践:指导学生运用所学知识,编写销售管理系统的代码,包括数据输入、处理和输出等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
****大学程序设计课程设计报告商场销售管理系统学号姓名日期目录一.需求分析 (3)二.程序主要功能 (3)三.程序运行平台 (4)四.系统功能框架图 (5)五.程序类说明 (6)六.模块分析 (7)七.比较有特色的地方 (13)八.存在的不足与对策 (13)九.编程体会 (14)十.程序源代码 (15)一.需求分析本系统旨在实现一个小型的商城销售管理系统,对于一个小型的商场或销售店铺来说,实施本系统不仅可以减少工作人员数量,降低成本,而且可以大大提高工作效率,降低工作强度,方便卖家记录商品流通信息,统计销售情况,分析市场需求,帮助卖家更好的管理商场,以获取跟多的利润。
程序主要实现进货管理、商品基本信息查询与修改、利润计算与销售统计、库存管理等及一些辅助功能。
二.程序主要功能该程序的主要功能有1.商品信息管理可对商品信息进行查看、按一定规则排序及商品查找,其中具体信息包括商品名称,编号,进货成本价,销售价,进货总量,销售量,可以对库存,已获得利润,总体成本价等进行计算2.管理员功能可实现对商品信息的进行修改,添加,删除等功能,并进行文件的操作储存,以更好的保护信息,能有效的管理好商品信息的隐秘性。
3.辅助功能该程序实现了一下清屏,清空文件,操作提示等善后辅助功能,能帮助用户更好的应用该程序,使程序的功能最大化实现。
三.程序运行平台该程序是用VC++6.0制做的,使用Microsoft Visual C++ 6.0运行该程序,具体操作是:打开Microsoft Visual C++ 6.0,菜单栏里点文件→打开工作区→找到“图书管理系统.dsw”这个文件→打开,或者在资源管理器中双击该文件,此时,VC++6.0会自动打开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。
四.系统功能框架图商城销售管理系统商品基本信息名称编号成本单价销量商品管理修改数据创建新表增加商品删除商品文件存档商品信息查看显示全部内容商品查找显示商品信息按销量排序按利润排序进入系统退出系统其它辅助功能使用说明及帮助等五.程序类说明有关商品信息的类//存储商品信息class GoodsInfo{public:char * name ; //商品名称int number; //商品编号float cost_p; //成本单价float unit_p; //销售单价int num_all; //共计商品件数int num_now; //现存商品件数int num_sell; //已售出商品件数float cost_all; //进货总计成本价float profit; //已销售商品获得的利润GoodsInfo * next; //指向下一个商GoodsInfo(); //构造函数GoodsInfo(char * a,int b,float c,float u,int all,int sell) ; //重载构造函数void operator= (const GoodsInfo &right); //重载=void setInfo(char * a,float c,float u,int all,int sell) ; //数据载入char* getname(){return name;} //返回姓名用于查找显示商品信息void Amend(GoodsInfo *);void show(GoodsInfo *);~GoodsInfo(){ delete [] name;}};商品类链表class GoodList :public GoodsInfo{public:GoodList();//构造函数,指针初始化~GoodList();//析构函数,释放GoodsInfo * head; //头指针GoodsInfo * p; //活动指针1GoodsInfo * p2; //活动指针2(指向最后一个)void create(); //创建函数void showinfo(GoodsInfo *); //显示GoodsInfo * search(); //查找void saveInfo();//信息存档void getInfo(); //上传信息void addInfo(GoodsInfo *); //添加数据void sort(); //按销量显示void menu();void delete_();//删除节点};六.模块分析菜单:所有函数均封装在商品类及商品链表类中(GoodsInfo 和GoodList)信息存储在类GoodsInfo中,类中定义了3个GoodsInfo指针,一个是*head,作为链表的头指针,另一个是*p,作为活动指针,一个*p2,指向链表的尾节。
在不同的类的成员函数中都可使用,为了防止该活动指针使用过频,造成几个函数同时使用同一个指针指向不明,在有些函数里还定义了一些临时指针。
1.创建此函数为是创建商品信息数据,构成商品信息表是使用,用于让用户批量添加商品。
按照程序的提示,可依次添加商品信息,按‘Y’继续,其他建则停止,返回主菜单。
此时链表创建成功,*head指向链表的头,p2指向尾。
可用于后续函数的操作。
2.添加跟创建有一样的用途,用于添加商品信息,不同的是添加只能用于已有原链表存在的情况下。
但这个不能批量添加,一次只能添加一个,并且存放在原链表尾节点的后一个,形成一个新的链表。
3.查找顾名思义,此函数用于查找商品信息。
在原始信息过多的时候,可以通过查找(按商品编号和商品名称两钟方式)查看自己想看的商品详细信息。
若不存在该商品,程序则自动输出未找到,然后返回主菜单。
若查找到该商品,函数返回该节点的指针,并用单个显示函数显示出来。
4.修改此函数是基于查找函数之上的。
在查找到需要修改的单元后,选择自己需要修改的项目。
函数会询问是否需要继续修改,Y继续,其他键则返回主菜单。
5.删除删除和修改一样,基于查找函数之上,用于删除不需要的节点。
操作方法也和前面类似。
6.显示此函数用于批量显示商品信息。
该函数以表格的型式显示,明了清晰,有助于比较。
7.排序排序是基于显示函数的一个函数。
该函数用选择排序法,以两种(按销量和按利润)方法排序显示,有助于商家对比比较分析哪种商品的销量好利润高,便于管理和优化商城的盈利。
8.上传当需要输入数据过多过大时,可以通过上传函数,直接把文件中的数据读到程序中并形成链表,然后再继续后续操作。
这个和创建函数具有差不多的功能,不过一个是从键盘读入,一个是从文件中读入。
文件上传成功后,函数会自动显示成功,然后跳到主菜单进行其他项目。
9.存档上传和存档是文件和程序的两个接头。
在数据操作过程中为避免数据丢失,可边操作变保存,在退出程序之前,程序也会自动弹出询问是否需要保存,这是比较人性化的一点,以免造成不可估量的后果。
保存成功后会自动输出成功字样,并退出或继续程序。
存档和上传合并利用,下一次运行程序时,可以直接上传上次所保存的数据然后继续操作,就不需要工作人员一个一个慢慢输入了。
10.其他清屏是一个辅助函数,为了清晰界面方便操作美化外观。
退出程序是会自动询问是否保存文件,然后调用析构函数,释放链表清除数据,然后安全退出。
七、比较有特色的地方有特色的函数指的是实现地较为巧妙的类的构造函数、成员函数、析构函数等函数,也可以是指针处理的函数,文件处理的函数等比较有特色的函数,能体现巧妙构思即可。
特别是运算附的重载,大大减小了代码的数量,简洁了程序。
还有就是文件操作方面,比较合理和人性化。
八.存在的不足在文件编写的时候我此次采用的是txt储存数据,虽然有助于使用者查看数据,但是在面对一串庞大数据是,dat文件的效率明显会高很多。
还有就是由于学得不够深,程序的功能总体来说还比较少,有待以后更深层的学习后完善。
比如界面方面的处理,和对每天销售情况的记录等等。
商品流通的具体过程等该程序都没有记录。
需要改进的地方还有很多。
九、心得体会通过这次课程设计,我清楚的认识到了C++是一门很庞大的并且很有实用价值的一门学科,它一种非常简洁高效的语言。
类的特色在这次编程过程中有了充分的体会。
就以前所学的C语言而言,我明显感觉到C++在编写这种比较复杂的程序时的优势,他的重载函数运算符的等操作也是一大有点。
模块的分块化,当需要用到某个函数时再进行调用,大大增强了程序的可读性,而且代码也更加合理清晰。
就拿这次我所写的商场销售管理系统来说,商品类的操作是一个整体,写在一个中.cpp,文件里面同时也可以另外写到一个.h 的头文件里面,在写程序的时候再进行调用。
课程设计真的很能锻炼人,平时上课都是讲的基础知识,上机也只是编写的小程序,不能把知识融会贯通。
然而这次课设是编写的一个小系统,把所学的知识都联系起来了,在刚刚看到要求时是觉得有很大的难度的,毕竟是第一次编写一个商场销售管理系统。
但是想到有志者事竞成,只要敢于思考敢于尝试,按步骤一步一步来也是能编写出程序的。
于是我首先把程序类图先画了出来,把程序基本结构勾勒出来,化整为零,一个一个小功能慢慢写起,写完一个在主函数中验证一个看是否正确,通过后在进行下一个,逐步实现。
而后编写主函数,菜单等,完善功能。
因为我刚刚入门c++,基本工还不足,能力还很弱,所以在写的过程中遇到很多困难,有些以前很熟悉的代码也忘了,于是我开始翻阅以前的书籍,边对照边回忆,终于完成了。
特别是在文件操作方面尤为薄弱,我意思到了自己的弱点。
由于自己的不足,以后学习还要更加努力,不懂时多问老师多向同学学习。
作为一个计算机专业的学生,计算机语言是我们的基本功,我们应该扎实自己的基础,才能更快更好的发展。
十.源代码#ifndef LIST_H#define LIST_H#include "GOODSINFO.H"class GoodList :public GoodsInfo{public:GoodList(); //构造函数,指针初始化~GoodList(); //析构函数,释放GoodsInfo * head; //头指针GoodsInfo * p; //活动指针1GoodsInfo * p2; //活动指针2(指向最后一个)void create(); //创建函数void showinfo(GoodsInfo *); //显示GoodsInfo * search(); //查找void saveInfo(); //信息存档void getInfo(); //上传信息void addInfo(GoodsInfo *); //添加数据void sort(); //按销量显示void menu();void delete_(); //删除节点};#endif//存储商品信息#ifndef GOODSINFO_H#define GOODSINFO_Hclass GoodsInfo{public:char * name ; //商品名称int number; //商品编号float cost_p; //成本单价float unit_p; //销售单价int num_all; //共计商品件数int num_now; //现存商品件数int num_sell; //已售出商品件数float cost_all; //进货总计成本价float profit; //已销售商品获得的利润GoodsInfo * next; //指向下一个商GoodsInfo(); //构造函数GoodsInfo(char * a,int b,float c,float u,int all,int sell) ; //重载构造函数void operator= (const GoodsInfo &right); //重载=void setInfo(char * a,float c,float u,int all,int sell) ; //数据载入char* getname(){return name;} //返回姓名用于查找//显示商品信息void Amend(GoodsInfo *);void show(GoodsInfo *);~GoodsInfo(){ delete [] name;}};#endif#include<iostream>using namespace std;#include"GOODSINFO.H"#include<string.h>GoodsInfo::GoodsInfo() //构造函数{name=new char [21];number=cost_p=unit_p=num_all=num_now=num_sell=cost_all=profit=0;next=NULL;}GoodsInfo::GoodsInfo(char * a,int b,float c,float u,int all,int sell) //重载构造函数{strcpy(name,a);number=b;cost_p=c;unit_p=u;num_all=all;num_sell=sell;num_now=all-sell;cost_all=c*all;profit=(u-c)*sell;next=NULL;}void GoodsInfo::operator= (const GoodsInfo &right) //重载={strcpy(name,);number=right.number ;cost_p=right.cost_p;unit_p=right.unit_p ;num_all=right.num_all ;num_sell=right.num_sell ;num_now=right.num_now ;cost_all=right.cost_all;profit=right.profit ;}void GoodsInfo::setInfo(char * a,float c,float u,int all,int sell) //数据载入{strcpy(name,a);cost_p=c;unit_p=u;num_all=all;num_sell=sell;num_now=all-sell;cost_all=c*all;profit=(u-c)*sell;next=NULL;}void GoodsInfo::show(GoodsInfo * h) //显示{if(h==NULL) cout<<"NULL!\n";else{cout<<"-----------------------------------\n"<<"商品名: "<<h->name<<endl;cout<<"编号: "<<h->number<<endl<<"成本: "<<h->cost_p<<endl<<"销售单价: "<<h->unit_p<<endl<<"销量:"<<h->num_sell <<endl<<"库存: "<<h->num_now<<endl<<"已获得利润:"<<h->profit<<endl;}}void GoodsInfo:: Amend(GoodsInfo * h) //修改信息{ int F;char S;cout<<"~~~~~~~~~~~~~~~~~~\n"<<"^2.商品成本单价^"<<endl<<"^3.商品销售单价^"<<endl<<"^4.进货数量^"<<endl<<"^5.销售数量^"<<endl<<"~~~~~~~~~~~~~~~~~~\n";do{cout<<"请选择需要修改的项目编号:"<<endl;cin>>F;switch(F){case 1 :{cout<<"~~~~~~~~~~~~~~~~~~~~\n"<<"|请输入修改后的名称|\n"<<"~~~~~~~~~~~~~~~~~~~~";cin.ignore ();cin.getline(h->name,21);break;}case 2 :{cout<<"~~~~~~~~~~~~~~~~~~~~~~~\n" <<"|请输入修改后的成本价: \n"<<"~~~~~~~~~~~~~~~~~~~~~~~";cin>>h->cost_p;break;}case 3 :{cout<<"请输入修改后的销售单价: ";cin>>h->unit_p;break;}case 4 :{cout<<"请输入修改后的进货量: ";cin>>h->num_all;break;}case 5 :{cout<<"请输入修改后的销售量: ";cin>>h->num_sell;break;}}h->cost_all=h->cost_p*(h->num_all);h->num_now=h->num_all -(h->num_sell);h->profit=(h->unit_p -(h->cost_p ))*h->num_sell; cout<<"是否需要继续修改?";cin>>S;}while(S=='Y');}#include <iostream>using namespace std;#include <string>#include<iomanip>#include <fstream>#include"LIST.H"GoodList::GoodList() //构造函数{p=new GoodsInfo [sizeof(GoodsInfo)];head=NULL;p2=NULL;p->next =NULL;}GoodList::~GoodList() //析构函数{while(head!=NULL){p=head;head=p->next ;delete [] p;}}void GoodList::create() //创建{int n=0;char f='Y';cout<<"请输入商品信息:"<<endl;while(f=='Y'){n+=1;if(n==1) head=p;else{p=new GoodsInfo [sizeof(GoodsInfo)];p2->next=p;}cout<<"商品名称: ";if(n==1) cin.ignore ();cin.getline (p->name,21);cout<<"商品编号:";cin>>p->number;cout<<"成本价: ";cin>>p->cost_p;cout<<"销售价: ";cin>>p->unit_p;cout<<"共计商品件数: ";cin>>p->num_all;cout<<"已售出商品件数: ";cin>>p->num_sell;p->num_now=p->num_all-(p->num_sell);p->cost_all=p->cost_p*(p->num_all);p->profit=((p->unit_p)-(p->cost_p))*(p->num_sell);p2=p;cout<<"是否继续输入?(输入‘Y’继续)";cin>>f;cin.ignore();}if(head!=NULL) p2->next=NULL; //P2指向最后一个}void GoodList::showinfo(GoodsInfo * h) //显示信息{cout<<setw(10)<<"商品名称"<<setw(10)<<"编号"<<setw(8)<<"进价"<<setw(8)<<"售价"<<setw(8)<<"销量"<<setw(8)<<"库存"<<setw(12)<<"已得利润"<<endl;while(h!=NULL){cout<<setw(10)<<h->name<<setw(10)<<h->number<<setw(8)<<h->cost_p<<s etw(8)<<h->unit_p<<setw(8)<<h->num_sell<<setw(8)<<h->num_now<<setw(12)<<h->profit<<en dl;h=h->next;}}GoodsInfo * GoodList::search() //查找{if(head==NULL) { cout<<"数据为空!\n";return NULL;}else{GoodsInfo *h;h=head;int f;cout<<"~~~~~~~~~~~~~~~~\n"<<"请选择查找方式:\n"<<"1.按商品编号\n" <<"2.按商品名称"<<endl<<"~~~~~~~~~~~~~~~~\n";cin>>f;switch(f){case 1:{int x,y;cout<<"请输入需查找的商品编号:";cin>>x;while(h!=NULL&&(x!=(y=h->number)))h=h->next;if(x==y) return h;lse {cout<<"没有找到该商品!\n";return NULL;}}case 2:{char x[21];int c;cout<<"请输入需查找的商品名称:";cin.ignore ();cin.getline(x,21);while(h!=NULL&&(c=strcmp(x,h->name))!=0)h=h->next;if(c==0) return h;else {cout<<"没有找到该商品!\n";return NULL;}}}}}void GoodList::saveInfo() //存档{fstream File;File.open("GoodsInformation.txt",ios::out|ios::binary);if(!File){ cout<<"文件打开失败!\n";exit(0);}p=head;GoodsInfo X;File<<"商品名称编号进价售价总量销量库存已得利润\n";while(p!=NULL){ X=*p;File<<<<" "<<X.number<<" "<<X.cost_p<<""<<X.unit_p<<" "<<X.num_all <<" "<<X.num_sell<<" "<<X.num_now <<""<<X.profit<<endl;p=p->next;}cout<<"文件保存成功!\n";File.close();}void GoodList::getInfo() //上传{ fstream File;File.open("GoodsInformation.txt",ios::in);if(!File){ cout<<"文件打开失败!\n";exit(0);}char s[81];GoodsInfo h;File.getline (s,81);int n=0;while(!File.eof ()){if(File.fail()) break;n+=1;if(n==1) head=p;else{ p=new GoodsInfo [sizeof(GoodsInfo)]; p2->next=p;}File>>>>h.number>>h.cost_p>>h.unit_p>>h.num_all>>h.num_sell>>h.num_now>>h.profit;*p=h;p2=p;}cout<<"上传显示完毕!"<<endl;File.close();}void GoodList::addInfo(GoodsInfo * h) //添加{ cout<<"请输入商品信息:"<<endl;p=new GoodsInfo [sizeof(GoodsInfo)];h->next=p;cin.ignore();cout<<"商品名称: ";cin.getline (p->name,21);cout<<"商品编号:";cin>>p->number;cout<<"成本价: ";cin>>p->cost_p;cout<<"销售价: ";cin>>p->unit_p;cout<<"共计商品件数: ";cin>>p->num_all;cout<<"已售出商品件数: ";cin>>p->num_sell;p->num_now=p->num_all-(p->num_sell);p->cost_all=p->cost_p*(p->num_all);p->profit=((p->unit_p)-(p->cost_p))*(p->num_sell); p2=p;p2->next=NULL;}void GoodList::delete_() //删除节点{ if(head==NULL) cout<<"NULL!\n";else{cout<<"请输入需要删除的商品编号:";int n;GoodsInfo * h;cin>>n;h=head;while(h->next!=NULL&&h->number!=n){ p=h;h=h->next;}if(h->number==n){char F;cout<<"是否确定删除该节点?";cin>>F;if(F=='Y'){ if(h==head) head=h->next;else p->next=h->next;delete [] h;cout<<"删除成功!\n";}}else cout<<"未找到该节点!\n";}}void GoodList::sort () //按销量排序显示{GoodsInfo *h1,*h2,t;int n;if(head==NULL) cout<<"NULL!\n";else{ int F;cout<<"~~~~~~~~~~~~~~~~\n"<<"请选择排序方式:\n"<<"1.按销量降序排列\n"<<"2.按利润降序排列\n"<<"~~~~~~~~~~~~~~~~\n";cin>>F;switch(F){case 1:for(h1=head;h1->next!=NULL;h1=h1->next){ n=h1->num_sell;for(h2=h1->next;h2!=NULL;h2=h2->next){ if((h2->num_sell)>(h1->num_sell)) n=h2->num_sell;if(n!=h1->num_sell){t=*h2;*h2=*h1;*h1=t;}}}break;case 2:for(h1=head;h1->next!=NULL;h1=h1->next){ n=h1->profit;for(h2=h1->next;h2!=NULL;h2=h2->next){ if((h2->profit)>(h1->profit))n=h2->profit;if(n!=h1->profit){t=*h2;*h2=*h1;*h1=t;}}}break;}}showinfo(head);}void GoodList::menu() //菜单{cout<<endl<<endl<<" ----------------------------------------------\n" <<" |************商场销售管理系统***************|\n"<<" |-------------------------------------------|\n" <<" ||\n"<<" |------------------*菜单*-------------------|\n" <<" ||\n"<<" |1.创建 2.添加 3.修改|\n"<<" ||\n"<<" |4.显示 5.存档 6.查找|\n"<<" ||\n"<<" |7.上传8.排序9.清屏|\n"<<" ||\n"<<" |10.删除0.退出|\n" <<" ---------------------------------------------\n" cout<<"*** 请选择操作***: ";}#include <iostream>using namespace std;#include"LIST.H"int main(){ cout<<endl<<endl<<endl<<endl<<endl<<endl <<"****************************************************\n"<<" ******\n"<<" ******\n"<<" *** 欢迎进入商场销售管理系统!***\n"<<" ******\n"<<" ******\n"<<"****************************************************\n"<<" ";system("pause");system("cls");GoodList goods;GoodsInfo * a;int N;goods.menu();cin>>N;while(N!=0){switch(N){case 1 : { goods.create();break;}case 2 : { goods.addInfo(goods.p2);break;}case 3 : { cout<<"~~~~~~~~~~~~~~~~~~~~\n" <<"请选择需要修改的单元\n"<<"~~~~~~~~~~~~~~~~~~~~\n";a=goods.search();goods.show(a);if(a!=NULL)goods.Amend(a);else cout<<"*error!*\n";break;}case 4 : { goods.showinfo(goods.head);break;}case 5 : { goods.saveInfo();break;}case 6 : { a=goods.search ();goods.show (a);break;}case 7 : { goods.getInfo();break;}case 8 : { goods.sort();break;}case 9 : { system("cls");break;}case 10 :{ goods.delete_();break;}}goods.menu();cin>>N;}char F;cout<<" ***是否需要保存文件***('Y'确认保存) "; cin>>F;if(F=='Y') goods.saveInfo();system("cls");cout<<"\n\n\n\n\n\n\n\n\n\n\ 谢谢使用!"<<endl<<endl<<"";return 0;}。