可以进行数据传输的银行管理系统
来源:互联网 发布:超市商品毛利率知乎 编辑:程序博客网 时间:2024/04/29 20:43
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "EndOfFile")
#include <iostream>
#include <iomanip> //for setw()
#include<string>
#include<stdio.h>
#include<string.h>
#include "windows.h"
#include<sql.h>
#include<vector>
using namespace std;
class customer
{
public:
char cid[20];
char cname[20];
char city[20];
char trust_abi[20];
public:
customer(){}
~customer(){}
};
class manager
{
public:
char mid[20];
char mname[20];
char mcity[20];
char bid[20];
public:
manager(){}
~manager(){}
};
class fund_bill
{
public:
char card_no[20];
char mid[20];
char cid[20];
char fortune_amount[20];
char deposite_date[20];
public:
fund_bill(){}
~fund_bill(){}
};
class draw_bill
{
public:
char card_no[20];
char cid[20];
char mid[20];
char draw_money[20];
char draw_date[20];
char rest_money[20];
char rate[20];
public:
draw_bill(){}
~draw_bill(){}
};
class bank
{
public:
char card_type[20];
char bid[20];
char address[20];
char asset[20];
public:
bank(){}
~bank(){}
};
int main()
{
int m=0,n=0;
customer cus;
manager man;
fund_bill fund;
draw_bill draw;
bank ban;
::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备
// 创建记录集对象
_RecordsetPtr m_pRecordset("ADODB.Recordset");
//m_pRecordset.CreateInstance(__uuidof(Recordset));
//创建connection对象
_ConnectionPtr m_pConnection("ADODB.Connection");
//设置连接字符串
//_bstr_t strConnect=("driver={SQL Server};Server=(local)\\sqlexpress;DATABASE=CAP;UID=sa;PWD=sa123456;");
_bstr_t strConnect= "Provider=SQLOLEDB;Database=CAP; uid=sa; pwd=123456;";
cout<<" 欢迎来到银行管理系统 "<<endl;
cout<<endl;
while(n<=5)
{
cout << "选择您需要操作的表单" << endl;
cout << "1 操作customer表单" << endl;
cout << "2 操作manager表单" << endl;
cout << "3 操作fund表单" << endl;
cout << "4 操作draw表单" << endl;
cout << "5 操作bank表单" << endl;
cout << "请输入你选择的菜单号<1,2,3,4,5>:";
cin >> n;
cout << endl;
char Stence[300];
if(n==1)
{
m=0;
_bstr_t bstrSQL("select * from customer"); //查询语句,表stu_info
std::cout<<"creating from database..."<<endl;
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd;
char *query_cmd1;
char *puery_cmd;
char *puery_cmd1;
switch(m)
{
case 1:
try{
cout<<'1';
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
cout<<'1';
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "cid cname city trust_abi \n";
cout<<"n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vcid = m_pRecordset->GetCollect(_variant_t((long)0));
vcname = m_pRecordset->GetCollect("cname");
vcity = m_pRecordset->GetCollect("city");
vtrust_abi = m_pRecordset->GetCollect("trust_abi");
if (vcid.vt != VT_NULL && vcname.vt != VT_NULL && vcity.vt != VT_NULL && vtrust_abi.vt != VT_NULL )
{
cout<<'1';
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vcid;
cout << setw(10) << (char*)(_bstr_t)vcname;
cout << setw(8) << (char*)(_bstr_t)vcity;
cout <<setw(20) << (char*)(_bstr_t)vtrust_abi;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输出删除的cid:";
cin>>cus.cid;
strcpy(Stence,"delete from customer where cid ='");
strcat(Stence,cus.cid);
strcat(Stence,"'");
query_cmd=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(用户编号、姓名、城市、信用度):";
cin>>cus.cid;
cin>>cus.cname;
cin>>cus.city;
cin>>cus.trust_abi;
strcpy(Stence,"insert into customer values('");
strcat(Stence,cus.cid);
strcat(Stence,"','");
strcat(Stence,cus.cname);
strcat(Stence,"','");
strcat(Stence,cus.city);
strcat(Stence,"','");
strcat(Stence,cus.trust_abi);
strcat(Stence,"')");
puery_cmd=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(puery_cmd,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的cid:";
cin>>cus.cid;
cout<<"请输入 名字 城市 信誉度:";
cin>>cus.cname;
cin>>cus.city;
cin>>cus.trust_abi;
strcpy(Stence,"update customer set cname='");
strcat(Stence,cus.cname);
strcat(Stence,"',city='");
strcat(Stence,cus.city);
strcat(Stence,"',trust_abi='");
strcat(Stence,cus.trust_abi);
strcat(Stence,"'where cid='");
strcat(Stence,cus.cid);
strcat(Stence,"'");
puery_cmd1=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(puery_cmd1,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhilem
}//endif1
if(n==2){
_bstr_t bstrSQL("select * from manager"); //查询语句,表stu_info
m=0;
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd2;
char *query_cmd3;
char *query_cmd4;
switch(m)
{
case 1:
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "mid mname city bid \n";
cout<<"n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vmid = m_pRecordset->GetCollect(_variant_t((long)0));
vmname = m_pRecordset->GetCollect("mname");
vmcity = m_pRecordset->GetCollect("mcity");
vbid = m_pRecordset->GetCollect("bid");
if (vmid.vt != VT_NULL && vmname.vt != VT_NULL && vmcity.vt != VT_NULL && vbid.vt != VT_NULL )
{
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vmid;
cout << setw(10) << (char*)(_bstr_t)vmname;
cout << setw(15) << (char*)(_bstr_t)vmcity;
cout <<setw(10) << (char*)(_bstr_t)vbid;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输出删除的cid:";
cin>>man.mid;
strcpy(Stence,"delete from manager where mid ='");
strcat(Stence,man.mid);
strcat(Stence,"'");
query_cmd2=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd2,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(经理编号、姓名、城市、银行编号):";
cin>>man.mid;
cin>>man.mname;
cin>>man.mcity;
cin>>man.bid;
strcpy(Stence,"insert into manager values('");
strcat(Stence,man.mid);
strcat(Stence,"','");
strcat(Stence,man.mname);
strcat(Stence,"','");
strcat(Stence,man.mcity);
strcat(Stence,"','");
strcat(Stence,man.bid);
strcat(Stence,"')");
query_cmd3=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd3,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的mid:";
cin>>man.mid;
cout<<"请输入修改的名字 城市 银行编号:";
cin>>man.mname;
cin>>man.mcity;
cin>>man.bid;
strcpy(Stence,"update manager set mname='");
strcat(Stence,man.mname);
strcat(Stence,"',mcity='");
strcat(Stence,man.mcity);
strcat(Stence,"',bid='");
strcat(Stence,man.bid);
strcat(Stence,"'where mid='");
strcat(Stence,man.mid);
strcat(Stence,"'");
query_cmd4=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd4,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}
if(n==5){
_bstr_t bstrSQL("select * from bank"); //查询语句,表stu_info
m=0;
while (m <= 4)
{
cout << "1查询" << endl;
cout << "2删除" << endl;
cout << "3增加" << endl;
cout << "4修改" << endl;
cout << "请选择操作的菜单号:";
cin >> m;
cout << endl;
char *query_cmd5;
char *query_cmd6;
char *query_cmd7;
switch (m)
{
case 1:
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
while (1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
cout << "Bid Card_type Address Asset \n";
cout << "n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vbid = m_pRecordset->GetCollect(_variant_t((long)0));
vcard_type = m_pRecordset->GetCollect("card_type");
vaddress = m_pRecordset->GetCollect("address");
vasset = m_pRecordset->GetCollect("asset");
if (vbid.vt != VT_NULL && vcard_type.vt != VT_NULL && vaddress.vt != VT_NULL && vasset.vt != VT_NULL)
{
cout.setf(ios::left);
cout << setw(20) << (char*)(_bstr_t)vbid;
cout << setw(20) << (char*)(_bstr_t)vcard_type;
cout << setw(15) << (char*)(_bstr_t)vaddress;
cout << setw(20) << (char*)(_bstr_t)vasset;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout << "输出删除的bid:";
cin >> ban.bid;
strcpy(Stence, "delete from bank where bid ='");
strcat(Stence, ban.bid);
strcat(Stence, "'");
query_cmd5 = Stence;
std::cout << "creating from database..." << endl;
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pConnection->Execute(query_cmd5, NULL, 1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout << "deleting from database..." << endl;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout << "请输入新增信息(银行编号、银行卡型号、银行位置、银行余额):";
cin >> ban.bid;
cin >> ban.card_type;
cin >> ban.address;
cin >> ban.asset;
strcpy(Stence, "insert into bank values('");
strcat(Stence, ban.bid);
strcat(Stence, "','");
strcat(Stence, ban.card_type);
strcat(Stence, "','");
strcat(Stence, ban.address);
strcat(Stence, "','");
strcat(Stence, ban.asset);
strcat(Stence, "')");
query_cmd6 = Stence;
std::cout << "creating from database..." << endl;
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pConnection->Execute(query_cmd6, NULL, 1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout << "adding from database..." << endl;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout << "请输入需要修改的bid:";
cin >> ban.bid;
cout<<"请输入修改的卡类型,地址,银行余额:";
cin >> ban.card_type;
cin >> ban.address;
cin >> ban.asset;
strcpy(Stence, "update bank set card_type='");
strcat(Stence, ban.card_type);
strcat(Stence, "',address='");
strcat(Stence, ban.address);
strcat(Stence, "',asset='");
strcat(Stence, ban.asset);
strcat(Stence, "'where bid='");
strcat(Stence, ban.bid);
strcat(Stence, "'");
query_cmd7 = Stence;
std::cout << "creating from database..." << endl;
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pConnection->Execute(query_cmd7, NULL, 1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout << "adding from database..." << endl;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}
if(n==3){
_bstr_t bstrSQL("select * from fund_bill"); //查询语句,表stu_info
m=0;
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd11;
char *query_cmd12;
char *query_cmd13;
switch(m)
{
case 1:
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "card_no mid cid fortune_amount deposite_date \n";
cout<<"n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vcard_no = m_pRecordset->GetCollect(_variant_t((long)0));
vmid = m_pRecordset->GetCollect("mid");
vcid = m_pRecordset->GetCollect("cid");
vfortune_amount = m_pRecordset->GetCollect("fortune_amount");
vdeposite_date = m_pRecordset->GetCollect("deposite_date");
if (vcard_no.vt != VT_NULL && vmid.vt != VT_NULL && vcid.vt != VT_NULL && vdeposite_date.vt != VT_NULL && vfortune_amount.vt != VT_NULL )
{
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vcard_no;
cout << setw(10) << (char*)(_bstr_t)vmid;
cout << setw(8) << (char*)(_bstr_t)vcid;
cout <<setw(20) << (char*)(_bstr_t)vfortune_amount;
cout <<setw(20) << (char*)(_bstr_t)vdeposite_date;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输入删除的card_no:";
cin>>fund.card_no;
strcpy(Stence,"delete from fund_bill where card_no ='");
strcat(Stence,fund.card_no);
strcat(Stence,"'");
query_cmd11=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd11,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(卡号、经理编号、客户编号、存款数、存款日期):";
cin>>fund.card_no;
cin>>fund.mid;
cin>>fund.cid;
cin>>fund.fortune_amount;
cin>>fund.deposite_date;
strcpy(Stence,"insert into fund_bill values('");
strcat(Stence,fund.card_no);
strcat(Stence,"','");
strcat(Stence,fund.mid);
strcat(Stence,"','");
strcat(Stence,fund.cid);
strcat(Stence,"','");
strcat(Stence,fund.fortune_amount);
strcat(Stence,"','");
strcat(Stence,fund.deposite_date);
strcat(Stence,"')");
query_cmd12=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd12,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的card_no:";
cin>>fund.card_no;
cout<<"请输入修改的经理编号,客户编号,存款,存款日期:";
cin>>fund.mid;
cin>>fund.cid;
cin>>fund.fortune_amount;
cin>>fund.deposite_date;
strcpy(Stence,"update fund_bill set card_no='");
strcat(Stence,fund.card_no);
strcat(Stence,"',mid='");
strcat(Stence,fund.mid);
strcat(Stence,"',cid='");
strcat(Stence,fund.cid);
strcat(Stence,"',fortune_amount='");
strcat(Stence,fund.fortune_amount);
strcat(Stence,"'where desposite_date='");
strcat(Stence,"'");
query_cmd13=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd13,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}
if(n==4){
m=0;
_bstr_t bstrSQL("select * from draw_bill"); //查询语句,表stu_info
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd8;
char *query_cmd9;
char *query_cmd10;
switch(m)
{
case 1:
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "Card_no Cid Mid Draw_money Draw_date Rest_money Rate\n";
cout<<"n-----------------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vcard_no = m_pRecordset->GetCollect(_variant_t((long)0));
vcid = m_pRecordset->GetCollect("cid");
vmid = m_pRecordset->GetCollect("mid");
vdraw_money = m_pRecordset->GetCollect("draw_money");
vdraw_date = m_pRecordset->GetCollect("draw_date");
vrest_money = m_pRecordset->GetCollect("rest_money");
vrate = m_pRecordset->GetCollect("rate");
if (vcard_no.vt != VT_NULL && vcid.vt != VT_NULL && vmid.vt != VT_NULL && vdraw_money.vt != VT_NULL&& vdraw_date.vt != VT_NULL && vrest_money.vt != VT_NULL && vrate.vt != VT_NULL )
{
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vcard_no;
cout << setw(10) << (char*)(_bstr_t)vcid;
cout << setw(10) << (char*)(_bstr_t)vmid;
cout << setw(10) << (char*)(_bstr_t)vdraw_money;
cout <<setw(20) << (char*)(_bstr_t)vdraw_date;
cout << setw(15) << (char*)(_bstr_t)vrest_money;
cout << setw(10) << (char*)(_bstr_t)vrate;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n-----------------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输出删除的card_no:";
cin>>draw.card_no;
strcpy(Stence,"delete from draw_bill where card_no ='");
strcat(Stence,draw.card_no);
strcat(Stence,"'");
query_cmd8=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid ,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd8,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(卡号、用户编号、经理编号、取款金额、取款日期、剩余金额、利息):";
cin>>draw.card_no;
cin>>draw.cid;
cin>>draw.mid;
cin>>draw.draw_money;
cin>>draw.draw_date;
cin>>draw.rest_money;
cin>>draw.rate;
strcpy(Stence,"insert into draw_bill values('");
strcat(Stence,draw.card_no);
strcat(Stence,"','");
strcat(Stence,draw.cid);
strcat(Stence,"','");
strcat(Stence,draw.mid);
strcat(Stence,"','");
strcat(Stence,draw.draw_money);
strcat(Stence,"','");
strcat(Stence,draw.draw_date);
strcat(Stence,"','");
strcat(Stence,draw.rest_money);
strcat(Stence,"','");
strcat(Stence,draw.rate);
strcat(Stence,"')");
query_cmd9=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd9,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的card_no:";
cin>>draw.card_no;
cout<<"请输入修改的顾客编号 经理编号 取钱数量 取钱日期 余额 利息:";
cin>>draw.cid;
cin>>draw.mid;
cin>>draw.draw_money;
cin>>draw.draw_date;
cin>>draw.rest_money;
cin>>draw.rate;
strcpy(Stence,"update draw_bill set cid='");
strcat(Stence,draw.cid);
strcat(Stence,"',mid='");
strcat(Stence,draw.mid);
strcat(Stence,"',draw_money='");
strcat(Stence,draw.draw_money);
strcat(Stence,"',draw_date='");
strcat(Stence,draw.draw_date);
strcat(Stence,"',rest_money='");
strcat(Stence,draw.rest_money);
strcat(Stence,"',rate='");
strcat(Stence,draw.rate);
strcat(Stence,"'where card_no='");
strcat(Stence,draw.card_no);
strcat(Stence,"'");
query_cmd10=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd10,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}//endif
}//endwhile(n)
return 0;
}
#include <iostream>
#include <iomanip> //for setw()
#include<string>
#include<stdio.h>
#include<string.h>
#include "windows.h"
#include<sql.h>
#include<vector>
using namespace std;
class customer
{
public:
char cid[20];
char cname[20];
char city[20];
char trust_abi[20];
public:
customer(){}
~customer(){}
};
class manager
{
public:
char mid[20];
char mname[20];
char mcity[20];
char bid[20];
public:
manager(){}
~manager(){}
};
class fund_bill
{
public:
char card_no[20];
char mid[20];
char cid[20];
char fortune_amount[20];
char deposite_date[20];
public:
fund_bill(){}
~fund_bill(){}
};
class draw_bill
{
public:
char card_no[20];
char cid[20];
char mid[20];
char draw_money[20];
char draw_date[20];
char rest_money[20];
char rate[20];
public:
draw_bill(){}
~draw_bill(){}
};
class bank
{
public:
char card_type[20];
char bid[20];
char address[20];
char asset[20];
public:
bank(){}
~bank(){}
};
int main()
{
int m=0,n=0;
customer cus;
manager man;
fund_bill fund;
draw_bill draw;
bank ban;
::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备
// 创建记录集对象
_RecordsetPtr m_pRecordset("ADODB.Recordset");
//m_pRecordset.CreateInstance(__uuidof(Recordset));
//创建connection对象
_ConnectionPtr m_pConnection("ADODB.Connection");
//设置连接字符串
//_bstr_t strConnect=("driver={SQL Server};Server=(local)\\sqlexpress;DATABASE=CAP;UID=sa;PWD=sa123456;");
_bstr_t strConnect= "Provider=SQLOLEDB;Database=CAP; uid=sa; pwd=123456;";
cout<<" 欢迎来到银行管理系统 "<<endl;
cout<<endl;
while(n<=5)
{
cout << "选择您需要操作的表单" << endl;
cout << "1 操作customer表单" << endl;
cout << "2 操作manager表单" << endl;
cout << "3 操作fund表单" << endl;
cout << "4 操作draw表单" << endl;
cout << "5 操作bank表单" << endl;
cout << "请输入你选择的菜单号<1,2,3,4,5>:";
cin >> n;
cout << endl;
char Stence[300];
if(n==1)
{
m=0;
_bstr_t bstrSQL("select * from customer"); //查询语句,表stu_info
std::cout<<"creating from database..."<<endl;
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd;
char *query_cmd1;
char *puery_cmd;
char *puery_cmd1;
switch(m)
{
case 1:
try{
cout<<'1';
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
cout<<'1';
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "cid cname city trust_abi \n";
cout<<"n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vcid = m_pRecordset->GetCollect(_variant_t((long)0));
vcname = m_pRecordset->GetCollect("cname");
vcity = m_pRecordset->GetCollect("city");
vtrust_abi = m_pRecordset->GetCollect("trust_abi");
if (vcid.vt != VT_NULL && vcname.vt != VT_NULL && vcity.vt != VT_NULL && vtrust_abi.vt != VT_NULL )
{
cout<<'1';
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vcid;
cout << setw(10) << (char*)(_bstr_t)vcname;
cout << setw(8) << (char*)(_bstr_t)vcity;
cout <<setw(20) << (char*)(_bstr_t)vtrust_abi;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输出删除的cid:";
cin>>cus.cid;
strcpy(Stence,"delete from customer where cid ='");
strcat(Stence,cus.cid);
strcat(Stence,"'");
query_cmd=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(用户编号、姓名、城市、信用度):";
cin>>cus.cid;
cin>>cus.cname;
cin>>cus.city;
cin>>cus.trust_abi;
strcpy(Stence,"insert into customer values('");
strcat(Stence,cus.cid);
strcat(Stence,"','");
strcat(Stence,cus.cname);
strcat(Stence,"','");
strcat(Stence,cus.city);
strcat(Stence,"','");
strcat(Stence,cus.trust_abi);
strcat(Stence,"')");
puery_cmd=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(puery_cmd,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的cid:";
cin>>cus.cid;
cout<<"请输入 名字 城市 信誉度:";
cin>>cus.cname;
cin>>cus.city;
cin>>cus.trust_abi;
strcpy(Stence,"update customer set cname='");
strcat(Stence,cus.cname);
strcat(Stence,"',city='");
strcat(Stence,cus.city);
strcat(Stence,"',trust_abi='");
strcat(Stence,cus.trust_abi);
strcat(Stence,"'where cid='");
strcat(Stence,cus.cid);
strcat(Stence,"'");
puery_cmd1=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(puery_cmd1,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhilem
}//endif1
if(n==2){
_bstr_t bstrSQL("select * from manager"); //查询语句,表stu_info
m=0;
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd2;
char *query_cmd3;
char *query_cmd4;
switch(m)
{
case 1:
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "mid mname city bid \n";
cout<<"n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vmid = m_pRecordset->GetCollect(_variant_t((long)0));
vmname = m_pRecordset->GetCollect("mname");
vmcity = m_pRecordset->GetCollect("mcity");
vbid = m_pRecordset->GetCollect("bid");
if (vmid.vt != VT_NULL && vmname.vt != VT_NULL && vmcity.vt != VT_NULL && vbid.vt != VT_NULL )
{
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vmid;
cout << setw(10) << (char*)(_bstr_t)vmname;
cout << setw(15) << (char*)(_bstr_t)vmcity;
cout <<setw(10) << (char*)(_bstr_t)vbid;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输出删除的cid:";
cin>>man.mid;
strcpy(Stence,"delete from manager where mid ='");
strcat(Stence,man.mid);
strcat(Stence,"'");
query_cmd2=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd2,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(经理编号、姓名、城市、银行编号):";
cin>>man.mid;
cin>>man.mname;
cin>>man.mcity;
cin>>man.bid;
strcpy(Stence,"insert into manager values('");
strcat(Stence,man.mid);
strcat(Stence,"','");
strcat(Stence,man.mname);
strcat(Stence,"','");
strcat(Stence,man.mcity);
strcat(Stence,"','");
strcat(Stence,man.bid);
strcat(Stence,"')");
query_cmd3=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd3,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的mid:";
cin>>man.mid;
cout<<"请输入修改的名字 城市 银行编号:";
cin>>man.mname;
cin>>man.mcity;
cin>>man.bid;
strcpy(Stence,"update manager set mname='");
strcat(Stence,man.mname);
strcat(Stence,"',mcity='");
strcat(Stence,man.mcity);
strcat(Stence,"',bid='");
strcat(Stence,man.bid);
strcat(Stence,"'where mid='");
strcat(Stence,man.mid);
strcat(Stence,"'");
query_cmd4=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd4,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}
if(n==5){
_bstr_t bstrSQL("select * from bank"); //查询语句,表stu_info
m=0;
while (m <= 4)
{
cout << "1查询" << endl;
cout << "2删除" << endl;
cout << "3增加" << endl;
cout << "4修改" << endl;
cout << "请选择操作的菜单号:";
cin >> m;
cout << endl;
char *query_cmd5;
char *query_cmd6;
char *query_cmd7;
switch (m)
{
case 1:
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
while (1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
cout << "Bid Card_type Address Asset \n";
cout << "n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vbid = m_pRecordset->GetCollect(_variant_t((long)0));
vcard_type = m_pRecordset->GetCollect("card_type");
vaddress = m_pRecordset->GetCollect("address");
vasset = m_pRecordset->GetCollect("asset");
if (vbid.vt != VT_NULL && vcard_type.vt != VT_NULL && vaddress.vt != VT_NULL && vasset.vt != VT_NULL)
{
cout.setf(ios::left);
cout << setw(20) << (char*)(_bstr_t)vbid;
cout << setw(20) << (char*)(_bstr_t)vcard_type;
cout << setw(15) << (char*)(_bstr_t)vaddress;
cout << setw(20) << (char*)(_bstr_t)vasset;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout << "输出删除的bid:";
cin >> ban.bid;
strcpy(Stence, "delete from bank where bid ='");
strcat(Stence, ban.bid);
strcat(Stence, "'");
query_cmd5 = Stence;
std::cout << "creating from database..." << endl;
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pConnection->Execute(query_cmd5, NULL, 1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout << "deleting from database..." << endl;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout << "请输入新增信息(银行编号、银行卡型号、银行位置、银行余额):";
cin >> ban.bid;
cin >> ban.card_type;
cin >> ban.address;
cin >> ban.asset;
strcpy(Stence, "insert into bank values('");
strcat(Stence, ban.bid);
strcat(Stence, "','");
strcat(Stence, ban.card_type);
strcat(Stence, "','");
strcat(Stence, ban.address);
strcat(Stence, "','");
strcat(Stence, ban.asset);
strcat(Stence, "')");
query_cmd6 = Stence;
std::cout << "creating from database..." << endl;
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pConnection->Execute(query_cmd6, NULL, 1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout << "adding from database..." << endl;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout << "请输入需要修改的bid:";
cin >> ban.bid;
cout<<"请输入修改的卡类型,地址,银行余额:";
cin >> ban.card_type;
cin >> ban.address;
cin >> ban.asset;
strcpy(Stence, "update bank set card_type='");
strcat(Stence, ban.card_type);
strcat(Stence, "',address='");
strcat(Stence, ban.address);
strcat(Stence, "',asset='");
strcat(Stence, ban.asset);
strcat(Stence, "'where bid='");
strcat(Stence, ban.bid);
strcat(Stence, "'");
query_cmd7 = Stence;
std::cout << "creating from database..." << endl;
try
{
m_pConnection->Open(strConnect, "", "", adModeUnknown);
if (m_pConnection == NULL)
cerr << "Lind data ERROR!n";
_variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pConnection->Execute(query_cmd7, NULL, 1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout << "adding from database..." << endl;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if (m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}
if(n==3){
_bstr_t bstrSQL("select * from fund_bill"); //查询语句,表stu_info
m=0;
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd11;
char *query_cmd12;
char *query_cmd13;
switch(m)
{
case 1:
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "card_no mid cid fortune_amount deposite_date \n";
cout<<"n----------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vcard_no = m_pRecordset->GetCollect(_variant_t((long)0));
vmid = m_pRecordset->GetCollect("mid");
vcid = m_pRecordset->GetCollect("cid");
vfortune_amount = m_pRecordset->GetCollect("fortune_amount");
vdeposite_date = m_pRecordset->GetCollect("deposite_date");
if (vcard_no.vt != VT_NULL && vmid.vt != VT_NULL && vcid.vt != VT_NULL && vdeposite_date.vt != VT_NULL && vfortune_amount.vt != VT_NULL )
{
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vcard_no;
cout << setw(10) << (char*)(_bstr_t)vmid;
cout << setw(8) << (char*)(_bstr_t)vcid;
cout <<setw(20) << (char*)(_bstr_t)vfortune_amount;
cout <<setw(20) << (char*)(_bstr_t)vdeposite_date;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n----------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输入删除的card_no:";
cin>>fund.card_no;
strcpy(Stence,"delete from fund_bill where card_no ='");
strcat(Stence,fund.card_no);
strcat(Stence,"'");
query_cmd11=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd11,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(卡号、经理编号、客户编号、存款数、存款日期):";
cin>>fund.card_no;
cin>>fund.mid;
cin>>fund.cid;
cin>>fund.fortune_amount;
cin>>fund.deposite_date;
strcpy(Stence,"insert into fund_bill values('");
strcat(Stence,fund.card_no);
strcat(Stence,"','");
strcat(Stence,fund.mid);
strcat(Stence,"','");
strcat(Stence,fund.cid);
strcat(Stence,"','");
strcat(Stence,fund.fortune_amount);
strcat(Stence,"','");
strcat(Stence,fund.deposite_date);
strcat(Stence,"')");
query_cmd12=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd12,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的card_no:";
cin>>fund.card_no;
cout<<"请输入修改的经理编号,客户编号,存款,存款日期:";
cin>>fund.mid;
cin>>fund.cid;
cin>>fund.fortune_amount;
cin>>fund.deposite_date;
strcpy(Stence,"update fund_bill set card_no='");
strcat(Stence,fund.card_no);
strcat(Stence,"',mid='");
strcat(Stence,fund.mid);
strcat(Stence,"',cid='");
strcat(Stence,fund.cid);
strcat(Stence,"',fortune_amount='");
strcat(Stence,fund.fortune_amount);
strcat(Stence,"'where desposite_date='");
strcat(Stence,"'");
query_cmd13=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd13,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}
if(n==4){
m=0;
_bstr_t bstrSQL("select * from draw_bill"); //查询语句,表stu_info
while(m<=4)
{
cout<<"1查询"<<endl;
cout<<"2删除"<<endl;
cout<<"3增加"<<endl;
cout<<"4修改"<<endl;
cout<<"请选择操作的菜单号:";
cin>>m;
cout<<endl;
char *query_cmd8;
char *query_cmd9;
char *query_cmd10;
switch(m)
{
case 1:
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
while(1)
{
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
cout << "Card_no Cid Mid Draw_money Draw_date Rest_money Rate\n";
cout<<"n-----------------------------------------------------------------------n\n";
while (!m_pRecordset->EndOfFile)
{
vcard_no = m_pRecordset->GetCollect(_variant_t((long)0));
vcid = m_pRecordset->GetCollect("cid");
vmid = m_pRecordset->GetCollect("mid");
vdraw_money = m_pRecordset->GetCollect("draw_money");
vdraw_date = m_pRecordset->GetCollect("draw_date");
vrest_money = m_pRecordset->GetCollect("rest_money");
vrate = m_pRecordset->GetCollect("rate");
if (vcard_no.vt != VT_NULL && vcid.vt != VT_NULL && vmid.vt != VT_NULL && vdraw_money.vt != VT_NULL&& vdraw_date.vt != VT_NULL && vrest_money.vt != VT_NULL && vrate.vt != VT_NULL )
{
cout.setf(ios::left);
cout << setw(10) << (char*)(_bstr_t)vcard_no;
cout << setw(10) << (char*)(_bstr_t)vcid;
cout << setw(10) << (char*)(_bstr_t)vmid;
cout << setw(10) << (char*)(_bstr_t)vdraw_money;
cout <<setw(20) << (char*)(_bstr_t)vdraw_date;
cout << setw(15) << (char*)(_bstr_t)vrest_money;
cout << setw(10) << (char*)(_bstr_t)vrate;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "n-----------------------------------------------------------------------n\n";
m_pRecordset->Update();
//m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 2:
cout<<"输出删除的card_no:";
cin>>draw.card_no;
strcpy(Stence,"delete from draw_bill where card_no ='");
strcat(Stence,draw.card_no);
strcat(Stence,"'");
query_cmd8=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid ,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd8,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"deleting from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 3:
cout<<"请输入新增信息(卡号、用户编号、经理编号、取款金额、取款日期、剩余金额、利息):";
cin>>draw.card_no;
cin>>draw.cid;
cin>>draw.mid;
cin>>draw.draw_money;
cin>>draw.draw_date;
cin>>draw.rest_money;
cin>>draw.rate;
strcpy(Stence,"insert into draw_bill values('");
strcat(Stence,draw.card_no);
strcat(Stence,"','");
strcat(Stence,draw.cid);
strcat(Stence,"','");
strcat(Stence,draw.mid);
strcat(Stence,"','");
strcat(Stence,draw.draw_money);
strcat(Stence,"','");
strcat(Stence,draw.draw_date);
strcat(Stence,"','");
strcat(Stence,draw.rest_money);
strcat(Stence,"','");
strcat(Stence,draw.rate);
strcat(Stence,"')");
query_cmd9=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd9,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
case 4:
cout<<"请输入需要修改的card_no:";
cin>>draw.card_no;
cout<<"请输入修改的顾客编号 经理编号 取钱数量 取钱日期 余额 利息:";
cin>>draw.cid;
cin>>draw.mid;
cin>>draw.draw_money;
cin>>draw.draw_date;
cin>>draw.rest_money;
cin>>draw.rate;
strcpy(Stence,"update draw_bill set cid='");
strcat(Stence,draw.cid);
strcat(Stence,"',mid='");
strcat(Stence,draw.mid);
strcat(Stence,"',draw_money='");
strcat(Stence,draw.draw_money);
strcat(Stence,"',draw_date='");
strcat(Stence,draw.draw_date);
strcat(Stence,"',rest_money='");
strcat(Stence,draw.rest_money);
strcat(Stence,"',rate='");
strcat(Stence,draw.rate);
strcat(Stence,"'where card_no='");
strcat(Stence,draw.card_no);
strcat(Stence,"'");
query_cmd10=Stence;
std::cout<<"creating from database..."<<endl;
try
{
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!n";
_variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Execute(query_cmd10,NULL,1);
m_pRecordset->Update();
m_pRecordset->Close(); // 关闭记录集
std::cout<<"adding from database..."<<endl;
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
// cerr << "nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();
break;
}//endswich
}//endwhile
}//endif
}//endwhile(n)
return 0;
}
阅读全文
0 0
- 可以进行数据传输的银行管理系统
- 不需要进行大数据量的拷贝就可以进行数据传输
- 汇编写的银行管理系统
- 银行管理系统的实现以及思路
- 课程设计报告,简单的银行管理系统
- 银行客户管理系统的实现
- VS2010下的银行管理系统
- 银行管理系统
- c++银行管理系统
- 银行调度管理系统
- 银行管理系统
- 银行管理系统
- 银行管理系统
- 银行管理系统
- 银行管理系统
- 黑马 银行管理系统
- 模拟银行管理系统
- 银行资金管理系统
- 字符串处理技术之辨别字符串(用户名排序)
- 迷茫
- 字符串处理技术之辨别字符串(判断网页请求与FTP请求)
- 从源码到可执行程序的步骤
- anaconda安装虚拟环境
- 可以进行数据传输的银行管理系统
- Multi-Programming-12 Semaphore信号量机制
- PHP configuration error and Solutions in RPM
- HDU4185 (11/600)
- CRC循环冗余校验码
- TodayNews
- 安装ubuntu-windows10双系统
- 表单的两种提交方式get和post的区别
- django基础知识