兰州理工大学C++在线图书的设计Word文档格式.docx
- 文档编号:20537781
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:26
- 大小:277.96KB
兰州理工大学C++在线图书的设计Word文档格式.docx
《兰州理工大学C++在线图书的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《兰州理工大学C++在线图书的设计Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
主要包括新书入库录入、书目数据修改、查看缺货登记、销售明细清单、销售统计报表、库存情况统计、购物篮管理、系统用户注册等。
前言
各种信息资源的有效管理已经成为人们获取信息的关键所在,这也将是社会资源信息化建设的重点。
书是人类不可缺少的精神食粮,也是现代社会步入文明的见证。
网上书店管理系统的目的是应用信息化的技术对图书进行的管理,减少大量的数据冗余和传统管理的繁琐工作量,实现管理的系统化、科学化。
系统的主要子模块有图书管理,顾客管理等,可实现日常图书进货、发货业务,最终达到提高工作效率的目的。
VisualC++6.0是一种功能强大行之有效的可视化编程工具,因此此软件是在VisualC++6.0环境下编写的。
对于我们,随着学习的深入,已经基本全部掌握了VisualC++6.0环境下的程序开发。
为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于VisualC++6.0环境的软件开发,利用SQLServer2005作为后台的数据库,以网上书店管理系统作为开始,对VisualC++6.0环境和面向对象程序设计进行回忆和熟悉。
本文档详细叙述了基于VisualC++6.0环境下的网上书店管理系统的设计过程以及程序源代码。
本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。
此次网上书店管理系统的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握数据库的连接、MFC的设计、类的设计和使用以及C++语法。
本文档的安排如下:
第一章主要介绍了对面向对象C++语言以及VC、SQLServer2005编程环境。
第二章主要的介绍说明了本软件的编程思想和总体设计。
第三章主要介绍关于软件各个功能的详细设计。
第四章主要对软件进行调试,运行程序并截图,显示运行界面。
第五章对课程设计进行总结。
程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,本软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。
1、课程设计概述
1.1VisualC++6.0概述
VisualC++是微软公司的重要产品之一,是一种功能强大行之有效的可视化编程工具。
它提供了MFC类库,使用户可以方便的开发自己想实现的功能。
VisualC++6.0的主要特点:
(1)自动化和宏功能。
(2)可以灵活地定制工具栏和菜单。
(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。
(4)支持Internet连接。
(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。
(6)在工作区内可以包含多个并列的工程文件。
(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。
(8)FindinFile命令支持两个独立的输出窗格,可以保存上一次搜索的结果。
这些新特性可以更好地利用VisualC++开发工具进行Windows应用程序开发。
1.2VisualC++6.0运行环境
图1.1VisualC++6.0运行环境
1.3关于数据库
数据库的创建是在SQLServerManagementStudioExpress里面用可视化的操作完成。
下面用类似的方法建了四个表,分别起名为:
book、customer、manager、orders,建表的同时建立约束条件。
然后分别在表中输入列名等数据,分析好数据的安排后注意表之间的联系,属性相对应。
图1.2数据库建表
2、软件总体设计
2.1软件总体设计思想
目前社会上信息管理系统发展飞速,越来越多的企事业单位都引入了信息管理软件来管理自己日益增长的各种信息。
各种网店也相继采用了不同的管理系统来管理商品信息,取得了很大的成效,网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了这次的网上书店管理系统。
本系统的功能是为管理者提供方便的管理、为顾客提供快捷的购买,管理者可以通过登录管理界面实现对图书的添加、修改、删除操作以及发货和查看顾客信息,顾客可以进入图书查询界面通过图书类别、图书名称、图书编号、折扣额度等四种方式查询图书,查到满意的图书后可点击购买。
2.2系统层次图
图2.1系统层次图
2.3各表数据
1)图书信息表book:
记录书籍的编号、类别、名称、价格、简介、折扣、库存数量等。
图2.2book表
2)顾客信息表customer:
记录顾客的编号、密码、姓名、性别、年龄、住址、联系电话等。
图2.3customer表
3)管理员信息表manager:
记录管理员的登录名和密码。
图2.4manager表
4)订单表orders:
记录订单号、图书编号、顾客编号、顾客姓名、顾客地址、联系电话、付款方式、发货方式等。
图2.5orders表
2.4基本E-R图
图2.6基本E-R图
3、软件详细设计
3.1数据库连接
本软件使用ODBC连接数据库,基本思想为为数据库中每个表建立一个RecordSet类,当要对表中数据进行操作时,创建相关记录集,即可引用类中的响应函数进行添加、修改、删除、查询等操作。
3.2主界面
主界面中显示顾客登录、管理员登录和顾客注册三个按钮,顾客输入登录名和密码后点击顾客登录后进入顾客查询界面,管理员输入登录名和密码后点击管理员登录后进入管理界面,若是新顾客,直接点击注册即可进入注册界面,各对话框之间的连接通过DoModal()函数实现,若需要进行身份验证,未输入用户名或密码则将弹出提示对话框“请输入用户名和密码!
”,输入后系统将进入相应的数据库表查询是否有此信息,若无对应信息则弹出对话框提示输入信息错误,信息正确方可进入下一界面,如顾客登录时,系统使用以下代码完成身份验证功能,同时记录下用户信息以便加入订单。
代码如下:
voidRegister()//注册
{
ofstreamoutFile;
outFile.open("
web1.txt"
ios_base:
:
out|ios_base:
app);
//把注册的ID、code保存到web1.txt文件当中
if(!
outFile.is_open())//如果没有成功打开文件
{
cout<
<
"
很遗憾,连接不上服务器"
;
程序结束"
cin.get();
exit(EXIT_FAILURE);
}
stringname;
stringcode;
PleaseEntermembersname请输入用户名名称:
"
//吃掉空字符
getline(cin,name);
//占位,假设输入的用户名超出长度或太短
outFile<
name<
endl;
//记录注册的资料到web1.txt文件中
PleaseEntermemberscode请输入密码:
getline(cin,code);
//占位,假设输入的密码超出长度或太短
code<
注册成功!
outFile.close();
Display();
}
voidEnter1()//顾客登录
ifstreaminFile;
//定义ifstream对象
inFile.open("
);
//读取web1.txt文件中的注册资料
inFile.is_open())//如果文件没有成功打开
stringtemp;
while(getline(inFile,temp))//匹配用户名
if(temp==name)//如果匹配用户名成功
//请输入密码
//code
getline(inFile,temp);
//匹配code
if(temp==code)//如果密码正确,登录成功
登录成功"
//占位,登录成功应该转到程序主题
else
密码错误"
//返回!
voidEnter2()//管理员登录
voidDisplay()//菜单
\n"
\n"
****************************************************************\n"
\n"
欢迎使用在线书店管理系统\n"
\n"
\n"
1)Register注册 2)Enter1顾客登录\n3)enter2管理员登陆4)Exit退出\n\nChoice:
intchoice;
//选择菜单
cin>
>
choice;
switch(choice)
case1:
//注册
Register();
//callfunction调用函数
break;
case2:
//登录
Enter1();
//callfunction调头函数
case3:
Enter2();
case4:
//退出
3.3添加功能
本软件的添加功能使用AddNew()函数,应用在顾客注册、顾客购书、管理员添加新书等模块。
代码如下:
#defineStrNum200
#defineType200
#include<
iostream>
iomanip>
string>
fstream>
//输入/输出文件流类
usingnamespacestd;
constintMaxb=1000;
//最多可存储的图书
classBook
private:
inttag;
//删除标记
intnum;
//图书编号
intadd;
//增加标记
charnumber[StrNum];
//编号
charname[StrNum];
//书名
charkind[Type];
//图书类型
public:
Book(){}
chargetkind()//获取图书类型
returnkind[Type];
}
chargetname()//获取书名
returnname[StrNum];
intgetnum()//获取图书编号
returnnum;
intgettag()//获取删除标记
returntag;
voidsetname(charna[])//设置书名
strcpy(name,na);
voidsetkind(charkin[])//设置类型
strcpy(kind,kin);
voiddelbook()//删除图书
tag=1;
voidaddbook(intn,char*na,char*kin)//增加图书
tag=0;
num=n;
voiddisp()//输出图书
cout.flags(ios:
left);
//设置对齐的标志位为左
setw(15)<
num<
setw(20)<
kind<
};
classBDatabase
inttop;
//图书记录指针
Bookbook[Maxb];
//图书记录
BDatabase()//构造函数,将book.txt读到book[]中
Bookb;
top=-1;
fstreamfile("
book.txt"
ios:
in);
while
(1)
file.read((char*)&
b,sizeof(b));
if(!
file)break;
top++;
book[top]=b;
file.close();
voidclear()//全删
intaddbook(intn,char*na,char*kin)//增加图书
Book*p=query(n);
if(NULL==p)
book[top].addbook(n,na,kin);
return1;
return0;
Book*query(intbookid)//查找图书
for(inti=0;
i<
=top;
i++)
if(book[i].getnum()==bookid&
&
book[i].gettag()==0)
{
return&
book[i];
returnNULL;
voidbookdata();
//图书库
voiddisp(
if(book[i].gettag()==0)
book[i].disp();
~BDatabase()//析构函数,将book[]写到book.txt文件中
out);
file.write((char*)&
book[i],sizeof(book[i]));
voidBDatabase:
bookdata()
charchoice;
charbname[40];
charbkind[40];
charnewType[20];
intbookid;
Book*b;
while(choice!
='
0'
)
cout<
\t******************************************************************\n"
\t\t\t图书管理系统\n\n"
\t\t\t1新增图书记录\n"
\t\t\t2更改图书记录\n"
\t\t\t3删除图书记录\n"
\t\t\t4查找图书记录\n"
\t\t\t5显示图书记录\n"
\t\t\t6清空全部记录(慎用)\n"
\t\t\t0退出系统\n"
\n\n"
\t****************************************************************\n"
请选择(1,2,3,4,5,6,0):
switch(choice)
case'
1'
输入图书编号:
bookid;
输入图书类型:
newType;
输入图书书名:
bname;
addbook(bookid,bname,newType);
2'
b=query(bookid);
if(b==NULL)
该图书不存在"
输入新的书名:
b->
setname(bname);
输入新的类型:
bkind;
setkind(bkind);
3'
读入图书编号:
chartg1;
确定要删除此记录吗?
(Y/N)"
tg1;
if(tg1!
n'
tg1!
N'
delbook();
已成功删除该书记录!
4'
if(b==NULL)
图书编号图书名称图书类型\n"
disp();
5'
disp();
6'
chartg2;
确定要清空所有记录吗?
tg2;
if(tg2!
tg2!
clear();
已成功清空记录!
default:
输入错误,请从新输入(数字为0~6):
voidmain()
{
BDatabaseBookDB;
while(choice!
{cout<
\t***********************************************************\n"
\n\n\t\t\t欢迎使用图书管理系统\n\n"
en
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兰州 理工大学 C+ 在线 图书 设计