1、单 位: *班 学 号:* 农业大学商学院本科课程设计(*)商品价格查询系统姓 名: * 专 业: * 指导教师: * 农业大学商学院二一二年六月35 / 39摘 要主要实现四个方面的功能:1)输出相应的功能键对应的功能便于用户选择;2)商品信息管理;3)客户管理;4)查询商品,客户信息。本系统设置了“添加” 、“查询”、“修改”等功能方便了系统管理员对系统信息与时的更改更新。在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C+,程序运行平台为Windows XP。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题。【关键词
2、】 C+;面向对象;类;管理系统AbstractMainly realizes the four aspects of the function: 1) output corresponding function key corresponding function is convenient for the user to choose; 2) commodity information management; 3) the customer management; 4) inquires the goods, customer information. This system has se
3、t up add, search, modify functions, such as the convenient system administrators to system information in time to change the update. In this system, system developing platform of Windows XP, program design, design the Visual c + + language, and the program ran platform for Windows XP. Program throug
4、h the test and operation, and then realized the design goal, and after appropriate perfect, will can in the application of solving practical problems.【Key Words】C+,Object oriented; Class; Management system目录摘要IAbstractII目录1前言1第一章系统环境分析11.1 Visual C+概述1第二章设计平台搭建12.1VC+6.0的安装和配置1第三章需求分析13.1管理要求分析13.2
5、系统功能描述13.3功能模块划分13.4系统流程图分析13.5 可行性分析1第四章详细设计与实现14.1主界面设计14.2管理员界面14.3初始化商品信息14.4增加商品信息14.5修改商品信息14.6 删除商品信息14.7 按价格从高到低浏览商品信息14.8增加顾客信息14.9 删除顾客信息14.10按从大到小浏览顾客的所有信息14.11 普通顾客功能实现1参考文献1前言为方便对商品、客户和订单等进行高效的管理,编写该程序以提高商品查询的管理效率。使用该程序之后,工作人员可以查询商品名称对应的编号、客户信息,还可以对当查询最近的订单,给出交货日期,以便全面掌握商品的流通情况。本系统主要在于为
6、需要对商品的总体的情况进行全面的了解,与对商品,客户和订单进行处理为公司提供一个高效的管理的平台。商品查询管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以与前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。就目前而言,很多商店的信息管理还比较落后,劳动强度大且效率低,营业人员和管理人员的大量时间都消耗在事务性的工作上。因此,开发商品价格查询管理信息系统是社会发展的迫切需要,同时也将提升商店的各项工作效率,商店的商品管理是一个非常重要和繁杂的事物,需要完成商品的购入存储等很多操作。这就使得使用
7、商品管理系统来管理这样的事物有很好的效果。该商品价格查询系统是一套基于C语言在Visual C+环境中完成的信息管理平台,它不仅是一套管理软件,更能为企业的商品价格信息管理提供了强大的应用支持。第一章 系统环境分析1.1 Visual C+概述Visual C+ 6.0(简称VC+) 具有强大的数据库管理功能,丰富的表格和图形输出功能,实效的精美报表打印功能,语言的易读与灵活性,快速友好的界面开发效率等特点。具有面向对象化的程序设计思想,在传统的结构化程序设计方法中,数据和处理数据的的程序是分离的。当对某段程序进行修改或删除时整个程序中与之相对于的都会修改,从而使程序代码的维护变得比较困难,V
8、C+引用了面向对象的设计方法,将数据和处理数据封装在一个类中,这样,其他函数就不会无意中破坏它的容,达到保护和隐藏数据的目的。如果用最简单的语言来概括,C语言具有的优点是:简洁、灵活、表达能力强、产生的目标代码的质量高、可移植性好。具体有以下几点:(1)C语言同时具备了高级语言和低级语言的特征。C语言适用于编写系统程序和各种软件工具。(2)C语言是结构化程序设计语言,具有结构化程序设计所需要的控制语句,如条件语句if,以与循环语句for、while、dowhile等。(3)C语言支持模块化程序设计。C语言的程序是由函数构成的,对每个函数可以单独编写和调试。(4)C语言具有丰富的数据类型。C语言
9、支持各种高级语言普遍使用的基本数据类型,并允许用基本数据类型构造复杂的数据类型。(5)C语言的运算符种类多,共有34种运算符,功能强大。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。(6)C语言的基本组成部分紧凑、简洁,关键字少。(7)C语言有大量的标准化的库函数。包括用于各种数学计算的函数、用于输入输出的库函数以与系统函数,为程序员编写程序带来了极大的方便。(8)生成的代码质量高。C语言生成的代码与汇编语言生成的代码相比,前者只比后者低10%20%。(9)具有良好的可移植性,应用
10、围广泛,可在很多软件平台和硬件平台上应用。任何事物都不是十全十美的,C语言也有一定的缺陷,了解C语言的缺点,有助于我们在编写程序时扬长避短。具体讲,C语言的缺点有以下两点:(1)C语言比较灵活,在语法上不如一些著名的高级语言(例如Pascal,Ada)严格,错误检查系统不够可靠。(2)C程序的安全性较低。例如对指针的使用没有适当的限制,指针设置错误,可能导致存中的信息被破坏,如果经常出现这种错误,极有可能导致系统的崩溃。除此之外,在书写程序时也应遵循的一定的规则,从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时 应遵循以下规则1.一个说明或一个语句占一行。2.用 括起来的部分,通常表示
11、了程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。第二章 设计平台搭建2.1VC+6.0的安装和配置C语言的翻译程序属于编译程序,要完成对一个C程序的调试,必须经过编辑源程序、编译源程序、连接目标程序和运行可执行程序四个步骤。使用Visual C+6.0就可以完成C语言的调试。Visual C+6.0提供了全屏幕程序调试环境,编辑、编译、连接、运行都可以在该环境中完成。首先介绍关于Visual C+6.0的安装过程。(1)
12、 双击安装包下的SETUP.EXE文件,弹出【Visual C+6.0中文企业版】对话框,如图1.1所示。图 1.1 【Visual C+6.0中文企业版】对话框(2) 依次默认,单击【Next】按钮,进入下一个对话框。直到遇到VisualC+6.0Enterprise】对话框,如图1.2所示。从该对话框中选择要安装的程序,当然,也可以按照默认的设置,直接单击【Next】按钮进入下一步。本次安装选择Typical类型,然后点击下一步。图1.2 【VisualC+6.0 Enterprise】对话框(3)之后会出现【VisualC+6.0 Enterprise Setup】对话框,如图1.3所示
13、。图1.3【Visual C+6.0 Enterprise Setup】对话框(4)完成图1.3步骤之后,会提示Visual C+6.0 Enterprise Setup安装已经完成。即【Visual C+6.0 Enterprise 安装程序】对话框。如图1.4所示。图1.4 【Visual C+6.0 Enterprise 安装程序】对话框(5)点击确定按钮,会出现对话框提示安装者安装MSDN。如果安装MSDN,则单击【Next】按钮,如果不想安装MSDN,取消“安装MSDN”前面的勾号,选择“退出”,如图1.5所示。图1.5 【Install MSDN的安装】第三章 需求分析Micros
14、oft Visual C+ 6.0它基于Windows平台,因此具有极强的灵活性和强大的可扩展性,是全球领先的C语言集成开发环境。支持各个主要领域的c+开发。Microsoft Visual C+ 6.0实际上包了用户在C+集成环境中所需要的一切东西。由于Microsoft Visual C+ 6.0和几种单独的源代码处理产品是集成在一起的,所以它能够支持多种C+开发工具版本。概括起来Microsoft Visual C+ 6.0的面向对象程序设计主要特点有:封装与信息隐蔽;抽象;继承与重用;多态性等。3.1管理要求分析1操作员管理:用户登陆与对操作员进行管理。2信息管理:对商品进行本系统也设
15、置了“添加” 、“查询”、“修改”等功能方便了系统管理员对系统信息与时的更改更新。在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C+,数据库采用Microsoft Access,程序运行平台为Windows XP。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题,与实现对客户对商品的需求的管理操作。3产品出厂管理:实现对产品的出厂管理操作。4信息一览:生成所有信息的一览表格,方便管理者查3.2 系统功能描述本系统由管理员、用户不同身份进入不同界面,进行不同操作。管理员通过管理员身份登录,对系统进行全面的管理。对商品信息进
16、行查询、添加、修改、删除,对用户进行查找、添加、删除,。管理员可以对用户以与管理员的基本资料信息进行管理。用户通过用户身份登录,根据需求对商品进行详细查询,订购商品,对订单信息进行留言,对用户基本资料信息进行修改管理,给管理员留言。3.3功能模块划分1、登陆模块:该模块是提供商品价格查询系统的登陆界面,是本系统的唯一入口和出口。2、管理员模块:提供商品价格查询系统的管理员功能,主要分商品和顾客两个功能。商品信息:初始化商品信息、增加商品信息,修改商品信息,删除商品信息和按价格从高到低浏览商品信息。顾客信息:增加顾客信息、删除顾客信息、按名字浏览顾客信息。3、普通顾客模块:提供顾客对商品信息的浏
17、览。3.4系统流程图分析浏览顾客信息删除顾客信息增加顾客信息普通顾客界面顾客信息设置商品信息设置商品信息浏览删除商品信息修改商品信息浏览商品信息增加商品信息初始化商品信息管理员界面登 录商品价格查询系统图3-1 商品价格查询系统流程图3.5 可行性分析(1)经济可行性分析作为工厂这样的较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件购买费用、管理和维护费、人员工资和培训费等。由于各个部门实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置软件上。建立信息中心,可将来自各方面的信息集中管理,提高商品销售管理。(2)技术可行性分
18、析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。商品销售管理系统的工作主要是在用户和商品数据之间架起一座桥梁,能快速处理信息。这一特点非常适合计算机特点,通过软件技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。(3)社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以与运行后可能一起的对企业或机构的影响,即组织外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是小公司
19、完全有可能也有能力采用这样先进的管理技术。它对公司管理带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对公司员工的要求提高,使公司在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽公司在市场环境下的生存空间。对企业与客户之间业务方式的转变和扩充。第四章 详细设计与实现4.1主界面设计1、主界面程序代码如下:在shead.c这个文件中定义了“商品”和“顾客”两种数据类型数据类型#define size 100typedef structlong number;/顾客的序号char name9;/顾客的名字char ps7;/顾客的密码int power;/顾
20、客的权限guke;typedef structlong number;/商品的序号char name9;/商品的名称float price;/商品的价格float discount;/商品的折扣float memberprice;/商品的会员价product;#include#include#include#include#include shead.c#include admin.c#include guest.cmain()FILE *fp;guke tmps,show;int i,success=0,j=0;char datafile=guke,relogin;printf(=n);pr
21、intf( 欢 迎 您 进 入 商 品 管 理 系 统 n);printf(=n);again:printf(请输入您的名字:);scanf(%s,tmps.name);printf(请输入您的密码:);for(i=0;i=5;i+)tmps.psi=getch();tmps.ps6=0;fp=fopen(datafile,rb);if(fp=NULL)printf(文件%s打不开n,datafile);exit(1);while(fread(&show,sizeof(guke),1,fp)!=0)if(strcmp(tmps.name,show.name)=0)&(strcmp(tmps.p
22、s,show.ps)=0)printf(登录成功!n);success=1;if(show.power=1)printf(您是管理员n);admin();if(show.power=0)printf(您是普通顾客n);guest();if(success=0)printf(n您输入的名字或密码有误,是否重新输入?(y/n);relogin=getche();if(relogin=y)|(relogin=Y)printf(请再次输入名字和密码n);goto again;elseprintf(程序结束n);exit(0); 2、登录主界面界面管理员的用户名是admin,密码是123456。同时也可
23、以使用普通顾客登录进行商品浏览。管理员成功登录后进入管理员界面。如图4-1所示。图4-1 商品管理系统登录主界面4.2管理员界面1、管理员界面代码如下:#include initgoods.c#include addgoods.c#include modifygoods.c#include delgoods.c#include showgoods.c#include addguke.c#include delguke.c#include showguke.cvoid admin()int choice=0;while(1)printf(n=n);printf( 欢 迎 进 入 商 品 管 理
24、员 界 面 n);printf(=n); printf(=1.初始化商品信息=2.增加商品信息=n);printf(=3.修改商品信息=4.删除商品信息=n);printf(=5.按价格从高到低浏览商品信息=n);printf(=6.增加顾客信息=n);printf(=7.删除顾客信息=8.按名字浏览顾客信息=n);printf(=0.程序结束=n);printf(请输入您的选择:);scanf(%d,&choice);switch(choice) case 1:initgoods(); break; case 2:addgoods(); break; case 3:modifygoods()
25、; break; case 4:delgoods(); break; case 5:showgoods(); break; case 6:addguke(); break; case 7:delguke(); break; case 8:showguke(); break; case 0:exit(0); default:break;2、管理员登录界面管理员成功登录后,会显示八个功能模块用于对商品的查询、修改删除以与对顾客的增加、删除、浏览等功能。如图 4- 2所示。图 4- 2 管理员界面4.3初始化商品信息1、商品初始化代码如下:void initgoods() FILE *fp; pro
26、duct tmps,show; char datafile40=goods; int count=0; fp=fopen(datafile,wb+); if(fp=NULL) printf(文件%s打不开n,datafile); exit(1); printf(请输入商品的序号、名称、价格、折扣n); while(countsize)printf(输入数据已满n);fclose(fp);printf(所输入商品的信息如下:n);fp=fopen(datafile,rb);if(fp=NULL)printf(文件%s打不开n,datafile);exit(1);printf(序号t名称t价格t折
27、扣t会员价n);while(fread(&show,sizeof(product),1,fp)!=0)printf(%ldt%st%.1ft%.1ft%.1fn,show.number,show.name,show.price,show.discount,show.memberprice);fclose(fp);2、商品初始化界面在管理员界面选择1对商品进行初始化,输入两组数据并显示。如图4-3所示。图4-3 初始化商品信息4.4增加商品信息 1、增加商品信息代码如下:void addgoods()FILE *fp;product tmps,show;char datafile40=goods
28、;int count=0;fp=fopen(datafile,ab+);if(fp=NULL) printf(文件%s打不开n,datafile);exit(1); printf(请输入商品的序号、名称、价格、折扣、会员价n);while(countsize)printf(输入数据已满n);fclose(fp);printf(所输入商品的信息如下:n);fp=fopen(datafile,rb);if(fp=NULL)printf(文件%s打不开n,datafile);exit(1);printf(序号t名称t价格t折扣t会员价n);while(fread(&show,sizeof(produ
29、ct),1,fp)!=0)printf(%ldt%st%.1ft%.1ft%.1fn,show.number,show.name,show.price,show.discount,show.memberprice);fclose(fp);2、增加商品信息界面 选择功能2对商品进行增加,新增加的商品名分别为33和44。如图4-4所示。图4-4 增加商品信息4.5修改商品信息 1、修改商品信息代码如下:void modifygoods()FILE *fp;product tmps,ssize,show,temp;char name9,next,datafile40=goods;int recnum
30、ber,i,result=0;float price,discount,memberprice;begin: printf(请输入要修改商品的名称);scanf(%s,name);fp=fopen(datafile,rb);if(fp=NULL) printf(文件%s打不开n,datafile);exit(1);while(feof(fp)=0)if(fread(&temp,sizeof(product),1,fp)!=0)if(strcmp(temp.name,name)=0) result=1;if(result=0)printf(要修改的商品%s不存在n,name);fclose(fp
31、); goto begin;fp=fopen(datafile,rb);if(fp=NULL) printf(文件%s打不开n,datafile); exit(1);recnumber=0;while(fread(&tmps,sizeof(product),1,fp)!=0)if(strcmp(tmps.name,name)=0)printf(请输入要修改商品%s的价格n,name);scanf(%f,&price);printf(请输入要修改商品的折扣价n);scanf(%f,&discount);memberprice=price*discount;srecnumber.number=tm
32、ps.number;strcpy(srecnumber.name,tmps.name);srecnumber.price=price;srecnumber.discount=discount; srecnumber.memberprice=memberprice;recnumber+;elsesrecnumber.number=tmps.number;strcpy(srecnumber.name,tmps.name);srecnumber.price=tmps.price;srecnumber.discount=tmps.discount; srecnumber.memberprice=tmp
33、s.memberprice;recnumber+;fclose(fp);fp=fopen(datafile,wb+);if(fp=NULL) printf(文件%s打不开n,datafile); exit(1);for(i=0;irecnumber;i+)if(fwrite(&si,sizeof(product),1,fp)!=1)printf(文件%s打不开n,datafile); exit(1); fclose(fp);printf(修改成功!n);printf(是否继续修改(y/n)n);next=getche();if(next=y|next=Y)goto begin;printf(所
34、修改商品的信息如下:n);fp=fopen(datafile,rb);if(fp=NULL) printf(文件%s打不开n,datafile); exit(1);printf(序号t名称t价格t折扣t会员价n);while(fread(&show,sizeof(product),1,fp)!=0)printf(%ldt%st%.1ft%.1ft%.1fn,show.number,show.name,show.price,show.discount,show.memberprice);fclose(fp);2、修改商品信息界面选择功能3,修改的项目是每件商品的价格、折扣、会员价,序号、名称不变
35、。输入要修改的商品名为11,修改后的价格为135折扣价0.9。如图4-5所示。图4-5 修改商品信息4.6 删除商品信息 1、删除商品信息代码如下:void delgoods()FILE *fp;product tmps,ssize,show,temp;char name9,next,datafile40=goods;int recnumber,i,result=0;float price,discount,memberprice;begin:printf(请输入要删除商品名称:);scanf(%s,name);fp=fopen(datafile,rb);if(fp=NULL) printf(
36、文件%s打不开n,datafile); exit(1);while(feof(fp)=0)if(fread(&temp,sizeof(product),1,fp)!=0)if(strcmp(temp.name,name)=0) result=1;if(result=0)printf(要删除的商品%s不存在n,name);fclose(fp); goto begin;fclose(fp);fp=fopen(datafile,rb);if(fp=NULL) printf(文件%s打不开n,datafile); exit(1);recnumber=0;while(fread(&tmps,sizeof
37、(product),1,fp)!=0)if(strcmp(tmps.name,name)!=0)srecnumber.number=tmps.number;strcpy(srecnumber.name,tmps.name);srecnumber.price=tmps.price;srecnumber.discount=tmps.discount; srecnumber.memberprice=tmps.memberprice;recnumber+;fclose(fp);fp=fopen(datafile,wb+);if(fp=NULL) printf(文件%s打不开n,datafile); exit(1);for(i=0;irecnumber;i+)if(fwrite(&si,sizeof(product),1,fp)!=1)printf(文件%s打不开n,datafile); exit(1); fclose(fp);printf(删除成功!n);printf(是否继续删除(y/n)n);next=getche();if(next=y|next=Y)goto begin;printf(删除商品信息如下:n);fp=fopen(datafile,rb);if(fp=NULL) printf(文件%s打不开n,datafile)