引言
根据毕业设计论文——“基于C的简易计算器程序设计”这个课题所需涉及到的知识以及如何用这些知识完成需要达到的任务或目标,我决定将毕业设计论文(以下简称“论文”)分为2章,即
论文内容包括:
●第1章:将大致介绍“基于C的”知识即C语言的基础知识和在本课题中的应用①。
●第2章:根据论文所涉到的具体任务或目标,将介绍如何把第1篇的知识具体应用到“计算器程序设计”中。
对于论文课题的实现,可以大致归纳为以下几个方面的关键词,即
论文相关:
◆设计目的: 设计一个基于C的简易计算器程序,在功能上尽量模拟windows操作系统中的计算器,系统界面不做强制要求。
◆所需知识:全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、选择、循环三种结构及数组、函数、指针和文件的操作,把编程和实际结合起来,对不同的问题运用和灵活选择合适的数据结构以及算法描述,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法。
◆一般步骤: a、确定数据结构 b、确定算法 c、 编程 d、 调试 e、 总结。
◆采用工程模式即模块化,文件包括四个重要组成部分②:
(运算主函数头文件,包括各运算符的操作以及其辅助函数)。
(窗体类的声明头文件)。
(工程初始化文件)。
(代码主文件,包括各空间操作的函数)以及一些其它附属文件,包括dll动态链接库。
◆计算器程序实现功能:在参考了Windows里的计算器以后,决定在我的课程设计中实现:0~9的数字输入功能(小数点除外);实现:加、减、乘、整除、取模、阶乘、位运算左移
、x的y次方、与、异或、x立方、x平方运算功能;二进制、八进制、十进制、十六进制转换功能;正负转换功能;退格、归零等功能。
1说明:由于需要使功能尽量模仿Windows下的计算器,而很多功能要以图形界面实现,故用Borland C++ Builder编写。所以用的是面向对象程序设计。但因为这是C语言的课程设计,所以除了面向对象的使用以外,所有语法都是按照C语言的格式编写。
2说明:这里所说的“四个重要组成部分”即为“程序设计”的核心内容。
第一章
第1节 数据类型、算法描述的简要介绍
第2节 程序的3种基本结构
第3节 数组、函数、指针、文件简要介绍
程序在运行时要做的内容就是处理数据。程序要解决复杂的问题,就要处理不同的数据。不同的数据都是以自己本身的一种特定形式存在的,不同的数据类型占用不同存储空间。C语言中有多种不同的数据类型,其中包括几个大的方向:基本类型、构造类型、指针类型和空类型。
算法包含算法设计和算法分析两方面内容。算法设计主要研究怎样针对某一特定类型的问题设计出求解步骤,算法分析则要讨论所设计出来的算法步骤的正确性和复杂性。对于一些问题的求解步骤,需要一种表达方式,即算法描述。常用的算法描述有自然语言、流程图、N-S流程图等。
顺序结构的语句是自顶向下依次执行的。
选择结构中的语句是根据条件判断来控制执行的。
循环结构中的语句执行是根据判断条件是真是假来控制某些操作是否反复执行。
、函数、指针和文件
数组是用以存储数列中数据的集合。
定义的函数包括函数头和函数体两部分。函数头包括返回值类型、函数名、参数表。函数体包括局部变量的声明和函数的可执行代码。
通过地址能访问指定的内存存储单元,地址可以形象的称为指针。
文件是指一组相关数据的有序集合。
第二章
第1节 具体操作及原理流程图
第2节 文件的四个组成部分即具体实现
具体操作将描述在使用本编程软件对输入的要求以及几种常见的输入情况;原理流程图将描述编程软件的运行机制及其细节。
.1具体操作
数据结构与算法论文,模拟Windows下的计算器功能。基本功能为输入数字,再输入运算符,然后输入运算符对应数字,按等号;输入数字,再输入运算符,输入等于号的结果为“当前输入的数字→运算符→当前输入的数字”,可以调节正负号;输入“数字,运算符,数字,运算符...数字,运算符…”。
.2原理流程图
本章将说明构成本软件的源代码部分即四个重要组成部分:(运算主函数头文件,包括各运算符的操作以及其辅助函数)、(窗体类的声明头文件)、(工程初始化文件)、(代码主文件,包括各空间操作的函数)以及一些其它附属文件。
(运算函数集头文件)
包括实现运算所需的头文件;实现软件各种运算(加、减、乘、除、取模等)的源代码的编程部分。
#include<>
#include<string>
#include<>
#define HIGH struct high
#define MAXN 5000
#define MAXSHOW 40
#define key_num 0
#define key_sym 1
struct high{
int num[MAXN];
};
HIGH ans, actNum, nowShow;
char nowSym = 'N', lastSym = 'N';
bool _isincMed = true, _lastKey = key_num;
int jz = 10;
bool _isbig(HIGH a, HIGH b)
{
int i;
for(i = MAXN - 1; i > 0; i--)
{
if([i] > [i]) return true;
else
if([i] < [i]) return false;
}
return false;
}
void copy(char *str, char *rstr, int op, int len) //将str的从op开始的len个字符复制到rstr中
{
int i = 0, j = op - 1;
for(; i <= len - 1 || str[j] == '\0'; i++, j++) rstr[i] = str[j];
rstr[i] = '\0';
}
void copyint(HIGH num, HIGH *rint, int op, int len) //将str的从op开始的len个字符复制到rstr中
{
int i = 1, j = op;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论