您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言课程设计总结报告
丽水学院C语言课程设计总结报告题目计算器指导教师卢敏院系工学院专业计算机科学与技术班级计16学号16103330127(24)姓名徐明志成绩二〇一七年六月二十二日丽水学院工学院C语言课程设计报告评分表班级:计16学号16103330127(24)姓名:徐明志机器编号:5作品设计报告1设计报告格式规范,风格统一。102第一章系统功能说明。153第二章程序结构(程序结构、重要数据说明、函数清单)。354第三章使用说明(安装手册和使用手册完整)。155第四章系统设计难点及其解决方法。156第五章不足之处。10合计表1进度安排表短学期实践综合实验进度表选题名称:运动会分数统计系统班级:计16学号:16103330127(24)姓名:徐明志任课教师:卢敏一、系统设计2017.6.26~2017.6.27二、系统实现2017.6.27~2017.6.29三、测试2017.6.9~2017.6.30表2中期报告表C语言课程设计中期报告(系统设计)选题名称:运动会分数统计系统班级:计16学号:1610333127(24)姓名:徐明志任课教师:卢敏起始时间及计划完成时间:2017.6.26~2017.6.30一、题目(问题)描述该计算器主要实现的是四则运算,以及N次方的运算,阶乘运算和累加运算;其中对溢出需要进行控制,对错误的输入进行提示以及对运算结果进行清零或继续运算;另外需要一个列举功能的实现计算器功能的菜单,有需要时可设置二级或者三级菜单,使条理更加清楚。二、问题分析实现最基本计算器的功能需要进行进行加减乘除的运算,这时就有两种思路:一是利用线性关系进行处理,将数字进行一次一次的运算,这样的运算效果低。二是利用栈进行处理,可输入数字的表达式,通过栈的工作原理,结合人为规定的符号优先级关系进行直接给出答案,提高了运算的效率和功能,但是运行时的溢出或出错很难进行处理。对一般的小数可进行四则运算之外还需可对大数进行运算,这个需要进行独自的算法设计。除此之外就只有阶乘,累加和N次方了,其中N次方的溢出最难处理,需要对两个数进行判断。处理溢出的办法,若是进行逐步运算,例如对a,b两个数进行运算,得到结果c,想要判断c是否是溢出,可以将c与b进行逆运算求值得到d,若是a等于d说明运算无误,没有溢出,反之则溢出。三、系统设计1.程序总体结构2.界面设计界面设计运用了简单的菜单布局,设计了二级菜单,可以进行随意来返两个菜单之间。菜单第一行都是提示输入信息或进行该菜单的描述,后面若干行都是该菜单功能的描述。一级主菜单/*******************************计算器*******************************//***********************请按照提示进行输入数字***********************/1.进行加减乘除运算2.N次方运算3.阶乘运算4.累加运算5.大数的加减乘除6.退出小数二级菜单/***********************请按照提示进行输入数字***********************/1.N次方运算2.阶乘运算3.累加运算4.清零并返回大数二级菜单/***********************请按照提示进行输入数字***********************/1.加法运算2.减法运算3.乘法运算4.除法运算5.返回菜单目录第一章系统功能说明.....................................................................................................................1第二章程序结构.............................................................................................................................22.1程序结构说明..................................................................................................................22.2重要数据说明..................................................................................................................22.3函数清单..........................................................................................................................3第三章使用说明...........................................................................................................................133.1安装手册........................................................................................................................133.2使用手册........................................................................................................................13第四章系统设计难点及其解决方法...........................................................................................154.1栈的四则运算...............................................................................................................154.2大数的加减乘除...........................................................................................................154.2.1大数的加法.....................................................................................................154.2.2大数的减法.....................................................................................................154.2.3大数的乘法.....................................................................................................164.2.3大数的除法.....................................................................................................16第五章不足之处...........................................................................................................................17运动会分数统计系统丽水学院C语言课程设计总结报告1第一章系统功能说明本程序可实现简单的计算机功能,对数字进行加减乘除的运算,N次方的运算,阶乘和累加,并能对错误的输入进行提示,对溢出进行判断以及继续运算和返回菜单的功能。对小数的加减乘数是利用栈来实现的,因此与一般的须分步进行运算的计算器不同,该计算器可直接输入一串关于运算的表达式,并以#结束,可直接输出结果,无需人为的判断优先关系,进行分步运算,因此在运算操作上大大节省了用户的时间,减少了繁琐的步骤。为了使得栈的运用更加灵活,对栈的四则运算也使用了继续运算的功能,并且可在任意位置插入该存储值进行需要的四则运算,这已经使得计算的功能更加完善。唯一的不足是对栈的溢出和错误输出难以判定,所以在输入之前必须仔细检查输入的格式是否正确。N次方的运算是是直接调用库函数实现的。其中设置了一个判断的操作,若是第一次进行运算,需要输入两个数来实现a的b次方;若是原先已有运算结果存储在计算机内,可直接输入一个b,实现a的b次方的运算,通过该操作实现了继续运算的功能,同时对n次方的运算进行了溢出的判断,若是结果小于等于0,则说明一定溢出。阶乘的运算运用的是累乘的原理,从1累乘到n实现阶乘的运算,在控制溢出方面巧妙的应用了上限来判断,由于阶乘的值会很大,对于32位的整形来说,累乘至12就是上限了,只需判断输入的值是否大于12即可。与N次方一样,对阶乘的处理也可以进行继续运算,若是之前的计算结果已有存储值,可直接进行阶乘计算。累加的求和应用了公式(1+n)*n/2进行计算,在控制溢出的方面和N次方相同,对结果值进行判定是否小于等于0,同样的也可以进行继续运算,若是原先已有计算结果的存储将会直接输出累加结果,若是没有存储,需要按照提示输入一个数来实现累加求和。本计算机的结构模拟了一个循环,实则是调用调用函数的嵌套,进入该程序首先展示的是主菜单界面,前四个选项分别为小数的加减乘数运算,N次方运算,阶乘运算,累加运算,该四个运算只可运用与小数的处理。第五个选项为大数的四则运算,可进入大数四则运算的二级菜单,在大数的二级菜单中可以选择大数加法,大数减法,大数乘法和大数除法最高可进行1000位的大数运算。主菜单的第六个选项为退出,该选项有个小小的缺陷,由于该结构的构建运用的是函数的调用,若是反复运算来返于两个菜单之间容易造成循环嵌套,可能在最后退出界面的时候需要输入多次退出才能达到退出的效果,因此在最后的退出时设置了退出的提示,若是选择了该选项还未退出,就需要多次输入该选项。在对小数的运算中需要继续运算,则可进入小数的二级运算菜单,小数的二级菜单里只有小数的四则运算,N次方运算,阶乘运算和累加运算。同样的大数的四则运算也可继续运算,不同的是由于大数运算结构存储困难,并且继续运算意义不大,所以未设置大数的继续运算,但可回到主菜单。运动会分数统计系统丽水学院C语言课程设计总结报告2第二章程序结构2.1程序结构说明该计算器程序大体结构如图2-1所示。程序结构如图所示,通过主菜单可直接进入栈的四则运算,N次方运算,阶乘运算和累加运算;另外也可通过主菜单进入大数菜单的界面,进而选择大数加法运算,大数减法运算,大数乘法运算或大数除法运算。2.2重要数据说明//----------全局变量-----------------intN=0;//作为全局变量使用,用于存储运算结果//----------函数结果状态代码-----------------#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2//用于分配地址空间错误时的返回#defineMN1000//大数的存放位数上限//----------定义函数类型,返回结果状态代码--------typedefintStatus;运动会分数统计系统丽水学院C
本文标题:C语言课程设计总结报告
链接地址:https://www.777doc.com/doc-4436955 .html