Ubuntu下wxWidgets学生信息管理sqlite3

简单工厂模式(simple factory)是类的创建模式,又叫静态工厂方法(static factory method)模式。

简单工厂模式就是由一个工厂类根据传入的参数决定创建哪一种的产品类。

有4个角色

工厂类角色:是具体产品类角色直接调用者。

抽象产品角色:接口或抽象类,负责具体产品角色的定义,及与客户端的交互。

具体产品角色:被工厂类创建的对象,也是客户端实际操作对象。

客户端:调用工厂类产生实例,并调用实例的方法进行相应工作。

c++实现

#include <iostream>

#include <list>

using namespace std;

class Pizza

{

public:

string name;

string dough;

string sauce;

list<string> pizzalist;

void prepare()

{

cout<<"Preparing"+name<<endl;

cout<<"Tossing dough..."<<endl;

cout<<"Adding sauce..."<<endl;

cout<<"Adding pizzalist: "<<endl;

for(list<string>::iterator it=pizzalist.begin();it!=pizzalist.end();it++)

{

cout<<"  "<<*it<<endl;

}

}

virtual void bake()

{

cout<<"Bake for 25 minutes at 350"<<endl;

}

virtual void cut()

{

cout<<"Cutting the pizza into diagonal slices"<<endl;

}

virtual void box()

{

cout<<"Place pizza in official PizzaStore box"<<endl;

}

string getName()

{

return name;

}

};

class NYstyleCheesePizza:public Pizza

{

public:

NYstyleCheesePizza()

{

name="NY Style Sauce and Cheese Pizza";

dough="Thin Crust Dough";

sauce="Marinara Sauce";

pizzalist.push_back("Grated Reggiano Cheese");

}

};

class ChicagoStyleCheesePizza:public Pizza

{

public:

ChicagoStyleCheesePizza()

{

name="Chicago Style Deep Dish Cheese Pizza";

dough="Extra Thick Crust Dough";

sauce="Plum Tomato Sauce";

pizzalist.push_back("Shredded Mozzarella Cheese");

}

void cut()

{

cout<<"Cutting the pizza into square slices";

}

};

class PizzaStore

{

public :

Pizza orderPizza(string type)

{

Pizza pizza;

pizza=creatPizza(type);

pizza.prepare();

pizza.bake();

pizza.cut();

pizza.box();

return pizza;

}

protected:

virtual Pizza creatPizza(string type)=0;

};

class NYStylePizzaStore:public PizzaStore

{

Pizza creatPizza(string item)

{

if(item=="cheese")

{

NYstyleCheesePizza ny;

return ny;

}

}

};

class ChicagoStyleStore:public PizzaStore

{

Pizza creatPizza(string item)

{

if(item=="cheese")

{

ChicagoStyleCheesePizza chicago;

return chicago;

}

}

};

int main()

{

PizzaStore *nyStore=new NYStylePizzaStore();

PizzaStore *chicagoStore=new ChicagoStyleStore();

Pizza pizza =nyStore->orderPizza("cheese");

cout<<"Ethan ordered a "+pizza.getName()<<endl;

pizza =chicagoStore->orderPizza("cheese");

cout<<"Joel ordered a "+pizza.getName()<<endl;

return 0;

}

Ubuntu下wxWidgets学生信息管理sqlite3

时间: 2024-10-08 20:03:00

Ubuntu下wxWidgets学生信息管理sqlite3的相关文章

Ubuntu下wxWidgets学生信息管理sqlite3(C++)

main.cxx #include <sqlite3.h> #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; int main() { sqlite3* file; int flag; flag = sqlite3_open("./stu.db", &file); if(SQLITE_OK != flag) { cout&l

Ubuntu下wxWidgets学生信息管理soci

main.cxx #include "soci.h" #include "soci-sqlite3.h" using namespace soci; #include <iostream> using namespace std; int main() { session sql; sql.open(sqlite3, "./stu.db"); /*method1*/ /*rowset<row> rs = (sql.prep

Ubuntu下wxWidgets学生公寓管理编程,sqlite3的用法(mysql数据库),窗体,下面是部分添加和删除功能,其他功能可以联系我。。

以下是学生公寓信息管理的增加和删除,仅供参考.. void StuManaFrame::OnAdd(wxCommandEvent &event) { //add student's dormitory infomation sqlite3 *db=NULL; int flag; char *errmsg; flag = sqlite3_open("./stuinfo.db",&db); if(SQLITE_OK != flag) { wxLogMessage("

Ubuntu下Codeblocks+wxWidgets编程,学生公寓管理系统,基于窗体(使用wxFormbuilder拉取控件)。C++,sqlite3

/*************************************************************** * Name:      StuManaMain.cpp * Purpose:   Code for Application Frame * Author:    Zhangaihua (62*********@qq.com) * Created:   2014-05-20 * Copyright: Zhangaihua () * License: *********

Ubuntu下的wxWidgets编程(学生信息管理写入文件,文件格式是.txt)

wxWidgets和Codeblocks的编译安装,GUI程序开发平台的搭建具体步骤如下: (1)基本编译环境安装 安装编译工具(gcc之类)sudo apt-get install build-essential 安装X11sudo apt-get install libx11-dev 安装GTK需要的东西sudo apt-get install?gnome-core-devel (2)下载wxWidgets源码包并解压缩到 #{wxdir} (3)创建基于gtk和x11的编译目录${wx}

ubuntu下sqlite3的用法(以后会讲到wxWidgets使用sqlite3开发)

1.先在线安装sqlite3,试用一下命令安装 [email protected]:~$ sudo apt-get install sqlite3 2.安装成功后测试会出现 [email protected]:~$ sqlite3 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqli

学生信息管理系统,Ubuntu下Codeblocks+wxWidgets编程

题目链接:https://oj.leetcode.com/problems/set-matrix-zeroes/ Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 一个个找肯定会超时,我们可以分别用一个行向量和一个列向量进行维护.这样O(m*n) 能出来 class Solution { public: void setZeroes(vector<vector

ubuntu 下配置Python wxWidgets (复制自官方网站)

全系统英文官网操作地址:http://wxpython.org/download.php Ubuntu 英文操作地址:http://wiki.wxpython.org/InstallingOnUbuntuOrDebian Installing wxWidgets and wxPython On Ubuntu Or Debian There are wxWidgets and wxPython packages in the standard software repositories for D

Ubuntu下sqlite3的配置与使用(以后会说到Ubuntu下C++数据库应用开发程序(窗体程序))

/***************************************************************  * Name:      CaculatorMain.h  * Purpose:   Defines Application Frame  * Author:    zhangaihua ([email protected])  * Created:   2013-12-25  * Copyright: zhangaihua (http://blog.csdn.ne