超市会员管理系统详细代码教学提纲

合集下载

超市管理系统完整源代码

超市管理系统完整源代码

有一个小型超市,出售NN>=10种商品,设计并实现一个系统,完成下列功能:1.保存及输出;超市中的各种商品信息保存在指定文件中,可以把它们输出显示; 2.计算并排序;计算每类商品的总价值sum,单精度及平均价aver,单精度,输出一位小数,将每类商品按平均价从大到小的顺序排序打印出来;3.统计;统计输出库存量低于100的货号及类别;统计输出有两种以上含两种商品库存量低于100的商品类别;总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块;1 主模块:通过调用各分模块实现功能;2 信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3 新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4 排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5 计算模块:将所有商品的价格与库存量进行累加求和;6 打印模块:将商品信息按每类平均价格排序从高到低按顺序打印出来;7 统计模块1:统计库存量低于100的货名及类别;8 统计模块2:统计商品库存量有2种以上含2种低于100的商品类别;附录程序清单include "" /输入,输出头文件/include "" /申请空间头文件/include "" /对字符串加工头文件/include "" /清屏头文件/FILE fp;int n=0; /定义文件指针类型/int i,j,a4,m; /定义整数类型/float aver4,sum4,g4,h; /定义浮点类型/char c5="elec"; /定义字符数组类型/char d5="comm"; /定义字符数组类型/char e5="food"; /定义字符数组类型/char f5="offi"; /定义字符数组类型/struct good /定义结构体/{int num; /商品编号/char name20; /商品名称/char kind40; /商品类型/float price; /商品价格/char unit10; /商品单位/int quantity; /商品数量/struct good next; /定义结构体指针类型/}head,p1,p2;struct good createlist /创建链表函数/{struct good head1,p1,p2; /定义结构体指针类型/iffp=fopen"goods ","w"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}head1=struct good mallocsizeofstruct good; /申请头结点空间/ p1=head1;p2=head1;printf"\n";printf"请输入信息:编号,名称,类型,价格,单位,数目\n";printf" 以输入“-1”表示结束输入\n";printf"\n";printf"____________________\n";scanf"%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit ,&p1->quantity; /输入商品信息/printf"____________________\n";p1->next=NULL;fprintffp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity; /将商品信息写入文件/while1{p1=struct good mallocsizeofstruct good; /申请新空间/printf"\n";printf"请输入信息:编号,名称,类型,价格,单位,数目\n";printf" 以输入“-1”表示结束输入\n";printf"\n";printf"____________________\n";scanf"%d",&p1->num;ifp1->num==-1 /申请空间结束条件/{printf"____________________\n\n";fprintffp,"%d",-1;fclosefp;return head1; /返回头指针/}scanf"%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity; /输入商品信息/printf"________________\n";fprintffp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity; /将商品信息写入文件/p1->next=NULL;p2->next=p1;p2=p1;}}struct good paixustruct goodhead2 /链表排序函数/{struct good p6,p7,r,s; /定义结构体指针类型/fori=0;i<=3;i++ /赋初值值/{ai=0;sumi=0;averi=0;}p6=struct good mallocsizeofstruct good; /申请新空间/ p6->next=head2;head2=p6;whilep6->next=NULL /判断循环结束条件/{p7=p6->next;r=p6;whilep7->next=NULL /判断循环结束条件/{ifp7->next->price>r->next->price /判断是否调换/ r=p7;p7=p7->next;}ifp6=r /判断循环结束条件/{s=r->next; /指针调换/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;freep6; /释放第一个无效空间/return head2;}void jisuan{p1=head;do{ifstrcmpp1->kind,c==0 /判断是否为电器类型/ {sum0=sum0+p1->pricep1->quantity; /求电器总价/a0=a0+p1->quantity; /求电器总件数/}ifstrcmpp1->kind,d==0 /判断是否为日用品类型/{sum1=sum1+p1->pricep1->quantity; /求日用品总价/a1=a1+p1->quantity; /求日用品总件数/}ifstrcmpp1->kind,e==0 /判断是否为办公用品类型/{sum2=sum2+p1->pricep1->quantity; /求办公用品总价/a2=a2+p1->quantity; /求办公用品总件数/}ifstrcmpp1->kind,f==0 /判断是否为食品类型/{sum3=sum3+p1->pricep1->quantity; /求食品总价/a3=a3+p1->quantity; /求食品总件数/}p1=p1->next;}while p1=NULL; /遍历链表结束条件/fori=0;i<4;i++averi=sumi/ai; /求每类商品平均价/printf"\n";printf"商品类型 \t 平均价\t 总库存量\n";printf"\n";printf"____________________________________________________\n"; printf"电器总价值:%\t平均价:%\t总库存量:%d\n",sum0,aver0,a0;printf"____________________________________________________\n"; printf"日用品总价值:%\t平均价:%\t总库存量:%d\n",sum1,aver1,a1; printf"____________________________________________________\n"; printf"食品总价值:%\t平均价:%\t总库存量:%d\n",sum2,aver2,a2;printf"____________________________________________________\n"; printf"办公用品总价值:%\t平均价:%\t总库存量:%d\n",sum3,aver3,a3; printf"____________________________________________________\n"; }void shuchu /输出商品信息函数/{do{struct good p3,p4,p5; /定义结构体指针类型/int n=0,p=0,q=0,r=0;printf"所有商品信息:\n";printf"编号,名称,类型,价格,单位,数目\n";printf"\n";iffp=fopen"goods ","rb+"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}head=struct good mallocsizeofstruct good; /申请头结点空间/p3=head;fscanffp,"%d %s %s %f %s %d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity; /从文件中写到链表/while1{p4=struct good mallocsizeofstruct good; /申请头结点空间/fscanffp,"%d ",&p4->num;ifp4->num=-1 /判断循环结束条件/{fscanffp,"%s %s %f %s %d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity; /从文件中写到链表/p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclosefp; /关闭文件/p3=head;whilep3=NULL{printf" %d %s %s % %s %d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity;printf"__________________________________\n";p3=p3->next;}printf"\n";printf"//////////////////////////////////\n";whilen=4{p3=head;printf"\n";printf"1 添加商品信息\n";printf"2 删除某商品信息\n";printf"3 修改某商品信息\n";printf"4 返回当你完成了对某一商品的添加、删除或者修改后请按4返回\n"; printf"\n";scanf"%d",&n;ifn==1 /添加商品信息/{printf"请输入商品编号名称类型价格单位数目\n";printf"\n";p4=struct good mallocsizeofstruct good; /申请空间/scanf"%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit ,&p4->quantity; /输入商品信息/p4->next=NULL;whilep3->next=NULL /判断循环结束条件/{p3=p3->next;}p3->next=p4;p3=head;iffp=fopen"goods ","w"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}whilep3=NULL{fprintffp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity /将商品信息写入文件/p3=p3->next;}fprintffp,"%d",-1;fclosefp; /关闭文件/printf"\n";printf"__________________________________\n";printf"------------请按4返回-------------\n";printf"__________________________________\n";printf"\n";}ifn==2 /删除商品/{printf"\n";printf"请输入需要删除的商品编号\n";printf"\n";scanf"%d",&p;printf"\n";printf"1 确认删除\n2 取消删除\n";printf"\n";scanf"%d",&r;ifr==1{ifhead->num==p{head=head->next;freep3; /释放空间/}else{p4=head;p3=p4->next;whilep3=NULL /判断循环结束条件/ {ifp3->num==p{p5=p3->next;freep3; /释放空间/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}iffp=fopen"goods ","w"==NULL /判断能否打开文件/ {printf"can not open the file";exit0; /结束程序/}p3=head;whilep3=NULL /判断循环结束条件/{fprintffp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /将商品信息写入文件/p3=p3->next;}fprintffp,"%d",-1;fclosefp; /关闭文件/}ifr==2continue; /继续循环/printf"\n";printf"__________________________________\n";printf"------------请按4返回-------------\n";printf"__________________________________\n";printf"\n";}ifn==3 /修改某商品信息/{printf"请输入需要修改的商品编号\n";scanf"%d",&q;whilep3=NULL /判断循环结束条件/{ifp3->num==q /判断是否为所需要修改的商品/{printf"请输入商品单价与库存量如果单价不变请输入原来的单价\n";scanf"%f %d",&p3->price,&p3->quantity; /输入商品价格与库存量/}p3=p3->next;}iffp=fopen"goods ","w"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}p3=head;whilep3=NULL /判断循环结束条件/{fprintffp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /将商品信息写入文件/p3=p3->next;}fprintffp,"%d",-1;fclosefp; /关闭文件/printf"\n";printf"__________________________________\n";printf"------------请按4返回-------------\n";printf"__________________________________\n";printf"\n";}ifn==4 /退出/break;}printf"\n";printf"1 继续修改\n---------\n2 返回\n";printf"\n";scanf"%d",&p;ifp==1continue; /继续循环/ifp==2break; /跳出循环/}whilen=2;fclosefp; /关闭文件/}void printf0struct good p /遍历链表并打印电器类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,c==0 /判断商品类型是否为电器类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出电器类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void printf1struct good p /遍历链表并打印日用品类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,d==0 /判断商品类型是否为日用品类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出日用品类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void printf2struct good p /遍历链表并打印办公用品类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,e==0 /判断商品类型是否为办公用品类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出办公用品类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void printf3struct good p /遍历链表并打印食品类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,f==0 /判断商品类型是否为食品类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出食品类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void shunxudayin{fori=0;i<4;i++gi=averi; /将平均价赋给新数组/forj=0;j<3;j++ /将新数组用冒泡排序法排序/fori=j+1;i<4;i++{ifgj<gi{h=gj;gj=gi;gi=h;}}printf"\n\n";printf"商品平均价格排序表从高到低\n";printf"\n";printf"________________________________________________\n";printf"编号\t名称\t类别\t单价\t单位\t数量\n";printf"________________________________________________\n"; forj=0;j<4;j++fori=0;i<4;i++{if averi==gj /判断每类商品平均价格的先后顺序/switchi{case 0:printf0head; /调用遍历链表并打印电器类商品函数/break;case 1:printf1head; /调用遍历链表并打印日用品类商品函数/break;case 2:printf2head;/调用遍历链表并打印办公用品类商品函数/break;case 3:printf3head; /调用遍历链表并打印食品类商品函数/ break;}}}void tongji1{p1=head;printf"\n\n";printf"库存量低于100的货名及类别\n";printf"\n";printf"________________________\n";printf"商品名称\t商品类型\n";printf"________________________\n";whilep1=NULL /判断遍历链表循环结束条件/{ifp1->quantity<100 /判断库存量是否小于100/{printf"%s\t%s\n",p1->name,p1->kind; /输出商品名称及类别/printf"________________________\n";}p1=p1->next;}}void tongji2{printf"\n\n";printf"商品库存量有2种以上含2种低于100的商品类别:\n";printf"\n";printf"________\n";ifa0<100&&a0>=2 /判断电器类库存量是否为2种以上含2种低于100/{printf"电器\n";printf"________\n";}ifa1<100&&a1>=2 /判断日用品类库存量是否为2种以上含2种低于100/{printf"日用品\n";printf"________\n";}ifa2<100&&a2>=2 /判断食品类库存量是否为2种以上含2种低于100/{printf"食品\n";printf"________\n";}ifa3<100&&a3>=2 /判断办公用品类库存量是否为2种以上含2种低于100/{printf"办公用品\n";printf"________\n";}}int mainint argc, char argv{struct good p1,p2; /定义结构体指针类型/while1{printf"\n";printf"1 ----------输出查看或者修改已存信息-----------\n"; printf"-----------------------------------------------\n"; printf"2 -----重新输入新信息并且删除原有信息------\n";printf"-----------------------------------------------\n"; printf"3 统计商品信息如果您还没有查看过信息请先按1\n";printf"-----------------------------------------------\n"; printf"4 -------------------退出---------------------\n"; printf"\n";scanf"%d",&m;ifm==1shuchu; /调用输出信息函数/ifm==2{system"cls";head=createlist; /调用建立链表函数/}ifm==3{printf"统计结果如下\n";head=paixuhead; /调用链表排序函数/ jisuan; /调用计算函数/shunxudayin; /调用顺序打印函数/tongji1; /调用统计1函数/tongji2; /调用统计2函数/}ifm==4{p1=head;whilep1=NULL /判断遍历链表结束条件/{p2=p1->next;freep1; /释放空间/ p1=p2;}break;}}return 0; /结束程序/ }。

java课程设计超市会员管理系统

java课程设计超市会员管理系统

java课程设计超市会员管理系统一、教学目标本节课的学习目标为:知识目标:使学生掌握Java编程语言的基本语法,理解面向对象编程的基本概念,如封装、继承、多态等;技能目标:培养学生具备使用Java编写简单的应用程序的能力,能够独立完成一个小型项目的开发;情感态度价值观目标:培养学生对计算机编程的兴趣,增强其自主学习、解决问题的能力,培养团队合作意识。

二、教学内容本节课的教学内容为Java编程语言的基本语法和面向对象编程的基本概念,具体包括:1.Java基本语法:数据类型、变量、运算符、控制结构等;2.面向对象编程:类与对象、封装、继承、多态等;3.Java应用程序的编写与运行:编写第一个Java程序、调试与优化程序等。

三、教学方法本节课采用以下教学方法:1.讲授法:讲解Java基本语法和面向对象编程的基本概念;2.案例分析法:分析实际案例,让学生理解并掌握Java编程的方法和技巧;3.实验法:让学生动手编写Java程序,巩固所学知识,提高实际操作能力。

四、教学资源本节课的教学资源包括:1.教材:《Java编程语言》;2.参考书:《Java核心技术》;3.多媒体资料:PPT课件、编程实例及视频教程;4.实验设备:计算机、网络环境。

教学资源的选择和准备应充分考虑学生的实际需求和教学目标,确保资源能够支持教学内容的实施,提高学生的学习效果。

五、教学评估本节课的教学评估将采用以下方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等方式,评估学生的学习态度和理解程度;2.作业:布置课后作业,要求学生独立完成,通过作业的完成质量评估学生的掌握程度;3.考试:安排一次课堂小测或期中和期末考试,全面考察学生的知识掌握和应用能力。

评估方式将力求客观、公正,并全面反映学生的学习成果。

六、教学安排本节课的教学安排如下:1.教学进度:按照教学大纲和教材的章节安排,有序进行教学;2.教学时间:每个课时为45分钟,共安排12个课时;3.教学地点:计算机实验室,确保学生有足够的实践操作机会。

超市会员管理系统

超市会员管理系统

超市会员管理系统第一章系统概述1.1 引言社会生活的现代化,使得市场的走向发生巨大变化,由于经济的发展,人们对生活的需求已经不再足于丰衣足食的低度要求,许多人们往往不是单纯为满足生活必需去购买,而是凭着喜欢,意欲和感观去购买,如果一个商店能够打动顾客,吸引顾客,自然会顾客盈门。

1.1.1 编写目的此文档作为用户对即将开发的软件的功能要求,是软件设计和开发者的主要依据。

1.1.2 项目背景项目名称:大型超市会员管理系统软件开发者:太原科技大学。

计算机062001班,秦新强。

1.1.3 任务目标通过对大型超市会员管理业务的特点进行分析,使用现有的工具,开发出一个能够对会员信息,购物情况统计,返得等进行综合管理的管理信息系统。

第二章可行性及需求分析2.1 可行性分析2.1.1 可行性研究的前提该系统能够实现对大型超市会员的各类信息录入,删除,修改和查询操作,能够实现对各种统计信息的查询,并可以以报表形式输出。

2.1.2 技术可行性硬件、软件、运行环境和开发环境方面的条件和限制:软件需求:操作系统WINDOWS 2000,XP以上;数据库服务器端软件Microsoft SQL server 2005。

硬件方面也能满足,由次知使用现在技术是可以实现这个超市会员管理系统的。

2.1.3 经济可行性要完成这样的超市会员方面管理系统,并不像真正用于超市各方面管理系统那么复杂和庞大,所需要的人力物力资源会比较少,所以在经济可行性上是可以接受的。

2.2 功能需求超市会员管理系统的功能主要有:会员基本信息管理,会员卡日常管理,会员积分管理,会员政策管理,报表管理等。

2.3数据流图系统顶层流图超市会员管理数据流图会员基本信息管理数据流图会员政策管理数据流图2.4 数据字典第三章总体设计通过上一章的需求分析,对系统的功能需求有了一个准备的把握,下机就是根据这些功能需求来提供相应的程序模块,实现这些功能。

3.1超市会员管理系统主要分四大模块3.1.1会员基本信息管理模块包括会员的姓名,性别,购卡日期,结卡日期,购物性况等。

(店铺管理)超市管理系统完整+源代码最全版

(店铺管理)超市管理系统完整+源代码最全版

(店铺管理)超市管理系统完整+源代码有壹个小型超市,出售N(N>=10)种商品,设计且实现壹个系统,完成下列功能:1.保存及输出。

超市中的各种商品信息保存在指定文件中,能够把它们输出显示。

2.计算且排序。

计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出壹位小数),将每类商品按平均价从大到小的顺序排序打印出来。

3.统计。

统计输出库存量低于100的货号及类别。

统计输出有俩种之上(含俩种)商品库存量低于100的商品类别。

1.2总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。

1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立壹个新结构体,为链表存信息用,且且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格和库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种之上(含2种)低于100的商品类别。

附录(程序清单)#include"stdio.h"/*输入,输出头文件*/#include"stdlib.h"/*申请空间头文件*/#include"string.h"/*对字符串加工头文件*/#include"conio.h"/*清屏头文件*/FILE*fp;intn=0;/*定义文件指针类型*/inti,j,a[4],m;/*定义整数类型*/floataver[4],sum[4],g[4],h;/*定义浮点类型*/charc[5]="elec";/*定义字符数组类型*/chard[5]="comm";/*定义字符数组类型*/chare[5]="food";/*定义字符数组类型*/charf[5]="offi";/*定义字符数组类型*/structgood/*定义结构体*/{intnum;/*商品编号*/charname[20];/*商品名称*/charkind[40];/*商品类型*/floatprice;/*商品价格*/charunit[10];/*商品单位*/intquantity;/*商品数量*/structgood*next;/*定义结构体指针类型*/}*head,*p1,*p2;structgood*createlist()/*创建链表函数*/{structgood*head1,*p1,*p2;/*定义结构体指针类型*/if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}head1=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/ p1=head1;p2=head1;printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf("(以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d%s%s%f%s%d",&p1->num,p1->name,p1->kind,&p1->price,p 1->unit,&p1->quantity);/*输入商品信息*/printf("____________________\n");p1->next=NULL;fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p 1->unit,p1->quantity);/*将商品信息写入文件*/while(1){p1=(structgood*)malloc(sizeof(structgood));/*申请新空间*/printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf("(以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d",&p1->num);if(p1->num==-1)/*申请空间结束条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);fclose(fp);returnhead1;/*返回头指针*/}scanf("%s%s%f%s%d",p1->name,p1->kind,&p1->price,p1->unit,&p1-> quantity);/*输入商品信息*/printf("________________\n");fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p 1->unit,p1->quantity);/*将商品信息写入文件*/p1->next=NULL;p2->next=p1;p2=p1;}}structgood*paixu(structgood*head2)/*链表排序函数*/ {structgood*p6,*p7,*r,*s;/*定义结构体指针类型*/for(i=0;i<=3;i++)/*赋初值值*/{a[i]=0;sum[i]=0;aver[i]=0;}p6=(structgood*)malloc(sizeof(structgood));/*申请新空间*/ p6->next=head2;head2=p6;while(p6->next!=NULL)/*判断循环结束条件*/{p7=p6->next;r=p6;while(p7->next!=NULL)/*判断循环结束条件*/{if((p7->next->price)>(r->next->price))/*判断是否调换*/ r=p7;p7=p7->next;}if(p6!=r)/*判断循环结束条件*/{s=r->next;/*指针调换*/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;free(p6);/*释放第壹个无效空间*/returnhead2;}voidjisuan(){p1=head;do{if(strcmp(p1->kind,c)==0)/*判断是否为电器类型*/{sum[0]=sum[0]+(p1->price)*(p1->quantity);/*求电器总价*/a[0]=a[0]+p1->quantity;/*求电器总件数*/}if(strcmp(p1->kind,d)==0)/*判断是否为日用品类型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity);/*求日用品总价*/ a[1]=a[1]+p1->quantity;/*求日用品总件数*/}if(strcmp(p1->kind,e)==0)/*判断是否为办公用品类型*/{sum[2]=sum[2]+(p1->price)*(p1->quantity);/*求办公用品总价*/a[2]=a[2]+p1->quantity;/*求办公用品总件数*/}if(strcmp(p1->kind,f)==0)/*判断是否为食品类型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity);/*求食品总价*/ a[3]=a[3]+p1->quantity;/*求食品总件数*/}p1=p1->next;}while(p1!=NULL);/*遍历链表结束条件*/for(i=0;i<4;i++)aver[i]=sum[i]/a[i];/*求每类商品平均价*/printf("****************************************************\n"); printf("商品类型\t平均价\t总库存量\n");printf("****************************************************\n"); printf("____________________________________________________\n"); printf("电器总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[0],aver[0],a[0]);printf("____________________________________________________\n");printf("日用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[1],aver[1],a[1]);printf("____________________________________________________\n"); printf("食品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[2],aver[2],a[2]);printf("____________________________________________________\n"); printf("办公用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[3],aver[3],a[3]);printf("____________________________________________________\n"); }voidshuchu()/*输出商品信息函数*/{do{structgood*p3,*p4,*p5;/*定义结构体指针类型*/intn=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goodsmessage.txt","rb+"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}head=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/p3=head;fscanf(fp,"%d%s%s%f%s%d",&p3->num,p3->name,p3->kind,&p3->pric e,p3->unit,&p3->quantity);/*从文件中写到链表*/while(1){p4=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/fscanf(fp,"%d",&p4->num);if(p4->num!=-1)/*判断循环结束条件*/{fscanf(fp,"%s%s%f%s%d",p4->name,p4->kind,&p4->price,p4->unit,&p4 ->quantity);/*从文件中写到链表*/p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclose(fp);/*关闭文件*/p3=head;while(p3!=NULL){printf("%d%s%s%0.1f%s%d\n\n",p3->num,p3->name,p3->kind,p3->pric e,p3->unit,p3->quantity);printf("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("1添加商品信息\n");printf("2删除某商品信息\n");printf("3修改某商品信息\n");printf("4返回(当你完成了对某壹商品的添加、删除或者修改后请按4返回)\n"); printf("**********************************\n");scanf("%d",&n);if(n==1)/*添加商品信息*/{printf("请输入商品编号名称类型价格单位数目\n");printf("**********************************\n");p4=(structgood*)malloc(sizeof(structgood));/*申请空间*/scanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p 4->unit,&p4->quantity);/*输入商品信息*/p4->next=NULL;while(p3->next!=NULL)/*判断循环结束条件*/{p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}while(p3!=NULL){fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p 3->unit,p3->quantity)/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*关闭文件*/printf("**********************************\n"); printf("__________________________________\n"); printf("------------请按4返回-------------\n"); printf("__________________________________\n"); printf("**********************************\n"); }if(n==2)/*删除商品*/{printf("**********************************\n"); printf("请输入需要删除的商品编号\n");printf("**********************************\n"); scanf("%d",&p);printf("**********\n");printf("1确认删除\n2取消删除\n");printf("**********\n");scanf("%d",&r);if(r==1){if((head->num)==p){head=head->next;free(p3);/*释放空间*/}else{p4=head;p3=p4->next;while(p3!=NULL)/*判断循环结束条件*/ {if((p3->num)==p){p5=p3->next;free(p3);/*释放空间*/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}p3=head;while(p3!=NULL)/*判断循环结束条件*/{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p 3->unit,p3->quantity);/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*关闭文件*/}if(r==2)continue;/*继续循环*/printf("**********************************\n"); printf("__________________________________\n"); printf("------------请按4返回-------------\n"); printf("__________________________________\n"); printf("**********************************\n"); }if(n==3)/*修改某商品信息*/{printf("请输入需要修改的商品编号\n");scanf("%d",&q);while(p3!=NULL)/*判断循环结束条件*/{if((p3->num)==q)/*判断是否为所需要修改的商品*/{printf("请输入商品单价和库存量(如果单价不变请输入原来的单价)\n"); scanf("%f%d",&p3->price,&p3->quantity);/*输入商品价格和库存量*/}p3=p3->next;}if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}p3=head;while(p3!=NULL)/*判断循环结束条件*/{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p 3->unit,p3->quantity);/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*关闭文件*/printf("**********************************\n"); printf("__________________________________\n"); printf("------------请按4返回-------------\n"); printf("__________________________________\n"); printf("**********************************\n"); }if(n==4)/*退出*/break;}printf("**********\n");printf("1继续修改\n---------\n2返回\n"); printf("**********\n");scanf("%d",&p);if(p==1)continue;/*继续循环*/if(p==2)break;/*跳出循环*/}while(n!=2);fclose(fp);/*关闭文件*/}voidprintf0(structgood*p)/*遍历链表且打印电器类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,c)==0)/*判断商品类型是否为电器类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3 ->price,p3->unit,p3->quantity);/*输出电器类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}voidprintf1(structgood*p)/*遍历链表且打印日用品类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,d)==0)/*判断商品类型是否为日用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3 ->price,p3->unit,p3->quantity);/*输出日用品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}voidprintf2(structgood*p)/*遍历链表且打印办公用品类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,e)==0)/*判断商品类型是否为办公用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3 ->price,p3->unit,p3->quantity);/*输出办公用品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}voidprintf3(structgood*p)/*遍历链表且打印食品类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,f)==0)/*判断商品类型是否为食品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3 ->price,p3->unit,p3->quantity);/*输出食品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}voidshunxudayin(){g[i]=aver[i];/*将平均价赋给新数组*/for(j=0;j<3;j++)/*将新数组用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i]){h=g[j];g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf("商品平均价格排序表(从高到低)\n");printf("****************************\n");printf("________________________________________________\n"); printf("编号\t名称\t类别\t单价\t单位\t数量\n");printf("________________________________________________\n");for(i=0;i<4;i++){if(aver[i]==g[j])/*判断每类商品平均价格的先后顺序*/ switch(i){case0:printf0(head);/*调用遍历链表且打印电器类商品函数*/ break;case1:printf1(head);/*调用遍历链表且打印日用品类商品函数*/ break;case2:printf2(head);/*调用遍历链表且打印办公用品类商品函数*/ break;case3:printf3(head);/*调用遍历链表且打印食品类商品函数*/ break;}}voidtongji1(){p1=head;printf("\n************************\n");printf("库存量低于100的货名及类别\n");printf("************************\n");printf("________________________\n");printf("商品名称\t商品类型\n");printf("________________________\n");while(p1!=NULL)/*判断遍历链表循环结束条件*/{if(p1->quantity<100)/*判断库存量是否小于100*/{printf("%s\t%s\n",p1->name,p1->kind);/*输出商品名称及类别*/ printf("________________________\n");p1=p1->next;}}voidtongji2(){printf("\n**********************************************\n");printf("商品库存量有2种之上(含2种)低于100的商品类别:\n");printf("**********************************************\n");printf("________\n");if((a[0]<100)&&(a[0]>=2))/*判断电器类库存量是否为2种之上(含2种)低于100*/{printf("电器\n");printf("________\n");}if((a[1]<100)&&(a[1]>=2))/*判断日用品类库存量是否为2种之上(含2种)低于100*/printf("日用品\n");printf("________\n");}if((a[2]<100)&&(a[2]>=2))/*判断食品类库存量是否为2种之上(含2种)低于100*/{printf("食品\n");printf("________\n");}if((a[3]<100)&&(a[3]>=2))/*判断办公用品类库存量是否为2种之上(含2种)低于100*/{printf("办公用品\n");printf("________\n");}}intmain(intargc,char*argv[]){structgood*p1,*p2;/*定义结构体指针类型*/while(1){printf("***********************************************\n"); printf("1----------输出查见或者修改已存信息-----------\n"); printf("-----------------------------------------------\n"); printf("2-----重新输入新信息(且且删除原有信息)------\n"); printf("-----------------------------------------------\n"); printf("3统计商品信息(如果您仍没有查见过信息请先按1)\n"); printf("-----------------------------------------------\n"); printf("4-------------------退出---------------------\n");printf("***********************************************\n"); scanf("%d",&m);if(m==1)shuchu();/*调用输出信息函数*/if(m==2){system("cls");head=createlist();/*调用建立链表函数*/}if(m==3){printf("统计结果如下\n");head=paixu(head);/*调用链表排序函数*/ jisuan();/*调用计算函数*/shunxudayin();/*调用顺序打印函数*/ tongji1();/*调用统计1函数*/tongji2();/*调用统计2函数*/}if(m==4){p1=head;while(p1!=NULL)/*判断遍历链表结束条件*/ {p2=p1->next;free(p1);/*释放空间*/ p1=p2;}break;}}return0;/*结束程序*/ }。

超市管理系统java课课程设计

超市管理系统java课课程设计

超市管理系统java课课程设计一、教学目标本节课的教学目标是使学生掌握Java编程的基本语法和逻辑结构,能够运用Java编写简单的程序。

具体来说,知识目标包括理解Java的基本数据类型、控制结构和面向对象编程思想;技能目标包括能够使用Java编写简单的程序,解决实际问题;情感态度价值观目标包括培养学生对计算机科学的兴趣和热情,提高学生解决问题的能力。

二、教学内容本节课的教学内容主要包括Java的基本语法、数据类型、控制结构和面向对象编程。

具体来说,将讲解Java的基本语法规则,包括变量、常量的声明和使用,运算符的运算规则等;介绍Java的数据类型,包括整型、浮点型、字符型和布尔型等;讲解Java的控制结构,包括顺序结构、选择结构和循环结构等;最后介绍Java的面向对象编程思想,包括类和对象的概念,构造函数的定义和使用,成员变量的声明和方法的定义等。

三、教学方法为了达到本节课的教学目标,将采用多种教学方法进行教学。

首先,将采用讲授法,向学生讲解Java的基本语法、数据类型、控制结构和面向对象编程思想;其次,将采用案例分析法,通过分析具体的案例,让学生理解Java编程的实际应用;最后,将采用实验法,让学生动手编写Java程序,巩固所学知识。

四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备一些教学资源。

教材方面,将使用《Java编程思想》作为主教材,辅以《Java核心技术》等参考书;多媒体资料方面,将制作PPT课件,通过图文并茂的方式,帮助学生理解Java编程的概念和语法;实验设备方面,将准备计算机实验室,让学生能够动手编写和运行Java程序。

五、教学评估为了全面、客观地评估学生的学习成果,将采用多种评估方式。

平时表现方面,将根据学生在课堂上的发言、提问和参与程度进行评估;作业方面,将布置适量的编程作业,要求学生独立完成,并根据作业的质量和创新性进行评估;考试方面,将安排一次期中考试和一次期末考试,考试内容主要包括Java的基本语法、数据类型、控制结构和面向对象编程等,考试成绩将占总评分的绝大部分。

超市会员管理系统详细代码

超市会员管理系统详细代码

数据库设计1 系统数据库分析数据库设计是建立数据库及其应用系统的技术,是系统开发和建设中的核心技术。

具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求(信息要求和处理要求)。

数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。

根据超市会员管理系统功能设计的需要,数据库结构设计如下所示:(1). 用户登录信息数据表(Login):(用户账号,密码,登录身份);(2). 会员基本信息数据表(Member):(用户账号,用户姓名,身份证号,联系方式,联系地址);(3). 职员基本信息数据表(Employee):(职员号,职员姓名,职员职位);(4). 会员积分信息数据表(Score):(会员账号,会员积分,会员等级,会员折扣);2 数据库概念结构设计根据上节的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。

各种实体具体的描述E-R图如下。

1. 用户登录信息实体图主要描述了登录用户的基本情况,包括了用户的用户账号,密码,登录身份。

如图3-11所示,用户登录信息实体E-R图。

图3-12 用户登录实体的E-R图2. 会员基本信息实体图主要描述会员的基本情况,包括了会员基本信息的用户账号,用户姓名,身份证号,联系方式,联系地址,得出如图3-12所示会员基本信息实体E-R图。

图3-13 会员基本信息实体的E-R图3. 职员基本信息实体图主要描述新生的基本情况,包括了职员基本信息的职员号,职员姓名,职员职位,得出如图3-13所示职员基本信息实体E-R图。

图3-14 职员基本信息实体的E-R图4. 会员积分信息实体图主要描述会员积分的基本情况,包括了会员积分基本信息的会员账号,会员积分,会员等级,会员折扣,得出如图3-14所示会员积分信息实体E-R图。

超市会员管理系统

超市会员管理系统

超市会员管理系统超市会员管理系统要求建立起数据一致性和完整性强、数据安全性好的库;本系统主要是对超市会员和职员的基本信息进行有序管理,主要包括的功能模块有:会员信息管理、积分信息管理、基本信息管理、统计、系统信息等;该系统是在Microsoft Visual C++ 的开发工具前提下进行的,运用Visual C++语言,连接了Microsoft Access 2003数据库,进行数据库的管理;简单目录:一.可行性研究1.技术可行性2.经济可行性3.操作可行性二.功能需求1.会员信息2.积分信息3.基本信息管理4.统计5.系统信息6.退出系统7.系统工具栏三.环境需求四.总体设计1.系统登录权限2.系统结构图3.各具体功能模块图4.基本信息管理模块5.统计6.系统信息五.数据库设计1.系统数据库分析2.数据库概念结构设计3.系统数据库的设计4.表之间的关系六.详细设计与实现1.系统首页2.登录页面3.会员信息模块4.积分信息模块5.基本信息管理模块6.统计7.系统信息8.退出系统9.数据库连接设计与实现可行性研究可行性研究并不是解决问题,而是确定问题是否值得去解决,就是用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究最根本的任务是对以后的行动方针提出建议;以下进行对超市会员管理系统的可行性分析:1. 技术可行性:系统使用VC++作为开发工具,数据库使用Microsoft Access;支持的操作系统有Windows XPSP2/Windows 2000SP4/Windows Server 2003SP1等;2. 经济可行性:开发本系统为会员,职员和管理员带来了极大的方便,节省了人力、物力、技术、资金等方面的花费,所以今后获得的经济效益一定会大于开发成本;3. 操作可行性:超市会员管理系统简单易用,对用户的计算机水平要求不高,对于一般用户很容易学会;同时用计算机的高速度和自动化来替代手工的巨大工量,用计算机的高准确性来避免手工的错误和误差;功能需求功能模块的划分需要遵循低耦合、高内聚的原则,根据这一原则对该超市会员管理系统进行功能模块划分,下面详细叙述;本系统针对三种层次的权限的用户:管理员、普通职员、会员;对于想使用超市会员管理系统的用户,可以利用自己的登录账号,密码,用户权限登录该系统;进入系统后跟据自己权限执行相应权限的操作;1. 会员信息单击子菜单中的查看基本信息,可以查看会员的基本信息;单击子菜单中的修改会员密码,可以修改会员的登录密码;2. 积分信息单击子菜单中的积分查询,可以查看该用户的会员积分;单击子菜单中的积分兑换,可以进行积分兑换;单击子菜单中的消费加分,可以根据会员的消费金额增加其积分;此操作只能由超市职员或管理员进行;对于会员,其权限不允许对该模块操作;单击子菜单中的优惠讯息,可以查看超市的积分优惠政策;3. 基本信息管理本模块的功能:职员信息管理和会员信息管理;该模块功能只允许超市职员和管理员进行操作;1职员信息管理:超市职员只能使用职员信息子菜单中的查询和修改密码功能;管理员可对职员信息管理的全部功能进行操作:查询职员信息、修改职员信息、添加、删除职员信息;2会员信息管理:该模块可对会员信息进行查询、添加、修改、删除;有超市职员或管理员执行,不允许会员操作;4. 统计超市职员或管理员成功登录后,可以通过此模块对会员的积分情况进行统计分析,得到分析结果;5. 系统信息用户成功登录后,可以点击系统信息下的帮助和关于子菜单;该模块功能可以帮助用户了解该系统的使用;单击子菜单中的用户帮助,系统弹出帮助文件,用户可以通过阅读帮助文件使用该系统;单击子菜单中的关于,用户可以了解该系统版本及版权;6. 退出系统用户登录成功后,操作进行完毕即可点击退出菜单将退出系统,同时关闭数据库;7. 系统工具栏用户登录成功后,点击工具栏按钮可以快捷进入积分查询、会员查询、会员密码修改、关于系统及退出系统模块;此外,在开发过程中,为工具栏按钮添加了鼠标提示功能;这样能使用户更方便的获取工具栏信息;环境需求系统开发平台:Microsoft Visual C++系统开发语言:VC++数据库系统:Microsoft Access 2003运行平台:Windows XPSP2/Windows 2000SP4/Windows Server 2003SP1 运行环境:Microsoft Visual C++开发工具简介:C++是一种使用非常广泛的计算机编程语言;C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言;它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格;C++ 是C语言的一个高级版本,支持中文,界面高级,不需要启动母文件即可运行程序;Visual C++所使用的编程语言是C/C++;Visual C++继承了C/C++语言的简单、高效、易用的优点,代码结构清晰,可读性好,并且融入了面向对象、过程可视化、事件驱动等软件开发的最新技术,是C/C++语言编程技术发展到一个新的高度;Visual C++是Microsoft 公司推出的目前使用极为广泛的基于Windows平台的可视化编程环境;Visual C++ 是在以往版本不断更新的基础上形成的,由于其功能强大、灵活性好、完全可扩展,以及具有强有力的Internet支持,在各种C++语言开发工具中脱颖而出,成为目前最为流行的C++语言集成环境;Visual C++ 分为标准版、专业版和企业板三种,但其基本功能是相同的;数据库是一种数据管理技术,是计算机科学的重要分支;它具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,许多较大的系统都是建立在数据库设计的基础上的;数据库的管理系统主要有Access数据库管理系统、SQL Server数据库管理系统、Oracle数据库管理系统等;SQL是Structured Query Language结构化查询语言的缩写;SQL已经成为了最流行的关系查询语言;用户如果要想开发和使用数据库,就必须先掌握结构化查询语言SQL;SQL的功能十分强大,其主要特点如下;1 SQL是非结构化语言,使用SQL查询数据库时,只需告诉它做什么而不用告诉它如何去做.2 SQL本身不提供任何程序流程控制结构,而是通过PL/SQL提供SQL 语言的过程化功能;3 SQL提供相对固定的数据类型,用户一般不需要进行扩展,4 SQL本身是非常灵活的,实现同一目的,可以有很多不同的方法;SQL语句可以分为四大类① 数据定义语言DDL,用于定义数据结构;② 数据操作语言DML,用户检索和修改数据;③ 数据控制语言DCL,用于规定数据库用户的各种权限;④ 数据库事务处理,用来保证数据库的完整性;总体设计超市会员管理系统业务流程:首先由系统管理员将使用该系统的用户分为三种类型,管理员、普通职员和超市会员;普通职员拥有对超市会员的信息管理,即查、添、删、改的功能;还可对会员积分进行管理,如:将会远的消费金额转换为消费积分;同时,超市职员还可对自己的信息进行查询,并可修改自己的登录密码;超市会员只可对自己的信息进行查询,或对自己的积分进行兑换、查询;超级管理员具有所有权限;1.系统登录权限如图所示:图3-1 系统登录权限图在系统的总体设计中我采用结构化设计Structure Design,简称SD,首先将整个系统化分为几个小问题,小模块;然后,进一步细分模块,添加细节;根据前面的系统功能需求分析和超市会员管理系统实现的功能可分解成七个主要功能模块,它们分别是用户登录模块、会员信息模块、积分信息模块、基本信息管理模块、统计模块、系统信息模块、退出系统模块;这七个主要功能模块分别可以分为多个具体模块,下面介绍各个具体模块;2.系统结构图如下图所示:图3-2 超市会员管理系统总体结构图3. 各具体功能模块图1 .用户登录模块登录界面实现的程序流程图为:图3-3 用户登录程序流程图2. 会员信息模块1.会员基本信息查询用户登录成功后,可以根据用户账号或身份证号查询会员的基本信息,还可以进行全表查询;流程图如下:图3-4 会员信息查询流程图2.会员密码修改此模块用于修改会员的登录密码;流程图如下:图3-5 会员密码修改流程图3 积分信息模块1.积分查询实现原理如会员信息模块中的会员查询;2.积分兑换该模块实现会员的积分兑换;程序流程图如下:图3-6 积分兑换流程图3.消费加分该模块功能将会员的消费金额换为消费积分;流程图如下:图3-7 消费加分模块流程图4.优惠讯息该模块为静态功能;超市职员可将点击优惠讯息菜单即出现超市积分的优惠政策及兑换政策的对话框;4 基本信息管理模块1. 职员信息管理查询基本信息该模块功能实现基本与会员基本信息查询相同,在此不再赘述; 修改职员信息该模块功能修改超市职员的基本信息,其实现流程图如下:图3-8职员信息修改流程图修改密码职员修改密码模块与会员密码修改类似,此处不再赘述;添加职员信息管理员进入系统后可以按照需求添加职员信息,下面是添加职员程序流程图:图3-9 添加职员信息流程图删除职员信息该模块由管理员进行操作,填入职工号后,系统检查是否存在于数据库中,若存在则按照职员号删除该职员记录信息,流程图如下:图3-10 删除职员信息流程图会员信息管理会员信息管理包括会员信息查询、会员信息修改、会员注册、会员注销四个模块,功能实现同职员信息管理模块中响应功能;5 统计统计模块用于统计会员积分等级;1 打开记录集,获得各等级人数;2绘制柱形图图3-11 统计分析柱形图实现流程图6 系统信息1.用户帮助系统调用帮助文件,对于不熟悉本系统的用户可以通过阅读帮助文件了解系统如何使用;2.关于本系统本功能调用系统关于对话框,为用户提供系统版本及版权情况;数据库设计1 系统数据库分析数据库设计是建立数据库及其应用系统的技术,是系统开发和建设中的核心技术;具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求信息要求和处理要求;数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响;根据超市会员管理系统功能设计的需要,数据库结构设计如下所示:1. 用户登录信息数据表Login:用户账号,密码,登录身份;2. 会员基本信息数据表Member:用户账号,用户姓名,身份证号,联系方式,联系地址;3. 职员基本信息数据表Employee:职员号,职员姓名,职员职位;4. 会员积分信息数据表Score:会员账号,会员积分,会员等级,会员折扣;2 数据库概念结构设计根据上节的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动;各种实体具体的描述E-R图如下;1. 用户登录信息实体图主要描述了登录用户的基本情况,包括了用户的用户账号,密码,登录身份;如图3-11所示,用户登录信息实体E-R图;图3-12 用户登录实体的E-R图2. 会员基本信息实体图主要描述会员的基本情况,包括了会员基本信息的用户账号,用户姓名,身份证号,联系方式,联系地址,得出如图3-12所示会员基本信息实体E-R图;图3-13 会员基本信息实体的E-R图3. 职员基本信息实体图主要描述新生的基本情况,包括了职员基本信息的职员号,职员姓名,职员职位,得出如图3-13所示职员基本信息实体E-R图;图3-14 职员基本信息实体的E-R图4. 会员积分信息实体图主要描述会员积分的基本情况,包括了会员积分基本信息的会员账号,会员积分,会员等级,会员折扣,得出如图3-14所示会员积分信息实体E-R图;图3-15 会员积分信息实体的E-R图实体之间的关系E-R图主要描述实体间的关系;图3-16 各实体之间的关系3.系统数据库的设计根据需求分析与概念结构设计,建立数据库系统支持的数据模型,即数据库的逻辑结构;本系统利用Microsoft Access 2003创建了名为SuperMarket的数据库;本系统主要建立了以下四张表:表用户登录数据表表会员基本信息数据表表职员基本信息数据表表会员积分信息数据表4. 表之间的关系表之间存在的关系如下:1.在会员基本信息表Member中添加信息的同时,把信息添加到用户登录信息表Login中,同时将信息添加到积分信息表Score中;2.在会员基本信息表Member中删除会员信息的同时,把用户登录信息表Login和用户积分信息Score中该会员信息删除;3.在职员基本信息表Member中添加信息的同时,将志愿的基本信息添加到用户登录信息表Login中;4.在职员基本信息表Member中删除职员信息的同时,把用户登录信息表Login中该职员信息删除;详细设计与实现1. 系统首页图4-1 超市会员管理系统首页自定义工具栏按钮及鼠标提示信息的设计与实现:图4-2 主页面工具栏在对话框的OnInitDialog方法中常见工具栏窗口和图像列表窗口,关联图像列表,设置工具栏按钮文本,启动工具栏的EnableToolTip方法激活提示功能;鼠标提示信息的实现,处理TTN_NEEDTEXT消息的响应函数OnToolTipText,通过函数的参数获得工具栏按钮的ID,从而根据ID获取提示信息文本;1.添加消息映射最好写在AFX_MSG_MAP宏外,否则可能出现编译错误ON_NOTIFY_EX_RANGETTN_NEEDTEXTW,0,0xFFFF,OnToolTipTextON_NOTIFY_EX_RANGETTN_NEEDTEXTA,0,0xFFFF,OnToolTipText2.添加事件声明最好写在AFX_MSG宏外,否则可能出现编译错误afx_msg BOOL OnToolTipTextUINT nID, NMHDR pNMHDR, LRESULT pResult;2 登录页面系统运行后,首先展现给用户的是用户登录界面,用户登录成功后进入到主页面,用户登录界面如下图所示:图4-3 用户登录界面用户登录有三种身份,管理员、普通职员、会员;管理员登录成功后,可以对系统各模块进行操作;普通职员登录成功后,除对职员的添加、删除外,均可实现操作;会员,则只能对自己的一些基本信息进行操作;登录界面由函数void CLoginDlg::OnOK实现处理,具体代码如下:....","提示",64;CDialog::OnOK;4.3.2积分信息模块1 积分查询该功能实现界面如下:图4-7 积分查询界面输入会员账号后,点击确定按钮,系统首先检查账号是否存在,若存在则输出该会员积分信息;若不存在,输出提示信息;实现原理如会员信息模块中的会员查询;实现函数为:void CJQueryDlg::OnOK;在编辑框中的显示实现为:var = m_pRs->GetCollect"MScore";if = VT_NULLstr1 = LPCSTR_bstr_tvar;GetDlgItemIDC_EDIT_Jifen->SetWindowTextstr1;var = m_pRs->GetCollect"MGrade";if =VT_NULLstr2=LPCSTR_bstr_tvar;GetDlgItemIDC_EDIT_Grade->SetWindowTextstr2;var = m_pRs->GetCollect"MDiscount";if =VT_NULLstr3=LPCSTR_bstr_tvar;GetDlgItemIDC_EDIT_Discout->SetWindowTextstr3;2 积分兑换积分兑换功能的实现界面如下:图4-8 积分兑换功能实现界面用户输入账号和密码后,点击兑换按钮,该按钮的实现中,首先检查用户合法性;若用户已兑换过积分,则提示及兑换;若积分不够兑换等级,则提示积分不够;若兑换成功后,则显示用户等级和优惠折扣;该模块实现单击事件函数处理为:void CEXchangeDlg::OnOK,具体实现如下:员信息管理1. 查询基本信息该模块功能实现基本与会员基本信息查询相同,在此不再赘述;实现该功能的函数为:void CEmployeeDlg::OnOK;实现该功能的SQL语句为:sql="select from Employee where EID='"+EmpID+"'";2. 修改职员信息该模块功能修改超市职员的基本信息;函数实现:void CMIMDlg::OnOK;其实现如下:GetDlgItemIDC_EDIT1_EmpName->GetWindowTextEXm;GetDlgItemIDC_COMBO_EmpSta->GetWindowTextEZw;ifEZw=="管理员" EZw="0";else ifEZw=="普通职员" EZw="1";sql="Update Employee set EName='"+EXm+"',EStatus='"+EZw+"' where EID='"+EMId+"'";try{>Execute_bstr_tsql,NULL,adCmdText;}catch_com_error &e{AfxMessageBox;}AfxMessageBox"修改成功";3. 修改密码职员修改密码模块与会员密码修改类似,实现函数为:void CMModifyDlg::OnOK,此处不再赘述;具体SQL语句实现为:sql="Update Login set DCode='"+NewCode+"' where DNO='"+Name+"'";try{>Execute_bstr_tsql,NULL,adCmdText;}catch_com_error &e{AfxMessageBox;}4. 添加职员信息管理员进入系统后可以按照需求添加职员信息,该模块首先检验输入是否为空,若不为空,则可以进行添加,此功能同时将信息添加到Login表和Employee表中,界面实现如图:图4-10 添加职工信息实现该事件的函数为:void CEAddEmplyeeDlg::OnOK,下面是添加职员信息的具体实现:sql="Insert into EmployeeEID,EName,EStatus values'"+Eno+"','"+Ename+"','"+Esta+"'";SQL="Insert into LoginDNO,DCode,DUserSta values'"+Eno+"','"+Ecode+"','"+Esta+"'";try{>Execute_bstr_tsql,NULL,adCmdText;>Execute_bstr_tSQL,NULL,adCmdText;}catch_com_error &e{AfxMessageBox;}AfxMessageBox"添加成功";5. 删除职员信息该模块只能由管理员进行操作,管理员成功登录后,可以按照职员号删除职员信息,如图所示:图4-11 删除职工信息图在删除前,系统会给出提示,提醒用户是否确定要删除;点击是,则将该记录从数据库中删除;点击否,则撤销删除行为;实现函数为void CDelEmpDlg::OnOK,代码如下:ifMessageBox"确定要删除该记录吗","提示",MB_YESNO==IDYES{sql="delete from Employee where EID='"+EmpNO+"'";SQL="delete from Login where DNO='"+EmpNO+"'";try{>Execute_bstr_tsql,NULL,adCmdText;>Execute_bstr_tSQL,NULL,adCmdText;}catch_com_error &e{AfxMessageBox;}AfxMessageBox"删除成功";}2 会员信息管理会员信息管理包括会员信息查询、会员信息修改、会员注册、会员删除四个模块,功能实现同职员信息管理模块中响应功能;实现函数分别为:void CMemberDlg::OnOK、void CModifyMemDlg::OnBUTTONModify、void CMemAddDlg::OnOK、void CModifyMemDlg::OnBUTTONDel;此处以会员信息修改和删除为例,其他功能实现略写;图4-12 会员信息修改图中,灰色编辑框表示不可改;如果要修改信息则填入要修改的值,点击“确定修改”,即可修改成功;如果要删除该条记录,则点击“确定删除”,系统会提示,是否真的删除,若是,则从数据库表中将该记录删除,若否,则退出删除;此处实现的相关的SQL语句为://修改sql="Update Member set MName='"+UserName+"',MTel='"+UserTel+"',MAdd='"+UserAdd+"' where MNO='"+UserNO+"'";try{>Execute_bstr_tsql,NULL,adCmdText;}catch_com_error &e{AfxMessageBox;}AfxMessageBox"修改成功";//删除ifMessageBox"确定要删除该记录吗","提示",MB_YESNO==IDYES {sql="delete from Member where MNO='"+UserNO+"'";SQL="delete from Login where DNO='"+UserNO+"'";try{>Execute_bstr_tsql,NULL,adCmdText;>Execute_bstr_tSQL,NULL,adCmdText;}catch_com_error &e{AfxMessageBox;}AfxMessageBox"删除成功";6 统计统计模块是对超市会员积分进行统计,可以统计出各登记人数及所占百分比,并以柱形图的形式显示出来;图4-13 统计分析功能实现图实现该功能的函数为:void CStatDlg::OnOK具体实现:1 打开记录集,获得各等级人数;2 绘制柱形图//获取静态图片空间大小CWnd pWnd=this->GetDlgItemIDC_DRAW;pWnd->GetClientRect&rectPic;// 获取设备环境指针CDC pDC=pWnd->GetDC;// 重新填充静态图片区域CBrush NewBrush;RGB238,238,237;CBrush pOldBrush=pDC->SelectObject&NewBrush;pDC->Rectangle&rectPic;pDC->SelectObjectpOldBrush;// 确定每个柱形条的宽度int nLength= 定义五种颜色,用来填充柱形图COLORREF RGBArray6={RGB0,255,0,RGB128,0,255,RGB0,0,255, RGB255,255,0, RGB255,0,0,RGB0,128,255};// 定义一个矩形,表示柱形条CRect rect;for int i=0; i<6; i++{// 确定柱形条的位置=+inLength;= si/num;= + i+1nLength;=;// 创建画刷,填充图形CBrush NewBrush;RGBArrayi;CBrush pOldBrush=pDC->SelectObject&NewBrush;pDC->Rectangle&rect;pDC->SelectObjectpOldBrush;}// 释放设备环境this->ReleaseDCpDC;7 系统信息1 用户帮助系统调用帮助文件,对于不熟悉本系统的用户可以通过阅读帮助文件了解系统如何使用;点击用户帮助菜单或帮助工具栏按钮后,即打开帮助文件,如图所示:图4-14 用户帮助功能实现图具体实现为:void CCMarketDlg::OnMENUHelp{char bufMAX_PATH;::GetCurrentDirectoryMAX_PATH,buf; //获取程序根目录路径::ShellExecuteNULL, "open", "", "", "", SW_SHOW;}2 关于本系统具体实现:void CCMarketDlg::OnMENUAbout{CDialog aboutIDD_ABOUTBOX;;}8 退出系统具体实现:void CCMarketDlg::OnMENUQuit{>Close;//关闭数据库EndDialog0;}9 数据库连接设计与实现1 初始化COM库,引入ADO库定义文件首先在中用import指令引入ADO类型库import "c:\program files\common files\system\ado\"no_namespace\rename"EOF","adoEOF"然后使用AfxOleInit来初始化COM库;2 用Connection对象连接数据库conn->Open_bstr_tstrConn,"","",adModeUnknown; //打开数据库3 利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理;_RecordsetPtr m_pRs;__uuidofRecordset;>Execute_bstr_tsql,NULL,adCmdText;//执行sql 4使用完毕后关闭连接释放对象;m_pRs->Close;//关闭记录集conn->Close;//关闭连接。

超市会员管理系课程设计

超市会员管理系课程设计

超市会员管理系课程设计一、课程目标知识目标:1. 学生理解超市会员管理系统的基本概念、功能及作用;2. 学生掌握会员信息管理、积分管理、优惠活动设置等模块的操作流程;3. 学生了解数据库管理的基本原理,并能够运用到会员管理系统中。

技能目标:1. 学生能够独立完成会员管理系统的注册、登录、信息查询等基本操作;2. 学生具备分析会员消费行为,制定针对性营销策略的能力;3. 学生能够运用所学知识解决实际运营过程中遇到的问题,提高问题解决能力。

情感态度价值观目标:1. 学生通过学习会员管理系统,认识到信息技术的实用性和重要性,增强对信息技术的兴趣;2. 学生在团队合作中培养沟通能力、协作精神,养成尊重他人、认真负责的态度;3. 学生能够从会员管理系统中体会到数据安全、隐私保护的重要性,树立正确的网络安全观念。

课程性质:本课程为信息技术与商业管理相结合的实践性课程,旨在让学生掌握超市会员管理系统的基本知识和操作技能,提高实际问题解决能力。

学生特点:本课程面向初中年级学生,他们对信息技术有一定的基础,善于接受新事物,喜欢动手实践,但需加强团队协作能力的培养。

教学要求:结合学生特点,注重理论与实践相结合,强调实践操作和问题解决能力的培养。

通过小组合作、案例分析等方式,提高学生的参与度和积极性。

同时,注重培养学生的情感态度价值观,使他们在掌握知识技能的同时,形成正确的价值观。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 会员管理系统概述:介绍会员管理系统的定义、功能、应用场景及其在超市运营中的重要性。

教材章节:《信息技术》第四章第二节2. 会员信息管理:讲解会员信息录入、查询、修改、删除等操作方法。

教材章节:《信息技术》第四章第三节3. 积分管理:学习积分的计算方法、积分兑换规则以及积分促销活动的设计。

教材章节:《信息技术》第四章第四节4. 优惠活动设置:介绍优惠券的种类、发放方式、使用规则及优惠活动的策划。

(店铺管理)超市管理系统代码最全版

(店铺管理)超市管理系统代码最全版

(店铺管理)超市管理系统代码usingSystem;usingSystem.Collections.Generic;ponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.T ext;usingSystem.Windows.Forms;namespace超市管理信息系统{publicpartialclassf_供应商基本信息:Form{//公有变量记录选定数据publicstringstrOldNO="";publicstringstrOldName="";publicstringstrOldAdd="";publicf_供应商基本信息(){InitializeComponent();}privatevoidf_供应商基本信息_Load(objectsender,EventArgse){//TODO:这行代码将数据加载到表“连锁超市管理信息数据库DataSet.供应商”中。

您能够根据需要移动或移除它。

this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商); }//新增数据单击事件privatevoidbtnInsert_Click(objectsender,EventArgse){//获取前台数据stringstrName=txtName.T ext;stringstrAdd=txtAdd.T ext;stringstrNO=txtNO.T ext;intiNO=0;intiErrCode=0;//对前台编号数据的格式审核try{iNO=Convert.ToInt32(txtNO.T ext.Trim());}catch(ExceptioneINO){iErrCode=1;}//对前台名称数据的格式审核if(strName.Length>20)iErrCode=2;}if(strAdd.Length>30){iErrCode=3;}if(iErrCode!=0){MessageBox.Show("你所输入的数据有误,请核查!");}else{try{//新增写入数据库this.供应商T ableAdapter.Insert(iNO,strName,strAdd);}catch(ExceptionexInsert){MessageBox.Show("新增数据发生错误,请和管理员联系!"); }//刷新数据列数this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商);}//单击数据表单元格触发事件privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse) {//获取对应行的各个单元格数据stringstrNO=this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); stringstrName=this.dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); stringstrAdd=this.dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(); //填充回对应的文本框txtNO.T ext=strNO;txtName.T ext=strName;txtAdd.T ext=strAdd;//将原数据值赋予公有变量strOldNO=strNO;strOldName=strName;strOldAdd=strAdd;}//删除按钮事件privatevoidbtnDelete_Click(objectsender,EventArgse)//获取前台数据stringstrName=txtName.T ext; stringstrAdd=txtAdd.T ext; stringstrNO=txtNO.T ext;intiNO=0;intiErrCode=0;//对前台编号数据的格式审核try{iNO=Convert.ToInt32(txtNO.T ext.Trim()); }catch(ExceptioneINO){iErrCode=1;}//对前台名称数据的格式审核if(strName.Length>20){iErrCode=2;}if(strAdd.Length>30)iErrCode=3;}if(iErrCode!=0){MessageBox.Show("你所输入的数据有误,请核查!");}else{try{//新增写入数据库this.供应商T ableAdapter.Delete(iNO,strName,strAdd);}catch(ExceptionexInsert){MessageBox.Show("删除数据发生错误,请和管理员联系!");}}//刷新数据列数this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商); }//修改按钮事件privatevoidbtnUpdate_Click(objectsender,EventArgse) {//获取前台数据stringstrName=txtName.T ext;stringstrAdd=txtAdd.T ext;stringstrNO=txtNO.T ext;intiNO=0;intiErrCode=0;//对前台编号数据的格式审核try{iNO=Convert.ToInt32(txtNO.T ext.Trim());}catch(ExceptioneINO){iErrCode=1;}//对前台名称数据的格式审核if(strName.Length>20){iErrCode=2;}if(strAdd.Length>30){iErrCode=3;}if(iErrCode!=0){MessageBox.Show("你所输入的数据有误,请核查!");}else{try{this.供应商TableAdapter.Update(iNO,strName,strAdd,Convert.ToInt32(strOldNO),strOldName,s trOldAdd);}catch(ExceptionexUpdate){MessageBox.Show("修改数据发生错误,请和管理员联系!");}}//刷新数据列数this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商); }}}usingSystem;usingSystem.Collections.Generic;ponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.T ext;usingSystem.Windows.Forms;namespace超市管理信息系统{publicpartialclassf_供应商基本信息:Form{//公有变量记录选定数据publicstringstrOldNO="";publicstringstrOldName="";publicstringstrOldAdd="";publicf_供应商基本信息(){InitializeComponent();privatevoidf_供应商基本信息_Load(objectsender,EventArgse){//TODO:这行代码将数据加载到表“连锁超市管理信息数据库DataSet.供应商”中。

超市管理系统c语言课程设计

超市管理系统c语言课程设计

超市管理系统c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法和数据结构,如数组、结构体等;2. 学会使用C语言进行简单的文件操作;3. 了解超市管理系统的基本功能和需求;4. 学习如何设计、编写和调试C语言程序。

技能目标:1. 能够运用所学知识设计并实现一个简单的超市管理系统;2. 培养独立分析问题、解决问题的能力;3. 提高编程实践能力,熟练使用C语言进行程序设计;4. 学会使用调试工具,提高程序调试效率。

情感态度价值观目标:1. 培养对计算机编程的兴趣,激发学习积极性;2. 培养团队协作意识,学会与他人共同解决问题;3. 增强学生的自信心,鼓励他们勇于挑战困难;4. 培养良好的编程习惯,注重代码规范和优化。

本课程旨在让学生通过学习C语言,设计并实现一个超市管理系统,掌握编程的基本方法和技巧。

针对学生的年级特点,课程内容注重实践操作,培养学生动手能力和解决问题的能力。

在教学过程中,注重激发学生的学习兴趣,培养团队协作精神,提高学生的综合素质。

课程目标的设定遵循具体、可衡量原则,为教学设计和评估提供明确方向。

二、教学内容1. C语言基础语法:变量定义、数据类型、运算符、表达式、控制结构(顺序、选择、循环);2. 函数:函数定义、调用、参数传递、返回值、库函数使用;3. 数组与字符串:一维数组、二维数组、字符串处理;4. 结构体与文件操作:结构体定义、初始化、结构体数组、文件打开、读写、关闭;5. 超市管理系统功能模块设计:用户模块(登录、注册)、商品模块(增删改查)、购物车模块(添加、删除、结算)、库存模块(库存管理);6. 程序调试与优化:错误类型分析、调试工具使用、代码优化。

教学内容依据课程目标进行选择和组织,确保学生掌握C语言基础知识,并能运用所学设计超市管理系统。

教学大纲明确指出教材相关章节,安排合理的教学进度,使教学内容具有科学性和系统性。

教学中注重理论与实践相结合,提高学生的编程实践能力。

超市管理系统c语言课程设计

超市管理系统c语言课程设计

超市管理系统c语言课程设计一、教学目标本节课的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握超市管理系统的基本概念、设计方法和实现技术。

技能目标要求学生能够使用C语言进行简单的程序设计,掌握数据结构的基本操作,以及运用面向对象编程思想进行软件开发。

情感态度价值观目标则是培养学生对计算机科学的兴趣和热情,提高他们的问题解决能力和团队合作意识。

通过对本节课的学习,学生将了解超市管理系统的设计原理,掌握C语言编程方法,培养实际操作能力,提高对计算机科学的兴趣和热情。

二、教学内容本节课的教学内容主要包括超市管理系统的基本概念、C语言编程基础、数据结构的基本操作以及面向对象编程思想。

首先,介绍超市管理系统的基本概念,包括系统架构、功能模块和设计原则。

然后,通过C语言编程实例,使学生掌握C语言的基本语法、数据类型、运算符、控制结构等编程基础。

接下来,讲解数据结构的基本操作,如链表、栈、队列等,并引导学生运用这些数据结构实现超市管理系统的相关功能。

最后,引入面向对象编程思想,让学生了解类、对象、封装、继承等基本概念,并运用面向对象的方法设计超市管理系统。

三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

首先,通过讲授法向学生传授超市管理系统的基本概念、C语言编程基础和数据结构的基本操作。

然后,运用讨论法引导学生探讨面向对象编程思想的优点和适用场景,以及如何在超市管理系统中运用这一思想。

接下来,通过案例分析法分析具体的超市管理系统案例,让学生了解实际应用中的问题和解决方案。

最后,利用实验法让学生动手实践,编写简单的超市管理系统程序,提高实际操作能力。

四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书将提供超市管理系统的基本概念、C语言编程方法和数据结构的基本操作等知识,为学生学习提供理论支持。

多媒体资料将通过图片、视频等形式展示超市管理系统的实际应用场景,帮助学生更好地理解课程内容。

超市会员管理系统课程设计vb

超市会员管理系统课程设计vb

超市会员管理系统课程设计vb一、教学目标本课程旨在通过学习超市会员管理系统的设计与实现,使学生掌握Visual Basic编程语言的基本语法和编程技巧,培养学生面向对象编程的思想,并通过对实际项目的分析和设计,提高学生解决实际问题的能力。

1.掌握Visual Basic编程语言的基本语法和编程环境。

2.理解面向对象编程的基本概念和方法。

3.熟悉超市会员管理系统的需求分析和设计方法。

4.能够使用Visual Basic编写简单的程序。

5.能够独立完成超市会员管理系统的需求分析和设计。

6.能够使用Visual Basic实现超市会员管理系统的功能模块。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。

2.培养学生的创新思维和解决问题的能力。

3.培养学生的自主学习能力和终身学习的意识。

二、教学内容本课程的教学内容主要包括Visual Basic编程语言的基本语法、面向对象编程方法、超市会员管理系统的需求分析和设计方法。

1.Visual Basic编程语言的基本语法:包括变量、数据类型、运算符、控制结构等。

2.面向对象编程方法:包括类和对象的概念、属性和方法的使用、继承和多态等。

3.超市会员管理系统的需求分析和设计方法:包括系统的功能模块划分、数据库设计、界面设计和程序实现等。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

1.讲授法:通过讲解Visual Basic编程语言的基本语法和面向对象编程方法,使学生掌握理论知识。

2.案例分析法:通过分析超市会员管理系统的实际案例,使学生了解系统的需求分析和设计方法。

3.实验法:通过上机实验,让学生动手编写程序,巩固所学知识,提高实际操作能力。

4.小组讨论法:通过分组讨论和合作完成项目,培养学生的团队合作意识和沟通能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用《Visual Basic编程与应用》作为主讲教材,为学生提供系统性的理论知识学习。

超市会员管理系统c课程设计

超市会员管理系统c课程设计

超市会员管理系统c 课程设计一、课程目标知识目标:1. 让学生掌握超市会员管理系统的基本概念和功能模块;2. 使学生了解数据库在会员管理系统中的应用,包括数据表的设计、数据查询与更新;3. 帮助学生理解会员管理系统中业务逻辑与数据之间的关系。

技能目标:1. 培养学生运用所学知识设计并实现一个简单的超市会员管理系统;2. 提高学生在实际问题中分析需求、设计数据库和编写代码的能力;3. 培养学生通过小组合作、沟通与协作解决问题的能力。

情感态度价值观目标:1. 培养学生对计算机科学和信息技术的兴趣,激发他们探索未知、创新实践的热情;2. 培养学生具备良好的团队合作精神,学会尊重他人、倾听意见、分享成果;3. 培养学生关注社会热点问题,认识到信息技术在现实生活中的应用价值。

课程性质:本课程为信息技术学科的教学内容,旨在让学生结合实际生活中的会员管理系统,运用所学编程知识和数据库技能进行实际操作。

学生特点:本课程针对初中年级学生,他们已经具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇,喜欢动手实践。

教学要求:在教学过程中,要注重理论与实践相结合,关注学生的个体差异,提供个性化的指导与帮助。

同时,鼓励学生积极参与小组讨论,培养他们的团队协作能力。

通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体、可衡量的成果。

二、教学内容1. 会员管理系统的基本概念:介绍超市会员管理系统的定义、功能及在实际生活中的应用。

相关教材章节:第一章 计算机管理系统概述2. 数据库设计与实现:讲解数据库在会员管理系统中的重要性,学习如何设计数据表、建立关系及进行数据查询与更新。

相关教材章节:第二章 数据库设计基础;第三章 SQL语言3. 编程实现会员管理系统:结合所学编程知识,设计并实现一个简单的会员管理系统。

相关教材章节:第四章 程序设计基础;第五章 面向对象编程4. 项目实践:分组进行项目实践,让学生动手设计并实现一个超市会员管理系统,包括需求分析、数据库设计、编程实现等环节。

超市会员管理系统课程设计c

超市会员管理系统课程设计c

超市会员管理系统课程设计c一、教学目标本课程旨在通过学习超市会员管理系统的设计与实现,使学生掌握会员信息管理、积分管理、优惠策略等基本知识,培养学生运用面向对象编程思想解决实际问题的能力。

具体教学目标如下:1.知识目标:(1)了解会员管理系统的需求和功能;(2)掌握Java编程基础,如类、对象、继承、多态等;(3)熟悉数据库的基本操作,如创建、查询、更新和删除数据。

2.技能目标:(1)能够使用Java编写简单的程序,实现会员信息的增删改查功能;(2)能够结合面向对象思想,设计并实现会员积分管理和优惠策略;(3)能够使用数据库管理系统,对会员数据进行有效存储和管理。

3.情感态度价值观目标:(1)培养学生团队合作精神,提高沟通与协作能力;(2)培养学生解决实际问题的能力,增强创新意识;(3)培养学生对编程和数据库技术的兴趣,提高自主学习的积极性。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.会员管理系统的需求分析与设计;2.Java编程基础,如类、对象、继承、多态等;3.数据库的基本操作,如创建、查询、更新和删除数据;4.会员信息的增删改查功能的实现;5.会员积分管理和优惠策略的设计与实现;6.团队合作与沟通能力的培养。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

具体教学方法如下:1.讲授法:用于讲解会员管理系统的需求分析、Java编程基础和数据库操作等理论知识;2.讨论法:学生针对具体问题进行讨论,培养团队合作精神和解决问题的能力;3.案例分析法:分析实际案例,引导学生运用所学知识解决实际问题;4.实验法:安排实验课程,让学生动手实践,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《Java编程基础》、《数据库原理与应用》等;2.参考书:提供相关的编程和数据库技术参考书籍;3.多媒体资料:制作课件、教学视频等,以便于学生课后复习;4.实验设备:提供计算机、数据库服务器等实验设备,让学生进行实际操作。

超市管理系统课程设计源码

超市管理系统课程设计源码

超市管理系统课程设计源码一、课程目标知识目标:1. 理解超市管理系统的基础知识,掌握其功能模块及运作原理;2. 学习数据库设计的基本方法,能够运用SQL语言进行数据查询、插入、删除和更新操作;3. 掌握一种编程语言(如Python、Java等),能够实现超市管理系统的基本功能。

技能目标:1. 能够运用所学知识,设计并编写出一个简单的超市管理系统源码;2. 学会使用调试工具,对程序进行调试和优化,提高代码质量;3. 培养团队协作能力,通过分组合作完成课程项目。

情感态度价值观目标:1. 培养对计算机编程的兴趣和热情,激发学习动力;2. 增强解决实际问题的能力,认识到编程知识在生活中的应用;3. 树立正确的价值观,认识到科技对社会发展的推动作用。

课程性质:本课程属于实践性较强的学科,要求学生在掌握理论知识的基础上,能够运用所学知识解决实际问题。

学生特点:学生为高年级学生,具备一定的编程基础和逻辑思维能力,对新鲜事物充满好奇。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践和团队协作,提高学生的编程能力和实际问题解决能力。

将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估。

二、教学内容1. 超市管理系统概述:介绍超市管理系统的基本概念、功能模块及其在实际生活中的应用。

教材章节:第一章 超市管理系统概述2. 数据库设计与SQL操作:讲解数据库设计的基本方法,学习SQL语言进行数据操作。

教材章节:第二章 数据库设计与SQL操作3. 编程语言基础:学习并掌握一种编程语言(如Python、Java等),为后续开发超市管理系统打下基础。

教材章节:第三章 编程语言基础4. 超市管理系统功能实现:运用所学编程语言,实现超市管理系统的各项功能。

教材章节:第四章 超市管理系统功能实现5. 程序调试与优化:学习使用调试工具,对编写好的程序进行调试和优化。

教材章节:第五章 程序调试与优化6. 课程项目实践:分组进行课程项目实践,完成一个简单的超市管理系统源码编写。

超市管理系统课程设计java

超市管理系统课程设计java

超市管理系统课程设计java一、教学目标本课程旨在通过Java编程语言,使学生掌握超市管理系统的开发方法和技能,培养学生的实际编程能力和解决实际问题的能力。

具体的教学目标如下:1.知识目标:使学生掌握Java编程语言的基本语法和数据结构,理解面向对象编程的基本概念和方法,了解数据库的基本操作和管理系统的原理。

2.技能目标:培养学生能够使用Java编程语言独立开发简单的超市管理系统,掌握数据库的基本操作,培养学生解决实际问题的能力。

3.情感态度价值观目标:培养学生对编程语言和计算机科学的兴趣,提高学生实际操作能力和团队协作能力,培养学生的创新精神和实践能力。

二、教学内容本课程的教学内容主要包括Java编程语言、数据库操作和管理系统原理。

具体的教学内容如下:1.Java编程语言:基本语法、数据结构、面向对象编程。

2.数据库操作:数据库的基本操作、SQL语句的编写和执行。

3.管理系统原理:管理系统的结构、功能和开发方法。

三、教学方法为了提高教学效果和学生的学习兴趣,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解和演示,使学生掌握Java编程语言和数据库操作的基本知识和技能。

2.讨论法:通过小组讨论,培养学生解决实际问题的能力和团队协作能力。

3.案例分析法:通过分析真实的超市管理系统案例,使学生更好地理解管理系统的设计和实现方法。

4.实验法:通过实际操作,使学生掌握Java编程语言和数据库操作的基本技能,培养学生解决实际问题的能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选用《Java编程语言》和《数据库原理》等教材,为学生提供系统的理论知识。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作课件和教学视频,提高学生的学习兴趣和效果。

4.实验设备:提供计算机和数据库服务器,为学生实际操作提供硬件支持。

超市会员管理系统详细代码

超市会员管理系统详细代码

数据库设计1 系统数据库分析数据库设计是建立数据库及其应用系统的技术,是系统开发和建设中的核心技术。

具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求(信息要求和处理要求)。

数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。

根据超市会员管理系统功能设计的需要,数据库结构设计如下所示:(1). 用户登录信息数据表(Login):(用户账号,密码,登录身份);(2). 会员基本信息数据表(Member):(用户账号,用户姓名,身份证号,了解方式,了解位置);(3). 职员基本信息数据表(Employee):(职员号,职员姓名,职员职位);(4). 会员积分信息数据表(Score):(会员账号,会员积分,会员等级,会员折扣);2 数据库概念结构设计根据上节的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。

各种实体具体的描述E-R图如下。

1. 用户登录信息实体图主要描述了登录用户的基本情况,包括了用户的用户账号,密码,登录身份。

如图3-11所示,用户登录信息实体E-R图。

图3-12 用户登录实体的E-R图2. 会员基本信息实体图主要描述会员的基本情况,包括了会员基本信息的用户账号,用户姓名,身份证号,了解方式,了解位置,得出如图3-12所示会员基本信息实体E-R图。

图3-13 会员基本信息实体的E-R图3. 职员基本信息实体图主要描述新生的基本情况,包括了职员基本信息的职员号,职员姓名,职员职位,得出如图3-13所示职员基本信息实体E-R图。

图3-14 职员基本信息实体的E-R图4. 会员积分信息实体图主要描述会员积分的基本情况,包括了会员积分基本信息的会员账号,会员积分,会员等级,会员折扣,得出如图3-14所示会员积分信息实体E-R图。

超市会员管理系统课程设计报告

超市会员管理系统课程设计报告

一、需求分析用java 语言写一个超市会员管理系统,实现对超市会员的增加,修改,查找,删除,浏览,商品的增加和购买情况,按类别统计,会员购买商品,通过连接数据库实现。

二、概要设计设计模块图如图1图1 设计模块图三、运行环境、开发语言运行环境:Window7,jdk1.6.0_19,hsqldb.jar 开发语言:Java四、详细设计1 程序清单表1超市会员表marketmember 超市会员表 mname varchar(120) mid int mage intpnamevarchar(120)表2 超市商品表marketproduct 超市商品表 pnamevarchar(120)超市会员管理系统添加超市会员修改会员信息删除会员信息查找会员信息浏览会员信息增加商品商品购买情况按类别统计购买商品pid intpclass varchar(20)pkucun int2 主要代码2.1 初始化超市会员表public void inittable1()throws SQLException{String sql="create table marketmember(mname varchar(120),mid int,mage int,pname varchar(120))";Statement stmt=con.createStatement();stmt.executeUpdate(sql);stmt.close();2.2 增加超市会员信息功能增加超市会员信息,输入要增加的会员的会员名称,会员号,会员年龄,最近购买的商品,增加到数据库中,该功能截图如图1所示。

具体代码如下:图1 增加超市会员信息public void addtable1()throws SQLException{System.out.println("请输入会员名称");String _name=scanner.next();System.out.println("请输入会员号");int _id=scanner.nextInt();System.out.println("请输入会员年龄");int _age=scanner.nextInt();System.out.println("请输入最近购买的商品名");String _pname=scanner.next();String sql="insert into marketmember(mname,mid,mage,pname)values(?,?,?,?)";PreparedStatement pstmt=con.prepareStatement(sql);pstmt.setString(1,_name);pstmt.setInt(2,_id);pstmt.setInt(3,_age);pstmt.setString(4,_pname);pstmt.execute();Statement stmt=con.createStatement();stmt.close();}2.3 在超市会员表中修改会员信息修改超市会员信息,输入要修改的会员号,修改后的会员姓名,修改后的会员年龄,把修改后的数据增加到数据库,该功能截图如图2所示,具体代码如下:图2 修改超市会员信息public void updatetable1(int id)throws Exception{System.out.println("请输入修改后的会员姓名");String name=scanner.next();System.out.println("请输入修改后的会员年龄");int age=scanner.nextInt();String sql="update marketmember set mage="+age+" where mid="+id;String sql1="update marketmember set mname='"+name+"' where mid="+id;Statement stmt=con.createStatement();stmt.executeUpdate(sql);stmt.executeUpdate(sql1);int r=stmt.executeUpdate(sql);if(r>0){System.out.println("修改成功!");}else{System.out.println("该会员信息不存在!");}stmt.close();}2.4在超市会员表中查找会员信息在会员表中查找会员信息,输入要查找的会员号,该功能截图如图3所示,具体代码如下:图3 查找超市会员信息public void searchtable1(int id)throws Exception{String sql="select * from marketmember where mid="+id;Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);int n=0;while(rs.next()){n=n+1;String mname=rs.getString("mname");int mid=rs.getInt("mid");int mage=rs.getInt("mage");String pname=rs.getString("pname");System.out.println(" 会员名称:"+mname+" 会员号:"+mid+" 会员年龄:"+mage+" 最近购买情况:"+pname);}if(n==0){System.out.println("该会员信息不存在!");}rs.close();stmt.close();}2.5 在超市会员表中浏览会员信息浏览会员表中会员的信息,该功能截图如图4所示,具体代码如下:图4 浏览超市会员表中会员信息public void selecttable1()throws Exception{String sql="select * from marketmember";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);while(rs.next()){String mname=rs.getString("mname");int mid=rs.getInt("mid");int mage=rs.getInt("mage");String pname=rs.getString("pname");System.out.println(" 会员名称:"+mname+" 会员号:"+mid+" 会员年龄:"+mage+" 最近购买商品:"+pname);}rs.close();stmt.close();}2.6 在超市会员表中删除会员信息在超市会员表中删除会员的信息,输入要删除的会员信息的会员号,并更新到数据库,该功能截图如图5所示,具体代码如下:图5 超市会员表中删除会员信息public void deletetable1(int mid)throws Exception{String sql="delete from marketmember where mid="+mid;Statement stmt=con.createStatement();int r=stmt.executeUpdate(sql);if(r>0){System.out.println("删除成功!");}else{System.out.println("该会员信息不存在!");}stmt.close();}2.7 在超市商品表中增加商品信息在超市会员表中,增加商品信息,输入要增加的商品名,商品号,商品类别,现有库存,并将信息增加到数据库,该功能截图如图6所示,具体代码如下:图6 增加商品信息public void addtable2()throws SQLException{System.out.println("请输入增加的商品名");String _pname=scanner.next();System.out.println("请输入增加的商品号");int _pid=scanner.nextInt();System.out.println("请输入增加的商品类别");String _pclass=scanner.next();System.out.println("请输入现有库存");int _pkucun=scanner.nextInt();String sql="insert into marketproduct(pname ,pid ,pclass,pkucun)values(?,?,?,?)";PreparedStatement pstmt=con.prepareStatement(sql);pstmt.setString(1,_pname);pstmt.setInt(2,_pid);pstmt.setString(3,_pclass);pstmt.setInt(4,_pkucun);pstmt.execute();Statement stmt=con.createStatement();stmt.close();}2.8 商品购买情况查询商品的购买情况,输入要查询的商品的名称,该功能截图如图7所示,具体代码如下:图7 商品购买情况public void buyproduct( String name )throws SQLException{String sql="select pname ,mname,mid,pclass from marketproduct,marketmember where marketmember.pname=marketproduct.pname andmarketmember.pname='"+name+"'";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);int n=0;while(rs.next()){n++;String pname=rs.getString("pname");String mname=rs.getString("mname");int mid=rs.getInt("mid");String pclass=rs.getString("pclass");System.out.println(" 商品名称:"+pname+" 购买会员名称:"+mname+"购买会员号:"+mid+" 商品类别:"+pclass);}if(n==0){System.out.println("该商品不存在!");}rs.close();stmt.close();}2.9 按类别统计按类别统计商品,输入要统计的商品类别,该功能截图如图8所示,具体代码如下:图8 按类别统商品public void searchclass(String class1)throws Exception{String sql="select * from marketproduct where pclass='"+class1+"'";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);int n=0;while(rs.next()){n++;String pname=rs.getString("pname");long pid=rs.getLong("pid");int pkucun=rs.getInt("pkucun");String pclass=rs.getString("pclass");System.out.println(" 商品名称:"+pname+" 商品号:"+pid+" 商品库存量:"+pkucun+" 商品类别:"+pclass);}if(n==0){System.out.println("该商品类别不存在!");}rs.close();stmt.close();}2.10 购买商品购买商品,输入会员的会员号,购买到额商品名,购买商品数量,该功能截图如图9所示,具体代码如下:public void buy()throws SQLException{System.out.println("请输入会员号");int _id=scanner.nextInt();System.out.println("请输入购买商品名");String _pname=scanner.next();System.out.println("请输入购买商品数量");int n=scanner.nextInt();String sql="select mname,mid,pname,pid,pkucun frommarketmember,marketproduct where marketmember.pname=marketproduct.pname andmarketmember.mid="+_id+" and marketproduct.pname='"+_pname+"'";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);while(rs.next()){String mname=rs.getString("mname");int mid=rs.getInt("mid");int pkucun=rs.getInt("pkucun");String pname=rs.getString("pname");int pid=rs.getInt("pid");if(n>pkucun){ System.out.println("库存量不够,不能购买!");break;}else {pkucun=pkucun-n;System.out.println(" 会员名称:"+mname+" 会员号:"+mid+" 购买商品名:"+pname+" 购买商品号:"+pid+" 购买数量:"+n+" 现有库存量:"+pkucun);String sql1="update marketproduct set pkucun="+pkucun+"where pname='"+pname+"'";stmt.executeUpdate (sql1);}}rs.close();stmt.close();}五、调试与分析(1)在与数据库连接的时候要先装载驱动String driver="org.hsqldb.jdbcDriver";Class.forName(driver);再进行其他操作。

