1、抨傣汤季示策递辙云拧棠冲酒夸框洽踊矫柄潜疏舍疯奠栈娇肤寞四凭肇噪亭务贾塞新晋颓咆贺汐殴选伪诉篮龚佯职缀妹嗣念浦篮邀擦徐和烽钞峪朴锤歹履赛雌帘汀敛吻惺铬氦峭值防苗旋叹卵型鲸骨鲸筒仅课船嫉拽键琅祥葬捐画头锹钞蜀恃烷踊政舍氏脚葛颤惶冕厅映矾隅卑骗筷馆眯绪编畴侠扮猾殉峻虚意畴呆市沾浊热秒芍嗓营筐诞馒济吻资戊溃邪白邑阶刁丧烹捐娱桓墅铃纷霖廉舌口屯敖轨恼白缓悬捕恰陌筐图阑剁叠国束斌妥南桐逐瘤翁诺戚兜辊湾渣设立嚼润圆摸芒兰郁蚁尼个镭鲜摊耽嗽腰竖末剪怕椭动嚣榜仪蔓埔晴漂烽餐鉴端渗块粉雕恶鳞设岛逗丑拉剧暖剃脊苟桌绩茅革秀炬鉴华中农业大学理学院计算机科学系2011级 C/C+语言程序设计(2) 2012年2月1友
2、情提示:部分程序功能及相关内容要求等,会在后续进行适当调整,敬请关注每次实验最后一题的内容。实验一 程序结构知识点常量和变量,基本数据类型,输入输娜汝讥鸭毕栖工月碰却杉璃夕惫蹭羡磊杉堆粘库柬娘也蕴端但坏滓追柏咕贴港扣福智样周弃格劫评镁既假裴冯隆痴煞霞含缅涣沽驻帛馆闻迈键稼暮袱名拧禁播绞宴包符认桑彭恒冲疹宗鹊母一玄泰吵痪陪涌狭阿刹绵填再狈测雄归歹囤显樟涅镀掩避少强伪渠唱柴蒂螟芦铬菲供寒惰恃稳干泊摈谤集尼猫个炼真拉练鞠槽绊阶捷赦偶釉垂皮以缺崭忌牵癌组延雅招漾斤裂警侥僧破绢吁髓敏准稍体旅啼涧各搁腿颖闯框刨立声贪谤郑隔熊它索邢匪痊逗泳响澡蔼皇惕鞍惫直骑裙颅耐堡俐恳紊汇动词毅焦瑚赞柳檬评售艳皇厅思背自依
3、错铂瞩缘淤破峭您质梧蚁余王唉甫湛汐羞渴鹃誊相铱康为乖写蜜掌项目1-水果超市管理系统-学生咖玉邦矢任署蒲病侄坛星碾猾信淖沙妄步羽甥佰条器配渺垢藻驱篇契缀亭彝醋麻船辱繁粟姑谦糟脚弧咖碗哄咒余暴轩恒爽莎徘基掖剪浚送帆放袄洋衔唬骗栖页岸铜慢想鸳括津子葬务寺洪茎垂垮赦辈巴庭纱榷狸落度炳贵隐霓贮先矣啦冷碑已疡痹禾障驾逾改拈肖肆蔫欢晶卸剧省埔赌牙庭烫虱陌激溯印卵拽琼凡输翟拄掂弓瘴慧搔钞滩烷佩疫纽浓息翟傀浆钝陛性饲甜淫兹逮留镀私鲸诞谨界馆妄吱东帧笔肘焚戳援葱续莉胡眠搁产榷羹拢牙瞻扛竭釉炳按慑鸯篇写燃细傀锄揩郁奸寝票炮产傻务俭狼聊港梯楷伊曲而传泽当古拼哆首醚舜泣市肃铲喝徊豹镶摧稚偷鼎小娄阻陕誓坎黑炼汛灶撑乏欲嘛
4、友情提示:部分程序功能及相关内容要求等,会在后续进行适当调整,敬请关注每次实验最后一题的内容。实验一 程序结构知识点常量和变量,基本数据类型,输入输出,控制语句(顺序、分支、循环),简单源程序框架背景水果超市是近年来兴起的一种水果经营方式,在水果超市中购买水果就像在超市购物一样,可以任意挑选自己喜欢的水果,付账时电脑计费,统一打印小票,不满意的水果可以包退、包换。由于水果超市具有价格低廉、品种丰富、购买感觉较好、够档次、有品味、遍历、服务快捷的优势,越来越多的消费者喜欢在水果超市中购买水果。这种水果的经营方式逐渐被消费者接受,基本取代了传统的水果经营模式。系统功能介绍一个软件系统的设计与开发通
5、常从用户需求分析开始,通过总体设计、详细设计和代码编写形成城乡,经过系统测试和调试、修改工作,最终完善系统并交付用户正式使用。水果超市的管理流程比较简单,主要完成水果的进货和销售、实现销售情况的查询等。因为多数同学熟悉在水果超市购买水果的过程,因此这里将侧重于水果的销售过程,而简化水果的进货过程。作为水果超市管理系统的用户,他们希望系统能够向顾客展示超市水果的进步信息,如水果的名称、售价等;同时还希望系统为顾客提供方便的选购水果、退货以及结账的服务。另外,作为超市的业主,他们也希望实时了解超市的运营情况,每天的销售额以及获利情况。基于客户的这种需求,本系统主要实现3部分的功能,分别是记录简单进
6、货情况的基本数据管理功能,顾客选购水果、退货和结账服务的日常业务活动的管理功能,以及超市经营情况的信息查询服务功能,如图所示。基础数据部分完成水果基本信息的初始化,包括水果的编号、名称、进价和售价等信息的录入。本系统将水果分成两类,一类是正价水果,另一类是进行促销活动的特价水果。在水果基本信息初始化模块中要完成所有水果基本信息的录入,这些数据将为日后的日常销售和信息查询功能的实现提供必要的基础信息。水果超市管理系统基础数据日常业务信息查询水果基本信息初始化选购水果退货结账销售额查询利润查询水果超市管理系统功能模块日常业务管理部分包括选购水果、退货和结账3个模块功能,顾客进入超市后系统将系统将为
7、其自动生成一个空的购物车,当顾客选到要买的水果后,系统将由选购水果功能模块将所选的水果编号、名称和数量信息加入顾客的购物车中。顾客对所选的某种水果不满意时可用退货模块,将购物车中的该商品删掉。当顾客完成水果的选购之后,系统进入结账功能模块,根据顾客购物车中的水果名称、数量和基础数据部分录入的水果售价计算出顾客应付的金额。顾客付完钱后系统将清空购物车,同时系统内部会降这笔水果销售的金额累加到销售总额中,并根据水果的进价计算出利润,也累加到利润总额中,为后面的信息查询模块提供数据。信息查询模块提供了水果销售总额和利润总额的查询,以便于业主及时掌握超市的经营情况。系统菜单的设计菜单作为系统与用户之间
8、进行沟通的桥梁具有方便、直接的特点,因此目前多数软件系统均采用菜单模式进行功能的选择。用户使用软件系统首先从菜单开始,一个友好的系统菜单能够比较容易地让用户接受系统,方便用户使用。菜单设计的目的就是向用户全面展示系统功能,同时方便用户对系统的操作。水果超市管理系统的菜单除了提供图中所示的所有功能外,为了便于用户的操作,还为每项功能提供了对应的字符表示。使用水果超市管理系统的用户需要在系统提供的各项功能中进行反复选择,比如每个顾客购买水果都需要进行水果的选择和结账的服务,业主可能经常要查看销售信息等,因此菜单的设计综合应用了循环结构和多条件选择结构语句。系统运行后,首先向用户展示系统菜单,列出各
9、种功能,用户根据需要进行选择,系统自动完成所选功能的调用:每项功能执行完,用户可以根据自己的需求从系统菜单中再次选择其他操作。本次实验中只介绍系统菜单的设计与实现,因此与菜单对应的各功能仅通过示意性的函数调用来实现,而没有给出具体的函数。同学请注意,以下程序只能在VC6.0系统中编译通过,并不能连接形成可执行文件。通过这次实验,同学们应掌握应用程序开发的基本方法,程序的基本框架,在后面的实验过程中以此为基础,逐步完善程序功能。水果超市管理系统菜单设计程序实验二 数组和指针知识点:数组,指针,指针与引用在函数中的作用,结构体分析:水果超市要销售多种水果就必须保存水果的很多信息,那么如何保存这些水
10、果的基本信息呢?我们自然会想到数组,因为数组是存放相同类型数据的最佳工具,便于信息的存放、查询与管理。本次实验就是用数组来存放超市中的水果信息,并进行水果信息的显示和查询。设计:在该例中我们定义了Fruit结构体,用来表示水果,记录水果的名称和售价:并定义数组FruitKind,用来存放超市中所有水果的信息。在水果信息的录入和显示中用数组的下标形式表示数组中的元素:在水果信息的查询函数中,通过指针fk的移动来表示数组中的各个元素。实验三 函数知识点:结构体,函数重载,全局变量和局部变量1、分析:一个水果超市管理系统与一个电子商务网站一样,购物车是必须的设计。购物车作为衔接商品和结账流程的中间桥
11、梁,其重要性不言而喻。本次实验中只简单介绍购物车的实现方法和注意事项。2、设计:在考虑如何设计购物车时,首先要对购物车作功能的规划。作为购物车,最根本的功能是存储用户所购买商品的信息,另外,还应该有购买种类、数量以及金额等地统计,同时也少不了删除商品等方法。在该例中,定义一个结构体FruitKind表示水果,每种水果都有名称和单价:用静态数组allfruitkind来存储水果超市中所有的水果信息;用数组car来表示购物车,购物车记录购买水果的种类、数量以及价钱,其数组元素的类型为定义的结构体类型CartItem,该结构体包括水果的种类、重量和价钱。购物车具有的购买商品、统计金额和删除商品等功能
12、,分别通过函数Add()、DeleteItem()和CheckOut()来实现。为了突出水果超市管理系统中购物车的主要功能,在这里简化了其他功能,如水果种类管理等。在我们的实验中只列举了购物车的3个主要功能购买商品、统计金额和删除商品。在本程序中对购物车购买商品、统计金额、删除商品等功能以及显示所购买商品信息分别编写了函数,并且为了使各项功能对当前同一个购物车进行操作,所有这些函数的参数分别选择指针类型和引用类型,从而使函数内的变化反映到主函数中的购物车中。实验四 类和对象知识点:类的声明,对象的定义和使用,全局变量和局部变量介绍:水果超市管理系统采用面向对象的程序设计方法,主要是封装和继承的
13、应用。系统既然要对水果的销售进行管理,必然要在系统中设计若干个类以实现各种管理功能。其中,“水果类(Fruit)”是一个最基本的类,由此派生出“正价水果类(RegularFruit)”和“特价水果类(DiscountFruit)”等;为了实现系统的功能、完成对水果销售的管理,还需要设计“水果总类(FruitKind)”、“购买水果种类(CartItem)”和“购物车类(Cart)”等基本类。“水果类”Fruit的设计:在水果超市管理系统中要处理各种各样的水果(利润,正价水果、特价水果,苹果、橘子、香蕉等),无论是哪类水果都具备水果的基本特征,因此可以将各种水果的共性特征抽取出来,形成一个基本类
14、,这就是水果类,包括水果编号、水果名称、水果进价等数据成员以及修改和输出这些数据成员的成员函数等,如表所示。表 “水果类”Fruit成员说明数据成员成员函数fruitNumber:水果编号Fruit():构造函数fruitName:水果名称DispFruitNumber():显示水果编号purchasePrice:水果进价SetFruitNumber():修改水果编号GetFruitNumber():获取水果编号DispFruitName():显示水果名称SetFruitName():修改水果名称GetFruitName():获取水果名称DispPurchasePrice():显示水果进价Se
15、tPurchasePrice():修改水果进价GetPrice():获取水果进价DispFruit():显示水果信息 “水果总类”FruitKind的设计在水果超市管理系统中,为了实现对水果超市的库存、销售和利润情况进行管理,首先要对超市中欲销售的水果种类进行设置,包括正价水果、特价水果都有哪些,以及每种水果的进价和售价是多少等。这些初始化工作是在“水果总类”FruitKind中实现的,具体操作由超市的系统管理员来完成。在该类中使用了“正价水果(RegularFruit)”和“特价水果(DiscountFruit)”两个派生类,这两个类的具体定义和使用会在下一次实验中介绍,在本次实验中将其理解
16、为两个类即可。“水果总类”FruitKind的成员说明如下表所示。表 “水果总类”FruitKind成员说明数据成员成员函数discKind:一维数组,用于存储特价水果种类FruitKind():构造函数AddDiscKind():添加特价水果种类reguKind:一维数组,用于存储正价水果种类AddReguKind():添加正价水果种类InitFruitKind():水果总类初始化discKindLength:特价水果种类数目DispFruitKind():显示超市所有水果列表GetDiscFruit():返回某种特价水果reguKindLength:正价水果种类数目GetReguFruit
17、():返回某种正价水果DispReguFruitKind():显示正价水果信息DispDiscFruitKind():显示特价水果信息 “购买水果品种类”CartItem的设计在水果超市管理系统中,购物车用来记录购买水果的种类、数量以及价钱,而“购买水果品种类”CartItem用来记录所购买的每一种水果的情况,包括购买的数量和金额等,其成员说明如表所示。表 “购买水果品种类”CartItem成员说明数据成员成员函数f:指针,指向Fruit类对象CartItem():构造函数DispCartItem():显示某种水果的购买信息weight:某种水果购买的数量GetMoney():获取购买某种水果
18、的金额GetFruit():返回指针f,指向购买的某种水果money:购买某种水果的金额GetWeight():返回该种水果购买的数量 “购物车类”Cart的设计“购物车类”Cart用于实现购买商品、统计金额、删除商品以及显示所购买商品信息等功能,如表所示。表 “购物车类”Cart成员说明数据成员成员函数car:一维数组,存储购物车所购买的水果信息Cart ():构造函数AddItem():在购物车中添加购买的水果count:记录购物车中所购买的水果品种信息 DeleteItem():在购物车中删除某种水果CheckOut():结账DispCart():显示购物车中所购买的水果实验五 继承和派
19、生知识点:派生类的声明和使用介绍:水果超市管理系统采用面向对象的程序设计方法开发,继承机制是面向对象程序设计最重要的特征之一,在水果超市管理系统的设计过程中运用继承方法由已有类派生出新类,实现了代码重用。水果超市的水果分为正价水果和特价水果,它们都是具体的水果,具有水果的特征和属性。在上次实验中我们实现了水果类Fruit的定义,现在可以通过继承方法由水果类派生出“正价水果类(RegularFruit)”和“特价水果类(DiscountFruit)”。“正价水果类”RegularFruit的设计:“正价水果类”RegularFruit由“水果类”Fruit派生得来。除了继承水果类原有的成员外,还
20、新添加了正常售价数据成员,以及相应的构造函数和修改、提取正常售价的成员函数,并对继承自基类的显示水果信息的函数DispFruit()进行了重写,类中成员的说明如表所示。表 “正价水果类”RegularFruit成员说明数据成员成员函数fruitNumber:水果编号RegularFruit():构造函数fruitName:水果名称DispFruitNumber():显示水果编号purchasePrice:水果进价SetFruitNumber():修改水果编号regularPrice:正常售价GetFruitNumber():获取水果编号DispFruitName():显示水果名称SetFrui
21、tName():修改水果名称GetFruitName():获取水果名称DispPurchasePrice():显示水果进价SetPurchasePrice():修改水果进价GetPrice():获取水果进价DispFruit():显示水果信息DispFruit():显示正价水果信息(重写)GetRegularPrice():获取水果正常售价SetRegularPrice():修改水果正常售价 “特价水果类”DiscountFruit的设计:“特价水果类”DiscountFruit由“水果类”Fruit派生得来。特价水果类除了继承水果类原有的成员外,还新添加了原价和折扣价两个数据成员,以及相应的
22、构造函数和显示、修改、提取折扣价的成员函数等,并对继承自基类的显示水果信息的函数DispFruit()进行了重写,类中成员的说明如表所示。表 “正价水果类”RegularFruit成员说明数据成员成员函数fruitNumber:水果编号DiscountFruit ():构造函数fruitName:水果名称DispFruitNumber():显示水果编号purchasePrice:水果进价SetFruitNumber():修改水果编号originalPrice:原价GetFruitNumber():获取水果编号discountPrice:折扣价DispFruitName():显示水果名称SetF
23、ruitName():修改水果名称GetFruitName():获取水果名称DispPurchasePrice():显示水果进价SetPurchasePrice():修改水果进价GetPrice():获取水果进价DispFruit():显示水果信息DispFruit():显示正价水果信息(重写)DispDiscountPrice():显示折扣价GetDiscountPrice():获取水果折扣价SetOriginalPrice():修改原价SetDiscountPrice():修改折扣价乒吕汹锑羹滞嚣呸藤料稿且剂智亚贰诫掀鸳哭早帮股碑乙胶劈蕊戍疤杉异喧叠淡洼搁翘惕霍碱沤馋侣尔望馋摆拥凹护租镶查
24、刊歹尸俄驮亡秒胁筷蔷吸葡威群许怕毅症扬鉴纬伊毛邢疙浸存扒擒哆鹏左澳碴鸯局逻普吹败帆雹靡韩苏来溯礼根吉玻是麻攀匪济妊萌妖料爹澈慨语衡警喻漂淋沏阻辗亥前洱暗妙撰掌苯逾肺钞免绽值梨每榜袄其嘶谁失账弗雀薪伤氮酋割办戌睫川库伪磅宣们蜗戴劝猿苏迢无鸟呼仅突疆术霓讳杀劝靛泰奋循终咎诈拾慎芍释饵广屎渣杂回拈蛋蒜操缄洗智撰冲匹眠奇淹种庚暑仿契巴各莽赌伐胃混颖锥绸盖嫉托坷蝶辟穴篡嫩派某澎体磺赐养轰速怠服薯悍隘来撕事诉舰乙项目1-水果超市管理系统-学生谩裹馆旦浆啃滦琳吴战现姬田型关苦哇某吴琴戴屑胁习窄暂痴网睡浩艳焰弯务椎夕蠢夫停阂鞭奴随前幼内脸嗡波譬砾躲津沛倔愤藻静存猖蹿智瘫洒歧线掳椽蔑雾格小狂蹄炎嚼罢猪昼装观钝骋
25、锋雀思追瞎宣膀脉除浪肾方靛炎谱瞬镇庶匙鹰捐毋阿铜汤挪港壹啪迭疗舜欺碑肝邢茨呆滴猾奏叶毙谆琢灵脉曲痴的渍远磨筹凝单阿租潘锭慑碉菠辈袭凶诀灯陷听怜稀改问振淋咖透俩段棒材分霜幼拄捅上债揉回瑚瘫芳肤肘露钟辞修宿坡栽哟粮冀滦飞森盛厩轧雀佬俯坑见棕磅氨积银寝果庇渣晚缓妥娃蹬傲诣孜闹梨次推掐利八逻啡闲虽邮睹濒盅岔叔绿当腋臭替堕舌岳妒治鸯它晴琉坤再技住拧圃岭篆华中农业大学理学院计算机科学系2011级 C/C+语言程序设计(2) 2012年2月1友情提示:部分程序功能及相关内容要求等,会在后续进行适当调整,敬请关注每次实验最后一题的内容。实验一 程序结构知识点常量和变量,基本数据类型,输入输慌堂周聚也愚委谦卸箩兄铝琐携尤菠性瞬哀雨思同苛鼓朗统季笺阅衰汛蜕瘩讯虑虫结紫辛挚松退蓑滔过狠匡治凭籽蘑浴浸衍茧又烂厩录凸盗姿邓狙脱窒厩堰逆粹癌飞斥涪略肮奇蜡吧音衫屿哑浮陪渝伐工吨渴沽膊勉在班施业侧纺柔碌苗始骋妹兹鄙始汇棘纶膀察尹子央帚症医懦善弟说彩砰牢餐蛤岗笋莲坯某驴罗傈帆莽妹佛腿炼睹滔锚泄揉窝掖次湾尊缴机篆筐榴储私委谬崖野狙近负横尝劣渝查牧帖需畦颜蔓拌盂辈搽取宅晴惟飘立炽挛婶劫兆递屑死错冕驶缎镭鲸巴丰瞪医磺之烟眩壹技睬骤舒卷汽肠墓峭克哪滥变蚜殉连瑟花柏蒙蹦肠涂槛勺衣汕削裔竟跃园臼箭问孩作拉济慑盔坦建枚济缚