税收计算公式(全)及数据结构课程设计(旅游管理系统)_第1页
税收计算公式(全)及数据结构课程设计(旅游管理系统)_第2页
税收计算公式(全)及数据结构课程设计(旅游管理系统)_第3页
税收计算公式(全)及数据结构课程设计(旅游管理系统)_第4页
税收计算公式(全)及数据结构课程设计(旅游管理系统)_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEI各种税的计算公式1、一般纳税人应纳税额=销项税额—进项税销项税额=销售额×税率此处税率为17%组成计税价格=成本×(1+成本利润率)组成计税价格=成本×(1+成本利润率)÷(1—消费税税率)禁止抵扣人进项税额=当月全部的进项税额×(当月免税项目销售额,非应税项目营业额的合计÷当月全部销售,营业额合计)2、进口货物应纳税额=组成计税价格×税率组成计税价格=关税完税价格+关税(+消费税)3、小规模纳税人应纳税额=销售额×征收率销售额=含税销售额÷(1+征收率)二.消费税1、一般情况:应纳税额=销售额×税率不含税销售额=含税销售额÷(1+增值税税率或征收率)组成计税价格=(成本+利润)÷(1—消费税率)组成计税价格=成本×(1+成本利润率)÷(1—消费税税率)组成计税价格=(材料成本+加工费)÷(1—消费税税率)组成计税价格=(关税完税价格+关税)÷(1—消费税税率)2、从量计征应纳税额=销售数量×单位税额三、营业税应纳税额=营业额×税率四、关税1、从价计征应纳税额=应税进口货物数量×单位完税价×适用税率2、从量计征应纳税额=应税进口货物数量×关税单位税额3、复合计征应纳税额=应税进口货物数量×关税单位税额+应税进口货物数量×单位完税价格×适用税率五、企业所得税应纳税所得额=收入总额—准予扣除项目金额应纳税所得额=利润总额+纳税调整增加额—纳税调整减少额应纳税额=应纳税所得额×税率月预缴额=月应纳税所得额×25%月应纳税所得额=上年应纳税所得额×1/12六、外商投资企业和外商企业所得税1、应纳税所得额制造业:应纳税所得额=产品销售利润+其他业务利润+营业外收入—营业外支出商业:应纳税所得额=销售利润+其他业务利润+营业外收入—营业外支出服务业:应纳税所得额=业务收入×净额+营业外收入—营业外支出2、再投资退税:再投资退税=再投资额×(1—综合税率)×税率×退税率七、个人所得税:1、工资薪金所得:应纳税额=应纳税所得额×使用税率—速算扣除数2、稿酬所得:应纳税额=应纳税所得额×使用税率×(1—30%)3、其他各项所得:应纳税额=应纳税所得额×使用税率八、其他税收1、城镇土地使用税年应纳税额=计税土地面积(平方米)×使用税率2、房地产税年应纳税额=应税房产原值×(1—扣除比例)×1.2%或年应纳税额=租金收入×12%3、资源税年应纳税额=课税数量×单位税额4、土地增值税增值税=转让房地产取得的收入—扣除项目应纳税额=∑(每级距的土地增值额×适用税率)5、契税应纳税额计税依据×税率资产=负债+所有者权益主营业务利润=主营业务收入-主营业务成本-主营业务税金及附加营业利润=主营业务利润+其他业务利润-期间费用(营业费用、管理费用、财务费用)利润总额=营业利润+投资收益+营业外收支净额+补贴收入增值税计算方法1、直接计税法应纳增值税额:=增值额×增值税税率增值额:=工资+利息+租金+利润+其他增值项目-货物销售额的全值-法定扣除项目购入货物金额2、间接计税法扣除税额=扣除项目的扣除金额×扣除税率(1)、购进扣税法扣除税额=本期购入扣除项目金额×扣除税率+已由受托方代收代缴的税额(2)、实耗扣税法扣除税额=本期实际耗用扣除项目金额×扣除税率+已由受托方代收代交的税额一般纳税人应纳增值税额一般纳税人应纳增值税额=当期销项税额-当期进项税额1、销项税额=销售额×税率销售额=含税销售额/(1+税率)组成计税价格=成本×(1+成本利润率)甲类卷烟10%乙类卷烟5%雪茄烟5%护肤护发品5%烟丝5%鞭炮、焰火5%粮食白酒10%贵重首饰及珠宝宝石6%薯类白酒5%汽车轮胎5%其他酒5%小轿车8%酒精5%越野车6%化妆品5%小客车5%2、进项税额不得抵扣的进项税额=当月全部进项税额×当月免税项目销售额、非应税项目营业额合计/当月全部销售额、营业额合计小规模纳税人应纳增值税额小规模纳税人应纳增值税额=销售额×征收率销售额=含税销售额/(1+征收率)销售额=含税收入(1+增值税征收率)进口货物应纳增值税额进口货物应纳增值税额=组成计税价格×税率组成计税价格=关税免税价格+关税+消费税营业税额应纳营业税额=营业额×税率计税价格=营业成本或工程成本×[(1+成本利润率)/(1-营业税税率)]消费税额1、从价定率的计算实行从价定率办法计算的应纳消费税额=销售额×税率(1)、应税消费品的销售额=含增值税的销售额/(1+增值税税率或征收率)(2)、组成计税价格=(成本+利润)/(1-消费税率)(3)、组成计税价格=(材料成本+加工费)/(1-消费税率)(4)、组成计税价格=关税完税价格+关税+应纳消费税税额(5)、组成计税价格=(关税完税价格+关税)/(1-消费税税率)2、从量定额的计算实行从量定额办法计算的应纳消费税额=销售数量×单位数额资源税额应纳税额=课税数量×单位税额企业所得税额应纳税额=应纳税所得额×税率应纳税所得额=收入总额-准予扣除项目金额应纳税所得额=利润总额+(-)税收调整项目金额利润总额=收入总额-成本、费用、损失1、工业企业应纳税所得额公式工业企业应纳税所得额=利润总额+(-)税收调整项目金额利润总额=营业利润+投资收益+营业外收入-营业外支出营业利润=产品销售利润+其他业务利润-管理费用-财务费用产品销售利润=产品销售收入-产品销售成本-产品销售费用-产品销售税金及附加其他业务利润=其他业务收入-其他业务成本-其他销售税金及附加本期完工产品成本=期初在产品自制半成品成本余额+本期产品成本会计-期末在产品自制半成品成本余额本期产品成本会计=材料+工资+制造费用2、商品流通企业应纳税所得额公式应纳税所得额=利润总额+(-)税收调整项目金额利润总额=营业利润+投资收益+营业外收入-营业外支出营业利润=主营业务利润+其他业务利润-管理费用-财务费用-汇兑损失主营业务利润=商品销售利润+代购代销收入商品销售利润=商品销售净额-商品销售成本-经营费用-商品销售税金及附加商品销售净额=商品销售收入-销售折扣与折让3、饮服企业应纳税所得额公式应纳税所得额=利润总额+(-)税收调整项目金额利润总额=营业利润+投资收益+营业外收入-营业外支出营业利润=经营利润+附营业务收入-附营业务成本经营利润=营业收入-营业成本-营业费用-营业税金及附加营业成本=期初库存材料、半成品产成(商)品盘存余额+本期购进材料、商品金额金额-期末库存材料、半成品、产成(商)品盘存余额4、应纳所得税税额计算(1)分月或分季预缴所得税额=月、季应纳税所得额×税率(33%)(2)年终汇算清缴时,应退补所得税应退补所得税额=全年累计应纳税所得额×税率(33%)-本年累计已缴所得税额预缴所得税①、按上年应纳税所得额的1/2或1/4本期某月或某季应纳所得税税额=[上一年应纳税所得额/2(或4)]×税率(33%)②、按本期计划利润预缴所得税本期某月或某季应纳所得税税额=本期某月或某季计划利润额×税率(33%)5、对减征所得税的计算减征比例=[(33%-原核定的税率)/33%]×100%减征后应纳所得税额=应纳税所得额×税率(33%)×(1-减征比例)=应纳所得税税额×减征比例6、境外所得税税额扣除限额=境内外所得按税法计算的应纳税总额×来源于某外国的所得额/境内外所得总额7、对弥补以前年度亏损后应纳所得税额的计算弥补亏损后应纳所得税税额=(应纳税所得额-以前年度未弥补亏损)×税率(33%)外商投资企业和外国企业所得税额1、制造业应纳税所得额=产品销售利润+其他业务利润+营业外收入-营业外支出产品销售利润=产品销售净额-产品销售成本-产品销售税金-销售费用+管理费用+财务费用产品销售净额=产品销售总额-(销货退回+销货折让)产品销售成本=本期产品成本+期初半成品、在产品盘存-期末半成品、在产品盘存本期生产成本=本期生产耗用的直接材料+直接人工+制造费用2、商业企业应纳税所得额应纳税所得额=销货利润+其他业务利润+营业外收入-营业外支出销货利润=销货净额-销货成本-销货税金-(销货费用+管理费用+财务费用)销货净额=销货总额-(销货退回+销货折让)销货成本=期初商品存盘+[本期进货-(进货推出+进货折让)+进货费用]-期末商品盘存3、服务业应纳税所得税=业务收入净额+营业外收入-营业外支出业务收入净额=业务收入总额-(业务收入税金+业务支出+管理费用+财务费用)4、应纳税所得额应纳企业所得税额=应纳税所得额×适用税率-已纳企业所得税额应纳地方所得税额=应纳税所得额×地方所得税税率-已纳地方所得税额5、国际运输业务应纳所得税额=应纳税所得额×税率应纳税所得额=在中国境内起运所获客货收入的总额×5%6、预提所得税应纳税所得税额=在中国境内取得的利润、利息、租金特许权使用费和其他所得之和×税率(20%)7、境外所得税税款扣除限额的计算境外所得税税款扣除限额=境内外所得按税法计算的应纳税总额×来源于某境外的所得额/境内外所得总额8、外商投资者将从外商投资企业取得的利润用于再投资,应退所得额应退税额={再投资额/[1-(原实际适用的企业所得税率+地方所得税税率)]}×原实际适用的企业所得税率×退税率9、年终汇算清缴应补(退)企业所得税的计算(1)、对没有征减,没有境外所得的企业应补(退)税额=全年应纳税所得额×企业所得税率-1~4季度已预缴所得税(2)对有征减,有境外所得的企业应补(退)企业所得税额=境内、外所得按税法计算的应纳税总额-境外所得税允许扣除额-应减征的企业所得税额-已预缴企业所得税总额个人所得税额1、工资、薪金所得工资、薪金所得应纳个人所得税额=应纳水所得额×适用税率-速算扣除数应纳税所得额=每月收入额-800应纳税额=应纳税所得额×适用税率-速算扣除数应纳税所得额=(不含税所得额-速算扣除数)/(1-税率)2、个体工商户应纳所得税额=应纳税所得额×适用税率-速算扣除数(1)、将当月累计应纳税所得额换算成全年应纳税所得额全年应纳税所得额=当月累计应纳税所得额×12/当月累计经营月份数(2)、计算全年应纳所得税额全年应纳所得税额=全年应纳税所得额×适用税率-速算扣除数(3)、计算当月累计应纳所得税额当月应纳所得税额=全年应纳所得税额×当月累计经营月份数/12(4)、计算本月应纳所得税额本月应纳所得税额=当月累计应纳所得税额-累计已缴所得税额3、稿酬所得应纳所得税额=应纳税所得额×20%×(1-30%)=应纳税所得额×20%×70%4、劳务报酬所得(1)、一次收入在20000元以下时应纳所得税额=应纳税所得额×20%(2)、一次收入20000~50000时应纳所得税额=应纳税所得额×20%+应纳税所得额×20%×50%=应纳税所得额×(20%+10%)(3)一次收入超过50000时应纳所得税税额=应纳税所得额×20%+应纳税所得额×20%×100%=应纳税所得额×(20%+20%)5、财产转让财产转让应纳所得税额=应纳税所得额×20%应纳税所得额=转让财产收入额-财产原值-合理费用6、利息、股息红利所得应纳所得税额=应纳税所得额×20%7、境外个人所得税款扣除限额境外个人所得税税款扣除限额=境内、境外所得按税法计算的应纳税总额×来源于某外国的所得额/境内、外所得总额8、支付给扣缴义务人手续费的计算手续费金额=扣缴的个人所得税额×2%土地增值税额1、一般计算方法应纳税总额=∑各级距土地增值额×适用税率某级距土地增值额×适用税率土地增值率=土地增值额×100%/扣除项目金额土地增值额=转让房地产收入-扣除项目金额2、简便计税方法(1)、土地增值额未超过扣除项目金额金额50%的应纳税额=土地增值额×30%(2)、土地增值额超过扣除项目金额50%,未超过100%的应纳税额=土地增值额×40%-扣除项目金额×0.05(3)、土地增值额超过扣除项目金额100%、未超过200%的应纳税额=土地增值额×50%-扣除项目金额×0.15(4)土地增值额超过项目金额200%应纳税额=土地增值额×60%-扣除项目金额×0.35固定资产投资方向调节税1、基本建设项目投资额应纳固定资产投资方向调节税额,其计算公式:应纳税额=总投资额×适用税率总投资额=建筑工程投资总额+设备购置安装投资总额2、更新改造项目投资额应纳固定资产投资方向调节税额,其计算公式:应纳税额=建筑工程投资总额×适用税率3、超计划投资项目应补缴固定资产投资方向税额,其计算公式:超计划应补缴税额=[(实际完成投资额-省级标准投资额)×适用税率]×(1+加罚倍数)=超计划投资额应纳税额×(1+加罚倍数)超计划投资额应纳税额=超计划投资额×适用税率超计划投资额=实际完成投资额-省级标准投资额城乡维护建设税应纳城乡建设维护税额=(产品销售收入额+营业收入额+其他经营收入额)×地区适用税率应补交税额=实际营业收入额×地区适用税率-已纳税额应退税额=已交税额-核实后的应纳税额车车船税1、乘人车、二轮摩托车、三轮摩托车、畜力车、人力车、自行车等车辆的年应纳税额的计算公式为:年应纳税额=车辆拥有量×适用的年税额2、载货车年应纳税额的计算公式为:年应纳税额=载货汽车净吨位×适用的年税额3、客货两用的车应纳税额的计算公式为:年应纳税额=载人部分年应纳税额+载货部分年应纳税额载人部分年应纳税额=载人车适用年税额×50%载货部分年应纳税额=载货部分的净吨位数×适用的年税额4、机动船应纳税额的计算公式:机动船年应纳税额=机动船的净吨位×适用的年税额5、非机动船应纳税额=非机动船的载重吨位×适用的年税额6、新购买的车辆按购期年内的余月数比例征收车船税,其计算公式为:新购买车船应纳车船税额=各种车船的吨位(或辆数)×购进起始月至征期终了的余月数/征期月数补交本期漏报漏缴税额=漏报漏缴车船税的数量(或净吨位、载重吨位)×适用税额/按规定缴库的次数补交本期少交的税款=[应缴车船税的数量(或净吨位、载重吨位)×适用税额/按规定缴库的次数]-已缴税款退还误交的税款=已缴的误交税款退还应计算错误而多交的税款=已入库的税款-重新核实后的应纳税额房产税额年应纳房产税税额=房产评估值×税率月应纳房产税税额=年应纳房产税额/12季应纳房产税税额=年应纳房产税额/4土地使用税额年应纳土地使用税税额=使用土地的平方米总数×每平方米土地年税额月或季应纳土地使用税税额=年应纳土地使用税额/12(或)4印花税额1、购销合同应纳印花税的计算应纳税额=购销金额×3/100002、建设工程勘察设计合同应纳印花税的计算应纳税额=收取的费用×5/100003、加工承揽合同应纳印花税的计算应纳税额=加工及承揽收入×5/100004、建筑安装工程承包合同应纳印花税的计算应纳税额=承包金额×3/100005、财产租赁合同应纳印花税的计算应纳税额=租赁金额×1/10006、仓储保管合同应纳印花税的计算应纳税额=仓储保管费用×1/10007、借款合同应纳印花税的计算应纳税额=借款金额×0.5/100008、财产保险合同应纳印花税的计算应纳税额=保险费收入×1/10009、产权转移书据应纳印花税的计算应纳税额=书据所载金额×6/1000010、技术合同应纳印花税的计算应纳税额=合同所载金额×3/1000011、货物运输合同应纳印花税的计算应纳税额=运输费用×5/1000012、营业账簿应纳印花税的计算(1)记载资金账簿应纳印花税的计算公式为:应纳税额=[(固定资产原值年初数-上年已计算缴纳印花税固定资产原值)+(自有流动资金年初数-上年已计算缴纳印花税自有流动资金总额)]×5/10000(2)其他账簿应纳税额的计算。其公式为:应纳税额=证照件数×5关税1、进口关税应纳税额的计算。其公式为:应纳关税税额=完税价格×进口税率完税价格=离岸价格+运输费、保险费等=国内批发价/(1+进口税率+费用和利润率(20%))2、出口关税应纳税额的计算。其公式为:出口关税应纳税额=完税价格×出口税率完税价格=离岸价格/(1+出口税率)课程设计数据结构课程设计报告学号:姓名:指导教师:专业:计算机完成日期:目录A篇:旅游信息管理系统 题目要求1、题目内容1程序设计目标1、题目分析12、功能简介23、数据结构2概要简述1、功能结构图32、模块分析3详细设计1、结构体定义32、程序流程图5源程序代码1、源程序c++实现代码6调试分析及测试结果1、运行结果截14附录1、补充说明19程序小结1、报告总结———————————————19B篇:B-树手工题题目要求1、题目内容20运行过程1、从空树插入202、插入完成253、依次删除要求点264、最终结果28C篇:附加题题目1、题目内容—————————————————29程序设计目标1、功能简介—————————————————292、数据结构—————————————————29设计思路1、结构体定义————————————————292、功能结构图———————————————303、程序流程图———————————————30实现代码1、程序代码————————————————32程序调试以及运行结果1、调试结果及截图—————————————43报告总结1、报告总结————————————————44A篇:旅游信息管理系统题目要求题目内容旅游信息管理系统1)数据结构(1)、二叉排序树加单链表(2)、二叉排序树说明:1、用二叉排序树表示旅游地点,用单链表表示游客。2、用二叉排序树表示旅游地点和游客。2)、功能(1)、旅游地点的插入(2)、游客报名(3)、当某地的旅游人数少于三个人时,取消次旅游地,建议游客该选其他旅游点(4)、当某旅游地旅游人数等于六个时,不允许在报名。建议游客改选其它旅游地。程序设计目标1、题目分析读题可知,需完成两方面的编程以对旅游系统进行操作。一方面是旅游公司管理人员,主要是旅游景点的添加与删除,对旅游人员的录入与删除,对旅游人数的统计,把游客所需信息打印等等;第二方面是游客对于旅游地的选、改、删,以及个人信息的输入、确认等等。2、功能简介由以上分析可得:本设计程序功能主要有:、旅游公司管理人员对旅游人员和旅游地点的操作,用二叉排序树管理旅游地点。主要有地点的变更,插入、删除、游客的信息存储及及时提醒等功能。其中二叉树每一个结点包括旅游地点的区号(area_node)、名称(area)、该旅游地的游客人数(count)、以及一个指向游客信息结构的指针(list),还有二叉树结点的左孩子和右孩子指针(lchild,rchild)。、游客可以登陆旅游公司界面进行报名、选择旅游地点和输入个人信息。游客结构采用单链表,其中包括单链表的初始化、插入、删除、计数功能。其中每一个单链表结点包括游客的编号(id)、姓名(name)、性别(sex)、和链接链表的指针(next)。3、数据结构用到的数据结构有:单链表,排序二叉树,数组。概要简述1、功能结构图主菜单程序员游客删除遍历插入删除遍历插入遍历插入遍历插入二叉树单链表二叉树单链表2、模块分析工作去选择模块本程序包括三个模块:主程序模块、二叉排序树模块、单链表模块,工作区选择模块。如图:工作去选择模块二叉排序树模块主程序模块单链表模块详细设计1、结构体定义1)、链表结点结构体typedefstructtourist{ stringname; intid; stringsex; structtourist*next;}Trist,*linklist;左孩子区号地名游客数右孩子指向链表的指针左孩子区号地名游客数右孩子指向链表的指针2)、二叉排序树结点结构体typedefstructTree_Place{ intarea_code;//旅游地区号 stringarea;//旅游地名称 intcount;//记录该旅游地报名游客人数 structTree_Place*lchild,*rchild; Trist*list;//指向游客所在单链表的指针}Place,*TPlace;左孩子区号地名游客数右孩子指向链表的指针左孩子区号地名游客数右孩子指向链表的指针2、程序流程图主菜单(1、程序员,2、游客)1输入密码错误正确(12345)2程序管理员游客退出显示少于3人地查询各地游客数目输入地点退出显示少于3人地查询各地游客数目输入地点退出输入旅游地区号显示所有旅游地查询可报名地修改旅游地点退出输入旅游地区号显示所有旅游地查询可报名地修改旅游地点删除超额可报提醒删除打印退出输入删除超额可报提醒删除打印退出退出可报地输入信息重复提醒成功退出可报地输入信息重复提醒退/输YN报名成功N报名成功打印个人信息Y打印个人信息源程序代码1、源程序c++实现代码#include<iostream>#include<stdlib.h>#include<string>#include<iomanip>usingnamespacestd;#defineMAX50#defineSIZE12typedefstructtourist{charname[SIZE];intid;charsex[5];structtourist*next;}Trist,*linklist;typedefstructTree_Place{intcode;//旅游地区号chararea[SIZE];//旅游地名称intcount;//记录该旅游地报名游客人数structTree_Place*lchild,*rchild;Trist*list;//指向游客所在单链表的指针}Place,*TPlace;voidSearch_T(TPlace&tree,intco);voidMainlist(TPlace&tree);voidTour_1(TPlace&tree);voidTour_2(TPlace&tree);voidDestory(TPlace&tree);voidInit_L(linklist&head){head=NULL;}voidInsert_L(TPlace&tree,TPlace&t,linklist&head){linklisttr;charc;inti=1,co,id;while(t->count<6&&i==1){ cout<<"请输入你的身份证号:"<<endl; cin>>id;tr=(linklist)malloc(sizeof(Trist));tr->id=id;cout<<"输入姓名,性别:"<<endl;cin>>tr->name>>tr->sex;tr->next=head;head=tr; t->count++;cout<<"继续报名请按1,按0退出!"<<endl;cin>>i; } if(t->count>=6) { cout<<"此旅游地人数已满,按'y'选择其他旅游地,其他键退出!"<<endl;cin>>c; if(c=='y'||c=='Y'){cout<<"请重新输入区号"<<endl;cin>>co;Search_T(tree,co);} }elseTour_2(tree);}voidDelet_L(linklist&head){linklistp,pro;pro=head;while(pro){p=pro;pro=p->next;free(p);}}voidInsert_T(TPlace&tree,TPlacep){//在二叉排序树中插入一个新结点if(tree==NULL)tree=p;elseif(p->code<tree->code)Insert_T(tree->lchild,p);elseif(p->code>tree->code)Insert_T(tree->rchild,p);}voidSearch_T(TPlace&tree,intco){charc;TPlacep;intcode;p=tree;while(p&&p->code!=co){if(p->code>co)p=p->lchild;elsep=p->rchild;}if(!p){cout<<"此旅游地点还未存在!"<<endl;system("pause");Tour_2(tree);}else{ if(p->count>=6) { cout<<"此旅游地人数已满,按'y'选择其他旅游地,其他键退出!"<<endl;cin>>c; if(c=='y'||c=='Y'){cout<<"请重新输入区号"<<endl;cin>>code;Search_T(tree,code);}elseTour_2(tree); } else{cout<<"可以报名"<<endl;Insert_L(tree,p,p->list);Tour_2(tree);}}}TPlaceDelete_T(TPlace&t,intco){TPlacep,parent,s,q;//parent指向要删除的节点的双亲,p指向要删除的节点p=t;parent=NULL;while(p){if(p->code==co)break;parent=p;if(p->code>co)p=p->lchild;elsep=p->rchild;}if(p==NULL)//不存在该树节点returnt;if(p->lchild==NULL)//无左子树,右子树可有可无{if(parent==NULL)t=p->rchild;elseif(parent->lchild==p)parent->lchild=p->rchild;elseparent->rchild=p->rchild;Delet_L(p->list);free(p);}else//有左子树,右子树可有可无{q=p;s=q->lchild;////while(s->rchild){q=s;s=s->rchild;}if(q==p)//其左孩子没有右子树q->lchild=s->lchild;elseq->rchild=s->lchild;p->code=s->code;Delet_L(s->list);free(s);}returnt;}voidFun1(TPlace&tree){charc;intn;TPlacep;cout<<"请输入插入地点个数:"<<endl;cin>>n;cout<<"依次输入各个旅游地点的区号和地名:"<<endl;for(inti=0;i<n;i++){ p=(TPlace)malloc(sizeof(Place)); cout<<"请输入第"<<i+1<<"个地点:"<<endl; cin>>p->code>>p->area; p->lchild=p->rchild=NULL; p->list=NULL; p->count=0;Insert_T(tree,p);}cout<<"输入完成,输入y或者Y继续操作,其他键退出!";cin>>c;if(c=='y'||c=='Y')Fun1(tree);else{system("cls");Tour_1(tree);}}voidFun2(TPlace&tree,intx){inttop=0;TPlacep,s[MAX];p=tree;while(p||top>0){while(p){s[top++]=p;p=p->lchild;}if(top>0){p=s[--top];cout<<setw(8)<<"区号:"<<p->code<<setw(10)<<"地名:"<<p->area<<setw(10)<<"人数:"<<p->count<<endl;p=p->rchild;}}if(tree==NULL)cout<<"还未录入旅游地!请稍后查询!"<<endl;cout<<"按任意键返回上一级菜单!"<<endl;system("pause");if(x==1)Tour_1(tree);if(x==2)Tour_2(tree);}voidFun3(TPlace&tree,intx){intn1=0,n2=0;charc;inttop=0;intelem[MAX];TPlacep,s[MAX];p=tree;while(p||top>0){while(p){s[top++]=p;p=p->lchild;}if(top>0){p=s[--top];if(p->count<3&&x==1){cout<<setw(8)<<"区号:"<<p->code<<setw(10)<<"地名:"<<p->area<<setw(10)<<"人数:"<<p->count<<endl;elem[n1]=p->code;n1++;}if(p->count<6&&x==2){cout<<setw(8)<<"区号:"<<p->code<<setw(10)<<"地名:"<<p->area<<setw(10)<<"人数:"<<p->count<<endl;;n2++;}p=p->rchild;}}if(x==1){cout<<"一共有"<<n1<<"各旅游景点人数少于三个"<<endl;cout<<"删除旅游地请输入D或者d,其他键返回菜单!"<<endl;cin>>c;if(c=='d'||c=='D'){for(inti=0;i<n1;i++)Delete_T(tree,elem[i]);cout<<"删除完成!"<<endl;}system("pause");Tour_1(tree);}if(x==2){cout<<"一共有"<<n2<<"个旅游景点仍可报名"<<endl;cout<<"按任意键返回上一级菜单!"<<endl;system("pause");Tour_2(tree);}}voidFun4(TPlace&tree){ intco,id; TPlacep;linklistl,pre;p=tree;cout<<"输入要退出旅游地的区号和自己的身份证号:"<<endl;cin>>co>>id;while(p&&p->code!=co){if(p->code>co)p=p->lchild;elsep=p->rchild;}if(!p){cout<<"此旅游地点还未存在!"<<endl;system("pause");Tour_2(tree);} else{l=p->list;pre=l;while(l->id!=id){ pre=l; l=l->next;}pre->next=l->next;free(l);p->count--;cout<<"输入要报名的地点区号:"<<endl;cin>>co;Search_T(tree,co);}}voidMainlist(TPlace&tree){system("cls");cout<<"******************************************************"<<endl<<endl;cout<<"欢迎登陆旅游购票系统"<<endl;cout<<"请选择登录身份:"<<endl;cout<<"1、旅游公司管理人员"<<endl;cout<<"2、游客"<<endl;cout<<"3、退出程序"<<endl;cout<<"******************************************************"<<endl<<endl;intn,key,i=1;cin>>n;switch(n){case3:Destory(tree);exit(0);case1:do{cout<<"请输入登陆密码:";cin>>key;i++;}while(key!=12345&&i<=3);if(key==12345)Tour_1(tree);elseMainlist(tree);break;case2:Tour_2(tree);break;default:cout<<"输入错误,请重新选择!"<<endl;system("pause");Mainlist(tree);}}voidTour_1(TPlace&tree){system("cls");intn;cout<<"******************************************************"<<endl<<endl;cout<<"1、输入旅游地点"<<endl;cout<<"2、查询各旅游地游客人数"<<endl;cout<<"3、显示不足三人的旅游地"<<endl;cout<<"4、退出"<<endl;cout<<"******************************************************"<<endl<<endl;cin>>n;switch(n){case1:Fun1(tree);break;case2:Fun2(tree,1);break;case3:Fun3(tree,1);break;case4:Mainlist(tree);break;default:cout<<"输入错误,请重新输入!"<<endl;system("pause");Tour_1(tree);;}}voidTour_2(TPlace&tree){intcode;system("cls");intn;cout<<"******************************************************"<<endl<<endl;cout<<"1、输入旅游地区号"<<endl;cout<<"2、显示所有旅游地"<<endl;cout<<"3、查询可报名地"<<endl;cout<<"4、修改旅游地点"<<endl;cout<<"5、退出"<<endl;cout<<"******************************************************"<<endl<<endl;cin>>n;switch(n){case1:cout<<"请输入区号:"<<endl;cin>>code;Search_T(tree,code);break;case2:Fun2(tree,2);break;case3:Fun3(tree,2);break;case4:Fun4(tree);break;case5:Mainlist(tree);break;default:cout<<"输入错误,请重新输入!"<<endl;system("pause");Tour_2(tree);}}//销毁二叉树voidDestory(TPlace&tree){ if(!tree){cout<<"此树已空!"<<endl;system("pause");exit(0);} if(tree&&tree->lchild) Destory(tree->lchild); if(tree&&tree->rchild) Destory(tree->rchild); cout<<setw(5)<<tree->code<<setw(5)<<tree->area<<endl;Delet_L(tree->list); free(tree);}voidmain(){TPlaceT=NULL;Mainlist(T);}六、调试分析及测试结果1、运行结果截图七、附录1、补充说明#include<stdlib.h>:包含分配空间的头文件#include<string>:包含对字符串进行操作的头文件#include<iomanip>:包含控制输出格式的头文件Destory函数为释放内存,删除所建树的所有节点。八、程序小结1、实验总结旅游信息管理系统的程序主要分为两大方面的构思,从两个方面对程序进行操作,又通过一些关系使结构很好的结合在一起,完成了此操作系统的一些基本操作。例如有旅游景点的建立、删除、遍历和游客信息的插入语更改等,分别对应二叉树的插入,删除和遍历,还有对链表的一些基本操作。我认为操作系统得以实现的关键是在旅游景点的节点上创建了指向游客链表的指针,两种结构便产生了一定联系。通过这次数据结构课程设计,我对数据结构有了更深一步的了解,对已学过的数据结构的掌握程度在应用中通过产生问题,解决问题的过程得以很好的提升。B篇:B-树手工题题目要求1、题目内容从空的三阶B-树开始一次插入20、30、50、52、60、68、70、10、5、80、90然后分别删除60、90、88、20画出上述操作的B-树各状态。运行过程1、从空树插入1)、202)、20303)、3020305020504)、302050525)、302050526030522050606)、3052205060687)、3052205060687030526820506070523068205060708)523068

温馨提示

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

最新文档

评论

0/150

提交评论