⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 自己编的一个关于物流管理的数据库
💻 CPP
字号:
/**************************************
/*物流管理系统客房端源c++代码     * 
/*作者:严冰,黄金海             *
/*huangjinhai20010@sina.com           *
/*时间:2006/04/08          *
/*************************************/ 

#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <string>
#include <iostream>
using namespace std;

HENV henv;  
HDBC hdbc;
HSTMT hstmt;
RETCODE retcode;
string sql_command;

void connect(){
	SQLAllocEnv(&henv);
	SQLAllocConnect(henv,&hdbc);
	SQLConnect(hdbc,(unsigned char*)"sql",SQL_NTS, (unsigned char*)"user",SQL_NTS,(unsigned char*)"pswd",SQL_NTS);
	SQLAllocStmt(hdbc,&hstmt);

}
void close(){
	SQLFreeStmt(hstmt,SQL_DROP); 
	SQLDisconnect(hdbc);
	SQLFreeConnect(hdbc);
	SQLFreeEnv(henv);
}
int mainmenu(){
	int choice;
	cout <<"1.零件产品"<<endl;
	cout <<"2.入库单"<<endl;
	cout <<"3.配送合同"<<endl;
	cout <<"0.退出"<<endl;
	cout <<"请输入您的选择:";
	cin >>choice;
	while(choice<0 || choice>3){
		cout <<"您的输入有误,请重新输入:"<<endl;
		cin >>choice;
	
	}
	return choice;
}
int function(){
	int choice;
	cout <<"1.查询"<<endl;
	cout <<"2.插入"<<endl;
	cout <<"3.删除"<<endl;
	cout <<"4.更新"<<endl;
	cout <<"0.返回"<<endl;
	cout <<"请输入您的选择:";
	cin >>choice;
	while(choice<0 || choice>4){
		cout <<"您的输入有误,请重新输入:"<<endl;
		cin >>choice;
	}
	return choice;
}
void parts(){
	for(;;){
		string value,tmp;
		char s1[10],s2[20],s3[10],s4[10],s5[10];
		long size[5];
		connect();
		switch(function()){
		case 0:
			close();
			return;
		case 1:
			retcode=SQLExecDirect(hstmt,(unsigned char*)"SELECT * from PARTS",SQL_NTS);
			if(retcode==SQL_SUCCESS){
				SQLBindCol(hstmt,1,SQL_C_CHAR,s1,10,&size[0]);
				SQLBindCol(hstmt,2,SQL_C_CHAR,s2,20,&size[1]);
				SQLBindCol(hstmt,3,SQL_C_CHAR,s3,10,&size[2]);
				SQLBindCol(hstmt,4,SQL_C_CHAR,s4,10,&size[3]);
				SQLBindCol(hstmt,5,SQL_C_CHAR,s5,10,&size[4]);
				cout <<" 编号    产品名称	  数量     成本价   零售价"<<endl;
				for(;;){
					retcode = SQLFetch(hstmt);
					if(retcode==SQL_NO_DATA_FOUND)
						break;
					if(retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
						cout <<s1<<' '<<s2<<' '<<s3<<' '<<s4<<' '<<s5<<endl;
					else
						break;
				}
			}else
				cout <<"连接失败!"<<endl;
			break;
		case 2:
			sql_command="INSERT INTO PARTS(ID,NAME,AMOUNT,IN_PRICE,OUT_PRICE) VALUES(\'";
			cout <<"编号:";		cin >> value; sql_command+=value+"\',\'";
			cout <<"产品名称:";		cin >> value; sql_command+=value+"\',\'";
			cout <<"数量:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"成本价:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"零售价:";cin >> value; sql_command+=value+"\')";
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"插入成功!"<<endl;
			else
				cout <<"插入失败!"<<endl;
			break;
		case 3:
			sql_command="DELETE FROM PARTS WHERE ID=\'";
			cout <<"请输入要删除产品的编号:";
			cin >>value;
			sql_command+=value+'\'';
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"删除成功!"<<endl;
			else
				cout <<"删除失败!"<<endl;
			break;
		case 4:
			sql_command=" WHERE ID=\'";
			tmp="UPDATE PARTS SET NAME=\'";
			cout <<"请输入产品的编号:";	cin >> value; sql_command+=value+'\'';
			cout <<"新产品名称:";			cin >> value; tmp+=value+"\',AMOUNT=\'";
			cout <<"新数量:";		cin >> value; tmp+=value+"\',IN_PRICE=\'";
			cout <<"新成本价:";		cin >> value; tmp+=value+"\',OUT_PRICE=\'";
			cout <<"新零售价:";	cin >> value; tmp+=value+'\'';
			sql_command=tmp+sql_command;
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"更新成功!"<<endl;
			else
				cout <<"更新失败!"<<endl;
		}
		close();
	}
}
void export(){
	for(;;){
		string value,tmp;
		char s1[10],s2[20],s3[10],s4[10],s5[10],s6[100];
		long size[6];
		connect();
		switch(function()){
		case 0:
			close();
			return;
		case 1:
			retcode=SQLExecDirect(hstmt,(unsigned char*)"SELECT * from IM_EXPORT",SQL_NTS);
			if(retcode==SQL_SUCCESS){
				SQLBindCol(hstmt,1,SQL_C_CHAR,s1,10,&size[0]);
				SQLBindCol(hstmt,2,SQL_C_CHAR,s2,20,&size[1]);
				SQLBindCol(hstmt,3,SQL_C_CHAR,s3,10,&size[2]);
				SQLBindCol(hstmt,4,SQL_C_CHAR,s4,10,&size[3]);
				SQLBindCol(hstmt,5,SQL_C_CHAR,s5,10,&size[4]);
				SQLBindCol(hstmt,6,SQL_C_CHAR,s6,100,&size[5]);
				cout <<"编号      产品名称	   数量    交易时间   经手人   备注"<<endl;
				for(;;){
					retcode = SQLFetch(hstmt);
					if(retcode==SQL_NO_DATA_FOUND)
						break;
					if(retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
						cout <<s1<<' '<<s2<<' '<<s3<<' '<<s4<<' '<<s5<<' '<<s6<<endl;
					else
						break;
				}
			}else
				cout <<"连接失败!"<<endl;
			break;
		case 2:
			sql_command="INSERT INTO IM_EXPORT(ID,NAME,AMOUNT,ACT_DATE,PERSON,REMARK) VALUES(\'";
			cout <<"编号:";		cin >> value; sql_command+=value+"\',\'";
			cout <<"产品名称:";		cin >> value; sql_command+=value+"\',\'";
			cout <<"数量:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"交易时间:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"经手人:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"备注:";	cin >> value; sql_command+=value+"\')";
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"插入成功!"<<endl;
			else
				cout <<"插入失败!"<<endl;
			break;
		case 3:
			sql_command="DELETE FROM IM_EXPARTS WHERE ID=\'";
			cout <<"请输入要删除产品的ID:";
			cin >>value;
			sql_command+=value+'\'';
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"删除成功!"<<endl;
			else
				cout <<"删除失败!"<<endl;
			break;
		case 4:
			sql_command=" WHERE ID=\'";
			tmp="UPDATE IM_EXPORT SET NAME=\'";
			cout <<"请输入产品的编号:";	cin >> value; sql_command+=value+'\'';
			cout <<"新产品名称:";			cin >> value; tmp+=value+"\',AMOUNT=\'";
			cout <<"新数量:";		cin >> value; tmp+=value+"\',ACT_DATE=\'";
			cout <<"新交易时间:";		cin >> value; tmp+=value+"\',PERSON=\'";
			cout <<"新经手人:";		cin >> value; tmp+=value+"\',REMARK=\'";
			cout <<"新备注:";		cin >> value; tmp+=value+'\'';
			sql_command=tmp+sql_command;
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"更新成功!"<<endl;
			else
				cout <<"更新失败!"<<endl;
		}
		close();
	}
}
void sales(){
	for(;;){
		string value,tmp;
		char s1[10],s2[20],s3[10],s4[10],s5[10],s6[100];
		long size[6];
		connect();
		switch(function()){
		case 0:
			return;
		case 1:
			retcode=SQLExecDirect(hstmt,(unsigned char*)"SELECT * from BUY_SALES",SQL_NTS);
			if(retcode==SQL_SUCCESS){
				SQLBindCol(hstmt,1,SQL_C_CHAR,s1,10,&size[0]);
				SQLBindCol(hstmt,2,SQL_C_CHAR,s2,20,&size[1]);
				SQLBindCol(hstmt,3,SQL_C_CHAR,s3,10,&size[2]);
				SQLBindCol(hstmt,4,SQL_C_CHAR,s4,10,&size[3]);
				SQLBindCol(hstmt,5,SQL_C_CHAR,s5,10,&size[4]);
				SQLBindCol(hstmt,6,SQL_C_CHAR,s6,100,&size[5]);
				cout <<"编号      产品名称	   数量     交易时间   经手人   备注"<<endl;
				for(;;){
					retcode = SQLFetch(hstmt);
					if(retcode==SQL_NO_DATA_FOUND)
						break;
					if(retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
						cout <<s1<<' '<<s2<<' '<<s3<<' '<<s4<<' '<<s5<<' '<<s6<<endl;
					else
						break;
				}
			}else
				cout <<"连接失败!"<<endl;
			break;
		case 2:
			sql_command="INSERT INTO BUY_SALES(ID,NAME,AMOUNT,ACT_DATE,PERSON,REMARK) VALUES(\'";
			cout <<"编号:";		cin >> value; sql_command+=value+"\',\'";
			cout <<"产品名称:";		cin >> value; sql_command+=value+"\',\'";
			cout <<"数量:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"交易时间:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"经手人:";	cin >> value; sql_command+=value+"\',\'";
			cout <<"备注:";	cin >> value; sql_command+=value+"\')";
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"插入成功!"<<endl;
			else
				cout <<"插入失败!"<<endl;
			break;
		case 3:
			sql_command="DELETE FROM BUY_SALES WHERE ID=\'";
			cout <<"请输入要删除产品的编号:";
			cin >>value;
			sql_command+=value+'\'';
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"删除成功!"<<endl;
			else
				cout <<"删除失败!"<<endl;
			break;
		case 4:
			sql_command=" WHERE ID=\'";
			tmp="UPDATE IM_EXPORT SET NAME=\'";
			cout <<"请输入产品的编号:";	cin >> value; sql_command+=value+'\'';
			cout <<"新产品名称:";			cin >> value; tmp+=value+"\',AMOUNT=\'";
			cout <<"新数量:";		cin >> value; tmp+=value+"\',ACT_DATE=\'";
			cout <<"新交易时间:";		cin >> value; tmp+=value+"\',PERSON=\'";
			cout <<"新经手人:";		cin >> value; tmp+=value+"\',REMARK=\'";
			cout <<"新备注:";		cin >> value; tmp+=value+'\'';
			sql_command=tmp+sql_command;
			retcode = SQLExecDirect(hstmt,(unsigned char*)sql_command.c_str(),SQL_NTS);
			if(retcode==SQL_SUCCESS)
				cout <<"更新成功!"<<endl;
			else
				cout <<"更新失败!"<<endl;
		}
		close();
	}
}

int main()
{
	for(;;){
		switch(mainmenu()){
		case 0:
			return 0;
		case 1:
			parts();
			break;
		case 2:
			export();
			break;
		case 3:
			sales();
			break;
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -