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

c语言销售管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在开发销售管理系统中的应用,掌握基本的程序结构、语法和常用库函数。
2. 学生能掌握使用C语言进行数据存储、读取、计算和展示的方法,并能应用于销售管理系统的设计与实现。
3. 学生能理解销售管理系统的业务流程,掌握相关算法和数据处理方法。
技能目标:1. 学生能运用所学知识,独立设计并编写简单的销售管理系统模块,如商品信息管理、销售记录管理等。
2. 学生能通过调试和优化程序,提高销售管理系统的稳定性和效率。
3. 学生能运用所学知识解决实际问题,具备一定的编程实践能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,形成积极向上的学习态度。
2. 学生通过团队协作,培养沟通、协作和解决问题的能力,增强团队意识。
3. 学生能够认识到编程在现实生活中的应用价值,激发对计算机技术发展的关注和探索。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握C语言在销售管理系统中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作经验不足。
教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的个体差异,因材施教,提高学生的编程水平和综合素质。
二、教学内容1. 销售管理系统概述:介绍销售管理系统的基本概念、功能模块及其在实际应用中的重要性。
- 教材章节:第一章 引言2. C语言基础回顾:回顾C语言的基本语法、数据类型、运算符、控制结构等,为后续编程实践打下基础。
- 教材章节:第二章 C语言基础3. 数据存储与读取:学习文件操作、内存分配等知识,掌握数据在销售管理系统中的存储和读取方法。
- 教材章节:第三章 文件操作、第四章 内存管理4. 销售管理系统功能模块设计:- 商品信息管理:学习结构体、数组等知识,实现商品信息的添加、修改、查询和删除功能。
- 教材章节:第五章 结构体与数组- 销售记录管理:学习链表、排序等知识,实现销售记录的录入、查询、统计和排序功能。
C语言课程设计商品销售管理系统

C语言课程设计商品销售管理系统商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:1.源文件采用多文件的工程结构 2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,能够把其保存在一个文件中,并对该文件可进行打开和关闭操作。
2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。
(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/ void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/。
c语言销售管理系统课程设计

c语言销售管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言销售管理系统的基本概念、设计方法和实现技巧。
通过本课程的学习,学生应能够:1.理解销售管理系统的业务流程和需求分析。
2.掌握C语言的基本语法和数据结构。
3.学会使用C语言进行程序设计和调试。
4.能够独立完成销售管理系统的模块设计和实现。
5.培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.销售管理系统的需求分析:介绍销售管理系统的业务流程,让学生了解销售管理系统的基本功能和需求。
2.C语言基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生进行程序设计打下基础。
3.数据结构:介绍常用的数据结构,如数组、链表、栈和队列等,让学生学会如何选择合适的数据结构来解决实际问题。
4.销售管理系统的模块设计:引导学生运用C语言和数据结构知识,分模块设计销售管理系统。
5.程序调试与优化:讲解程序调试的方法和技巧,让学生能够独立发现和解决问题。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解基本概念、原理和方法,让学生掌握销售管理系统的设计思路。
2.案例分析法:分析实际案例,让学生了解销售管理系统的应用场景。
3.实验法:让学生动手实践,培养实际编程能力和问题解决能力。
4.讨论法:学生进行小组讨论,促进学生之间的交流与合作。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论基础。
2.参考书:提供一些销售管理系统的经典案例和源代码,供学生参考学习。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。
4.实验设备:提供计算机、编程环境等,让学生能够进行实际编程和调试。
五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的表现等,占总评的20%。
C语言课程设计销售管理系统报告(大全五篇)

C语言课程设计销售管理系统报告(大全五篇)第一篇:C语言课程设计销售管理系统报告报告正文1、题目与要求:1.1 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。
每个销售员都将当日出售的每种产品各写一张便条交上来。
每张便条内容有•销售员的代号•产品的代号•这种产品当天的销售额1.2 每位销售员每天可能上缴0-5张便条。
假设手机到了上个月的所有便条,编写一个处理系统,读取上月的销售情况(自己设定),进行如下处理:•计算上个月没人每种产品的销售额•按销售额对销售员进行排序,输出排序结果(销售员代号)•统计每种产品的总销售额,对这些产品从高到低的顺序输出结果(须输出产品的代号和销售额)•输出统计报表2、需求分析本程序将用到文件系统,list.txt文件内容作为数据源,其中单行内容代表一张纸条。
程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。
3、功能实现设计3.1总体设计根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。
其中主要模块是前四个模块。
3.2流程图3.3详细设计:3.3.1【头文件和预定义】 #include #include#include #include #define M 155 3.3.2【功能函数声明】 void detail(); void foreach(); void menu(); void product(); void readdata(); void seller(); void total(); void choice(); 3.3.3【数据结构】原始数据有销售员代号、产品代号和销售额,所以定义一个全局结构体数组scrip用于保存原始数据。
销售管理系统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课课程设计销售管理系统

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