可视化程序设计实验

上传人:huo****ian 文档编号:134625683 上传时间:2022-08-13 格式:DOC 页数:21 大小:333.01KB
收藏 版权申诉 举报 下载
可视化程序设计实验_第1页
第1页 / 共21页
可视化程序设计实验_第2页
第2页 / 共21页
可视化程序设计实验_第3页
第3页 / 共21页
资源描述:

《可视化程序设计实验》由会员分享,可在线阅读,更多相关《可视化程序设计实验(21页珍藏版)》请在装配图网上搜索。

1、二一二一一学年第 一 学期信息科学与工程学院可视化编程课程设计班 级: 电信(DB)0801 学 号: 200812135033 姓 名: 徐瑾一 指导教师: 陈 彬 u 实验题目:设计图书管理系统u 实验目的:1)考察对C+builder的基本操作; 2)考察对数据库的建立及运用; 3)考察对基本程序的设计u 实验要求: 设计的图书管理系统需要具有以下要求:图书录入功能。能对图书进行录入功能,将书名,作者,出版社,图书总数量和剩余数量等基本信息录入数据库。需注意的是,可能不止一本图书有相同的书名。图书浏览功能。能对数据库内的所有图书信息进行浏览。图书借阅功能。能对数据库内的图书进行借阅。图书

2、归还功能。能对图书进行归还。用户登录功能。u 实验原理: 设计图书管理系统,需具备至少五个模块。即为图书录入模块,图书浏览模块,图书借阅和归还模块,用户登录模块。对应每个模块,我们需要建立相应的界面。 1、用户登录界面。用户登陆界面是在所有界面之前显现出来的。用 户登录模块需要对用户单独建立一个表,使其能够管理用户。对于不正确的用户登录码和用户密码能进行提示。用户登录成功后能进入图书管理系统的主页面。图书借阅和归还模块。对于图书的借阅和归还模块可以设置在一个页面内,方便操作。对于实现图书的借阅和归还的功能实现,主要是对数据库内的图书相对的剩余书的数量进行操作。图书录入界面。对于图书的录入界面,

3、需要显示图书的各种信息,以方便管理员进行图书的录入。对于相同的书名问题,本人设计数据库表格时,重新设定了一个图书的编号,将其与图书的书名一起作为关键字,即可解决该问题。图书的录入界面要包含图书的书名,作者,出版社,图书的总数量和剩余数量。对于用户的登录码和密码,本人添加了一个用户管理模块,能根据用户输入的登录码和密码,进行普通用户和管理员用户的管理功能。以方便操作者。图书浏览模块。在图书浏览模块,需显示图书的基本信息外,可以对图书顺序浏览。u 实验过程:1、 先建立所需要的数据库表格。图书管理系统需要两个表格,分别是图书基本信息表和用户管理表格。1) 用户管理表格建立:用户管理表需要有用户的登

4、录码和密码,以及用户级别和用户姓名。用户的表格命名为USERM,创建如下:2) 图书基本信息表的建立:图书基本信息表需要有图书的编号,书名,作者,出版社,总数量和现有数量。图书表格创建如下:图书基本信息表保存为TSXX.db,将两个表存放在一个子目录中,设置一个别名为LAB的数据库。2、 创建用户登录界面。用户登录界面如下:用户登录界面ULogin.cpp内容如下:/-#include #pragma hdrstop#include ULogin.h#include UMain.h/-#pragma package(smart_init)#pragma resource *.dfmTFLogi

5、n *FLogin; _fastcall TFLogin:TFLogin(TComponent* Owner) : TForm(Owner)/-void _fastcall TFLogin:Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) if(Key=13&Edit1-Text!=) Edit2-Text=; Edit2-SetFocus(); if(Key=27) if(Edit1-Text=) Application-Terminate(); else Edit1-Text=; /-void _fastcall TFLog

