c 计算器实验报告
c实现计算器课程设计报告
得分:信电工程学院课程设计报告基于VC的表达式计算器软件设计课程:程序设计综合训练1班级:12软嵌2班学号:223姓名:***指导教师:**2013年6 月28日目录1引言------------------------------------------------------------------------------- 1 课题背景-----------------------------------------------------------------2课程设计目的-----------------------------------------------------------32需求分析-------------------------------------------------------------------------5 系统功能模块-----------------------------------------------------------5设计要求-----------------------------------------------------------------63系统实现------------------------------------------------------------------------8 对话框界面设计-------------------------------------------------------8数值计算功能的实现-----------------------------------------------104程序关键代码及运行结果-------------------------------------------------12 5总结与体会------------------------------------------------------------------151 引言课题背景计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具;要实现计算功能,可以用VC++的知识编写程序来解决此问题;该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度;该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用.课程设计目的本课程是一门实践性很强的课程,既要熟练掌握相关概念,又要动手编程,还要上机调试运行;同时,本课程也注重提高学生编写技术文档和技术文档阅读的能力;学生通过本课程的学习实践,将学习和强化软件开发的能力、文档写作能力、英语阅读能力、软件使用能力等;为今后计算机编程的学习和工作打下良好、扎实的理论实践基础;2 需求分析系统功能模块1输入的符号,数字从左向右显示; 点击“=”输出结果,在输出行显示2支持加减乘除运算;3支持“xˆy”的运算;4 括号“”“”的使用;5支持混合运算;6功能键“ANS” ,“CLEAR” ,“BACKSPACE”的使用;7计算器的输入方式:支持鼠标点击计算器键输入;8计算器计算结果的输出方式:在计算器窗口的输出行显示9算数运算的数据类型:整数和浮点数;10特殊情况的计算;11以上所有的运算都是在10进制下进行.1输入的符号,数字从右向左显示;先输入“8”再输入“×”点击“=”输出结果,在输出行显示.2支持加减乘除运算.a.c. 减法计算d.除法运算特殊情况见2)支持求次方x ˆy运算;求次方x ˆy运算:“ˆ”为次方x ˆy在输入行中的显示符号4“”“”的使用;括号的使用要使用“”“”的时候,先点击“”,再输入数字或符号,内容输入完毕以后,点击“”,完成“”“”的所有功能;例如:2×2+2=22+222+222+25支持混合运算;附:运算符的优先级表 优先级 功能键 显示 结合律从 高 到 低、 、 自左向右 x ˆy 、1/x ˆ、~ 自左向右 ×、÷ 、/ 自左向右 ﹢﹣ ﹢﹣自左向右例如:5+2×5=5+256功能键“CLEAR ”及“BACKSPACE ”的使用;a .“CLEAR ”为清0键;只要按下“CLEAR ”键,输入行所有字符清0,输出行回到原始状态; 输入前:5+25输入后:b.“BACKSPACE ”为退格键;当输入任何数字或运算符,只要按下“BACKSPACE ”混合运算则按优先级表中的运算符优先顺序从左向右计算键,字符位自右向左消去一位;注:初始的“0”不能被删除输入前:输入后:C.“ANS”为变量储存器;当一次结果被清除后,个结果;如:按“CLEAR”键后,再按“ANS”键就会这样7计算器的输入方式:只支持鼠标点击计算器键输入;8计算器计算结果的输出方式:在计算器窗口的输出行显示;9算数运算的数据类型:整数和浮点数;a.输入行最大显示的字符数32位,每个运算符算一位;b.“”,“”各占一个字符位;c.输出行最大显示的字符数为32位;d.纯小数显示的最大字符数为小数点后30位,整数及小数点各占一位;若纯小数为负数,则显示最大字符数为小数点后29位,“-”占一位;e.输入行在未输入任何数字的时候,显示“0”,只占一个字符位;当输入任何数字时;“0”消失,输入的的数字取代“0”;当输入任何运算符时;默认之前输入数字“0”;f.点击“=”键后方可显示数字或字母或汉字;10特殊情况的运算A.运算结果整数部分超出32位,显示Infinity无穷大;出现运算异常B.除数为0的情况,提示用户被除数不能为零C.在运算时,若结果为纯小数,小数位超过30位,则超出的字符舍弃;若舍弃超出部位后,结果全为0,则结果为0D.在运算时,若结果的整数位不为0a.总位数在最大字符位内,则直接显示;b.总位数在最大字符位以外,整数部分在最大字符位以内,则只优先显示整数部位,弃掉32位以后的字符E.当用户输入“^0”时,若“^0”之前的算式或数字的值为0,点击“=”后,输出界面显示“底数不能为0”11)以上所有的运算都是在10进制下进行设计要求1 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2 理解需求分析过程,掌握需求分析文档编写;3 理解面向对象程序设计的基本思路和方法;4 掌握用VC++开发MFC应用程序的一般步骤和方法;5 掌握基于对话框的应用程序的编写,主要包括文本框和按钮等;6 掌握后缀表达式算法;7 掌握VC++开发工具的使用;包括资源管理,项目创建,运行调试等;8 完成表达式的计算器应用程序,实现基本的加、减、乘、除等四则运算,且支持包括括号的表达式运算功能;3系统实现对话框界面设计数值计算实现例如:2×2+2=2222+222+222+284程序关键代码及运行结果include <iostream>include <string>include ""include <cmath>using namespace std;bool jisuandouble a,double b,char c,double& d{switch c{case '+':d=a+b;"using namespace std;ifdef _DEBUGdefine new DEBUG_NEWendifvoid CCompuetrDlg::OnPaint{if IsIconic{CPaintDC dcthis; // 用于绘制的设备上下文SendMessageWM_ICONERASEBKGND, reinterpret_cast<WPARAM>, 0;// 使图标在工作矩形中居中int cxIcon = GetSystemMetricsSM_CXICON;int cyIcon = GetSystemMetricsSM_CYICON;CRect rect;GetClientRect▭int x = - cxIcon + 1 / 2;int y = - cyIcon + 1 / 2;// 绘制图标x, y, m_hIcon;}else{CRect rect;CPaintDC dcthis;GetClientRectrect;rect,RGB255,0,0;//设置背景颜色CDialog::OnPaint;CDialog::OnPaint;}}// : 定义应用程序的类行为;//include ""include ""include ""ifdef _DEBUGdefine new DEBUG_NEWendif// CCompuetrAppBEGIN_MESSAGE_MAPCCompuetrApp, CWinAppON_COMMANDID_HELP, CWinApp::OnHelpEND_MESSAGE_MAP// CCompuetrApp 构造CCompuetrApp::CCompuetrApp{// TODO: 在此处添加构造代码,// 将所有重要的初始化放置在InitInstance 中}// 唯一的一个CCompuetrApp 对象CCompuetrApp theApp;// CCompuetrApp 初始化BOOL CCompuetrApp::InitInstance{// 如果一个运行在Windows XP 上的应用程序清单指定要// 使用版本6 或更高版本来启用可视化方式,//则需要InitCommonControls;否则,将无法创建窗口;InitCommonControls;CWinApp::InitInstance;// 标准初始化// 如果未使用这些功能并希望减小// 最终可执行文件的大小,则应移除下列// 不需要的特定初始化例程// 更改用于存储设置的注册表项// TODO: 应适当修改该字符串,// 例如修改为公司或组织名SetRegistryKey_T"应用程序向导生成的本地应用程序";CCompuetrDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = ;if nResponse == IDOK{// TODO: 在此放置处理何时用“确定”来关闭//对话框的代码}else if nResponse == IDCANCEL{// TODO: 在此放置处理何时用“取消”来关闭//对话框的代码}// 由于对话框已关闭,所以将返回FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵;return FALSE;}//stackinclude<iostream>include<string>include<new>using namespace std;template <class T>class LinkedStack;template <class T>class Node{friend LinkedStack<T>; private:T data;Node<T> link;};template <class T>class LinkedStack{public:LinkedStack{top=0;length=0;}~LinkedStack;bool isEmptyconst{return top==0;}bool isFullconst;T Top const;LinkedStack<T>&Addconst T& x;LinkedStack<T>&DeleteT& x;int getLength{return length;} private:Node<T> top;int length;};template <class T>LinkedStack<T>::~LinkedStack{Node<T> next;whiletop{next=top->link;delete top;top=next;}}template <class T>bool LinkedStack<T>::isFullconst{try{Node<T> p=new Node<T>;delete p;return false;}catchbad_alloc& e{return true;}}template <class T>T LinkedStack<T>::Topconst{ifisEmptythrow CString"堆栈空异常";return top->data;}template <class T>LinkedStack<T>& LinkedStack<T>::Addconst T& x {Node<T> p=new Node<T>;p->data=x;p->link=top;top=p;length++;return this;}template <class T>LinkedStack<T>& LinkedStack<T>::DeleteT& x {ifisEmptythrow CString"堆栈空异常";x=top->data;Node<T> p=top;top=top->link;delete p;length--;return this;}5总结与体会计算器虽然是我们生活中常见的一样工具,但不知道实现这样一个工具,说实话不是很简单,对于我这个学习一般的人来说,很难计算器虽小,但包含了一些简单却又重要的功能,包括加减乘除,次方,括号等一些基本功能,它方便了大众的日常生活中遇到的计算问题;完成这个任务,说实话很艰难,但挺了过来,坚持了过来,所谓凡事贵在坚持,所以要学会坚持,坚持就是胜利;一个人的力量是有限的,学会与人合作,积极请教他人谦虚学习是必要的,它只会让你更加的进步,会更好;所以这个任务让我学到了很多,坚持,努力,合作,进取,积极向上,天下无难事,只要肯用心。
c课程设计计算器报告
c 课程设计计算器报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,熟练使用C语言进行程序设计。
具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法,包括数据类型、运算符、控制结构、函数等。
2.技能目标:学生能够使用C语言编写简单的程序,解决实际问题。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力。
二、教学内容教学内容主要包括C语言的基本语法和程序设计的基本方法。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点。
2.第二章:数据类型和运算符,学习C语言的基本数据类型和运算符。
3.第三章:控制结构,学习C语言的条件语句和循环语句。
4.第四章:函数,学习C语言的函数定义和调用。
5.第五章:数组和字符串,学习C语言的数组和字符串操作。
6.第六章:指针,学习C语言的指针概念和应用。
7.第七章:结构体和文件,学习C语言的结构体和文件操作。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解C语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生理解C语言的应用。
3.实验法:安排实验课程,让学生动手编写C语言程序。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。
具体安排如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程任务等。
3.考试:占课程总评的40%,包括期中考试和期末考试。
评估方式要求客观、公正,能够全面反映学生的学习成果。
我们将根据学生的实际情况,及时给予反馈,帮助学生提高。
六、教学安排本课程的教学进度安排如下:1.每周一次课,每次课2小时。
C语言实验报告范文
C语言实验报告范文一、实验目的本实验旨在通过实际操作和编程,加深对C语言的理解和掌握,同时提高解决实际问题的能力。
二、实验内容1.利用C语言设计一个简单的计算器程序,实现简单的四则运算功能。
2.利用C语言设计一个简单的学生信息管理系统,实现添加、删除、修改和查询学生信息的功能。
三、实验步骤和代码实现1.计算器程序的设计与实现(1) 定义一个函数addition,传入两个参数,实现两数相加。
(2) 定义一个函数subtraction,传入两个参数,实现两数相减。
(3) 定义一个函数multiplication,传入两个参数,实现两数相乘。
(4) 定义一个函数division,传入两个参数,实现两数相除。
(5)在主函数中,通过用户的输入选择所需进行的运算,并输出结果。
代码如下:```C#include <stdio.h>float addition(float a, float b)return a + b;float subtraction(float a, float b)return a - b;float multiplication(float a, float b)return a * b;float division(float a, float b)if (b == 0)printf("Divisor cannot be zero!\n");return 0;}return a / b;int maiint choice;float num1, num2;printf("Please enter two numbers: ");scanf("%f%f", &num1, &num2);printf("Please choose the operation (1:addition, 2:subtraction, 3:multiplication, 4:division): ");scanf("%d", &choice);switch (choice)case 1:printf("The result is: %.2f\n", addition(num1, num2)); break;case 2:printf("The result is: %.2f\n", subtraction(num1, num2)); break;case 3:printf("The result is: %.2f\n", multiplication(num1, num2)); break;case 4:printf("The result is: %.2f\n", division(num1, num2)); break;default:printf("Invalid choice!\n");break;}return 0;```2.学生信息管理系统的设计与实现(1) 定义一个结构体Student,包含学生的姓名、学号、年龄等信息。
c语言程序设计课程计算器设计报告
课程设计实验报告题目 C/C++语言程序设计所在院系信息学院专业计算机科学与技术班级 12级计科班学生指导教师2014年9月24 日程序设计流程图:源代码:#include <stdio.h>#include<math.h> #include <stdlib.h>void fun1(){printf("\t\t\t*****************************\n");printf("\t\t\t$ 欢迎使用计算器 $\n");printf("\t\t\t$ $\n");printf("\t\t\t$ 1.加法 $\n");printf("\t\t\t$ 2.减法 $\n");printf("\t\t\t$ 3.乘法 $\n");printf("\t\t\t$ 4.除法 $\n");printf("\t\t\t$ 5.乘方 $\n");printf("\t\t\t$ 6.开方 $\n");printf("\t\t\t$ 7.八进制转换 $\n");printf("\t\t\t$ 8.十六进制转换 $\n");printf("\t\t\t$ 9.退出 $\n");printf("\t\t\t$ $\n");printf("\t\t\t*****************************\n");}void fun2(float x,float y,int c){float z;int n,i;switch(c){case 1: z=x+y;printf("结果:%g+%g=%g\n",x,y,z);break; case 2: z=x-y;printf("结果:%g-%g=%g\n",x,y,z);break; case 3: z=x*y;printf("结果:%g*%g=%g\n",x,y,z);break; case 4: if(y==0)printf("错误!");else{z=x/y;printf("结果:%g/%g=%g\n",x,y,z);}break; case 5: n=x;for(i=1;i<y;i++){x=x*n;}printf("结果:%g\n",x);break;default:printf("请重新输入!");}}void fun3(float x,int c){float z;switch(c){case 6:if(x<0)printf("错误!");else{z=sqrt(x);printf("结果:%g\n",z);}break;default:printf("请重新输入!");}}void convert(int m,int c){char s[128];switch(c){case 7:printf("结果:%o\n",m);break;case 8:printf("结果:%x\n",m);break;default:printf("请重新输入!");}}void main(){for(;;){float x,y,z;int c,m;char h;fun1();printf("请选择运算:\n");printf("1\n2\n3\n4\n5\n6\n7\n8\n9\n"); printf("请输入运算方式前面的数字:\n");scanf("%d",&c);if(c==1||c==2||c==3||c==4||c==5){printf("输入两个数:");scanf("%f%f",&x,&y);fun2(x,y,c);}if(c==6){printf("输入一个数:");scanf("%f",&x);if(x<0)printf("错误!");elsefun3(x,c);}if(c==7||c==8){printf("输入一个数:");scanf("%d",&m);convert(m,c);}if(c==9){printf("<<<<<<<<<谢谢使用!>>>>>>>>>\n");} if(c>='a' && c<='z')printf("没有这个选择!\n");if(c>='A' && c<='Z')printf("没有这个选择!\n");}}。
大学计实验报告算机
大学计实验报告算机一、引言计算机实验是大学计算机专业主要的实践环节之一,旨在培养学生动手能力和解决实际问题的能力。
本实验报告将介绍我在大学计算机实验课程中进行的一项实验项目,以及实验过程中的设计思路、实验方法和实验结果等。
二、实验目的本次实验的目的是设计一个简单的计算器程序,实现基本的四则运算功能。
通过这个实验,我们将学习和掌握编程语言中的基本语法、算法设计和软件开发流程等知识。
三、实验环境和工具本次实验的环境是使用C++编程语言,在Windows操作系统下进行开发。
我们使用了Visual Studio代码编辑器和编译器。
四、实验内容我们的计算器程序需要满足以下要求:1.可以进行两个整数之间的加、减、乘、除运算;2.能够处理异常输入,例如除数为0;3.对用户的输入进行合法性检查,确保输入的是数字或者合法的运算符;4.提供友好的用户界面,即使是非技术人员也能够使用;5.可以进行多次计算,直到用户主动选择退出。
五、实验设计为了实现上述要求,我们按照以下步骤进行实验设计:1.设计程序的整体架构,确定分为输入、处理和输出三个模块;2.编写输入模块的代码,读取用户的输入并进行合法性检查;3.编写处理模块的代码,根据用户输入的运算符进行相应的运算;4.编写输出模块的代码,将计算结果显示在用户界面上;5.测试程序是否能够正确处理各种输入情况,并进行错误输入的异常处理。
六、实验步骤1.创建一个新的C++项目,并设置好相关的编译选项;2.编写程序的主要逻辑,包括输入、处理和输出模块;3.编写输入模块的代码,根据用户的输入进行合法性检查;4.编写处理模块的代码,根据运算符进行相应的运算;5.编写输出模块的代码,打印出计算结果;6.进行功能测试和异常输入测试,确保程序的正确性和鲁棒性;7.对程序进行性能测试,评估程序的性能。
七、实验结果经过多次测试和调试,我们的计算器程序能够正确处理各种输入情况,并能够返回正确的计算结果。
C课程设计简易计算器实验报告
《程序设计基础》(C++)课程设计报告计算器姓名:班级:学号:指导教师:成绩:完成时间:完成地点:计算器1 基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。
可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。
同时包含清除功能。
2 设计思路如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit 传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。
若点击的是单目运算符,则直接对其处理得出结果。
若点击清零,则m_edit等于0。
设计思路流程图如下(见下页)。
图1 计算器设计思路总流程图3 软件设计3.1 创建步骤打开Microsoft Visual C++ 6.0,选择新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名Calculator及其所在位置。
将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成。
MFC AppWizard建立基于对话窗口的程序框架。
3.2 界面设计1、创建控件在对话框上的合适的位置画出编辑框和下压式按钮。
如图2所示。
图2 绘制编辑框在按钮和编辑框属性对话框中输入控件的ID值和标题属性。
如图3所示。
图3 Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。
表1 各对象属性对象ID 标题或说明编辑框IDC_EDIT1 结果显示按钮IDC_BUTTON0 0按钮IDC_BUTTON1 1按钮IDC_BUTTON2 2按钮IDC_BUTTON3 3按钮IDC_BUTTON4 4按钮IDC_BUTTON5 5按钮IDC_BUTTON6 6按钮IDC_BUTTON7 7按钮IDC_BUTTON8 8按钮IDC_BUTTON9 9按钮IDC_ BUTTONneg +/-按钮IDC_ BUTTONpot .按钮IDC_ BUTTONadd +按钮IDC_BUTTONsub -按钮IDC_BUTTONmul *按钮IDC_BUTTONdiv /按钮IDC_BUTTONsqrt sqrt按钮IDC_BUTTONCE CE完成后界面如图4所示。
c简单计算器课程设计报告
c 简单计算器 课程设计报告一、课程目标知识目标:1. 让学生掌握简单计算器的基本功能,包括加、减、乘、除等四则运算。
2. 使学生理解计算器操作规则,如先算乘除后算加减、括号的作用等。
3. 帮助学生掌握计算器上的其他功能键,如清除、取反、百分比等。
技能目标:1. 培养学生运用计算器进行四则运算的能力,提高计算速度和准确性。
2. 培养学生运用计算器解决实际问题的能力,如购物找零、计算面积等。
3. 培养学生通过观察、思考、提问等方式,发现计算器使用过程中的问题,并尝试解决。
情感态度价值观目标:1. 培养学生对待计算器等电子设备的正确态度,爱护设备,遵守使用规范。
2. 培养学生在合作学习中互相帮助、共同进步的精神,增强团队意识。
3. 通过计算器教学,激发学生对数学学科的兴趣,提高学生的自信心和自主学习能力。
本课程针对年级学生的特点,注重培养学生的学习兴趣和实践能力。
课程性质为实践操作类,强调学生在动手实践中掌握知识。
在教学过程中,教师需关注学生的学习需求,及时调整教学策略,确保学生能够达到课程目标。
课程目标分解为具体学习成果,以便于后续教学设计和评估。
在教学结束后,学生应能独立使用计算器完成四则运算,解决实际问题,并在学习过程中培养良好的情感态度和价值观。
二、教学内容1. 计算器基本结构认知:让学生了解计算器各部分名称及其功能,如数字键、运算符号键、等于键、清除键等。
2. 四则运算操作方法:教学加、减、乘、除四则运算的计算器操作方法,以及运算顺序和括号的使用。
- 加法和减法运算- 乘法和除法运算- 混合运算及括号应用3. 计算器其他功能键使用:介绍取反、百分比、开方等特殊功能键的操作方法。
4. 实践应用:设计实际应用场景,让学生运用计算器解决购物找零、计算面积、计算速度等问题。
- 购物找零问题- 长度、面积、体积计算- 速度、时间、路程计算教学内容参考教材相关章节,结合课程目标进行整合。
教学大纲安排如下:第一课时:计算器基本结构认知、四则运算操作方法(加法和减法运算)第二课时:四则运算操作方法(乘法和除法运算)第三课时:四则运算操作方法(混合运算及括号应用)第四课时:计算器其他功能键使用第五课时:实践应用(购物找零问题)第六课时:实践应用(长度、面积、体积计算)第七课时:实践应用(速度、时间、路程计算)教学内容注重科学性和系统性,确保学生能够循序渐进地掌握计算器的使用方法,并在实际应用中巩固所学知识。
C#计算器
C#计算器实验报告班级:2010134学号:201013424姓名:夏慷一实验目的:构造一个类似Windows自带的计算器一样的简易计算器,能够连续进行加、减、乘、除四则整数运算,并能随时清除计算结果进行下一次计算。
二设计思路1.创建主体框架:建立程序的主要界面后,系统自动生成界面的主要窗口生成代码。
对于每个按钮的的代码段中,分别添加事件触发的处理代码。
设置一个textBox,显示运算结果。
2.数字1-9,小数点,运算符号的按键的事件处理都是在textBox1中分别添加相对应的数字字符,把数字当成是字符串处理。
用赋值语句进行添加。
每次点击后textBox1的显示内容变为一个新的表达式。
3.四则运算时采用compute方法直接计算表达式。
该方法功能强大,优先级和运算规则皆宜考虑在内。
但是上次计算的结果不能直接运算,利用括号的作用排除了这一问题。
三设计界面四详细代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace计算器{public partial class Form1 : Form{public Form1(){InitializeComponent();}double num1, num2, result;bool decimalFlag = false;string myOperator;public void NumClick(int myNumber){if (decimalFlag){txtReadout.Text = txtReadout.Text+myNumber;}else{if (txtReadout.Text == "0."){txtReadout.Text = myNumber + ".";}else{txtReadout.Text = txtReadout.Text.Substring(0, txtReadout.Text.Length - 1) + myNumber + ".";}}}private void Form1_Load(object sender, EventArgs e) {txtReadout.Text = "0.";txtReadout.TextAlign = HorizontalAlignment.Right; }private void btnNum0_Click(object sender, EventArgs e) {NumClick(0);}private void btnNum1_Click(object sender, EventArgs e) {NumClick(1);}private void btnNum2_Click(object sender, EventArgs e) {NumClick(2);}private void btnNum3_Click(object sender, EventArgs e) {NumClick(3);}private void btnNum4_Click(object sender, EventArgs e) {NumClick(4);}private void btnNum5_Click(object sender, EventArgs e) {NumClick(5);}private void btnNum6_Click(object sender, EventArgs e) {NumClick(6);}private void btnNum7_Click(object sender, EventArgs e) {NumClick(7);}private void btnNum8_Click(object sender, EventArgs e) {NumClick(8);}private void btnNum9_Click(object sender, EventArgs e) {NumClick(9);}private void btnDot_Click(object sender, EventArgs e) {decimalFlag = true;}private void btnC_Click(object sender, EventArgs e) {num1 = 0;num2 = 0;txtReadout.Text = "0.";decimalFlag = false;}private void btnAdd_Click(object sender, EventArgs e) {myOperator = "add";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnSub_Click(object sender, EventArgs e) {myOperator = "Sub";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnMul_Click(object sender, EventArgs e) {myOperator = "Mul";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnDiv_Click(object sender, EventArgs e) {myOperator = "Div";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnAmount_Click(object sender, EventArgs e) {num2 = double.Parse(txtReadout.Text);switch (myOperator){case"add":result = num1 + num2;txtReadout.Text = result.ToString();break;case"Sub":result = num1 - num2;txtReadout.Text = result.ToString();break;case"Mul":result = num1 * num2;txtReadout.Text = result.ToString();break;case"Div":if (num2 == 0){txtReadout.Text = "除数不能为0!";}else{result = num1 / num2;txtReadout.Text = result.ToString();}break;}}}}五实验感想首次亲自做出一个计算器,感觉颇有成就感。
计算器c语言报告
题目一:计算器1.实验目的和意义:利用c语言编写简易计算器,使我们更加熟练的掌握c语言及软件开发的基本步骤。
该课题设计对学生来说 是对这一学期有关c语言学习的一个评估 是将c语言应用于生活中 提高学生的动手能力。
该课题有利于让学生将课本上学习的零散的知识融会贯通、综合运用、强化知识体2.实验内容:了解用户需求,小组讨论算法,编写程序,调试程序,漏洞修复及报告设计3.小组成员分工:小组讨论算法:全体成员编写程序:樊义,高杰林调试程序:曹仲生漏洞修复及报告设计:陈伟杰4.设计要点:字符串内提取数字,加减乘除优先级,能够识别简单的错误算式5.源程序://不包含括号,纠错能力不够,#include "stdio.h"double z(char c[100],int *i){int w=0,d=0;double s=0;while(c[*i]>='0'&&c[*i]<='9') {w++;*i=*i+1;}if(c[*i]=='.'){*i=*i+1;while(c[*i]>='0'&&c[*i]<='9'){w++;d++;*i=*i+1;}}while(w>0){int t=1;for(int tem=w;tem>1;tem--)t=t*10;if(w>d&&d>0)s=s+t*(c[*i-w-1]-'0');elses=s+t*(c[*i-w]-'0');w--;}//printf("整数型num=%3.5f\t",s);if(d>0)for(int temp=0;temp<d;temp++){s=s/10.0;printf("小数型num=%3.5f\t",s);} //printf("函数内%d\t",*i);//printf("小数型num=%3.5f\t",s);return s;}void main(){start:char c[100],a[100];double s[100],num;int i=0,j=0,k=0;printf("输入需要运算的式子(仅加减乘除,且不包含括号,负数,不需输入等号):");reput: scanf("%s",c);i=0,j=0,k=0;int *p=&i;done: switch(c[i]){case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':{num=z(c,p);goto done;}case '*':{i++;num=num*z(c,p);goto done;}case '/':{i++;num=num/z(c,p);goto done;}case'+':{s[j]=num;a[k]=c[i];j++;i++,k++;if(c[i]>='0'&&c[i]<='9')goto done;else {printf("输入错误!请重输:");num=0;goto reput;}} case'-':{s[j]=num;a[k]=c[i];j++;i++,k++;if(c[i]>='0'&&c[i]<='9')goto done;else {printf("输入错误!请重输:");num=0;goto reput;}} case '\0':if(i!=0){s[j]=num;a[k]=c[i];break;}else printf("输入错误!请重输:");num=0;goto reput;default:printf("输入错误!请重输:");num=0;goto reput;}//for(int n=0;n<j;n++)// printf("%f%c",s[n],a[n]);//printf("%f\n",s[j]);if(a[k]=='\0'){j=0;k=0;num=s[0];//printf("已执行!");add: switch(a[k]){case '+':{num=num+s[++j];k++;goto add;}case '-':{num=num-s[++j];k++;goto add;}default:break;}}printf("式子的结果为:%f\n",num);printf("是否继续计算<y/n>.......");char tmp;scanf("%s",&tmp);if(tmp=='y')goto start;}6.小结:。
c计算器实验报告
c计算器实验报告C计算器实验报告引言:计算器是我们日常生活中常见的工具之一。
无论是在学习、工作还是生活中,我们都会频繁地使用计算器来进行各种数学运算。
而随着科技的不断发展,计算器也在不断地演化和改进。
本实验旨在通过对C计算器的研究和实验,深入了解计算器的原理和功能,并对其进行性能测试和评估。
一、背景介绍计算器是一种用于进行数学运算的设备或工具。
它可以进行基本的四则运算,如加减乘除,以及更复杂的科学运算,如三角函数、指数和对数等。
计算器的发展历史可以追溯到早期的机械计算器,如阿贝尔计算器和帕斯卡计算器。
而现代计算器则采用电子技术,通过电子元件和芯片来实现计算功能。
二、C计算器的原理和功能C计算器是一种基于C语言开发的计算器软件。
它通过编写程序来实现各种数学运算和功能。
C语言是一种通用的高级编程语言,具有强大的计算能力和灵活的语法结构。
C计算器利用C语言的特性,可以实现复杂的数学运算和逻辑判断。
C计算器具有以下主要功能:1.基本运算:C计算器可以进行加减乘除等基本的四则运算。
用户只需输入相应的表达式,C计算器会自动计算并给出结果。
2.科学运算:C计算器支持各种科学运算,如三角函数、指数和对数等。
用户可以通过特定的函数调用来实现这些功能。
3.变量和常量:C计算器可以定义和使用变量和常量。
用户可以将某个数值赋给一个变量,并在后续的计算中使用这个变量。
4.条件判断:C计算器支持条件判断语句,用户可以根据不同的条件执行不同的操作。
这使得C计算器具有一定的逻辑判断能力。
5.循环结构:C计算器可以实现循环结构,用户可以通过循环语句重复执行某个操作,从而简化计算过程。
三、C计算器的性能测试和评估为了评估C计算器的性能,我们进行了一系列的测试。
首先,我们测试了C计算器进行基本运算的速度。
通过输入大量的基本运算表达式,我们测量了C计算器的响应时间和计算速度。
结果显示,C计算器的运算速度非常快,几乎可以瞬间完成复杂的运算。
c简单计算器-课程设计报告
2016-2017年第二学期《高级语言程序设计》课程设计报告题目:简单计算器专业:网络工程班级:16级网工3班姓名:代应豪指导教师:**成绩:计算机学院2017年4月25日目录一.设计内容及要求 (3)1.内容 (3)2.要求 (3)二、系统流程图 (4)三、源程序代码 (5)四、运行结果 (13)五、计算器的使用 (15)六、设计结果与分析 (15)七、心得与体会 (16)计算机学院《高级语言程序设计》课程设计报告一.设计内容及要求1.内容利用本学期所学的《C语言程序设计》课程,运用相关知识,查阅相关资料,编写C语言程序,设计一个简单计算器,要求编写的简单计算器能够模拟windows系统的计算器,用户能够用键盘输入相关数据,能够进行简单的加、减、乘、除运算,并且在程序运行过程中能够正常的退出程序。
在计算器程序运行中,输入数据时如果遇到输入错误的情况,能够能过键盘上的退格键进行删除,并且重新输入正确的数据。
在数据输入完成后,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行清零,并为下一次运算作准备。
2.要求运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时用户能利用键盘或鼠标进行相应操作。
程序基本功能要求实现完整,并有简单的验证。
程序还须有符合标准的程序设计报告。
二、系统流程图三、源程序代码#include<stdio.h> #include<math.h> #include<malloc.h>计算机学院《高级语言程序设计》课程设计报告double jisuan(char a[]){int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;char nibo[50],zhan2[50];double x,n,l,z=0,zhan3[50];typedef struct{double d1;int d2;}dd;typedef struct{dd data[50];int top;}zhan1;zhan1 *shu;shu=(zhan1 *)malloc(sizeof(zhan1));shu->top=0;while(a[i]!='\0'){if(a[i]>='0'&&a[i]<='9'){z=0;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){z=z*10+a[k]-'0';}j=j+1;x=z;if(a[j]=='.'){l=1;i=j+1;j=i+1;while(a[j]>='0'&&a[j]<='9') {j++;}j--;for(k=i;k<=j;k++){n=pow(0.1,l);l=l+1;x=x+n*(a[k]-'0');}i=j+1;}else i=j;shu->data[++shu->top].d1=x;计算机学院《高级语言程序设计》课程设计报告shu->data[shu->top].d2=++cnt;nibo[++t1]='0'+shu->data[shu->top].d2;nibo[t1+1]='\0';}else if(a[i]=='('){zhan2[++t2]=a[i];i++;}else if(a[i]==')'){j=t2;while(zhan2[j]!='('){nibo[++t1]=zhan2[j];nibo[t1+1]='\0';j--;}t2=j-1;i++;}else if(a[i]=='+'){while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='-'){if(a[i-1]=='$'){a[0]='0';i=0;}else if(a[i-1]=='('){a[i-1]='0';a[i-2]='(';i=i-2;t2--;}else{while(t2>0&&zhan2[t2]!='(') {nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}else if(a[i]=='*'||a[i]=='/')计算机学院《高级语言程序设计》课程设计报告{while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='#') {nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='^'||a[i]=='#'){while(zhan2[t2]=='^'||zhan2[t2]=='#'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}while(t2>0){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}j=1;t3=0;while(j<=t1){if(nibo[j]>='0'&&nibo[j]!='^'&&nibo[j]!='#') {for(i=1;i<=shu->top;i++){if((int)(nibo[j]-'0')==shu->data[i].d2){m=i;break;}}zhan3[++t3]=shu->data[m].d1;}else if(nibo[j]=='+'){zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];t3--;}else if(nibo[j]=='-'){zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];t3--;}else if(nibo[j]=='*'){zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];计算机学院《高级语言程序设计》课程设计报告{zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];t3--;}else if(nibo[j]=='^'){zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);t3--;}else if(nibo[j]=='#'){zhan3[t3]=sqrt(zhan3[t3]);}j++;}return zhan3[t3];}void main(){for(;;){char x,a[50];double jieguo;int i=0;a[0]='$';printf("#表示开方,^表示乘方(支持负数)\n");printf("请输入表达式无需输入=号直接回车可输出答案退出请输入q\n\n");scanf("%c",&x);if(x=='q')break;while(x!='\n'){a[++i]=x;scanf("%c",&x);}a[i+1]='\0';jieguo=jisuan(a);printf("\n");printf("结果为:%lf",jieguo);printf("\n\n\n");printf("退出请输入q继续请直接输入\n\n");}} 四、运行结果计算机学院《高级语言程序设计》课程设计报告五、计算器的使用加法:输入一个数,按“+”,输入被加数,按“=”,输出结果。
c计算器实验报告
c计算器实验报告
《C计算器实验报告》
摘要:
本实验旨在通过使用C语言编写一个简单的计算器程序,以加深对C语言基本语法和数据类型的理解。
实验结果表明,通过合理的程序设计和编码,可以实现一个功能完善的计算器程序,为进一步学习和应用C语言打下良好的基础。
1. 实验目的
通过设计和编写一个简单的计算器程序,加深对C语言基本语法和数据类型的理解,提高编程能力和解决问题的能力。
2. 实验内容
(1)了解计算器的基本功能和运算规则;
(2)设计计算器程序的功能模块;
(3)使用C语言编写计算器程序;
(4)测试和调试计算器程序;
(5)分析程序运行结果。
3. 实验步骤
(1)确定计算器程序的基本功能,包括加、减、乘、除等运算;
(2)设计程序的基本结构,包括输入模块、运算模块和输出模块;
(3)使用C语言编写程序代码,包括变量定义、输入输出语句和运算逻辑;(4)测试程序,输入不同的数据进行计算,观察程序的运行结果;
(5)根据测试结果,对程序进行调试和优化。
4. 实验结果
通过实验,成功设计和编写了一个简单的计算器程序。
程序能够正确地进行加、减、乘、除等运算,并能够处理输入错误的情况,保证程序的稳定性和健壮性。
5. 实验总结
通过本次实验,深入理解了C语言的基本语法和数据类型,掌握了程序设计和
编码的基本技能。
同时,也体会到了程序设计的重要性和编程过程中的挑战与
乐趣。
希望通过不断的实践和学习,能够进一步提高编程能力,为今后的学习
和工作打下坚实的基础。
c 实验报告
c 实验报告C实验报告一、实验目的通过本次实验,我将学会使用C语言编写一个简单的计算器程序,进一步掌握C语言的变量和运算符的使用方法,提高自己的编程能力。
二、实验内容本次实验要求编写一个计算器程序,具有以下功能:1. 实现基本的加、减、乘、除四则运算;2. 可以进行整数和浮点数运算;3. 用户输入数字和运算符后,计算并显示结果。
三、实验步骤1. 首先,声明并定义一个函数,用于进行四则运算。
函数的参数有两个数和一个运算符,返回值为计算的结果。
2. 在主函数中,通过用户输入实现接收数字和运算符的功能,并将其赋值给变量num1、num2和op。
3. 调用之前定义的函数,将num1、num2和op作为参数传递给该函数,获得计算结果并赋值给变量result。
4. 输出计算结果。
四、实验源代码及结果```c#include <stdio.h>float calculate(float num1, float num2, char op) {float result;switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 == 0) {printf("Error: Dividing by zero is not allowed.\n"); return 0;}result = num1 / num2;break;default:printf("Error: Invalid operator.\n");return 0;}return result;}int main() {float num1, num2, result;char op;printf("Please enter the first number: ");scanf("%f", &num1);printf("Please enter the operator (+, -, *, /): ");scanf(" %c", &op);printf("Please enter the second number: ");scanf("%f", &num2);result = calculate(num1, num2, op);printf("The result is: %.2f\n", result);return 0;}```运行结果:Please enter the first number: 5.5Please enter the operator (+, -, *, /): *Please enter the second number: 2.0The result is: 11.00五、实验总结通过本次实验,我学会了使用C语言编写一个简单的计算器程序,提高了自己的编程能力。
c语言版计算器实验报告
3、若某个数字是负数,如果直接输入,结果是错误的,但如果变为零减去该数字的绝对值的话或者把两数的顺序更改一下,显示的是正确的结果,如(6)、(7)、(9)、(10)、(11)做的结果。
4、有时候会出现一些不精确的显示结果,如(4)中显示多的是0.000002,这是由于在C语言的定义时,系统所产生的结果,与算法无关。
else if(b=='#') return('=');
else return('<');
}
}
}
float Operate(float a,char theta,float b)//计算两个数的结果的函数
{
float z;
switch(theta){
case '+':z=a+b;break;
case '-':z=a-b;break;
fe=float(e);
for(i=1;i<=j;i++)
fe=fe/10;
sum=sum+fe;
j--;
}
while(k!=0)
{
Pop1(OP,e);
for(i=0;i<n-k;i++)
e=e*10;
sum=sum+e;
k--;
}
return(sum);
}
void CMyDlg::OnButton12()
{
UpdateData(TRUE);
m_ss=m_ss+'#';
SqStack OPTR;//字符型栈的定义
C语言计算器小程序(源代码+实习报告)
程序实习报告书起止日期: 2014 年 6月 23 日至 2014 年 7月 4日学号:班级:姓名:指导教师:通信与电子工程学院2014年 7月 4日目录1. 需求分析 (2)1.1 程序的功能 (2)1.2 输入输出的要求 (2)1.3 测试数据 (2)2. 概要设计 (3)3. 详细设计 (4)3.1 模块功能说明 (4)4.调试分析 (6)5. 核心源程序清单和执行结果 (6)1.需求分析1.1 程序的功能本程序是一个计算器小程序,利用算符优先关系,实现对算术四则混合运算表达式的求值并输出结果。
1.2 输入输出的要求输入的形式:算术表达式,以井号“#”结束。
例如2*(3+4)#;包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';输出的形式:运算结果,例如Answer is:14;1.3 测试数据第一组:输入 3*(9-4)# 输出 Answer is:15第二组:输入140/(57+13)# 输出 Answer is:2第三组:输入 56*(12-10)# 输出 Answer is:1122.概要设计3.详细设计主要部分详细流程:(1)设置两个工作栈,分别存放操作数和运算结果(2)判断字符的优先级4.调试分析错误提示1:错误原因:在中文输入法下输入的“;”,导致程序不能识别。
调试方法:调到英文输入法下输入即可。
错误提示2:错误原因:在Init_OPND,Init_OPTR后边都忘加了“&”符号,导致程序不识别。
调试方法:在Init_OPND,Init_OPTR后边加上“&”即可。
5.核心源程序清单和执行结果全部源代码如下:#include <stdio.h>#include <stdlib.h>#define MAX 100typedef struct /*定义一个栈存放运算数*/{int a[MAX];int top;}OPND;typedef struct /*定义一个栈存放运算符*/{char a[MAX];int top;}OPTR;void Init_OPND(OPND *s) /*初始化运算数栈*/{s->top =0;}void Init_OPTR(OPTR *s) /*初始化运算符栈*/{s->top =0;}void Push_OPND(OPND *s,int x) /*压入一个运算数*/{s->top ++;s->a [s->top ]=x;}void Push_OPTR(OPTR *s,char x) /*压入一个运算符*/{s->top ++;s->a [s->top ]=x;}int Pop_OPND(OPND *s) /*取出一个运算数*/{int x;x=s->a [s->top];s->top --;return x;}char Pop_OPTR(OPTR *s) /*取出一个运算符*/{char x;x=s->a [s->top];s->top --;return x;}int GetTop_OPND(OPND *s) /*取栈顶运算数*/{return (s->a[s->top]);}char GetTop_OPTR(OPTR *s) /*取栈顶运算符*/{return (s->a[s->top]);}int IsOpr(char c) /*判断输入字符是否为运算符*/{if (c=='+'||c=='-'||c=='*'||c=='/'||c=='('||c==')'||c=='#') return 1;elsereturn 0;}char Precede(char s,char c) /*判断字符的优先级*/{switch(s){case '+':case '-':{if(c=='+'||c=='-')return '>';else if (c=='*'||c=='/')return '<';else if(c=='(')return '<';else if(c==')')return '>';elsereturn '>';}break;case '*':case '/':{if(c=='+'||c=='-')return '>';else if (c=='*'||c=='/')return '>';else if(c=='(')return '<';else if(c==')')return '>';elsereturn '>';}break;case '(':{if(c==')')return '=';elsereturn '<';}break;case ')':{return '>';}break;case '#':{if(c=='#')return '=';elsereturn '<';}break;}}int Operate(int x,char opr,int y) /*计算*/ {int result;switch (opr){case '+':result = x + y;break;case '-':result = x - y;break;case '*':result = x * y;break;case '/':result = x / y;break;}return result;}void main(){OPND sdata;. . . .OPTR soper;int a,b,result,i;char ch,theta;Init_OPND(&sdata);Init_OPTR(&soper);Push_OPTR(&soper,'#');ch=getchar();while(ch!='#'||GetTop_OPTR(&soper)!='#') //当读入的字符和OPTR栈顶的字符均为‘#’时结束运算*/{if(!IsOpr(ch)) /*是运算数的情况*/{i=atoi(&ch); /*将字符型转为整型*/ch=getchar(); /*使得可以输入几位数*/while(!IsOpr(ch)){i=i*10+atoi(&ch);ch=getchar();}Push_OPND(&sdata,i);}else{switch(Precede(GetTop_OPTR(&soper),ch)) /*比较栈顶运算符和刚输入运算符的优先级*/ {case '<':Push_OPTR(&soper,ch);ch=getchar();break;case '=':theta=Pop_OPTR(&soper);ch=getchar();break;case '>':theta=Pop_OPTR(&soper);b=Pop_OPND(&sdata);a=Pop_OPND(&sdata);result=Operate(a,theta,b);Push_OPND(&sdata,result);break;}}}printf("Anwser is: %d\n",GetTop_OPND(&sdata));}.下载可编辑.。
c语言实验报告
c语言实验报告一、引言C语言是一种广泛应用于计算机科学和软件开发领域的编程语言。
它的简洁性、高效性以及跨平台的特性使其成为许多开发人员的首选。
本篇实验报告将介绍我在学习C语言过程中进行的几个实验项目,并详细记录每个实验的步骤、结果以及对C语言的理解。
二、实验一:Hello World!在学习任何一门编程语言时,第一个示例程序往往是输出"Hello World!"。
这个简单的程序虽然看似微不足道,却能够帮助初学者了解基本的编译和运行过程。
在实验中,我使用了C语言的基本语法,编写了一个简单的Hello World程序,并成功地将其编译并运行。
这个小小的成就让我对C语言有了初步的认识和信心。
三、实验二:计算器程序为了更深入地理解C语言的数据类型和运算符,我决定编写一个简单的计算器程序。
这个程序可以实现基础的四则运算和一些简单的数学函数,如平方根和求幂等。
通过这个实验,我学会了如何使用变量、条件语句和循环结构来实现计算功能,并通过不断调试和修改,使程序更加健壮和高效。
四、实验三:数组与排序数组是C语言中非常重要的概念,在实验三中,我探索了数组的用法和特性,并将其应用于一个排序算法中。
我选择了冒泡排序作为实验的排序算法,通过比较相邻元素的大小并不断交换位置,最终将数组中的元素按照升序排列。
这个实验使我更加熟悉了数组的操作,也加深了我对算法思想和效率的理解。
五、实验四:文件操作在现实世界中,大部分的应用程序需要与文件进行交互。
为了学习如何使用C语言进行文件操作,我进行了实验四。
在这个实验中,我编写了一个小程序,能够读取一个文本文件的内容,统计其中不同字符的数量,并将结果输出到另一个文件。
通过这个实验,我了解了如何打开、关闭和读写文件,也学习了异常处理以及文件操作的一些注意事项。
六、实验五:数据结构和指针C语言提供了指针的机制,允许直接访问和操纵内存中的数据。
为了更深入地理解指针和数据结构之间的关系,我进行了实验五。
计算机c语言实训报告(精选5篇)
计算机c语言实训报告(精选5篇)计算机c语言实训报告篇1一、课题名称:简单计算器设计一个简单的程序来模拟计算器的功能。
二、设计目的:1、通过理论知识与实际需求相结合,编辑解决一些日常中的实际问题,培养初步的独立分析和设计能力。
2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。
输入一个算术计算式,就在屏幕上显示结果。
2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。
5、完成设计(A4)。
五、代码设计:#include "stdio.h" main { float x,y;char operator;printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator){case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0) printf("chushushilingwuyiyi"); elseprintf("%.2f/%.2f=%.2f",x,y,x/y); break;default: printf("yunsunfuwuxiao"); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。
c 计算器实验报告
c 计算器实验报告c 计算器实验报告一、引言计算器是一种广泛应用于各个领域的工具,它能够进行各种数学运算,简化了人们的计算工作。
在本次实验中,我们将使用C语言编写一个简单的计算器程序,通过实践来加深对C语言的理解,并且掌握计算器的基本原理和实现方法。
二、实验目的1. 掌握C语言的基本语法和编程技巧;2. 理解计算器的基本原理和实现方法;3. 实现基本的四则运算功能;4. 实现一些常用的数学函数。
三、实验步骤1. 设计计算器界面在这一步骤中,我们需要设计一个简洁明了的计算器界面,包括数字键、运算符键和等号键等。
我们可以使用C语言的图形库或者控制台窗口来实现界面的设计。
2. 实现基本的四则运算功能在这一步骤中,我们需要编写C语言代码,实现计算器的基本四则运算功能。
我们可以使用C语言提供的算术运算符来进行加减乘除的计算,并且通过用户输入来获取操作数和运算符。
3. 实现常用的数学函数在这一步骤中,我们可以使用C语言提供的数学库函数来实现一些常用的数学函数,比如求平方根、求幂等。
通过调用这些函数,我们可以使计算器具备更多的功能。
4. 进行测试和调试在这一步骤中,我们需要对编写的计算器程序进行测试和调试,确保其能够正常运行,并且能够正确地进行各种运算和计算。
四、实验结果经过测试和调试,我们的计算器程序能够正常运行,并且能够正确地进行各种运算和计算。
它具备基本的四则运算功能,并且支持一些常用的数学函数。
我们可以通过输入数字和运算符来进行计算,并且可以得到正确的结果。
五、实验总结通过这次实验,我们深入理解了C语言的基本语法和编程技巧,并且掌握了计算器的基本原理和实现方法。
我们通过编写代码实现了一个简单的计算器程序,并且通过测试和调试确保其能够正常运行。
这次实验不仅加深了我们对C语言的理解,还提高了我们的编程能力和问题解决能力。
六、实验感想通过这次实验,我对C语言的学习有了更深入的了解。
在编写计算器程序的过程中,我不仅学会了如何使用C语言的基本语法和编程技巧,还提高了自己的逻辑思维能力和问题解决能力。
vc计算器实验报告
VC计算器实验报告1. 引言计算器是我们日常生活中经常使用的工具之一。
它可以帮助我们进行简单的数学运算,如加减乘除,以及更复杂的科学计算。
然而,传统的计算器通常功能有限,无法满足我们日益增长的计算需求。
为了解决这个问题,我们设计并实现了一款名为VC计算器的应用程序。
本文将详细介绍VC计算器的设计思路、功能特点以及实现过程。
2. 设计思路VC计算器的设计思路基于“step by step thinking”的理念,即通过逐步思考和分解问题来实现复杂的功能。
我们希望用户能够通过简单的步骤,逐渐构建出复杂的计算式,并获得准确的计算结果。
3. 功能特点3.1 基本计算功能VC计算器支持基本的四则运算,包括加法、减法、乘法和除法。
用户可以通过逐步输入数字和运算符,构建出复杂的计算式,并得到准确的计算结果。
3.2 科学计算功能除了基本的四则运算,VC计算器还提供了一些常用的科学计算功能,如三角函数、对数函数、指数函数等。
用户可以通过简单的步骤,构建出复杂的科学计算式,并得到准确的计算结果。
3.3 变量和函数支持为了进一步增强计算器的功能,我们在VC计算器中添加了变量和函数的支持。
用户可以定义和使用变量,以及定义和调用函数。
这样,用户可以根据自己的需求,自定义复杂的计算式,并得到准确的计算结果。
4. 实现过程4.1 界面设计我们通过使用Markdown文本格式来展示VC计算器的界面设计。
下面是一个示例界面:==========================================VC计算器==========================================[1] 2 + 3 = 5[2] sin(45) = 0.707[3] x = 10[4] y = 5[5] x + y = 15[6] f(x) = 2x + 1[7] f(5) = 114.2 代码实现VC计算器的代码实现主要分为以下几个步骤:1.解析用户输入,获取操作符和操作数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单计算器姓名: 周吉祥实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。
实验内容:(1)体系设计:程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。
(2)设计思路:1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator.2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框3)设计按钮,并修改其相应的ID与Caption.4)选择和设置各控件的单击鼠标事件。
5)为编辑框添加double类型的关联变量m_edit1.6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。
7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。
(3)程序清单:●添加的public成员:double tempvalue; //存储中间变量double result; //存储显示结果的值int sort; //判断后面是何种运算:1.加法2.减法3.乘法 4.除法int append; //判断后面是否添加数字●成员初始化:CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/): CDialog(CCalculatorDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculatorDlg)m_edit1 = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);tempvalue=0;result=0;sort=0;append=0;}各控件响应函数代码:void CCalculatorDlg::OnButton1() //按钮“1”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+1;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton2() //按钮“2”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+2;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton3() //按钮“3”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+3;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton4() //按钮“4”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+4;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton5() //按钮“5”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+5;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton6() //按钮“6”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+6;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton7() //按钮“7”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+7;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton8() //按钮“8”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+8;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton9() //按钮“9”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+9;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONzero() //按钮“0”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+0;m_edit1=result;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONequal() //按钮“=”{// TODO: Add your control notification handler code here switch(sort){case 1:result=result+tempvalue;break;case 2:result=tempvalue-result;break;case 3:result=result*tempvalue;break;case 4:result=tempvalue/result;break;}m_edit1=result;sort=0;append=1;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONclean() //按钮“退出”{// TODO: Add your control notification handler code here tempvalue=0;m_edit1=0.0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONplus() //按钮“+”{// TODO: Add your control notification handler code here sort=1;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONminus() //按钮“-”{// TODO: Add your control notification handler code here sort=2;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONmulti() //按钮“*”{// TODO: Add your control notification handler code heresort=3;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONdiv() //按钮“/”{// TODO: Add your control notification handler code heresort=4;tempvalue=result;m_edit1=0;append=1;}(4)程序调试:简单计算器测试与思考:1.小结:A.在做上面那个简单计算器的时候,遇到的问题很少,而且差不多都是些很小的问题,很容易就解决了B.刚开始,在老师没讲课之前,不知道如何设置响应事件,经老师讲解后,很快就解决了C.在运行的调试的时候,发现计算器的减法与除法的功能出错,原来是减数与被减数、除数与被除数的位置互换了;还有,连续点击“=”时显示结果会不停变动,解决方法是:加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发现点击的相应数字会显示在原显示结果的后面,解决方法是:加“append=1;”语句。