系统功能的基本要求(感谢关注!)
1.订户管理:订户增加、修改、删除;
2.目录管理:目录增加、删除、修改;
3.订单管理:完成订户订阅数据的管理;
4.订单查询:按订户查询订单详细情况;
5.统计查询:按报刊目录统计各类报刊的订阅数量及金额。
代码已实现在vc++6.0以及vs2019中成功运行(运行出现问题欢迎私信)
此题目说明书,任务书,课程设计所有内容部分已打包,需要的私信取!!!
#include <stdlib.h>
#include <windows.h>
#include <sqlucode.h>
#include <iostream>
#include <tchar.h>
using namespace std;
#define CNO_LEN 10
#define NMNO_LEN 10
#define QTY_LEN 4
#define DATE_LEN 10
#define START_LEN 10
#define TERM_LEN 10
#define TITLE_LEN 20
#define PERIOD_LEN 10
#define PRICE_LEN 8
#define NAME_LEN 10
#define ADDR_LEN 20
void back(){}
int main()
{
//定义句柄括和变量
SQLHENV dinghenv; //环境句柄括
SQLHDBC dinghdbc; //连接句柄括
SQLHSTMT dinghstmt; //语句句柄括
SQLRETURN ret;
SQLDOUBLE PRICE;
SQLINTEGER QTY;
SQLCHAR CNO[CNO_LEN], NMNO[NMNO_LEN], DATE1[DATE_LEN], START[START_LEN], TERM[TERM_LEN], TITLE[TITLE_LEN], PERIOD[PERIOD_LEN], NAME[NAME_LEN], ADDR[ADDR_LEN];
SQLINTEGER cbCNO = SQL_NTS, cbNMNO = SQL_NTS, cbQTY = 0, cbDATE1 = SQL_NTS, cbSTART = SQL_NTS, cbTERM = SQL_NTS, cbTITLE = SQL_NTS, cbPERIOD = SQL_NTS, cbNAME = SQL_NTS, cbADDR = SQL_NTS;
SQLINTEGER cbPRICE = 0;
//初始化环境
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &dinghenv);
ret = SQLSetEnvAttr(dinghenv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
//建立连接
ret = SQLAllocHandle(SQL_HANDLE_DBC, dinghenv, &dinghdbc);
ret = SQLConnect(dinghdbc, (SQLCHAR*)(_T("sqlserver")), SQL_NTS, (SQLCHAR*)(_T("sa")), SQL_NTS, (SQLCHAR*)(_T("772739")), SQL_NTS);
if (!(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO))
{
printf("数据库连接失败!\n");
return -1;
}
else
{
printf("数据库连接成功!加载中.....\n");
Sleep(2000);//延时2秒
system("cls");//清屏
}
loop:
//初始化语句句柄括
ret = SQLAllocHandle(SQL_HANDLE_STMT, dinghdbc, &dinghstmt);
ret = SQLSetStmtAttr(dinghstmt, SQL_ATTR_ROW_BIND_TYPE, (SQLPOINTER)SQL_BIND_BY_COLUMN, SQL_IS_INTEGER);
//执行语句
int x, y, m, n;
cout << "" << endl;
cout << " 订户订阅报刊的应用系统 " << endl;
cout << "" << endl;
cout << " 1、订户管理" << endl;
cout << " 2、目录管理" << endl;
cout << " 3、订单管理" << endl;
cout << " 4、订单查询" << endl;
cout << " 5、统计查询" << endl;
cout << " 6、退出" << endl;
cout << "" << endl;
cout << "请输入您的选择:";
cin >> x;
switch (x)
{
case 1:x = 1;//订户管理
{
system("cls");//清屏
loop1:
cout << "" << endl;
cout << " 订户管理" << endl;
cout << "" << endl;
cout << " 1、增加订户" << endl;
cout << " 2、修改订户" << endl;
cout << " 3、删除订户" << endl;
cout << " 4、返回上级" << endl;
cout << "" << endl;
cout << "请输入您的选择:";
cin >> y;
switch (y)
{
case 1:y = 1; //增加订户
{
SQLCHAR CNO1[CNO_LEN], NAME1[NAME_LEN], ADDR1[ADDR_LEN];
ret = SQLPrepare(dinghstmt, (SQLCHAR*)(_T("INSERT INTO CUSTOMER(CNO,NAME,ADDR) VALUES(?,?,?)")), SQL_NTS);
cout << "输入订户信息(订户编号,姓名,地址):" << endl;
cin >> CNO1;
cin >> NAME1;
cin >> ADDR1;
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
cbCNO = SQL_NTS; cbNAME = SQL_NTS; cbADDR = SQL_NTS;
ret = SQLBindParameter(dinghstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, CNO_LEN, 0, CNO1, 0, &cbCNO);
ret = SQLBindParameter(dinghstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, NAME_LEN, 0, NAME1, 0, &cbNAME);