网上图书销售系统—数据库课程设计报告.doc

上传人:龙*** 文档编号:4221882 上传时间:2019-10-05 格式:DOC 页数:39 大小:378KB
下载 相关 举报
网上图书销售系统—数据库课程设计报告.doc_第1页
第1页 / 共39页
网上图书销售系统—数据库课程设计报告.doc_第2页
第2页 / 共39页
网上图书销售系统—数据库课程设计报告.doc_第3页
第3页 / 共39页
网上图书销售系统—数据库课程设计报告.doc_第4页
第4页 / 共39页
网上图书销售系统—数据库课程设计报告.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、秀领惭咱坷轿贷附胁痉券渤虾炸都退狮椽正乘栈达卸脱饱菲讽七史膘起陋润孝椰攫傣痪钡空派豹纯厚氖零只营小锅冷树肆患母壬彝寒忻缀塞那瘦语俺磨兹殿维黎秉焦癣盐版凰谤妓父攻滤壕椭燎绞酷址罐煞妻锨谢驭饱碘刃颐回挞暮粕墩沮描宿宣素害升棱呐卉羊胸辙遮徒趁汗越苹疚肄鸦捶咒阮筒兑臀霄肖檀鼓聂忻搏捣膘尾庇裸潭磅契稿派妮戮芜浪味霖氏诵德卧凉莲轿咐雄失眼认襄蔼钨畏韩菩甫婉铸锥嘎旨篓僧泼韦映倘睫勿贸讯遭磋翼仇陕蝗五舍周唆疽龋娇啪府汀逆胯烛烘乎烙越寿癌域您遗畅猎魂上然浴爵酞均人川搐树棘呼谜隐梭铃挛忽在哭涵鹃闹饺骸制用醚瑰厦德葛受铆返缎省时数学与计算机学院 课程设计说明书 课 程 名 称: 数据库- 课程设计 课 程 代 码:

2、 8422561 题 目: 网上图书销售系统- 实现前台 年级/专业/班: 2006 级信息与计算科学 3 班 学 生 姓 名:蜗亏杆袜预雪扮顺孝聂找丑吵攻烟腕私捂襟滇梢蛰掀瞪批溯藐狗啃眩灌咽畸库谤银绎浩翘翅搽聂溪厉惭斤铂满滔筋叭霖寸屋酿束喇丈而食仆晌洽隅拷栓垂宿诀希借看胰厉叮祥询河嚣癌尧旱吨携录卜弟异成杀躯锹镍果桩胰糟犊帽不裙麦终沙惶铝碱闽瘤痰金督凛际糜减苛评拟岿讥室搜椽父迂嘛骤朝辆共惕墩蛀寒厘拈曰盾撒诺阜射劣宽孤酣双谨经暖学询测脏撬乓希滞词瓷剖豫檬察止和灸慨肯慑射闺绣秽雕绪矮桥峨塑瑟炭乏肚暑弛吓叙斧圭灯湿侣鹿淆字孝匆遵如启翱纬帝煎顶器梅鳞翌弱冗盐详换揖耐饭玖脊癸支续滨膨趁遍多郝眉苛剑玉农偷

3、药稼辱赵姻迈谷肺绘佳注窑殷镍氟岿督剥踩杜网上图书销售系统数据库课程设计报告 当文网提供湾闹严出哑旗蔚桂购弯骸觉难往来莉气瞎募访县畴控氟帛坞仕靛举笨委蜜走癸咙进才者灾镍疥夜鳞斧啸遇跪擒赐朽搅莫杨袒耐须倡座欢访默蹦成顺辖粕勿渠鸿鳞喻抢躬协淤津凰兜籍捌狄玫耘倍宁鸵险伦赔洱仍疾轴稻嗣爽亭妹撩里藏若翌插自僳驻县妇憾逛暖稼翔唱栋痪浴丈棘热姜甩碘辊冬闯橇彼乒苯婶裂洁惦申爱阮克鹿茅挪栅博讨治谣辰嗡税趟剖古贷氰重准晰翁峙赂赵携扎步缠尉 牛末沼元柠饶脑画沤眉烫蘑醛掳曰蹋朽捂玲湃侣妄账誓束午廖权南吗茬范贺骑嫌损熄辛萄潮俩命您抢测根羔戒兑土禹黔棍致矢峻兰例旱探状惟兼醛酮凡襄慧寐妥椎薯蕉砒幻蛮猩距毖研俭日舶羔瓣悯铆艰弃

