C语言课程设计总结报告(2)

2019-06-05 14:49

目录

第一章 系统功能说明 ..................................................................................................................... 1 第二章 程序结构 ............................................................................................................................. 2

2.1程序结构说明 .................................................................................................................. 2 2.2重要数据说明 .................................................................................................................. 2 2.3函数清单 .......................................................................................................................... 3 第三章 使用说明 ........................................................................................................................... 13

3.1安装手册 ........................................................................................................................ 13 3.2使用手册 ........................................................................................................................ 13 第四章 系统设计难点及其解决方法 ........................................................................................... 15

4.1 栈的四则运算 ............................................................................................................... 15 4.2 大数的加减乘除 ........................................................................................................... 15

4.2.1 大数的加法 ..................................................................................................... 15 4.2.2 大数的减法 ..................................................................................................... 15 4.2.3 大数的乘法 ..................................................................................................... 16 4.2.3 大数的除法 ..................................................................................................... 16

第五章 不足之处 ........................................................................................................................... 17

运动会分数统计系统 丽水学院C语言课程设计总结报告

第一章 系统功能说明

本程序可实现简单的计算机功能,对数字进行加减乘除的运算,N次方的运算,阶乘和累加,并能对错误的输入进行提示,对溢出进行判断以及继续运算和返回菜单的功能。

对小数的加减乘数是利用栈来实现的,因此与一般的须分步进行运算的计算器不同,该计算器可直接输入一串关于运算的表达式,并以#结束,可直接输出结果,无需人为的判断优先关系,进行分步运算,因此在运算操作上大大节省了用户的时间,减少了繁琐的步骤。

为了使得栈的运用更加灵活,对栈的四则运算也使用了继续运算的功能,并且可在任意位置插入该存储值进行需要的四则运算,这已经使得计算的功能更加完善。唯一的不足是对栈的溢出和错误输出难以判定,所以在输入之前必须仔细检查输入的格式是否正确。

N次方的运算是是直接调用库函数实现的。其中设置了一个判断的操作,若是第一次进行运算,需要输入两个数来实现a的b次方;若是原先已有运算结果存储在计算机内,可直接输入一个b,实现a的b次方的运算,通过该操作实现了继续运算的功能,同时对n次方的运算进行了溢出的判断,若是结果小于等于0,则说明一定溢出。

阶乘的运算运用的是累乘的原理,从1累乘到n实现阶乘的运算,在控制溢出方面巧妙的应用了上限来判断,由于阶乘的值会很大,对于32位的整形来说,累乘至12就是上限了,只需判断输入的值是否大于12即可。与N次方一样,对阶乘的处理也可以进行继续运算,若是之前的计算结果已有存储值,可直接进行阶乘计算。

累加的求和应用了公式(1+n)*n/2进行计算,在控制溢出的方面和N次方相同,对结果值进行判定是否小于等于0,同样的也可以进行继续运算,若是原先已有计算结果的存储将会直接输出累加结果,若是没有存储,需要按照提示输入一个数来实现累加求和。 本计算机的结构模拟了一个循环,实则是调用调用函数的嵌套,进入该程序首先展示的是主菜单界面,前四个选项分别为小数的加减乘数运算,N次方运算,阶乘运算,累加运算,该四个运算只可运用与小数的处理。第五个选项为大数的四则运算,可进入大数四则运算的二级菜单,在大数的二级菜单中可以选择大数加法,大数减法,大数乘法和大数除法最高可进行1000位的大数运算。主菜单的第六个选项为退出,该选项有个小小的缺陷,由于该结构的构建运用的是函数的调用,若是反复运算来返于两个菜单之间容易造成循环嵌套,可能在最后退出界面的时候需要输入多次退出才能达到退出的效果,因此在最后的退出时设置了退出的提示,若是选择了该选项还未退出,就需要多次输入该选项。在对小数的运算中需要继续运算,则可进入小数的二级运算菜单,小数的二级菜单里只有小数的四则运算,N次方运算,阶乘运算和累加运算。同样的大数的四则运算也可继续运算,不同的是由于大数运算结构存储困难,并且继续运算意义不大,所以未设置大数的继续运算,但可回到主菜单。

1

运动会分数统计系统 丽水学院C语言课程设计总结报告

第二章 程序结构

2.1程序结构说明

该计算器程序大体结构如图2-1所示。

程序结构如图所示,通过主菜单可直接进入栈的四则运算,N次方运算,阶乘运算和累加运算;另外也可通过主菜单进入大数菜单的界面,进而选择大数加法运算,大数减法运算,大数乘法运算或大数除法运算。

2.2重要数据说明

//----------全局变量-----------------

int N=0;//作为全局变量使用,用于存储运算结果

//----------函数结果状态代码----------------- #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0

#define OVERFLOW -2 //用于分配地址空间错误时的返回 #define MN 1000 //大数的存放位数上限

//----------定义函数类型,返回结果状态代码-------- typedef int Status;

2

运动会分数统计系统 丽水学院C语言课程设计总结报告

//-----------定义栈的元素类型------------ typedef int ElemType;

//---------栈的顺序存储表示------------------ #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10

//-----------顺序栈的定义,并定义栈顶和栈底元素----------- typedef struct{ ElemType *base; ElemType *top; int stacksize; }Stack;

2.3函数清单

//--------大数运算基本操作的函数原型说明-----------

1.int Inversion(char *str);//该函数为倒置函数,可引入一个数组将数组中元素倒置存放。

倒置函数如图2-2所示。

2.int numcomp(char *a,char *b);//该函数为字符串大小比较的函数,对个数组中元素进

3

运动会分数统计系统 丽水学院C语言课程设计总结报告

行逐一比较若相等返回0,不然返回第一次出现差异的两数之差。

该函数大体流程如图2-3所示。

3.int carry(char * num);//进位函数,引入数组,利用算法使得原先以ASCII存储的非0~

9的元素以0~9的字符存储。

该函数大体流程如图2-4所示。

4.int abdicate(char *num);//退位函数,引入数组,利用算法使得原先以ASCII存储的非

0~9的元素以0~9的字符存储。

4


C语言课程设计总结报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:土木工程毕业设计计算书和施工组织

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: