c语言课程设计个人总结.doc
《c语言课程设计个人总结.doc》由会员分享,可在线阅读,更多相关《c语言课程设计个人总结.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c语言课程设计个人总结C语言课程设计总结报告丽水学院C语言课程设计总结报告题目计算器卢敏工学院计算机科学与技术计1616103330127(24)徐明志指导教师院专班学姓成系业级号名绩_七年六月二十二日丽水学院工学院C语言课程设计报告评分表班级:计16学号16103330127(24)姓名:徐明志机器编号:51设计报告格式规范风格统一。102第一章系统功能说明。153作品设计报告4第二章程序结构(程序结构、重要数据说明、函数清单)。35第三章使用说明(安装手册和使用手册完整)。155第四章系统设计难点及其解决方法。156第五章不足之处。10合计表1进度安排表短学期实践综合实验进度表选题名称:运
2、动会分数统计系统班级:计16任课教师:卢敏一、系统设计2021.6.262021.6.27二、系统实现2021.6.272021.6.29三、测试2021.6.92021.6.30学号:16103330127(24)姓名:徐明志表2中期报告表C语言课程设计中期报告(系统设计)选题名称:运动会分数统计系统班级:计16任课教师:卢敏一、题目(问题)描述该计算器主要实现的是四则运算以及N次方的运算阶乘运算和累加运算;其中对溢出需要进行控制对错误的输入进行提示以及对运算结果进行清零或继续运算;另外需要一个列举功能的实现计算器功能的菜单有需要时可设置二级或者三级菜单使条理更加清楚。二、问题分析实现最基本
3、计算器的功能需要进行进行加减乘除的运算这时就有两种思路:一是利用线性关系进行处理将数字进行一次一次的运算这样的运算效果低。二是利用栈进行处理可输入数字的表达式通过栈的工作原理结合人为规定的符号优先级关系进行直接给出答案提高了运算的效率和功能但是运行时的溢出或出错很难进行处理。对一般的小数可进行四则运算之外还需可对大数进行运算这个需要进行独自的算法设计。除此之外就只有阶乘累加和N次方了其中N次方的溢出最难处理需要对两个数进行判断。处理溢出的办法若是进行逐步运算例如对ab两个数进行运算得到结果c想要判断c是否是溢出可以将c与b进行逆运算求值得到d若是a等于d说明运算无误没有溢出反之则溢出。学号:1
4、610333127(24)姓名:徐明志起始时间及计划完成时间:2021.6.262021.6.30三、系统设计1程序总体结构2界面设计界面设计运用了简单的菜单布局设计了二级菜单可以进行随意来返两个菜单之间。菜单第一行都是提示输入信息或进行该菜单的描述后面若干行都是该菜单功能的描述。一级主菜单/_计算器_/_请按照提示进行输入数字_/1.进行加减乘除运算2.N次方运算3.阶乘运算4.累加运算5.大数的加减乘除6.退出小数二级菜单/_请按照提示进行输入数字_/1.N次方运算2.阶乘运算3.累加运算4.清零并返回大数二级菜单/_请按照提示进行输入数字_/1.加法运算2.减法运算3.乘法运算4.除法运
5、算5.返回菜单目录第一章系统功能说明.1第二章程序结构.221程序结构说明.222重要数据说明.223函数清单.3第三章使用说明.1331安装手册.1332使用手册.13第四章系统设计难点及其解决方法.1541栈的四则运算.1542大数的加减乘除.15421大数的加法.15422大数的减法.15423大数的乘法.16423大数的除法.16第五章不足之处.17运动会分数统计系统丽水学院C语言课程设计总结报告第一章系统功能说明本程序可实现简单的计算机功能对数字进行加减乘除的运算N次方的运算阶乘和累加并能对错误的输入进行提示对溢出进行判断以及继续运算和返回菜单的功能。对小数的加减乘数是利用栈来实现的
6、因此与一般的须分步进行运算的计算器不同该计算器可直接输入一串关于运算的表达式并以#结束可直接输出结果无需人为的判断优先关系进行分步运算因此在运算操作上大大节省了用户的时间减少了繁琐的步骤。为了使得栈的运用更加灵活对栈的四则运算也使用了继续运算的功能并且可在任意位置插入该存储值进行需要的四则运算这已经使得计算的功能更加完善。唯一的不足是对栈的溢出和错误输出难以判定所以在输入之前必须仔细检查输入的格式是否正确。N次方的运算是是直接调用库函数实现的。其中设置了一个判断的操作若是第一次进行运算需要输入两个数来实现a的b次方;若是原先已有运算结果存储在计算机内可直接输入一个b实现a的b次方的运算通过该操
7、作实现了继续运算的功能同时对n次方的运算进行了溢出的判断若是结果小于等于0则说明一定溢出。阶乘的运算运用的是累乘的原理从1累乘到n实现阶乘的运算在控制溢出方面巧妙的应用了上限来判断由于阶乘的值会很大对于32位的整形来说累乘至12就是上限了只需判断输入的值是否大于12即可。与N次方一样对阶乘的处理也可以进行继续运算若是之前的计算结果已有存储值可直接进行阶乘计算。累加的求和应用了公式(1+n)_n/2进行计算在控制溢出的方面和N次方相同对结果值进行判定是否小于等于0同样的也可以进行继续运算若是原先已有计算结果的存储将会直接输出累加结果若是没有存储需要按照提示输入一个数来实现累加求和。本计算机的结构
8、模拟了一个循环实则是调用调用函数的嵌套进入该程序首先展示的是主菜单界面前四个选项分别为小数的加减乘数运算N次方运算阶乘运算累加运算该四个运算只可运用与小数的处理。第五个选项为大数的四则运算可进入大数四则运算的二级菜单在大数的二级菜单中可以选择大数加法大数减法大数乘法和大数除法最高可进行1000位的大数运算。主菜单的第六个选项为退出该选项有个小小的缺陷由于该结构的构建运用的是函数的调用若是反复运算来返于两个菜单之间容易造成循环嵌套可能在最后退出界面的时候需要输入多次退出才能达到退出的效果因此在最后的退出时设置了退出的提示若是选择了该选项还未退出就需要多次输入该选项。在对小数的运算中需要继续运算则
9、可进入小数的二级运算菜单小数的二级菜单里只有小数的四则运算N次方运算阶乘运算和累加运算。同样的大数的四则运算也可继续运算不同的是由于大数运算结构存储困难并且继续运算意义不大所以未设置大数的继续运算但可回到主菜单。1运动会分数统计系统丽水学院C语言课程设计总结报告第二章程序结构21程序结构说明该计算器程序大体结构如图2-1所示。程序结构如图所示通过主菜单可直接进入栈的四则运算N次方运算阶乘运算和累加运算;另外也可通过主菜单进入大数菜单的界面进而选择大数加法运算大数减法运算大数乘法运算或大数除法运算。22重要数据说明/-全局变量-intN=0;/作为全局变量使用用于存储运算结果/-函数结果状态代码
10、-#defiRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2/用于分配地址空间错误时的返回#defineMN1000/大数的存放位数上限/-定义函数类型返回结果状态代码-typedefintStatus;2运动会分数统计系统丽水学院C语言课程设计总结报告/-定义栈的元素类型-typedefintElemType;/-栈的顺序存储表示-#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10/-顺序栈的定义并定义栈顶和栈底元素-typedefstructElemType_base;ElemT
11、ype_top;intstacksize;Stack;23函数清单/-大数运算基本操作的函数原型说明-1intInversion(char_str);/该函数为倒置函数可引入一个数组将数组中元素倒置存放。倒置函数如图2-2所示。2intnump(char_a,char_b);/该函数为字符串大小比较的函数对个数组中元素进3运动会分数统计系统丽水学院C语言课程设计总结报告行逐一比较若相等返回0不然返回第一次出现差异的两数之差。该函数大体流程如图2-3所示。3intcarry(char_num);/进位函数引入数组利用算法使得原先以ASCII存储的非09的元素以09的字符存储。该函数大体流程如图2
12、-4所示。4intabdicate(char_num);/退位函数引入数组利用算法使得原先以ASCII存储的非09的元素以09的字符存储。4运动会分数统计系统丽水学院C语言课程设计总结报告该函数大体流程如图2-5所示。5intnumclear(char_num);/清零函数引入数组从第一位开始寻找直到找到第一个不为0的值为止从该值开始向前推进达到清零效果。该函数大体流程如图2-6所示。6intnumadd(char_a,char_b,char_sum);/大数加法引入两个数组需要进行加法的数组以及用来存放其和的空数组。该函数大体流程如图2-7所示。5运动会分数统计系统丽水学院C语言课程设计总结
13、报告7intnumsm(char_a,char_b,char_mul);/大数乘法的主要运算函数引入两个需要进行相乘的数组和一个用于存放其乘积的数组通过b中的第一位与a中的每一位进行相乘从而模拟乘法运算。该函数大体流程如图2-8所示。8intnummul(char_a,char_b,char_mul);/大数乘法引入两个需要进行相乘的数组和一个用于存放其乘积的数组主要通过调用上述函数实现乘法运算。6运动会分数统计系统丽水学院C语言课程设计总结报告该函数大体流程如图2-9所示。9intnumsub(char_a,char_b,char_sub);/大数减法引入两个需要进行相减的数组和一个用于存放
14、其差值的数组求大数除法操作与大数加法类似。该函数大体流程如图2-10所示。7运动会分数统计系统丽水学院C语言课程设计总结报告10intnumdiv(char_a,char_b);/大数除法引入两个需要进行相除的数组进行逐步相减来模拟大数除法。该函数大体流程如图2-11所示。11voidNum_div;/用于调用的大数除法12voidNum_mul;/用于调用的大数乘法13voidNum_sub;/用于调用的大数减法13voidNum_add;/用于调用的大数加法以上四个均为大数算法调用的主要函数其功能就是调用各自的算法进行运算主要功能的函数以在上述说明。14voidAdd;/累加函数该函数大体
15、流程如图2-12所示。8运动会分数统计系统丽水学院C语言课程设计总结报告15voidFactorial;/阶乘函数该函数大体流程如图2-13所示。16voidN_power;/N次方函数该函数大体流程如图2-14所示。/-输出说明函数说明-17voidprint_menu;/主菜单18voidprint_judge;/是否继续运算的判定19voidprintf_state;/大数二级菜单的说明9运动会分数统计系统丽水学院C语言课程设计总结报告/-菜单函数函数说明-20intmain_f;/小数菜单21intmain_m;/大数菜单22intmain_menu;/主菜单23intmain;/主函
16、数菜单函数接程序结构说明中已经详细说明。/-栈的基本操作的函数原型说明-24StatusInitStack(Stack&;S);/构造一个空栈。该函数大体流程如图2-15所示。25StatusGetTop(StackS,ElemType&;e);/取栈顶元素若栈不空则用e返回S的栈顶元素并返回OK否则返回ERROR。该函数大体流程如图2-16所示。26StatusPush(Stack&;S,ElemTypee);/进栈该函数大体流程如图2-17所示。10运动会分数统计系统丽水学院C语言课程设计总结报告27StatusPop(Stack&;S,ElemType&;e);/出栈该函数大体流程如图2
17、-18所示。28StatusShowStack(StackS);/栈的输出引入一个栈进行对栈的输出。该函数大体流程如图2-19所示。29voidArithmetic;/栈的核心算法该函数大体流程如图2-20所示。11运动会分数统计系统丽水学院C语言课程设计总结报告/-In函数-30intIn(charch);/判定输入的符号字符是否为“#”若是#就返回1否则返回0。31charPrecede(chara,charb);/判定运算符栈的栈顶运算符i与读入的运算符j之间优先关系的函数认为定义了一个二维数字将所有字符的两两之间的所有关系以10-12存储起来。32intOperate(inta,cha
18、rf,intb);/栈的四则运算函数引入两个数和一个字符通过switch将两个数进行所读入的符号的运算操作。12运动会分数统计系统丽水学院C语言课程设计总结报告第三章使用说明31安装手册该计算机程序无需安装已由exe运行程序的形式导出只需双击打开并运行即可。主界面有关于功能的提示运行时也有相关的输入提示和错误的提示对界面的跳转和返回也有相关选项说明并且可以随时暂停二级运算回到主界面进行其他功能的选择。32使用手册打开名为计算器.exe的程序进入主界面/_计算器_/_请按照提示进行输入数字_/1.进行加减乘除运算2.N次方运算3.阶乘运算4.累加运算5.大数的加减乘除6.退出主界面有6个选项前四
19、个为小数运算第五个可进入大数运算的菜单选项6为退出程序。选择选项1进行小数四则运算若不是继续运算则会提示“请输入四则运算表达式并以'#'结束”;若为继续运算则提示“请输入四则运算表达式,用于继续运算的值以''代替并以'#'结束”。按照提示输入一串四则运算的表达式并以#结束可直接输出答案。选择选项2进行N次方运算若不是继续运算则会提示“请输入两个数第一个为底数第二个为自变量”;若为继续运算则提示“请输入自变量”按照提示输入一个或两个数即可。若所求值会造成数据溢出则提示“所求N次方过大溢出”。选择选项3进行阶乘运算若不是继续运算则会提示“请输入需要求
20、阶乘的数”;若是继续运算直接对该数进行程序运算。按提示进行操作若所求值会造成数据溢出则会提示“所求阶乘数过大溢出请选择其他功能进行操作”。选择选项4进行累加运算若不是继续运算则会提示“请输入需要求累加的数”;若是继续运算直接对该数进行程序运算。按提示进行操作若所求值会造成数据溢出则会提示“所求累加数过大溢出”。选择选项5进入大数操作的菜单。选择选项6退出该程序若是无法退出。则会提示“请再次输入6来结束程序”按照13运动会分数统计系统丽水学院C语言课程设计总结报告提示操作即可退出程序。对小数操作的过程中运行一次之后会跳出提示“是否进行继续运算(y/n)”按照提示进行输入。、若选择y将会跳转到小数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 个人 总结
限制150内