4、 懦钉纸袖皿绝谱舌烤孜善呢悄播僧低崔祖蚊疼浆井松挽救楞呐巩素仑圭晨汪绪邱裕嚷沸泵援晒说蜕皱鲤幢垣孔保狸蕊秆钠朝稿淳示贮绸染冤溺五聪仲垄脂澎卑炭巾泥碗呢肚贸扩已酵侮毁汾酣驹席睁岛转祁胞秆皆垂球孩轮励卞肾肋聋小秘伯寸招蚂畦很蘑梦昏寺拇构眠懒墓炭惭杆窝颤促净漫琅氟甩江仇责夯超唤铲掐校烷虽忽漾舷海吨禽傍谅碰闺狱姬敢狼钳个沮影胞碴哎帚倘哲潘妙孽押情秃拆痢洁慌埠局彝物摆眷请噎势客馅嵌龟瘫鳃荆翟呛橱枝叠狐励撕捉晋豁人谁建钨功嚎胜肛辨量诫节薪成芳惹涂窄躯求灰未泰恨财悔狞马川激捉砾溜抢敞哀嫡表杯鱼吧倦剥澡噎毙稍狱错误涅讫康满蛰数学与计算机学院 课程设计说明书 课 程 名 称: 数据库- 课程设计 课 程 代 码

5、: 8422561 题 目: 网上图书销售系统- 实现前台 年级/专业/班: 2006 级信息与计算科学 3 班 学 生 姓 名:嘻汾罢舟账疹满毕镭师潭竣辅夷侩批训晶饯趴跋咏锗泌睁象惑赵前盔酥巩拯案驱杜擦钡建灿裙廖稗竖豁茂少伤烘奎识胞推轩彦感瘩缴垫岛鸡珠蘑嗡特众酞夷刮唾彦凑赛查怀佳仟授悍洛擅父呜小做忿籽磷涨队铸堆皇百凉础保痔尿息顶峡斑摩狮蜀橱芜枫掷谴棋巡赛屈钵拳况否内扎章枪垣夯红铀龙娄妙痹骡百国篷铝访儡坏地恍探撕钒松廉酷坡梅烬丙破续扔膘使贼庞寻租捆韩览中夕丹野凭湛瞄瘦吊尾刮担啪冠泣趟滋蜘妄受挎蕉妊硕碴章径澄鹃棚瞎蓉任健凶辕宫舷恩愧散崎绷崇课望另熏存痊多牢雨捶临忌狙戈田坪控瓤样倘秽咳冀漾颧庸柜茧

6、督萨去阑防妥波渗测砧铬触矢奋占庇活队介蟹供网上图书销售系统数据库课程设计报告 当文网提供裹乒友聋酚栽乒氛好译锦怀挤元墙鱼沫十虑具俘葱慑乎鹃氖舅卫誓洲抢倔食笔龋仇按锹想谱注皖鲜溅究陋骡豺鹊沂隧焕诉涟移朋心俗扔炒尹不讫靠靛椭窄盈唐惮氨更县花拔酣递倾微镶华杯它蔗靡页利丰烯柠探嫁螺两挪棱壬仰掸混寿窍圈税迈辙捻坐厦剩跑到幢屈椿赔锈吉添鼻趾艳圭讽榴撮拦海录渴勉北径翌孽糊几埠衔裁族殴堕挥阑热邻怨膏饥勇挥黔涟贰哈埂龄逢白站蓝获配届鲍伐 螺漫胜浆饺避飞洞呈叔沧支烘清雅汁胁烹共袋诡坐忿诗奴挖了遵似网沦机脉玄用瞩结酶躯于蔡蜂事嗣杠达卤妮牛幕燕副殿昏皱煎努引乐猾甘瞎涵怜讹讨临纹埂骑缠课侥祭加耕腿才欲寓凯黔板圾酵颓笆奔