Java实现超市会员管理系统

Java实现超市会员管理系统

Java实现超市会员管理系统本⽂实例为⼤家分享了Java实现超市会员管理系统的具体代码,供⼤家参考,具体内容如下要求:借助集合框架及实⽤类实现该系统1、积分累计2、积分兑换3、查询剩余积分4、修改密码5、开卡6、退出执⾏结果:开卡、积分累计部分:兑换积分、查询剩余积分部分:修改密码、使⽤新密码查询部分:退出部分:实现思路:1、创建会员⽤户类:⽤户名、密码、会员卡号(随机⽣成)、注册⽇期、积分2、创建超市业务类:菜单展⽰业务选择积分存取⽅法、积分兑换⽅法、积分查询⽅法、修改密码⽅法、开卡⽅法判断集合中是否存在查询元素⽅法(由于其他⽅法中均出现此⽅法中的代码,即将其提取出来另列为⼀个⽅法)3、测试类源码:会员⽤户类package cn.zyq.Aug0203;/*** 会员⽤户类* @author admin**/public class Member {//姓名private String name;//密码private String pwd;//会员卡号private String id;//注册⽇期private String registData;//积分private int score;public Member() {} = name;this.pwd = pwd;this.id = id;this.registData = registData;this.score = score;}public String getName() {return name;}public void setName(String name) { = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getRegistData() {return registData;}public void setRegistData(String registData) {this.registData = registData;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}}超市业务类package cn.zyq.Aug0203;/*** 超市业务类*/import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Random;import java.util.Scanner;public class Business {Scanner sc = new Scanner(System.in);List<Member> list = new ArrayList<Member>();/*** ⽤户可选择菜单*/public void init() {System.out.println("\n--------------------欢迎进⼊会员管理系统--------------------\n");System.out.println("1.积分累计 2.积分兑换 3.查询剩余积分 4.修改密码 5.开卡 6.退出"); System.out.println("\n-------------------------------------------------------");System.out.println();System.out.print("请选择您要进⾏的操作:");}/*** ⽤户选择的业务* @param num*/public void choose(int num) {switch (num) {case 1:saveScore();break;case 2:useScore();break;case 3:search();break;case 4:updatePwd();break;case 5:regist();break;case 6:System.out.println("欢迎下次光临!");System.exit(0);break;}init();}/*** 积分积累*/public void saveScore() {Member m = check();if(m!=null) {System.out.print("请输⼊您消费的⾦额(⼀元⼀积分):");int score = sc.nextInt();m.setScore(m.getScore()+score);System.out.println("积分增加成功,⽬前您的积分为:"+m.getScore());System.out.println("积分累计成功!");}else {System.out.println("积分累计失败,您输⼊的信息有误!");}}/*** 积分兑换*/public void useScore() {Member m = check();if(m!=null) {System.out.print("请输⼊您需要兑换使⽤的积分(100积分抵⽤1元,不⾜100的积分不做抵⽤):"); int score = sc.nextInt();if(m.getScore()>=100 && score>=100 && score<=m.getScore()) {m.setScore(m.getScore()-score);System.out.println("您本次消费抵⽤⾦额为:"+score/100);System.out.println("兑换积分成功!");}else {System.out.println("兑换积分失败,账户积分不⾜或需要兑换积分⼤于剩余积分!");}}else {System.out.println("账号信息不匹配,⽆法兑换积分!");}}/*** 查询剩余积分*/public void search() {if(m!=null) {System.out.println("姓名\t会员卡号\t剩余积分\t开卡⽇期");System.out.println(m.getName()+"\t"+m.getId()+"\t"+m.getScore()+"\t"+m.getRegistData());}else {System.out.println("输⼊的账号信息不匹配!");}}/*** 修改密码*/public void updatePwd() {Member m = check();if(m!=null) {System.out.print("请输⼊您的新密码:");String pwd = sc.next();//重新设置密码m.setPwd(pwd);System.out.println("密码修改成功!");}else {System.out.println("输⼊的账号信息不匹配,⽆法进⾏此业务!");}}/*** 积分兑换*/public void regist() {System.out.print("欢迎使⽤本超市会员卡,请输⼊您的姓名:");String name = sc.next();System.out.print("请设置您的密码(要求密码长度⼤于6):");String pwd = sc.next();//判断密码是否合法boolean flag = false;while(!flag) {if(pwd.length()<6) {flag = false;System.out.print("密码长度⼩于6位,请重新输⼊密码:");pwd = sc.next();}else {flag = true;}}//⽣成⼀个⼋位数的随机会员卡号Random random = new Random();int rand = random.nextInt(999999);String id = String.valueOf(rand);//判断会员卡是否已存在for(Member m:list) {if(m.getId()==id) {rand = random.nextInt(99999999);id = String.valueOf(rand);}}//注册⽇期Date date = new Date();SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");String registData = dateFormat.format(date);//开卡送积分100;int score = 100;//将⽤户记录添加到列表list.add(new Member(name, pwd, id, registData, score));System.out.println("恭喜你成为本超市会员,系统赠送您100积分,您的会员卡号为:"+id+",请牢记卡号和密码!"); }/*** 信息检测,list中是否存有指定⽤户信息public Member check() {System.out.print("请输⼊您的会员卡号:");String id = sc.next();System.out.print("请输⼊您的密码:");String pwd = sc.next();for(Member m:list) {if(m.getId().equals(id) && m.getPwd().equals(pwd)) {return m;}}return null;}}测试类package cn.zyq.Aug0203;/*** 测试类* @author admin**/public class Test {public static void main(String[] args) {Business business = new Business();business.init();}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

超市会员管理系统课程设计报告

超市会员管理系统课程设计报告

兰州商学院陇桥学院信息工程系课程设计报告课程名称: C#课程设计设计题目:超市会员管理系统系别:信息工程系专业 (方向):计算机科学与技术(网络工程方向)年级、班:2012级本科班学生姓名:XXX学生学号:XXXXXXXX本组组员:XXXXXXXXXXXXXXXX指导教师:杨光2014年12 月26日目录一、系统开发的背景 (1)二、系统分析与设计 (1)(一)系统功能要求 (1)(二)系统模块结构设计 (1)三、系统的设计与实现 (2)(一)登陆 (2)(二)会员信息 (5)(三)会员管理 (8)(1)会员管理 (9)(2)购物信息管理 (17)(四)信息统计 (18)(五)系统管理 (21)四、系统测试 (23)(一)测试登陆模块 (23)(二)会员信息模块 (23)(三)会员管理模块 (24)(四)信息统计模块 (25)(五)系统管理模块 (27)五、总结 (27)六、附件(代码、部分图表) (28)1、源代码 (28)2、图表 (47)超市会员管理系统一、系统开发的背景社会生活的现代化,使得市场的走向发生巨大变化,由于经济的发展,许多大型的现代化超市应运而生。

现在超市吸引顾客最普遍的做法就是实行会员制,超市的会员可以享受不同程度的优惠,从而达到吸引顾客,刺激消费的目的.建立实用的超市会员管理系统对超市的会员管理有很大的帮助,可以协助工作人员进行会员的信息登记、更新。

因此,为了优化超市会员制度的计算机管理,编写了此系统。

二、系统分析与设计(一)系统功能要求超市会员管理系统应具备以下功能:1、加入会员的基本信息,包括:成为会员的基本条件、优惠政策、优惠时间等.2、会员的基本信息,包括姓名、性别、年龄、工作单位、联系方式等。

3、会员购物信息:购买物品编号、物品名称、所属种类,数量,价格等。

4、会员返利信息,包括会员积分的情况,享受优惠的等级等。

5、对货物流量及消费人群进行统计输出。

(二)系统模块结构设计通过对系统功能的分析,学生综合测评系统功能如图1所示.图1 超市会员管理系统功能图通过上图的功能分析,把整个系统划分为4个模块:1、会员信息,该模块主要实现:会员基本信息(会员编号、会员卡号、姓名、性别、年龄、会员等级、当前积分、联系方式)的输出;2、会员管理,该模块主要实现:会员管理(会员的查询、删除、修改和添加)信息,购物信息管理(通过输入会员编号来查询会员的购物信息);3、信息统计,该模块主要实现:物品流量统计(通过柱状图来显示物品的消费情况),消费人群统计(通过柱状图来统计人群的消费情况);4、系统管理,该模块主要实现:对用户名和密码的修改,能够更好的管理超市会员管理系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

超市会员管理系统详细代码数据库设计1 系统数据库分析数据库设计是建立数据库及其应用系统的技术,是系统开发和建设中的核心技术。

具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求(信息要求和处理要求)。

数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。

根据超市会员管理系统功能设计的需要,数据库结构设计如下所示:(1). 用户登录信息数据表(Login):(用户账号,密码,登录身份);(2). 会员基本信息数据表(Member):(用户账号,用户姓名,身份证号,联系方式,联系地址);(3). 职员基本信息数据表(Employee):(职员号,职员姓名,职员职位);(4). 会员积分信息数据表(Score):(会员账号,会员积分,会员等级,会员折扣);2 数据库概念结构设计根据上节的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。

各种实体具体的描述E-R图如下。

1. 用户登录信息实体图主要描述了登录用户的基本情况,包括了用户的用户账号,密码,登录身份。

如图3-11所示,用户登录信息实体E-R图。

图3-12 用户登录实体的E-R图2. 会员基本信息实体图主要描述会员的基本情况,包括了会员基本信息的用户账号,用户姓名,身份证号,联系方式,联系地址,得出如图3-12所示会员基本信息实体E-R图。

图3-13 会员基本信息实体的E-R图3. 职员基本信息实体图主要描述新生的基本情况,包括了职员基本信息的职员号,职员姓名,职员职位,得出如图3-13所示职员基本信息实体E-R图。

图3-14 职员基本信息实体的E-R图4. 会员积分信息实体图主要描述会员积分的基本情况,包括了会员积分基本信息的会员账号,会员积分,会员等级,会员折扣,得出如图3-14所示会员积分信息实体E-R图。

图3-15 会员积分信息实体的E-R图实体之间的关系E-R图主要描述实体间的关系。

图3-16 各实体之间的关系3.系统数据库的设计根据需求分析与概念结构设计,建立数据库系统支持的数据模型,即数据库的逻辑结构。

本系统利用Microsoft Access 2003创建了名为SuperMarket 的数据库。

本系统主要建立了以下四张表:表3.1 用户登录数据表表3.2 会员基本信息数据表表3.3 职员基本信息数据表表3.4 会员积分信息数据表4. 表之间的关系表之间存在的关系如下:1.在会员基本信息表(Member)中添加信息的同时,把信息添加到用户登录信息表(Login)中,同时将信息添加到积分信息表(Score)中。

2.在会员基本信息表(Member)中删除会员信息的同时,把用户登录信息表(Login)和用户积分信息(Score)中该会员信息删除。

3.在职员基本信息表(Member)中添加信息的同时,将志愿的基本信息添加到用户登录信息表(Login)中。

4.在职员基本信息表(Member)中删除职员信息的同时,把用户登录信息表(Login)中该职员信息删除。

详细设计与实现1. 系统首页图4-1 超市会员管理系统首页自定义工具栏按钮及鼠标提示信息的设计与实现:图4-2 主页面工具栏在对话框的OnInitDialog方法中常见工具栏窗口和图像列表窗口,关联图像列表,设置工具栏按钮文本,启动工具栏的EnableToolTip方法激活提示功能。

鼠标提示信息的实现,处理TTN_NEEDTEXT消息的响应函数OnToolTipText (),通过函数的参数获得工具栏按钮的ID,从而根据ID获取提示信息文本。

1.添加消息映射(最好写在AFX_MSG_MAP宏外,否则可能出现编译错误)ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText)ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipText)2.添加事件声明(最好写在AFX_MSG宏外,否则可能出现编译错误)afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult);2 登录页面系统运行后,首先展现给用户的是用户登录界面,用户登录成功后进入到主页面,用户登录界面如下图所示:图4-3 用户登录界面用户登录有三种身份,管理员、普通职员、会员。