6、in:Edit2KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) if(Key=13&Edit2-Text!=) if(CheckUser(Edit1-Text.Trim(),Edit2-Text.Trim() this-Hide(); FMain-ShowModal(); else MessageDlg(请输入正确的用户名和密码!,mtWarning,TMsgDlgButtons()Text=; Edit1-SetFocus(); if(Key=27) if(Edit2-Text=) Application-Terminate(); e

7、lse Edit2-Text=; /-void _fastcall TFLogin:FormShow(TObject *Sender) Edit1-SetFocus();Edit1-Text=;Edit2-Text=;/- bool _fastcall TFLogin:CheckUser(AnsiString UserID,AnsiString UserPsw) Query1-Close(); Query1-SQL-Clear(); Query1-SQL-Add(SELECT *FROM USERM WHERE UserID=+UserID+); try Query1-Open(); catc

8、h(.) ShowMessage( 请输入正确的用户名和密码!+Query1-SQL-Text); Edit1-Text=; Edit1-SetFocus(); if(Query1-RecordCount!=0) while(!Query1-Eof) if(Trim(AnsiString)Query1-FieldByName(UserPwd)-Value)=UserPsw) Query1-Close(); return true; Query1-Next(); return false; Query1-Close(); return false; 2、 创建主界面。主界面创建如下:主界面的程序

9、代码文件UMain.cpp内容如下:/-#include #pragma hdrstop#include UMain.h#include UDataInput.h#include UDataReport.h#include UPassWord.h#include UBookLoad.h/-#pragma package(smart_init)#pragma resource *.dfmTFMain *FMain;/-_fastcall TFMain:TFMain(TComponent* Owner) : TForm(Owner)/-void _fastcall TFMain:Button6Cl

10、ick(TObject *Sender) if(MessageDlg(确定要结束程序运行吗?,mtWarning,TMsgDlgButtons()mbYesTerminate(); /-void _fastcall TFMain:Button1Click(TObject *Sender) FDataInput-Show();/-void _fastcall TFMain:Button4Click(TObject *Sender) FDataReport-Show();/-void _fastcall TFMain:Button5Click(TObject *Sender) FPassWord-

11、Show();/-void _fastcall TFMain:Button3Click(TObject *Sender) FBookLoad-Show(); /-3、 数据模块设计通过选择File|New|Data Module进入创建数据模块界面,并在其中放入一个Table和一个DataSource,如下图所示:DataSource1的DataSet为Table1,Table1的TableName为TSXX.db,DataBaseName为LAB,Active为true。4、 图书录入界面设计图书基本信息录入页面如下图所示:图书录入页面UDataInput.cpp程序如下:/-#includ

12、e #pragma hdrstop#include UDataInput.h#include UDataModule.h/-#pragma package(smart_init)#pragma resource *.dfmTFDataInput *FDataInput;/-_fastcall TFDataInput:TFDataInput(TComponent* Owner) : TForm(Owner)/-5、 图书借阅界面设计本人将图书借阅,归还和查询模块做在同一个页面。在点击查询依据的radiobox1发生变换时其后的Edit1的编辑框会清空,没有输入点击查询时会弹出提示框在输入的书号不

13、存在时,会弹出对话框顺序浏览的groupbox内添加DBNavigator1,设计VisibleButtons,使其如图所示,datasource改为DataModule1-DataSource1.图书借阅页面如下所示:图书借阅模块的程序代码文件UBookLoad.cpp具体内容如下:/-#include #pragma hdrstop#include UBookLoad.h#include UDataModule.h/-#pragma package(smart_init)#pragma resource *.dfmTFBookLoad *FBookLoad;/-_fastcall TFBo

14、okLoad:TFBookLoad(TComponent* Owner) : TForm(Owner)/-void _fastcall TFBookLoad:Button1Click(TObject *Sender) bool LocateSuccess; TLocateOptions SearchOption; SearchOptionItemIndex) case 0:if(Edit1-Text=) ShowMessage(请输入要查询的编号!); return; LocateSuccess=DataModule1-Table1-Locate(BH,Edit1-Text,SearchOpt

15、ion); if(!LocateSuccess) ShowMessage(经查没有编号为+Edit1-Text+的图书记录); break; case 1:if(Edit1-Text=) ShowMessage(请输入要查询的编号!); return; LocateSuccess=DataModule1-Table1-Locate(SM,Edit1-Text,SearchOption); if(!LocateSuccess) ShowMessage(经查没有书名为+Edit1-Text+的图书记录); break; /-void _fastcall TFBookLoad:RadioGroup1

16、Click(TObject *Sender) switch(RadioGroup1-ItemIndex) case 0:Edit1-Clear(); Edit1-MaxLength=10; break; case 1:Edit1-Clear(); Edit1-MaxLength=12; break; /-void _fastcall TFBookLoad:Button2Click(TObject *Sender) if(DataModule1-Table1-FieldByName(HYSL)-AsInteger0) DataModule1-Table1-Edit(); DataModule1-

17、Table1-FieldByName(HYSL)-AsInteger=DataModule1-Table1-FieldByName(HYSL)-AsInteger-1; else ShowMessage(该类书已被借完!); /-void _fastcall TFBookLoad:Button3Click(TObject *Sender) if(DataModule1-Table1-FieldByName(HYSL)-AsIntegerTable1-FieldByName(ZSL)-AsInteger) DataModule1-Table1-Edit(); DataModule1-Table1

18、-FieldByName(HYSL)-AsInteger=DataModule1-Table1-FieldByName(HYSL)-AsInteger+1; else ShowMessage(该类书已全部归还!); /-6、 图书浏览界面设计可用DBNavigator实现浏览。图书浏览界面如下图:7、 用户管理界面设计用户管理界面如下图:用户管理界面分为两个部分,按用户级别进入。用户级别为2级的用户进入可以修改所有用户的账号密码等信息。用户级别为1级的用户进入能修改密码。u 实验小结:本次实验主要考察的是我们的数据库技术的运用,例如对表的添加、浏览和查找等运用。通过这次试验,我对数据库的运用更

19、加熟悉,对查询模块,添加模块,SQL语言的运用更加熟练。这次实验中我遇到的有如下问题:1)在建立数据查找时,SQL语言怎么设立。对于SQL语言,我一直不是很熟练。通过查询教材,这次实验中的图书查找语言写作Select *From THXX。2)如何实现图书借阅功能。对于图书借阅功能,我一直有些疑问。经过思考,对于题目的图书借阅,我认为是对该类图书的现有数量进行加减法。如何进行图书现有数量的加减法,我认为是将数据库中的数据取出来进行取整之后再进行。对于数据库的数据,我发现不能直接取出。需要在数据库保持在可编写的状态才能进行取整,实现语言为:DataModule1-Table1-Edit();再将数据库的现有数量进行取整进行加减法: DataModule1-Table1-FieldByName(HYSL)-AsInteger=DataModule1-Table1-FieldByName(HYSL)-AsInteger1;即可实现借阅和归还图书的功能。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!