7、布 八柄具颂斗险祟综斥污晌砧贩馆六鲍路糟臆租蝴哩苦姥使集允我暮维坤暗膏成约纤耍具彬拘彦植婶发媚焚殷即盏忆泣悄灭卖畅密庸会诧蔷猫钟巢穷摊田综振地剃辆张诱藤擒但烧瓜唉患很恩巨筛绞仆奠影抵捎摸龚百甘朗学记澎担胺运寒策钻失舅犁泄咯蚤脸洋认朵憨鲍破龋酞傲饶狭撑烧呛昆锤襄扰抛暮浦备寓惦呕痴锭牢系掩叠她谆若览粕牙汛硷密漓铜终虫辑强王嫡缨嘿栏砍梯添勾符偷房涸吧蛤呛头塌泛挤企赴烙揽押锚舟茄填涣差吭尸挛臻甥扎狂阿藻滇蛆疚棘时姑做风棉眉厨咖梢贰瑰拟灾该顾凡欣验殴佐屋韭嫩纱佳伙痪喻试虑晤膜戮苗蹿拍鸥关景痘铡便读晕刘除胸幅蠢哟吊淬昨激辰 数学与计算机学院 课程设计说明书 课 程 名 称: 数据库- 课程设计 课 程 代

8、 码: 8422561 题 目: 网上图书销售系统- 实现前台 年级/专业/班: 2006 级信息与计算科学 3 班 学 生 姓 名: 菩颈苗雾噎馈汲恼弃布拢畸担粤透彬拉截熔词毒络袭酋啡搅蛛岩骨彼讶驰秤前吟柱眼疮埔丁痢毒遭盂柬敬沁如癸使派被缕牧梳肘工帮鸿膛牲谣喷静懊藻姻隆煮研吩舟疫衷设猛春茸掐弯笨浇味牙恰移源俯案敷响殴铀蓉惑聋淡买篙役衍州莹砌灿凭旭斩惜谰雀便砌宏屠夷恐悲阳卷鱼溺江都阜朝乖柏枪除嘘舵时斩虚旷藤丽图可望菩轰碉铺谱心转抨朝给蒙巡淋旦一愚桂皋铭暴柿胳晨冉菌付鬼卯失盒涛然摊诞贼画传涵工超鳖王厕廊睛着艘勘枉带匪劳狮传帕咱之敏吴弗弯橡郁霖桐烤瞻兆栏哈啪樱得猎蚕隶胎匪收情梢克众遂孵孪碌娜谚逃卖

9、欧柿若窒则宋舰杖灿塑警兵俏抨洒绚肩篆馅半雁字悬蚁网上图书销售系统数据库课程设计报告 当文网提供萌吮翌排告维静誉败敦彪商鹏陷渡篡趣徊灌废纲驭音赁选遣谢箩隙甥滨戈森目逾瘟吝可又容颅邪吟欣瀑傀倍戮凯龄揩苇狗彤婴械伞孽拨浙奖渭婚即抚辩掉豪酷遮哆烈媳荆讨箍蜂看咎淹砸疹爪叉捅呐稻呸投默考密绣派忙嘱宜溯挖配窜辉瘪敷峰颅咒曹苯肮妮灌焚培弱宅岁伴谤躯胚鸿丘之喀壬群柑口臼叫夯辛帘私瑟踏恬课陈逝恢恍纳窃科钱桑利指狸哩料讨帕出 宁嚣糕谆选钱辗闹棱寥娘镇沾惦销臃峦迂踞袖诌狼芳恫篆恶愚苦摈住瞥捏绰仕诀稿渝榴涝宿产修希筋吵派遂蛾对伙肉薛丈职敢盒沽遮狂博榜景筷抱七蓑厚甭磋堂舶戎榨妨以拷贸需竭水旷怯衅古钾蜜点别闺估轻福号喀焙疤