管理员登录成功后,可以对系统各模块进行操作;普通职员登录成功后,除对职员的添加、删除外,均可实现操作;会员,则只能对自己的一些基本信息进行操作。

登录界面由函数void CLoginDlg::OnOK()实现处理,具体代码如下://实现该功能的SQL语句sql="select * from Login where DNO='"+Name+"' and DCode='"+ECode+"' and DUserSta='"+EStatus+"'";m_pRs->Open((_bstr_t)sql,theApp.conn.GetInterfacePtr(),adOpenKeyset,adLockO ptimistic,adCmdText);//登录成功与否、登录次数判断if ( m_pRs->GetRecordCount()<=0 ){if ( m_LoginNum<=3 ) // 登录次数小于3次{MessageBox("用户名或密码、身份错误!","提示",64);}if ( m_LoginNum==3) // 3次登录不成功{MessageBox("用户登录3次不成功!即将关闭程序......","提示",64);CDialog::OnOK();// 向应用程序发送WM_QUIT消息,请求退出::PostQuitMessage(0);}}else{// 如果登录成功,则关闭数据库CDialog::OnOK();CCMarketDlg dlg;dlg.m_LoginSta=EStatus;dlg.DoModal();}3 会员信息模块(1) 会员基本信息查询会员基本信息查询如下图:图4-4 会员信息查询界面用户登录成功后,可以根据用户账号或身份证号查询会员的基本信息,还可以进行全表查询。

