资源描述
单 位: **班
学 号:**
农业大学商学院本科课程设计
(****)
商品价格查询系统
姓 名: ***
专 业: ***
指导教师: ***
农业大学商学院
二○一二年六月
35 / 39
摘 要
主要实现四个方面的功能:
1)输出相应的功能键对应的功能便于用户选择;2)商品信息管理;3)客户管理;4)查询商品,客户信息。
本系统设置了“添加” 、“查询”、“修改”等功能方便了系统管理员对系统信息与时的更改更新。在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C++,程序运行平台为Windows XP。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题。
【关键词】 C++;面向对象;类;管理系统
Abstract
Mainly 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 set 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 through 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
目录
摘要I
AbstractII
目录1
前言1
第一章系统环境分析1
1.1 Visual C++概述1
第二章设计平台搭建1
2.1VC++6.0的安装和配置1
第三章需求分析1
3.1管理要求分析1
3.2 系统功能描述1
3.3功能模块划分1
3.4系统流程图分析1
3.5 可行性分析1
第四章详细设计与实现1
4.1主界面设计1
4.2管理员界面1
4.3初始化商品信息1
4.4增加商品信息1
4.5修改商品信息1
4.6 删除商品信息1
4.7 按价格从高到低浏览商品信息1
4.8增加顾客信息1
4.9 删除顾客信息1
4.10按从大到小浏览顾客的所有信息1
4.11 普通顾客功能实现1
参考文献1
前言
为方便对商品、客户和订单等进行高效的管理,编写该程序以提高商品查询的管理效率。使用该程序之后,工作人员可以查询商品名称对应的编号、客户信息,还可以对当查询最近的订单,给出交货日期,以便全面掌握商品的流通情况。本系统主要在于为需要对商品的总体的情况进行全面的了解,与对商品,客户和订单进行处理为公司提供一个高效的管理的平台。
商品查询管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以与前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。就目前而言,很多商店的信息管理还比较落后,劳动强度大且效率低,营业人员和管理人员的大量时间都消耗在事务性的工作上。因此,开发商品价格查询管理信息系统是社会发展的迫切需要,同时也将提升商店的各项工作效率,商店的商品管理是一个非常重要和繁杂的事物,需要完成商品的购入存储等很多操作。这就使得使用商品管理系统来管理这样的事物有很好的效果。
该商品价格查询系统是一套基于C语言在Visual C++环境中完成的信息管理平台,它不仅是一套管理软件,更能为企业的商品价格信息管理提供了强大的应用支持。
第一章 系统环境分析
1.1 Visual C++概述
Visual C++ 6.0(简称VC++) 具有强大的数据库管理功能,丰富的表格和图形输出功能,实效的精美报表打印功能,语言的易读与灵活性,快速友好的界面开发效率等特点。
具有面向对象化的程序设计思想,在传统的结构化程序设计方法中,数据和处理数据的的程序是分离的。当对某段程序进行修改或删除时整个程序中与之相对于的都会修改,从而使程序代码的维护变得比较困难,VC++引用了面向对象的设计方法,将数据和处理数据封装在一个类中,这样,其他函数就不会无意中破坏它的容,达到保护和隐藏数据的目的。如果用最简单的语言来概括,C语言具有的优点是:简洁、灵活、表达能力强、产生的目标代码的质量高、可移植性好。具体有以下几点:
(1)C语言同时具备了高级语言和低级语言的特征。C语言适用于编写系统程序和各种软件工具。
(2)C语言是结构化程序设计语言,具有结构化程序设计所需要的控制语句,如条件语句if,以与循环语句for、while、do…while等。
(3)C语言支持模块化程序设计。C语言的程序是由函数构成的,对每个函数可以单独编写和调试。
(4)C语言具有丰富的数据类型。C语言支持各种高级语言普遍使用的基本数据类型,并允许用基本数据类型构造复杂的数据类型。
(5)C语言的运算符种类多,共有34种运算符,功能强大。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
(6)C语言的基本组成部分紧凑、简洁,关键字少。
(7)C语言有大量的标准化的库函数。包括用于各种数学计算的函数、用于输入输出的库函数以与系统函数,为程序员编写程序带来了极大的方便。
(8)生成的代码质量高。C语言生成的代码与汇编语言生成的代码相比,前者只比后者低10%~20%。
(9)具有良好的可移植性,应用围广泛,可在很多软件平台和硬件平台上应用。
任何事物都不是十全十美的,C语言也有一定的缺陷,了解C语言的缺点,有助于我们在编写程序时扬长避短。具体讲,C语言的缺点有以下两点:
(1)C语言比较灵活,在语法上不如一些著名的高级语言(例如Pascal,Ada)严格,错误检查系统不够可靠。
(2)C程序的安全性较低。例如对指针的使用没有适当的限制,指针设置错误,可能导致存中的信息被破坏,如果经常出现这种错误,极有可能导致系统的崩溃。
除此之外,在书写程序时也应遵循的一定的规则,从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时 应遵循以下规则
1.一个说明或一个语句占一行。
2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
第二章 设计平台搭建
2.1 VC++6.0的安装和配置
C语言的翻译程序属于编译程序,要完成对一个C程序的调试,必须经过编辑源程序、编译源程序、连接目标程序和运行可执行程序四个步骤。使用Visual C++6.0就可以完成C语言的调试。Visual C++6.0提供了全屏幕程序调试环境,编辑、编译、连接、运行都可以在该环境中完成。
首先介绍关于Visual C++6.0的安装过程。
(1) 双击安装包下的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所示。
图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的安装】
第三章 需求分析
Microsoft 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信息管理:对商品进行本系统也设置了“添加” 、“查询”、“修改”等功能方便了系统管理员对系统信息与时的更改更新。在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C++,数据库采用Microsoft Access,程序运行平台为Windows XP。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题,与实现对客户对商品的需求的管理操作。
3产品出厂管理:实现对产品的出厂管理操作。
4信息一览:生成所有信息的一览表格,方便管理者查
3.2 系统功能描述
本系统由管理员、用户不同身份进入不同界面,进行不同操作。
管理员通过管理员身份登录,对系统进行全面的管理。对商品信息进行查询、添加、修改、删除,对用户进行查找、添加、删除,。管理员可以对用户以与管理员的基本资料信息进行管理。
用户通过用户身份登录,根据需求对商品进行详细查询,订购商品,对订单信息进行留言,对用户基本资料信息进行修改管理,给管理员留言。
3.3功能模块划分
1、登陆模块:该模块是提供商品价格查询系统的登陆界面,是本系统的唯一入口和出口。
2、管理员模块:提供商品价格查询系统的管理员功能,主要分商品和顾客两个功能。
商品信息:初始化商品信息、增加商品信息,修改商品信息,删除商品信息和按价格从高到低浏览商品信息。
顾客信息:增加顾客信息、删除顾客信息、按名字浏览顾客信息。
3、普通顾客模块:提供顾客对商品信息的浏览。
3.4系统流程图分析
浏览顾客信息
删除顾客信息
增加顾客信息
普通顾客界面
顾客信息设置
商品信息设置
商品信息浏览
删除商品信息
修改商品信息
浏览商品信息
增加商品信息
初始化商品信息
管理员界面
登 录
商品价格查询系统
图3-1 商品价格查询系统流程图
3.5 可行性分析
(1)经济可行性分析
作为工厂这样的较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件购买费用、管理和维护费、人员工资和培训费等。由于各个部门实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置软件上。建立信息中心,可将来自各方面的信息集中管理,提高商品销售管理。
(2)技术可行性分析
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。商品销售管理系统的工作主要是在用户和商品数据之间架起一座桥梁,能快速处理信息。这一特点非常适合计算机特点,通过软件技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。(3)社会可行性分析
社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以与运行后可能一起的对企业或机构的影响,即组织外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是小公司完全有可能也有能力采用这样先进的管理技术。它对公司管理带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对公司员工的要求提高,使公司在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽公司在市场环境下的生存空间。对企业与客户之间业务方式的转变和扩充。
第四章 详细设计与实现
4.1主界面设计
1、主界面程序代码如下:
在shead.c这个文件中定义了“商品”和“顾客”两种数据类型数据类型
#define size 100
typedef struct
{
long number;//顾客的序号
char name[9];//顾客的名字
char ps[7];//顾客的密码
int power;//顾客的权限
}guke;
typedef struct
{
long number;//商品的序号
char name[9];//商品的名称
float price;//商品的价格
float discount;//商品的折扣
float memberprice;//商品的会员价
}product;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include "shead.c"
#include "admin.c"
#include "guest.c"
main()
{
FILE *fp;
guke tmps,show;
int i,success=0,j=0;
char datafile[]="guke",relogin;
printf("=====================================================\n");
printf(" 欢 迎 您 进 入 商 品 管 理 系 统 \n");
printf("=====================================================\n");
again:
printf("请输入您的名字:");
scanf("%s",tmps.name);
printf("请输入您的密码:");
for(i=0;i<=5;i++)
tmps.ps[i]=getch();
tmps.ps[6]='\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.ps,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;
}
else
{
printf("程序结束\n");
exit(0);
}
}
}
2、登录主界面界面
管理员的用户名是admin,密码是123456。同时也可以使用普通顾客登录进行商品浏览。管理员成功登录后进入管理员界面。如图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.c"
void admin()
{
int choice=0;
while(1)
{
printf("\n================================================\n");
printf(" 欢 迎 进 入 商 品 管 理 员 界 面 \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();
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;
product tmps,show;
char datafile[40]="goods";
int count=0;
fp=fopen(datafile,"wb+");
if(fp==NULL)
{
printf("文件%s打不开\n",datafile);
exit(1);
}
printf("请输入商品的序号、名称、价格、折扣\n");
while(count<=size)
{
printf("\n请输入商品的序号:");
scanf("%ld",&tmps.number);
if(tmps.number==0)
break;
printf("请输入商品的名称:");
scanf("%s",tmps.name);
printf("请输入商品的价格:");
scanf("%f",&tmps.price);
printf("请输入商品的折扣:");
scanf("%f",&tmps.discount);
tmps.memberprice=tmps.price*tmps.discount;
if(fwrite(&tmps,sizeof(product),1,fp)!=1)
{
printf("文件%s打不开\n",datafile);
exit(1);
}
count++;
}
if(count>size)
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(product),1,fp)!=0)
printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",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 datafile[40]="goods";
int count=0;
fp=fopen(datafile,"ab+");
if(fp==NULL)
{
printf("文件%s打不开\n",datafile);
exit(1);
}
printf("请输入商品的序号、名称、价格、折扣、会员价\n");
while(count<=size)
{
printf("\n请输入商品的序号:");
scanf("%ld",&tmps.number);
if(tmps.number==0)
break;
printf("请输入商品的名称:");
scanf("%s",tmps.name);
printf("请输入商品的价格:");
scanf("%f",&tmps.price);
printf("请输入商品的折扣:");
scanf("%f",&tmps.discount);
tmps.memberprice=tmps.price*tmps.discount;
if(fwrite(&tmps,sizeof(product),1,fp)!=1)
{
printf("文件%s打不开\n",datafile);
exit(1);
}
count++;
}
if(count>size)
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(product),1,fp)!=0)
printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",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,s[size],show,temp;
char name[9],next,datafile[40]="goods";
int recnumber,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);
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;
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
s[recnumber].price=price;
s[recnumber].discount=discount;
s[recnumber].memberprice=memberprice;
recnumber++;
}
else
{
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
s[recnumber].price=tmps.price;
s[recnumber].discount=tmps.discount;
s[recnumber].memberprice=tmps.memberprice;
recnumber++;
}
}
fclose(fp);
fp=fopen(datafile,"wb+");
if(fp==NULL)
{
printf("文件%s打不开\n",datafile);
exit(1);
}
for(i=0;i<recnumber;i++)
{
if(fwrite(&s[i],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);
exit(1);
}
printf("序号\t名称\t价格\t折扣\t会员价\n");
while(fread(&show,sizeof(product),1,fp)!=0)
printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",show.number,show.name,show.price,show.discount,show.memberprice);
fclose(fp);
}
2、修改商品信息界面
选择功能3,修改的项目是每件商品的价格、折扣、会员价,序号、名称不变。输入要修改的商品名为11,修改后的价格为135折扣价0.9。如图4-5所示。
图4-5 修改商品信息
4.6 删除商品信息
1、删除商品信息代码如下:
void delgoods()
{
FILE *fp;
product tmps,s[size],show,temp;
char name[9],next,datafile[40]="goods";
int recnumber,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);
goto begin;
}
fclose(fp);
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)
{
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
s[recnumber].price=tmps.price;
s[recnumber].discount=tmps.discount;
s[recnumber].memberprice=tmps.memberprice;
recnumber++;
}
}
fclose(fp);
fp=fopen(datafile,"wb+");
if(fp==NULL)
{
printf("文件%s打不开\n",datafile);
exit(1);
}
for(i=0;i<recnumber;i++)
{
if(fwrite(&s[i],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)
展开阅读全文