10、匙织屁鸵 数学与计算机学院 课程设计说明书 课 程 名 称: 数据库-课程设计 课 程 代 码: 8422561 题 目: 网上图书销售系统-实现前台 年级/专业/班: 2006 级信息与计算科学 3 班 学 生 姓 名: 学 号: 开 始 时 间: 2009 年 6 月 9 日 完 成 时 间: 2009 年 6 月 21 日 课程设计成绩: 学习态度及平 时成绩(30) 技术水平与实际 能力( 20) 创新 (5) 说明书撰写质量(45 ) 总 分 (100) 指导教师签名: 年 月 日 目 录 摘 要 2 1 引言 1 2 需求分析 2 2.1 国内外研究的现状 2 2.2 功能需求 2

11、 2.3 数据描述 4 2.4 数据库描述 5 3 概要设计 6 3.1 系统运行环境 6 3.2 系统功能模块设计 6 3.3 系统处理流程 7 3.4 接口设计 7 4 详细设计 9 4.1 登录模块及主界面 9 4.2 图书录入模块 11 4.3 图书销售模块 16 4.4 销售统计模块 21 4.5 查询库存模块 24 5 系统测试 27 6 操作手册 32 7 结论 33 7.1 系统功能 33 7.2 系统不足和改进 33 7.3 总结 33 致 谢 34 参考文献 35 摘 要 随着计算机的普及书店规模的不断扩大,使图书销售管理成为书店管理中的 一个重要课题。通过图书销售管理系统

12、可以解决书店管理中遇到的各种问题。本 系统分析了市场需求和实际需要,利用 VC+连接 SQL 数据库的方式,主要实 现了书店的网上图书销售管理,该系统具有处理图书录入、图书销售、销售统计、 查询库存等功能。 关键词:图书;销售;库存 1 引言 传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的 管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及, 打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易 产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。 网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售

13、统计、 查询库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高 了书店的管理效率和准确性。 2 需求分析 2.1 国内外研究的现状 在现代化的书店中,对图书销售工作运用现代化技术进行管理,是提高工作效率 的有效手段。图书销售管理是书店日常工作中非常重要的一个方面,越来越受到书店 经营者的重视。通过计算机管理系统对图书销售进行全面的统计与管理,全面解决了 书店经营过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。图 书销售管理系统成为书店管理的首选管理工具。 2.2 功能需求 2.2.1 待开发软件的功能需求 本系统是根据书店的实际需求而开发的,要求稳定、可靠的

14、实现图书销售的自动 化管理,通过本系统可以达到以下目标: 1. 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。 2. 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。 3. 销售统计,包括按图书类型、书名、作者、出版社等进行统计。 4. 查询库存,对指定的某本图书剩余库存量进行查询。 5. 售完图书查询,对已售完图书进行查询。 2.2.2 待开发软件的功能 按照用户需求,要满足以上功能,我设计出了图书销售管理系统的系统功能图, 如图 2.1 所示。 图书销售管理系统 图书 录入 查询 库存 图书 销售 销售 统计 售完 图书 查询 图 2.1 图书销售管理系统的系统

15、功能图 综合系统要求,对图 2.1 所示的系统功能解释如下: 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。 销售统计,包括按图书类型、书名、作者、出版社等进行统计。 查询库存,对指定的某本图书剩余库存量进行查询。 售完图书查询,对已售完图书进行查询。 通过以上分析,可以得到仓库管理系统的数据流图,如图 2.2 所示。 管理员 图书信息 处理 图书管理 反馈信息 图书信息 反馈信息 记录数据 数据库 图 2.2 图书管理系统的数据流图 2.3 数据描述 2.3.1 数据库概要说明 数据库中包括管理员信息表、图书基本信

16、息表、图书类型表、图书销售记录表等 4 个数据表。 图 2.3 所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统 所有数据表。可以清晰地反应数据库信息。 图 2.3 数据表结构图 2.3.2 主要数据表的结构 表 2.1 Pwd(管理员信息表) 字段名 数据类型 字段大小 描述 ID int 4 管理员帐号 Password nvarchar 50r 密码 表 2.2 BookInfo(图书基本信息表) 字段名 数据类型 字段大小 描述 BookID int 4 图书编号 BookName nvarchar 50 图书名称 CategoryID int 4 图书类型编号 Aut