查询前,首先要选择及填写查询条件,若未填写,则出现系统提示。

查询条件填写正确后,点击查询即可会员详细信息。

查询和显示全部单击事件实现分别由函数void CMemberDlg::OnOK()和void CMemberDlg::OnBUTTONListAll()实现,具体代码如下:记录集打开同上。

在列表框中显示的实现:while (!m_pRs->adoEOF){CString temp;m_EList.InsertItem(1000,"");for(int i=0;i<3;i++){temp=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)i)->Value;m_EList.SetItemText(row,i,temp);}m_pRs->MoveNext();row+=1;}4.3.2 会员密码修改此模块用于修改会员的登录密码。

图4-5 会员密码修改界面填入用户账号和旧密码后,系统检查数据库中是否有该记录,如果存在该记录,则可填写新密码进行修改;若不存在,则系统给出提示信息。

如下图:图4-6 会员密码修改提示信息界面该模块单击事件由函数void CECodeModifyDlg::OnOK()实现,具体代码如下:sql="Update Login set DCode='"+NewCode+"' where DNO='"+Name+"'";try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);}catch(_com_error &e){AfxMessageBox(e.Description());}AfxMessageBox("修改成功");4. 积分信息模块(1) 积分查询该功能实现界面如下:图4-7 积分查询界面输入会员账号后,点击确定按钮,系统首先检查账号是否存在,若存在则输出该会员积分信息;若不存在,输出提示信息。

