数据库课程设计—图书销售管理系统的实现
- 格式:doc
- 大小:1.46 MB
- 文档页数:18
滁州学院课程设计报告课程名称:数据库原理与应用设计题目:图书销售管理系统系别:计算机科学与技术系专业:计算机科学与技术专业组别:第一组起止日期: 2011年5月21日~ 2011年6月23日****:**计算机科学与技术系二○一一年制课程设计任务书目录1.需求分析 (4)1.1业务分析 (4)1.2功能分析 (4)2.概念设计 (4)2.1功能流程图 (4)2.2 E-R图设计 (5)2.3 ER模型向关系模式转换 (5)2.4数据库建表设计语言 (5)2.4.1创建新增图书表 (5)2.4.2创建销售图书表 (6)2.4.3创建退还图书表 (6)2.4.4创建用户表 (7)3. 逻辑设计 (7)3.1数据字典 (7)3.1.1 BOOKADD表:由BOOKADD强实体集转化而来 (7)3.1.2 BOOKSALE表:由BOOKSALE强实体集转化而来 (7)3.1.3BOOKREBACK表:由BOOKREBACK强实体集转化而来 (8)4.编程与实现 (8)4.1 设计环境 (8)4.2设计实现 (8)4.2.1 登陆界面显示及主要代码 (8)4.2.2 主界面显示 (10)4.2.3新增图书界面及代码显示 (10)4.2.4 销售图书界面及代码显示 (11)4.2.5 退还图书界面及代码显示 (13)4.2.6删除图书界面及代码显示 (14)4.2.7查询图书界面及代码显示 (15)4.2.8修改密码界面及代码显示 (16)5.课程设计总结与体会 (17)6.致谢 (17)7.参考文献 (17)1.需求分析1.1业务分析息技术的飞速发展给图书企业的管理带来了全新的变革,采用图书销售管理系统对图书企业的经营运作进行全程管理,不仅可以使企业摆脱以往人工管理生产的一系列问题,而且可以提高管理效率、降低管理成本、增加经济效益。
1.2功能分析能全面管理系统的各类主体的信息,如图书信息,管理员信息,新增图书信息,图书退货信息,查询图书信息,删除图书和修改密码等。
2.概念设计2.1功能流程图图3.12.2 E-R图设计3.2—1 图书销售管理系统注:查询图书信息因直接显示的是新增图书里面的所有信息,故不列出2.3 ER模型向关系模式转换新增图书(图书编号,图书名称,图书作者,图书价格,图书数量,图书出版社)销售图书(销售单号,图书编号,图书名称,销售数量,销售金额,销售日期)退还图书(退还单号,图书编号,图书名称,退还数量,退还金额,退还日期)查询图书(图书编号,图书名称,图书价格,现有数量)2.4数据库建表设计语言2.4.1创建新增图书表create table Bookadd(bookno char(12) primary key,bname varchar(40),bAuhtor varchar(20),bprice numeric(7,2),bsum int,bpublisher varchar(80))2.4.2创建销售图书表create table Booksale(saleno char(12) primary key,bookno char(12),bname varchar(40),s_sum int,sprice numeric(7,2),sDate datetimeCONSTRAINT Booksalefk1 foreign key(bookno) REFERENCES Bookadd(bookno) on delete cascadeon update cascade)2.4.3创建退还图书表create table BookReback(rebackno char(12) primary key,saleno char(12),bookno char(12),bname varchar(40),r_sum int,rprice numeric(7,2),rDate datetimeCONSTRAINT Bookrebackfk1 foreign key(bookno) REFERENCES Bookadd(bookno) on delete cascadeon update cascade)2.4.4创建用户表crete table Booklogin(username varchar(20),password varchar(20))3.逻辑设计3.1数据字典数据字典中主要描述属性名称、数据类型和属性描述,其中的主码属性加粗体和下划线,外码属性加粗体和斜体以示区分。
3.1.1 Bookadd表:由Bookadd强实体集转化而来3.1.2 Booksale表:由Booksale强实体集转化而来3.1.3BookReback表:由BookReback强实体集转化而来属性名称数据类型属性描述rebackno char(12) 退还单号bookno char(12) 图书编号bname varchar(40) 图书名称r_sum int 退还数量rprice numeric(7,2) 退还金额sDate datetime 退还日期4.编程与实现4.1设计环境Windows XP 、Borland C++ Builder 6.0 、SQL server 20004.2设计实现4.2.1登陆界面显示及主要代码功能描述:管理员登录界面,对管理员设置权限,区分其他人主要代码:void __fastcall TForm1::Button1Click(TObject *Sender){ m_nTimes++;if(Edit1->Text.IsEmpty()){ShowMessage("请输入用户名");Edit1->SetFocus();}else{ AnsiString s="select * from Booklogin ";s+=" where username='";s+=Edit1->Text;s+="'";s+=" and password='";s+=Edit2->Text;s+="'";ADOQuery1->SQL->Clear();//清除上次使用的SQL语句ADOQuery1->Active=false;//关闭查询ADOQuery1->SQL->Add(s);//添加SQL语句,执行上面的语句ADOQuery1->ExecSQL();//执行所包含的SQL语句ADOQuery1->Active=true;if(ADOQuery1->RecordCount==0){ if(m_nTimes==3){MessageBox(NULL,"你输入是不合法用户!","登陆失败",MB_OK);ModalResult=mrAbort;Application->Terminate();}else{MessageBox(NULL,"用户名和密码不正确,请重新输入","输入错误",MB_OK);Edit1->Text="";Edit2->Text="" ;Edit1->SetFocus();//使光标移动到Edit1框中ModalResult=mrNone;}}else{Form1->Hide();Form2->Show();}}}4.2.2主界面显示4.2.3新增图书界面及代码显示功能描述:新增图书,主要包括图书的编号、名称、作者、价格数量及出版社,将这些数据插入到数据库中的Bookadd表中主要代码:void __fastcall TForm3::Button1Click(TObject *Sender){if(Edit2->Text.IsEmpty()||Edit1->Text.IsEmpty()||Edit3->Text.IsEmpty()||Edit4->Text.IsEmpty()|| Edit5->Text.IsEmpty()||Edit6->Text.IsEmpty())ShowMessage("图书信息不能为空请输入!");else{ADOCommand1->CommandType = cmdText;//设置或返回当前执行的文本命令。
ADOCommand1->CommandText="insert into Bookadd values ( '"+Edit2->Text+"' ,'"+Edit1->Text+"','"+Edit3->Text+"','"+Edit4->Text+"','"+Edit5->Text+"','"+E dit6->Text+"') ";//返回当前执行的命令文本ADOCommand1->Prepared;ADOCommand1->Execute();'//执行ADOCommand对象CommandText属性所设置的查询、SQL语句、存储文本或特定提供者的文本等内容。
ShowMessage("图书入库成功!");Edit1->Text="";Edit2->Text="";Edit3->Text="";Edit4->Text="";Edit5->Text="";Edit6->Text="";Form3->Hide();}}4.2.4销售图书界面及代码显示功能描述:实现销售图书功能,主要填写的数据有销售单号、图书编号、名称、销售数量、金额以及销售的日期,将这些数据添加到数据库中的Booksale表中,同时将Bookadd表中的图书数量做相应的减少操作。
主要代码:void __fastcall TForm4::Button3Click(TObject *Sender){if(Edit2->Text.IsEmpty()||Edit1->Text.IsEmpty()||Edit3->Text.IsEmpty()||Edit4->Text.IsEmpty()|| Edit5->Text.IsEmpty()||Edit6->Text.IsEmpty())ShowMessage("图书信息不能为空请输入!");else{AnsiString t=" select * from Bookadd where bookno= " ;t+="'";t+=Edit2->Text;t+="'";ADOQuery1->SQL->Clear();ADOQuery1->Active=false;ADOQuery1->SQL->Add(t);ADOQuery1->ExecSQL();ADOQuery1->Active=true;if(ADOQuery1->FieldByName("bsum")->AsString<=Edit4->Text){AnsiString s="update Bookadd set bsum=bsum-" ;s+="'" ;s+=Edit4->Text;s+="'";ADOCommand1->CommandType = cmdText;ADOCommand1->CommandText = s;ADOCommand1->Prepared;ADOCommand1->Execute();ADOCommand1->CommandType = cmdText;ADOCommand1->CommandText = "insert into Booksale values ( '"+Edit1->Text+"' ,'"+Edit2->Text+"','"+Edit3->Text+"','"+Edit4->Text+"','"+Edit5->Text+"','"+E dit6->Text+"') ";ADOCommand1->Prepared;ADOCommand1->Execute();ShowMessage("图书销售成功!");Edit1->Text="";Edit2->Text="";Edit3->Text="";Edit4->Text="";Edit5->Text="";Edit6->Text="";Form4->Hide();}else{ShowMessage("您输入的图书数量超量,不能销售!");}}}4.2.5退还图书界面及代码显示功能描述:实现图书退还功能,主要填写的数据有退还单号、图书编号、名称、退还数量、金额及退还日期。