超市会员管理系统详细代码
- 格式:doc
- 大小:400.50 KB
- 文档页数:21
第1章JavaBean部分1.1 数据库连接(DataBase.java)package common;import java.sql.*;import javax.naming.*;import javax.sql.*;import java.util.*;public class DataBase {private String dbUrl ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ManagermentDB";private String dbUser = "ren";private String dbPwd = "ren";//定义数据库的连接public DataBase() throws Exception{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");}//加载数据库的驱动public Connection getConnection()throws Exception{return java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);}//建立数据库的连接public void closeConnection(Connection con){try{if(con!=null) con.close();}catch(Exception e){e.printStackTrace();}}public void closePrepStmt(PreparedStatement prepStmt){try{if(prepStmt!=null) prepStmt.close();}catch(Exception e){e.printStackTrace();}}public void closeResultSet(ResultSet rs){//关闭当前记录集try{if(rs!=null) rs.close();}catch(Exception e){e.printStackTrace();}}public static void close( ResultSet rs, Statement st, Connection conn )//关闭数据库的连接{try{if( rs!=null ) rs.close();}catch( SQLException ex ) { };try{if( st!=null ) st.close();}catch( SQLException ex ) { };try{if( conn!=null ) conn.close(); }catch( SQLException ex ) { };}}1.2 人事管理部门1.2.1员工实体的定义(Employees.java)package employees;public class Employees implements Comparable{private String EmpId;private String DepId;private String EmpName;private String Sex;private String Nationality;private String Birth;private String Academic;private String Marital;private String Original;private String Id_Card;private String Mobile;private String Memo;//员工实体的属性Employees(String EmpId,String DepId,String EmpName ,String Sex,String Nationality,String Birth,String Academic,String Marital,String Original,String Id_Card,String Mobile,StringMemo){ //初始化操作this.EmpId = EmpId;this.DepId = DepId;this.EmpName = EmpName;this.Sex = Sex;this.Nationality = Nationality;this.Birth = Birth;this.Academic = Academic ;this.Marital = Marital;this.Original = Original;this.Id_Card = Id_Card;this.Mobile = Mobile ;this.Memo = Memo;}//对每一个属性赋值和取值操作public void setEmpId(String newEmpId){this.EmpId = newEmpId;}public String getEmpId(){return EmpId;}public void setDepId(String newDepId){this.DepId = newDepId;}public String getDepId(){return DepId;}public void setEmpName(String newEmpName){ this.EmpName = newEmpName;}public String getEmpName(){return EmpName;}public void setSex(String newSex){this.Sex = newSex;}public String getSex(){return Sex;}public void setNationality(String newNationality){ this.Nationality = newNationality;}public String getNationality(){return Nationality;}public void setBirth(String newBirth){this.Birth = newBirth;}public String getBirth(){return Birth;}public void setAcademic(String newAcademic){ this.Academic = newAcademic;}public String getAcademic(){return Academic;}public void setMarital(String newMarital){this.Marital = newMarital;}public String getMarital(){return Marital;}public void setOriginal(String newOriginal){this.Original = newOriginal;}public String getOriginal(){return Original;}public void setId_Card(String newId_Card){this.Id_Card = newId_Card;}public String getId_Card(){return Id_Card;}public void setMobile(String newMobile){this.Mobile = newMobile;}public String getMobile(){return Mobile;}public void setMemo(String newMemo){this.Memo = newMemo;}public String getMemo(){return Memo;}public int compareTo(Object o){Employees n = (Employees)o;int lastCmp = pareTo(n.EmpName);return(lastCmp);}}1.2.2员工实体的操作(EmployeesBean.java)package employees;import java.sql.*;import java.util.*;import javax.naming.*;import javax.sql.*;。
C++超市管理系统代码文档#include〈stdlib.h〉#include<time。
h〉srand((unsigned)time(NULL));while(i〈5){arr。
a[i++]=rand()%5;arr.length++;}cin〉>cn;switch(cn){case 0: exit;case 1: mpsort(int a[Max]);diaplay();break; case 2: xzsort(int a[Max]);diaplay();break; default : cout<〈"error”<<endl;}#include<iostream。
h>const int Max=5;class Array{int a[Max];int last;public:void init();void mpSort();void xzSort(); }void Array::Init(){int i=0,t;last=0;cout〈<”请输入一个数组"<〈endl;while((cin〉〉t)&&i〈Max){a[i]=t;i++;last++;}}void Swap(int &x,int &y){int z;z=x;x=y;y=z;}void Array::mpSort() {int i,j;cout<〈”您调用的是冒泡排序法"〈<endl; for(i=0;i<last-1;i++)for(j=0;j〈last—i;j++)if(a[j]〉a[j+1])swap(a[j],a[j+1]); }void Array::xzSort() {int i,j,k;cout〈<”您调用的是选择排序法"<〈endl;for(i=0;i〈last-1;i++){k=i;for(j=i+1;j〈last—1;j++)if(a[j]<a[i])k=j;Swap(a[i],a[k]);}}void Array::diaplay(){int i;cout〈<"当前数组中的元素是:”<〈endl;for(i=0;i<last;i++)cout〈〈a[i]〈〈endl;}int menu_select() {int cn;char s;cout〈<"欢迎使用趣味菜单,请选择您要处理问题的方法"<〈endl; cout<〈”0. 退出"〈〈endl;cout<<”1. 用冒泡排序法进行排序”〈〈endl;cout〈<"2. 用选择排序法进行排序”<<endl; cout<〈"请输入0,,2"<〈endl;do{s=getchar();cn=(int)s-48;}while(cn〈-1||cn>2);return cn;}void main(){Array b;b.init();b。
超市管理系统完整+源代码(总18页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除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;int n=0; /*定义文件指针类型*/int i,j,a[4],m; /*定义整数类型*/float aver[4],sum[4],g[4],h; /*定义浮点类型*/char c[5]="elec"; /*定义字符数组类型*/char d[5]="comm"; /*定义字符数组类型*/char e[5]="food"; /*定义字符数组类型*/char f[5]="offi"; /*定义字符数组类型*/struct good /*定义结构体*/int num; /*商品编号*/char name[20]; /*商品名称*/char kind[40]; /*商品类型*/float price; /*商品价格*/char unit[10]; /*商品单位*/int quantity; /*商品数量*/struct good *next; /*定义结构体指针类型*/}*head,*p1,*p2;struct good *createlist() /*创建链表函数*/{struct good *head1,*p1,*p2; /*定义结构体指针类型*/if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}head1=(struct good *)malloc(sizeof(struct 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;fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/while(1)p1=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/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);return head1; /*返回头指针*/}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,p1->unit,p1->quantity); /*将商品信息写入文件*/p1->next=NULL;p2->next=p1;p2=p1;}}struct good *paixu(struct good*head2) /*链表排序函数*/{struct good *p6,*p7,*r,*s; /*定义结构体指针类型*/for(i=0;i<=3;i++) /*赋初值值*/{a[i]=0;sum[i]=0;aver[i]=0;p6=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/ 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); /*释放第一个无效空间*/return head2;}void jisuan(){p1=head;doif(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");}void shuchu() /*输出商品信息函数*/{do{struct good *p3,*p4,*p5; /*定义结构体指针类型*/int n=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goods message.txt","rb+"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}head=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/p3=head;fscanf(fp,"%d %s %s %f %s %d ",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity); /*从文件中写到链表*/while(1){p4=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/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->price,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=(struct good *)malloc(sizeof(struct good)); /*申请空间*/scanf("%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity);/*输入商品信息*/p4->next=NULL;while(p3->next!=NULL) /*判断循环结束条件*/{p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}while(p3!=NULL){fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->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("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;while(p3!=NULL) /*判断循环结束条件*/{fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->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("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;while(p3!=NULL) /*判断循环结束条件*/{fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->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); /*关闭文件*/}void printf0(struct good *p) /*遍历链表并打印电器类商品函数*/{struct good *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;}void printf1(struct good *p) /*遍历链表并打印日用品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,d)==0) /*判断商品类型是否为日用品类型*/{}p3=p3->next;}return;}void printf2(struct good *p) /*遍历链表并打印办公用品类商品函数*/{struct good *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;}void printf3(struct good *p) /*遍历链表并打印食品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,f)==0) /*判断商品类型是否为食品类型*/{}p3=p3->next;}return;}void shunxudayin(){for(i=0;i<4;i++)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(j=0;j<4;j++)for(i=0;i<4;i++){if (aver[i]==g[j]) /*判断每类商品平均价格的先后顺序*/switch(i){case 0:printf0(head); /*调用遍历链表并打印电器类商品函数*/break;case 1:printf1(head); /*调用遍历链表并打印日用品类商品函数*/break;case 2:printf2(head);/*调用遍历链表并打印办公用品类商品函数*/ break;case 3:printf3(head); /*调用遍历链表并打印食品类商品函数*/break;}}}void tongji1(){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;}}void tongji2(){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");}int main(int argc, char* argv[]){struct good *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;}}return 0; /*结束程序*/}。
import java.awt.*;import java.awt.event.*;import javax.swing.table.*;import javax.swing.event.*;import javax.swing.*;import java.sql.*;import java.util.*;import java.io.*;class Myframe1 extends JFrame //设置主界面{JFrame f=new JFrame();JLabel L1,L2;JButton btn1,btn2,btn3,btn4;public Myframe1(){f=new JFrame("主界面");L1=new JLabel("超市商品管理系统欢迎您");L1.setFont(new Font("TimesRoman",Font.BOLD,18));L2=new JLabel("您辛苦了~~~~");L2.setFont(new Font("TimesRoman",Font.BOLD,18)); btn1=new JButton("进货管理系统");btn2=new JButton("售货管理系统");btn3=new JButton("商品信息管理");btn4=new JButton("管理系统帮助");Container container=this.getContentPane();container.setLayout(new GridLayout(9,3,0,50));for(int i=0;i<3;i++)container.add(new JLabel());container.add(new JLabel());container.add(L1);container.add(new JLabel());container.add(new JLabel());container.add(btn1);container.add(new JLabel());container.add(new JLabel()); container.add(btn2);container.add(new JLabel());container.add(new JLabel()); container.add(btn3);container.add(new JLabel());container.add(new JLabel()); container.add(btn4);container.add(new JLabel());container.add(new JLabel()); container.add(L2);container.add(new JLabel());container.setBackground(Color.cyan);f.add(container);f.setLocation(60,60);f.setSize(750,650);f.setVisible(true);Montior bn=new Montior();btn1.addActionListener(bn);btn2.addActionListener(bn);btn3.addActionListener(bn);btn4.addActionListener(bn);}class Montior implements ActionListener{public void actionPerformed(ActionEvent e1) {if(e1.getSource()==btn1){new Myframe2();}if(e1.getSource()==btn2){new Myframe3();}if(e1.getSource()==btn3){new Myframe4();}if(e1.getSource()==btn4){new bangzhu();}}}}class bangzhu extends JFrame {JTextPane ta=new JTextPane();JScrollPane sp=new JScrollPane(ta);public bangzhu(){super("管理系统帮助");ta.setFont(new Font("TimesRoaman",Font.BOLD+Font.PLAIN,20));ta.setText(" 1.初次进入登录系统,系统中没有售货员信息,可以进入系统但是为了以后能够使用方便\n"+" 还是增加售货员信息,以便下次登录。
python代码完成超市管理系统的设计与实现超市管理系统是一个相对复杂的系统,涵盖了商品管理、库存管理、销售管理、员工管理等多个模块。
以下是一个简化的超市管理系统的Python代码示例,主要实现了商品管理和销售管理两个功能。
pythonclass Product:def __init__(self, id, name, price, quantity):self.id = id = nameself.price = priceself.quantity = quantityclass Supermarket:def __init__(self):self.products = []def add_product(self, product):self.products.append(product)def sell_product(self, product_id, quantity):for product in self.products:if product.id == product_id:if product.quantity >= quantity:product.quantity -= quantityreturn quantity * product.priceelse:return "库存不足"return "商品不存在"# 示例supermarket = Supermarket()# 添加商品product1 = Product(1, "苹果", 5, 100)product2 = Product(2, "香蕉", 3, 50)supermarket.add_product(product1)supermarket.add_product(product2)# 销售商品print(supermarket.sell_product(1, 10)) # 输出 50print(supermarket.sell_product(2, 30)) # 输出 "库存不足"在这个示例中,我们定义了两个类:Product和Supermarket。
超市运营管理系统源代码介绍超市运营管理系统是一款用于帮助超市进行日常运营管理的软件。
该系统通过自动化管理超市的销售、库存、采购等业务流程,提高运营效率,并帮助超市实时监控业务数据,做出数据驱动的经营决策。
本文将对超市运营管理系统的源代码进行详细说明,包括系统功能模块、代码架构设计、主要技术实现等方面。
功能模块超市运营管理系统包含以下主要功能模块:1.商品管理:用于管理超市的商品信息,包括商品的名称、价格、库存等。
2.销售管理:包含商品销售、退货、交易查询等功能,帮助超市实时监控销售情况。
3.采购管理:用于管理超市的采购流程,包括采购订单生成、供应商管理等功能。
4.库存管理:实时记录超市的库存情况并提供库存查询功能,帮助超市合理管理库存。
5.会员管理:管理超市的会员信息,包括会员注册、会员积分管理等功能。
6.报表统计:根据销售数据自动生成各类报表,帮助超市分析经营状况。
7.权限管理:管理系统用户的权限,包括管理员、收银员等角色的权限管理。
代码架构设计超市运营管理系统的源代码采用了三层架构设计,包括表现层、业务逻辑层和数据访问层。
1.表现层:表现层负责与用户进行交互,接收用户的请求并展示相应的界面。
在超市运营管理系统中,表现层主要包括各个功能模块的界面设计和用户交互逻辑。
2.业务逻辑层:业务逻辑层负责处理用户的请求,执行相应的业务逻辑。
在超市运营管理系统中,业务逻辑层主要包括各个功能模块的业务逻辑处理和数据校验等。
3.数据访问层:数据访问层负责与数据库进行交互,实现对数据库的数据读写操作。
在超市运营管理系统中,数据访问层使用数据库访问技术,如SQL语句、ORM框架等,与数据库进行数据交互。
技术实现超市运营管理系统的源代码使用以下主要技术实现:1.前端技术:前端界面使用HTML、CSS和JavaScript等技术实现,通过Ajax技术与后端进行数据交互,实现页面的动态更新和数据的异步加载。
2.后端技术:后端采用Java语言开发,使用Spring框架实现了各个功能模块的业务逻辑和数据访问,通过Spring MVC实现前后端的数据交互。
资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载超市会员管理系统详细代码地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容数据库设计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图。
会员管理系统c语言源码#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXLEN 100#define MAXNUM 20typedef struct {char name[MAXLEN];char sex[MAXLEN];int age;char tel[MAXLEN];char address[MAXLEN];} Member;Member member[MAXNUM];int count = 0;void menu();void add();void del();void list();void search();void modify();void quit();int main() {menu();return 0;}void menu() {int choice;while(1) {printf("\t\t\t***************************\n"); printf("\t\t\t* 1.增加会员信息 *\n");printf("\t\t\t* 2.删除会员信息 *\n"); printf("\t\t\t* 3.查看会员信息 *\n"); printf("\t\t\t* 4.查询会员信息 *\n"); printf("\t\t\t* 5.修改会员信息 *\n"); printf("\t\t\t* 6.退出系统 *\n"); printf("\t\t\t***************************\n");printf("\t\t\t请输入您的选择:");scanf("%d", &choice);switch(choice) {case 1:add();break;case 2:del();break;case 3:list();break;case 4:search();break;case 5:modify();break;case 6:quit();break;default:printf("\t\t\t输入有误,请重新输入!\n"); }}}void add() {if (count >= MAXNUM) {printf("\t\t\t会员信息已满,无法添加!\n");return;}printf("\t\t\t请输入姓名:");scanf("%s", member[count].name);printf("\t\t\t请输入性别:");scanf("%s", member[count].sex);printf("\t\t\t请输入年龄:");scanf("%d", &member[count].age);printf("\t\t\t请输入电话:");scanf("%s", member[count].tel);printf("\t\t\t请输入地址:");scanf("%s", member[count].address);count++;printf("\t\t\t添加成功!\n");}void del() {if (count == 0) {printf("\t\t\t无会员信息,无法删除!\n");return;}int i, j;char name[MAXLEN];printf("\t\t\t请输入要删除的会员姓名:");scanf("%s", name);for (i = 0; i < count; i++) {if (strcmp(name, member[i].name) == 0) {for (j = i; j < count - 1; j++) {member[j] = member[j+1];}count--;printf("\t\t\t删除成功!\n");return;}}printf("\t\t\t没有找到该会员!\n");}void list() {if (count == 0) {printf("\t\t\t无会员信息!\n");return;}int i;printf("\t\t\t姓名\t性别\t年龄\t电话\t地址\n"); for (i = 0; i < count; i++) {printf("\t\t\t%s\t%s\t%d\t%s\t%s\n", member[i].name, member[i].sex, member[i].age, member[i].tel, member[i].address);}}void search() {if (count == 0) {printf("\t\t\t无会员信息!\n");return;}int i;char name[MAXLEN];printf("\t\t\t请输入要查询的会员姓名:");scanf("%s", name);for (i = 0; i < count; i++) {if (strcmp(name, member[i].name) == 0) {printf("\t\t\t姓名\t性别\t年龄\t电话\t地址\n");printf("\t\t\t%s\t%s\t%d\t%s\t%s\n", member[i].name, member[i].sex, member[i].age, member[i].tel, member[i].address);return;}}printf("\t\t\t没有找到该会员!\n");}void modify() {if (count == 0) {printf("\t\t\t无会员信息!\n");return;}int i;char name[MAXLEN];printf("\t\t\t请输入要修改的会员姓名:");scanf("%s", name);for (i = 0; i < count; i++) {if (strcmp(name, member[i].name) == 0) {printf("\t\t\t请输入新的性别:");scanf("%s", member[i].sex);printf("\t\t\t请输入新的年龄:");scanf("%d", &member[i].age);printf("\t\t\t请输入新的电话:");scanf("%s", member[i].tel);printf("\t\t\t请输入新的地址:"); scanf("%s", member[i].address);printf("\t\t\t修改成功!\n");return;}}printf("\t\t\t没有找到该会员!\n");}void quit() {printf("\t\t\t谢谢使用!\n");exit(0);}。
一、需求分析用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);再进行其他操作。
数据库设计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(),adOpenKeys et,adLockOptimistic,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()和voidCMemberDlg::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 消费加分模块界面实现图输入用户账号和消费金额后,首先检查数据库中是否存在该记录,如果存在,则将该用户积分增加其消费金额数目,如不存在,系统弹出提示信息。