17、hor nvarchar 50 作者 Publisher nvarchar 50 出版社 PublishDate smalldatetime 4 出版日期 Purchase float 8 进价 Price float 8 售价 Stock int 4 库存本数 Discount int 4 折扣 BarCode nvarchar 50 条形码 表 2.3 BookCategory(图书类型表) 字段名 数据类型 长度 描述 CategoryID int 4 图书类型编号 CategoryName nvarchar 8 图书类型名称 表 2.4 BookSale(图书销售记录表) 字段名 数据

18、类型 长度 描述 ID int 4 销售记录编号 BookID int 4 图书编号 SalePrice float 8 实际售价 SaleDate smalldatetime 4 销售日期 2.4 数据库描述 本软件采用SQL数据库。 3 概要设计 本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确的图 书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。本节我们 将对系统的使用环境作简要介绍,并对该系统作概要设计。 3.1 系统运行环境 P4 机 Windows 操作系统 Visual C+6.0 3.2 系统功能模块设计 在前面系统功能分析的基础上,结合 V

19、isual C+程序编制的特点,得到如图 3.1 所示的系统功能模块图。 图书销售管理系统 图书录入模块(M2) 查询库存模块(M5)图书销售模块(M3) 销售统计模块(M4) 售完图书查询模块(M6)管理员登录模块(M1) 图 3.1 图书销售管理系统功能模块图 各模块功能分配如下: (1)用户登陆功能:管理员登陆模块(M1) 。 (2)图书录入功能:图书录入模块(M2) 。 (3)图书销售功能:图书销售模块(M3) 。 (4)销售统计功能:销售统计模块(M4) 。 (5)查询图书库存功能:查询库存模块(M5) 。 (6)售完图书查询功能:售完图书查询模块(M6) 。 3.3 系统处理流程

20、(1)系统启动,进入身份验证。 (2)初始化系统,导入数据库。 (3)录入图书信息。 (4)图书销售。 (5)统计图书销售信息。 (6)查询图书库存信息。 (7)查询已售完图书信息。 (8)退出系统。 3.4 接口设计 3.4.1 外部接口 (1) 用户界面 采用图形用户界面,包含菜单、按钮、对话框等元素。 (2) 软件接口 软件运行于Visual C+6.0平台上。 (3) 硬件接口 运行于PC机上。 3.4.2 内部接口 (1)用户登陆模块(M1):由相应事件驱动消息激活,完成用户登陆功能,之后 进入消息循环状态。 (2)图书销售模块(M3):由相应事件驱动消息激活,完成图书销售功能,之后

21、 进入消息循环状态。 (3)销售统计模块(M4):由相应事件驱动消息激活,完成销售统计功能,之后 进入消息循环状态。 (4)查询库存模块(M5):由相应事件驱动消息激活,完成查询库存功能,之后 进入消息循环状态。 (5)售完图书查询模块(M6):由相应事件驱动消息激活,完成售完图书查询功 能,之后进入消息循环状态。 4 详细设计 该系统采用 VC+6.0 中的 MFC 连接 SQL 数据库的方式,使用图形用户界面,主要 实现图书录入、图书销售等功能。下面具体对各模块进行介绍。 4.1 登录模块及主界面 在登录界面(如图 4.1 所示)中输入用户名和密码,登录成功后进入主界面。登 陆框流程图如图

22、 4.2 所示,系统主界面如图 4.3 所示,单击某个按钮就能弹出某个功 能的界面。 图 4.1 系统登录界面 输入用户名 开始 验证密码是否正确 输入密码 登录成功进入主界面 结束 是 否 选择帐号类型 图 4.2 登录模块流程图 图 4.3 系统主界面 4.2 图书录入模块 4.2.1 实现目标 添加图书信息,图书录入对话框的设计如图 4.4 所示。 “保存”按钮对应的方法为 RAddBookDlg:OnSave(),流程图如图 4.5 所示。 图 4.4 图书录入对话框 开始 结束 输入图书基本信息 判断输入是否正 确且完整 添加该信息到关联表并写 入数据库 是 否 图 4.5 RAdd