实现原理如会员信息模块中的会员查询。

实现函数为:void CJQueryDlg::OnOK()。

在编辑框中的显示实现为:var = m_pRs->GetCollect("MScore");if(var.vt != VT_NULL)str1 = (LPCSTR)_bstr_t(var);GetDlgItem(IDC_EDIT_Jifen)->SetWindowText(str1);var = m_pRs->GetCollect("MGrade");if(var.vt !=VT_NULL)str2=(LPCSTR)_bstr_t(var);GetDlgItem(IDC_EDIT_Grade)->SetWindowText(str2);var = m_pRs->GetCollect("MDiscount");if(var.vt !=VT_NULL)str3=(LPCSTR)_bstr_t(var);GetDlgItem(IDC_EDIT_Discout)->SetWindowText(str3);(2) 积分兑换积分兑换功能的实现界面如下:图4-8 积分兑换功能实现界面用户输入账号和密码后,点击兑换按钮,该按钮的实现中,首先检查用户合法性。

若用户已兑换过积分,则提示及兑换;若积分不够兑换等级,则提示积分不够;若兑换成功后,则显示用户等级和优惠折扣。

该模块实现单击事件函数处理为:void CEXchangeDlg::OnOK(),具体实现如下://修改数据库中积分sql="Update Score set MGrade=1,MDiscount=0.1 where MNO='"+mzh+"'";try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);}catch(_com_error &e){AfxMessageBox(e.Description());}AfxMessageBox("兑换成功");(3) 消费加分该模块功能将会员的消费金额换为消费积分,如下图:图4-9 消费加分模块界面实现图输入用户账号和消费金额后,首先检查数据库中是否存在该记录,如果存在,则将该用户积分增加其消费金额数目,如不存在,系统弹出提示信息。

相关文档
最新文档