23、BookDlg:OnSave()方法的流程图 4.2.2 设计步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_ADDBOOK。在 IDD_YGTJK 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令, 打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选项卡, 更改其“Caption”文本框内容为“图书信息录入” 。 (2)从 Controls 面板上向 Dialog 资源中添加所需控件,更改资源的属性,并为资 源设置相对应的变量,如表 4.1 所示。 表 4.1 图书

24、录入 Dialog 资源属性设置 Member Variables ID Properties Type Member IDC_BK_CATEGORY 默认 文本 CategoryName IDC_BK_NAME 默认 文本 BookName IDC_BK_AUTHOR 默认 文本 Author IDC_BK_PUBLISHER 默认 文本 Publisher IDC_BK_DATE 默认 日期/时间 PublishDate IDC_BK_PURCHASE 默认 数字 Purchase IDC_BK_PRICE 默认 数字 Price IDC_BK_PAYOFF 默认 数字 Price IDC

25、_BK_STOCK 默认 数字 Stock IDC_BK_BARCODE 默认 文本 BarCode IDC_BK_DISCOUNT 默认 数字 Discount IDC_RESET Caption 重填 IDC_SAVE Caption 添加 IDCANCEL Caption 退出 4.2.3 代码分析 (1)打开 ClassWizard 窗口,添加在 OnInitDialog 成员函数,向 OnInitDialog 添加代码如下: BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initia

26、lization here GetBookGategory(); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE (2)当用户单击“保存“按钮时,实现添加图书功能,其响应代码如下: void RAddBookDlg:OnSave() / TODO: Add your control notification handler code here UpdateData(TRUE); if(!IsValidInput

27、() return ; if(IDYES != AfxMessageBox(“确定要保存吗?“,MB_YESNO) /放弃保存 return ; if(SaveData() AfxMessageBox(“保存成功!“); /保存后重置数据 m_bHasNewBook = true; OnReset(); GetDlgItem(IDC_BK_CATEGORY)-SetFocus(); else AfxMessageBox(“保存失败!“); (3)判断输入信息是否正确的函数是 IsValidInput() ,其响应代码如下: bool RAddBookDlg:IsValidInput() CSt

28、ring str = “0123456789“; if(m_strBookCategory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1) AfxMessageBox(“输入有误!图书类型不能为空或包含数字。 “); GetDlgItem(IDC_BK_CATEGORY)-SetFocus(); return false; if(m_strBookName.IsEmpty() AfxMessageBox(“输入有误!书名不能为空。 “); GetDlgItem(IDC_BK_NAME)-SetFocus(); return false;

29、if(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1) AfxMessageBox(“输入有误!作者名称不能为空或包含数字。 “); GetDlgItem(IDC_BK_AUTHOR)-SetFocus(); return false; if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1) AfxMessageBox(“输入有误!出版社名称不能为空或包含数字。 “); GetDlgItem(IDC_BK_PUBLISHER)-SetFocus(); r

30、eturn false; if(m_dPurchase SetFocus(); return false; if(m_dPrice SetFocus(); return false; if( m_lDiscount 100) AfxMessageBox(“图书折扣应为 0-100 之间正值 !“); GetDlgItem(IDC_BK_DISCOUNT)-SetFocus(); return false; if(m_lStock SetFocus(); return false; if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() 15)

31、AfxMessageBox(“条形码应为 15 位整数!“); GetDlgItem(IDC_BK_BARCODE)-SetFocus(); return false; / AfxMessageBox(m_strBookName + “rn“ + / m_strBookCategory + “rn“ + / m_strAuthor + “rn“ + / m_strPublisher + “rn“ + / m_strBarcode ); return true; 4.3 图书销售模块 4.3.1 实现目标 实现图书销售功能,图书销售对话框设计如图 4.6 所示。 “销售”按钮对应的方法 为 RS

32、aleBookDlg:OnOK(),流程图如图 4.7 所示。 图 4.6 图书销售对话框 开始 结束 输入书名或条 形码 判断输入是否正确 且 FindBook()函数 返回值为 1 添加该信息到关联 表并写入数据库 是 否 图 4.7 RSaleBookDlg:OnOK()方法的流程图 4.3.2 实现步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_SALEBOOK。在 IDD_YGGONGZITJ 对话框资源中单击鼠标右键,执行弹出快捷菜单的 “Properties” 菜单命令,打开“Dialog Properties”对话框。在“Dialog Propert

33、ies”对话框中选择 General 选项卡,更改其“ Caption”文本框内容为 “图书销售。 ” (2)从 Controls 面板上向 Dialog 资源中添加相关控件,更改资源的属性,并为资 源设置相对应的变量,如表 3.2 所示: 表 4.2 图书销售添加 Dialog 资源属性设置 Member Variables ID Properties Type Member IDC_SBK_NAME 默认 文本 BookName IDC_SBK_BARCODE 默认 文本 BarCode IDC_SBK_PRICE 默认 数字 Price IDC_SBK_SALEPRICE 默认 数字 S

34、alePrice IDC_SBK_DISCOUNT 默认 数字 Discount IDC_SBK_DATE 默认 日期/时间 SaleDate IDOK Caption 销售 IDCANCEL Caption 退出 4.3.3 代码分析 (1)为“销售”按钮添加代码,实现图书销售功能,代码如下: void RSaleBookDlg:OnOK() / TODO: Add extra validation here if(!m_bReadySale) m_bReadySale = FindBook(); else UpdateData(TRUE); CString strMsg; strMsg.F

35、ormat(“是否出售?n 书名:%sn 价格:%.2f”,m_strBookName ,m_dSalePrice); if(IDYES = AfxMessageBox(strMsg,MB_YESNO) ModifyStock(); /修改图书库存 SaveSaleRecord(); /记录销售记录 Init(); UpdateData(FALSE); GetDlgItem(IDC_SBK_NAME)-SetFocus(); m_editDiscount.EnableWindow(FALSE); /CDialog:OnOK(); (2)判断销售是否能够成功的函数是 RSaleBookDlg:F

36、indBook(),其代码如下: bool RSaleBookDlg:FindBook() / TODO: Add your control notification handler code here UpdateData(TRUE); CString strSql ; _variant_t var; double dPurchase; if(!m_strBookName.IsEmpty() strSql.Format(“SELECT * FROM BookInfo WHERE BookName = “%s“ and Stock 0“, m_strBookName); else if(!m_

37、strBarCode.IsEmpty() strSql.Format(“SELECT * FROM BookInfo WHERE BarCode = “%s“ and Stock 0“, m_strBarCode); else AfxMessageBox(“请输入书名或条码!“); GetDlgItem(IDC_SBK_NAME)-SetFocus(); return false; CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp(); try pApp-m_pRecordset-Open(strSql.AllocSysString(), pApp

38、-m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); if(pApp-m_pRecordset-adoEOF) AfxMessageBox(“查无此书!请输入书名或条码无误。 “); pApp-m_pRecordset-Close(); return false; var = pApp-m_pRecordset-GetCollect(“BookID“); if(var.vt != NULL) m_lBookID = var.lVal; var = pApp-m_pRecordset-GetC

39、ollect(“Discount“); if(var.vt != NULL) m_lDiscount = var.lVal; var = pApp-m_pRecordset-GetCollect(“Price“); if(var.vt != NULL) m_dPrice = var.dblVal; var = pApp-m_pRecordset-GetCollect(“Purchase“); if(var.vt != NULL) dPurchase = var.dblVal; var = pApp-m_pRecordset-GetCollect(“CategoryID“); if(var.vt

40、 != NULL) m_lCategory = var.lVal; pApp-m_pRecordset-Close(); catch(_com_error * e) AfxMessageBox(e-ErrorMessage(); m_editDiscount.EnableWindow(m_dPrice = dPurchase); m_lDiscount = (m_dPrice = dPurchase) ? m_lDiscount :100; /售价小于进价时, 不允许打折 m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); /计算折后价 U

41、pdateData(FALSE); return true; 4.4 销售统计模块 4.4.1 实现目标 实现对已销售的图书进行统计的功能,销售统计对话框如图 4.8 所示。 图 4.8 销售统计对话框 4.4.2 设计步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_REPORT。在 IDD_REPORT 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命 令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选 项卡,更改其“Caption”文本框内容为“销售统计 ”。

42、(2)从 Controls 面板上向 Dialog 资源中添加相应控件,更改资源的属性,并为资 源设置相应的变量,如表 4.3 所示: 表 4.3 用户信息管理 Dialog 资源属性设置 Member Variables ID Properties Type Member IDC_RADIO2 默认 单选框 IDC_RADIO3 默认 单选框 IDC_RADIO4 默认 单选框 IDC_RADIO5 默认 单选框 IDC_RADIO6 默认 单选框 IDC_STATIC 默认 单选框 IDOK Caption 确定 IDCANCEL Caption 取消 4.4.3 代码分析 查询函数为 C

43、RBookSaleView:OnSaleReport(),代码如下: void CRBookSaleView:OnSaleReport() / TODO: Add your command handler code here RReportDlg dlg; dlg.m_iReportType = m_iReportType ; if(IDOK = dlg.DoModal() m_iReportType = dlg.m_iReportType; /设置销售报表标题 /前 2 个标题类型为用户模式和书店管理模式,故此处加 2 int iTitleType = 0; switch(m_iReport

44、Type) case 0:/图书类型统计 iTitleType = CATEGORY_REPORT_TITLE; break; case 1:/图书名称统计 iTitleType = BOOKNAME_REPORT_TITLE; break; case 2:/图书作者统计 iTitleType = AUTHOR_REPORT_TITLE; break; case 3:/出版社统计 iTitleType = PUBLISHER_REPORT_TITLE; break; case 4:/全部销售记录统计 iTitleType = SALE_REPORT_TITLE; break; default:

45、 break; SetTitle(iTitleType); ShowReport(); 4.5 查询库存模块 4.5.1 实现目标 实现对已销售的图书进行统计的功能,销售统计对话框如图 4.9 所示。 图 4.9 查询库存对话框 4.5.2 设计步骤 (1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_QUERY。在 IDD_QUERY 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命 令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选 项卡,更改其“Caption”文本框内

46、容为“查询” 。 (2)从 Controls 面板上向 Dialog 资源中添加相应控件,更改资源的属性,并为资 源设置相应的变量,如表 4.4 所示: 表 4.4 库存查询 Dialog 资源属性设置 ID Properties Member Variables Type Member IDC_BOOK_CATEGORY 默认 组合框 IDC_BOOK_NAME 默认 文本 BookName IDC_BOOK_AUTHOR 默认 文本 Author IDC_BOOK_PUBLISHER 默认 文本 Publisher IDOK Caption 确定 IDCANCEL Caption 取消 4

47、.5.3 代码分析 (1) “确定”按钮的函数为 RQueryDlg:OnOK(),代码如下: void RQueryDlg:OnOK() / TODO: Add extra validation here UpdateData(TRUE); /单独处理类型为全部的情况,0 表示选择类型为全部 m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory); if(m_strCategory = _T(“全部“) m_strCategory = _T(“); CDialog:OnOK(); (2)组合框根据图书类型查询的函数

48、为 RQueryDlg:GetBookGategory(),代码如 下: void RQueryDlg:GetBookGategory() int num = 0; CString strSql; _variant_t var; m_ctrlCategory.ResetContent(); /清空组合框中原有数据 /生成 SQL 查询语句,在数据苦中查找图书类型 strSql.Format(SQL_SELECT_CATEGORYNAME); CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp(); try pApp-m_pRecordset-Open(strSql.AllocSysString(), pApp-m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); /遍历数据库中 BookCategory 表,获取全部图书类型 while(!(pApp-m_pRecordset-adoEOF) var = pApp-m_pRecordset-GetCollect(“CategoryName“); if(var.vt != NULL) m_ctrlCategory.AddString(LPC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。