VC 计算器课程设计报告..

VC  计算器课程设计报告..
VC  计算器课程设计报告..

V C++计算器课程设计报告

1.作品名称:计算器

2.本次课程设计的目的

在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。

3.主要功能

实现计算器的功能。用户根据程序提示,输入数字或字符,选择要进行的运算,可以进行正弦、余弦、正切、开方、对数、加、减、乘、除、华氏温度与摄氏度之间的换算以及平方根的运算。

4.代码

#include

#include

#define MAX 100

#include

#include

#include

#include

double number1,number2,answer,number3,num[10000];

int n,k=1;

char input,val; class oopcalc {

private:

double x,y; double fartocel(double number1); double celtofar(double number1); double sqroot(double number1);

void calcsqr();

void calccos();

void calctan();

void calcsin();

void calclog();

public:

double getX(){return x;}

double getY(){return y;}

double set(){x=number1;y=number2;}

double calcadd(double number1,double number2);

double calcsub(double number1,double number2);

double calcdiv(double number1,double number2);

double calcmult(double number1,double number2);

void calcfartocel();

void calcceltofar();

void calcsroot();

void exitprog();

void menu();

void caculate();

void test();

void badinput();

};

void oopcalc::calcsin()

{

cout<<"The Sin Function\n";

cout<<"Enter a number:";

cin>>number1;

answer=sin(number1);

cout<<"The sin of "<

cout<<"Press any key to continue\n";

getch();

menu();

}

void oopcalc::calccos(){

cout<<"The Cos Function\n";

cout<<"Enter a number:";

cin>>number1;

answer=cos(number1);

cout<<"The cos of "<

cout<<"Press any key to continue\n";

getch();

menu();

}

void oopcalc::calctan()

{

cout<<"The Tan Function\n";

cout<<"Enter a number:";

cin>>number1;

answer=tan(number1);

cout<<"The tan of "<

cout<<"Press any key to continue\n";

getch();

menu();

}

void oopcalc::calcsqr()

{

cout<<"The sqr Function\n";

cout<<"Enter a number:";

cin>>number1;

answer=(number1*number1);

cout<<"The sqr of "<

cout<<"Press any key to continue\n";

getch();

menu();

}

void oopcalc::calclog(){

cout<<"The Log Function\n";

cout<<"Enter a number:";

cin>>number1;

if(number1<=0)

{

cout<<"Bad input!\n";

cout<<"Press any key to continue\n";

getch();

menu();

}

else

answer=log(number1);

cout<<"The log of "<

cout<<"Press any key to continue\n";

getch();

menu();

}

double oopcalc::calcadd(double number1,double number2)

{

answer=number1+number2;

return(answer);

}

double oopcalc::calcsub(double number1,double number2)

{

answer = number1-number2;

return(answer);

}

double oopcalc::calcdiv(double number1,double number2)

{

if(number2==0){getch();

menu();}

else

answer = number1/number2;

return(answer);

}

double oopcalc::calcmult(double number1,double number2)

{

answer = number1*number2;

return(answer);

}

void oopcalc::calcfartocel()

{

cout << "The Farenheit to Celsius Function\n"; cout << "Enter a tempature in Farenheit: ";

cin >> number1;

answer =((number1 - 32) * 5) / 9;

cout << "The tempature in Celsius is " << answer << endl;

cout << "Press any key to continue\n";

getch();

menu();

}

void oopcalc::calcceltofar()

{

cout << "The Celsius to Farenheit Function\n"; cout << "Enter a tempature in Celsius: ";

cin >> number1;

answer =number1 * 9 / 5 + 32;

cout << "The tempature in Farenheit is " << answer << endl;

cout << "Press any key to continue\n";

getch();

menu();

}

void oopcalc::calcsroot()

{

cout << "The Square Root Function\n";

cout << "First number: ";

cin >> number1;

if(number1<0)

{

cout<<"your enter is incorrect,please enter a new number\n";

getch();

menu();

}

else

answer = sqrt(number1);

cout << "The square root of " << number1 << " is "

<< answer << endl;

cout << "Press any key to continue\n";

getch();

menu();

}

void oopcalc::exitprog()

{

exit(-1);

}

void oopcalc::menu()

{

oopcalc a;

system("cls"); \

cout <<

"==================MENU===============\n";

cout <<"s:选择s进行正弦运算\n";

cout <<"c:选择c进行余弦运算\n";

cout <<"t:选择t进行正切运算\n";

cout <<"g:选择g进行对数运算\n";

cout <<"n:选择n进行求平方运算\n";

cout << "1: 选择1进行混合运算\n";

cout << "2: 选择2进行华氏温度转化为摄氏温度的运算\n";

cout << "3: 选择3进行摄氏温度转化为华氏温度的运算\n";

cout << "4: 选择4进行求平方根运算\n";

cout << "5: 选择5进行测试\n";

cout << "6:选择6退出运算\n";

cout << "请选择: ";

cin >> input;

cout << "=====================================\n"; switch (input)

{

case 's':case 'S':

a.calcsin();

case 'c': case 'C':

a.calccos();

break;

case 't':case 'T':

a.calctan();

break;

case 'g':case 'G':

a.calclog();

break;

case 'n':case 'N':

a.calcsqr();

break;

case '1': a.caculate(); break;

case '2': a.calcfartocel(); break;

case '3': a.calcceltofar(); break;

case '4': a.calcsroot(); break;

case '5': a.test();

case '6': a.exitprog();

break;

default : a.badinput();

}

}

void oopcalc::caculate()

{

oopcalc a;

cout<<"The Multifunction(混合四则运算)\n";

for(int n=1;;n++){

cout<<"Number"<

cin>>num[n]\

if(num[n]==0){\

c out<<"Press any key to continue\n";

g etch();

m enu();}

switch(k)

{

case 1:

if(n==1){answer=num[1];break;

}

else {answer=a.calcadd(answer,num[n]);

cout<<"The answer is "<

break;}

case 2:if(n==1){answer=num[1];break;}

else {answer=a.calcsub(answer,num[n]);

cout<<"The answer is "<

}

case 3:

if(n==1){answer=num[1];break;}

else {answer=a.calcmult(answer,num[n]);

cout<<"The answer is "<

if(n==1){answer=num[1];break;}

else {answer=a.calcdiv(answer,num[n]);

cout<<"The answer is "<

label1:cout<<"Please choose the function you want(+ or - or * or /):\n";

cin>>val;

switch(val)

{

case'+':k=1;break;

case'-':k=2;break;

case'*':k=3;break;

case'/':k=4;break;

default:cout<<"Bad input!\n";goto label1;

}

}

}

void oopcalc::test()

{

cout<<"The Test Function\n";

int s;

float p;

s=rand()%4+1;

srand ( time (NULL) );

number1=rand()%MAX+1; n umber2=rand()%MAX+1;

switch(s)

{

case 1:cout<

answer=calcadd(number1,number2);

b reak;

case 2: c out<

answer=calcsub(number1,number2);

b reak;

case 3: c out< (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

最新单片机简易计算器课程设计

单片机简易计算器课 程设计

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台

自动计数器课程设计..

西安电子科技大学 长安学院课程设计实验报告 姓名: 学号: 指导老师:

自动计数器课程设计 摘要:自动计数器在日常生活中屡见不鲜,它是根据不同的情况设定的,能够通过技术功能实现一些相应的程序,如通过自动计数器来实现自动打开和关闭各种电器设备的电源。广泛用于路灯,广告灯,电饭煲等领域。 自动计数器给人们生产生活带来了极大的方便,而且大大地扩展了自动计数器的功能。诸如自动定时报警器、按时自动打铃、时间程序自动控制、定时广播、自动启闭电路,定时开关烤箱、甚至各种定时电器的自动启用等,所有这些,都是以自动计数器为基础的。由于它的功能强劲,用途广泛,方便利用,所以在这个电子科技发展的时代,它是一个很好的电子产品。如在洗衣机的定时控制以及路灯等一些人们不能再现场控制的操控。都可以利用自动计数器来完成这样的功用。可见此系统所能带来的方便和经济效益是相当远大的。因此,研究自动计数器及扩大其应用,有着非常现实的意义。 本次课设设计是检验理论学习水平、实践动手能力及理论结合实际的能力,要求具有一定的分析处理问题能力和自学能力的一个比较重要得实践课程。通过这样的过程,使我们的论文及实践水平有一次较为全面的检查,同时也使我们硬件方面的能力有所提高,对以后的学习有这非常重要的意义。 关键词:电器设备;自动计数器;电源 指导老师签名:

1. 设计任务及方案 1.1设计任务 设计并制作一个自动计数器,NE555构成时钟信号发生器,CD4518为二,十进制加计数器,CD4543为译码驱动器,调节R17课调节555的震荡频率,C1为充放电电容,电容越大,充点时间越长,振荡频率越低。 介绍了一种新型的自动计数器设计方法,以NE555构成计数脉冲信号发生器,CD4518为二/十进制加法计数器,CD4543为译码驱动器,与按键、数码管等较少的辅助硬件电路相结合,实现对LED数码管进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。 本计数器可将机械或人工计数方式变为电子计数,并且采用LED数码显示,简单直观,可适用于诸多行业,以满足现代生产、生活等方面的需求。随着生产技术的不断改善和提高,在现代化生产的许多场合都可以看到计数器的使用。本计数器具有低廉的造价以及控制简单等特点。通过对计数脉冲的转换可使本计数器应用更为广泛。 2.电路原理 2.1 元器件的设计与参数 本小组设计的电路原理图所涉及的元器件有:电压为+5V的直流稳压电源;最大电阻为100K的滑动变阻器R17一个;有极性电容C1一个;无极性电容C2和C3; 开关SW一个;电阻R1~~R16总共16个;芯片有:NE555,CD4518,CD4543;以及共阴极7段数码显示器两个。

计算机技术综合课程设计报告

计算机技术综合课程设计 设计题目锅炉液位控制系统学生姓名史婷艳 专业班级自动化1302班学号20134460203 指导老师洪镇南 2017年1 月3日

目录 前言 (2) 1 锅炉汽包水位控制对象与控制指标 (4) 1.1锅炉汽包水位的特征 (4) 1.2汽包水位动态特性 (4) 1.2.1汽包水位在给水流量W作用下的动态特性 (4) 1.2.2汽包水位在蒸汽流量D扰动下的动态特性 (5) 1.2.3燃料量B扰动下汽包水位的动态特性 (6) 2. 汽包水位控制方案 (7) 2.1单冲量控制方式 (7) 2.2 双冲量控制方式 (8) 2.3 三冲量控制方式 (9) 3. 三冲量串级PID控制 (11) 3.1 串级PID控制 (11) 3.2 智能整定PID控制 (12) 4 汽包水位模糊控制器设计及仿真 (12) 4.1 输入输出变量 (12) 4.2 隶属度函数 (15) 4.3基于MATLAB/Simulink 环境建立的系统仿真分析 (16) 4.3.1 基于MATLAB/Simulink 的系统模型 (16)

4.3.2 仿真结果分析 (18) 总结与体会 (18) 参考文献 (20) 前言 锅炉是典型的复杂热工系统,目前,中国各种类型的锅炉有几十万台,由于设备分散、管理不善或技术原因,使大多数锅炉难以处于良好工况,增加了锅炉的燃料消耗,降低了效率。同时,锅炉工作过程中各项指标的调节难以建立数学模型,具有非线性、不稳定性、时滞等特点,所以如何改善对锅炉的控制,保证其正常工作,提高效率一直是人们关注的焦点。而汽包液位是锅炉安全、稳定运行的重要指标,保证液位在给定范围内,对于高蒸汽品质、减少设备损耗和运行损耗、确保整个网络安全运行具有要意义。 现代锅炉的特点之一就是蒸发量显著提高,汽包容积相对变小,水位变化速度很快,稍不注意就容易造成汽包满水或者烧成干锅,这都对汽包液位控制系统提出了更高的要求。汽包液位过高,会影响汽包内汽液分离效果,使汽包出口的饱和蒸汽带水增多,蒸汽带水会使汽轮机产生水冲击,引起轴封破损、叶片断裂等事故。同时会使饱和蒸汽中含盐量增高,降低过热蒸汽品质,增加在过热器管壁和汽轮机叶片上的结垢。水位过低,则可能破坏自然循环锅炉汽水循环系统中某些薄弱环节,以致局部水冷管壁被烧坏,严重时会造成爆炸事故。 目前,对汽包液位位控制大多采用常规PID控制方式,从控制方式来看,它们要么系统结构简单成本低,不能有效的控制锅炉汽包“虚假水位”现象,要么能够在一定程度上控制“虚假现象”,系统却过于复杂,成本投入过大。常用的蒸汽锅炉液位调节系统有三种基本结构:单冲量调节系统结构、双冲量调节系统结构、串级三冲量调节系统结

数电课程设计报告

数电课程设计报告 第一章设计背景与要求 设计要求 第二章系统概述 设计思想与方案选择 各功能块的组成 工作原理 第三章单元电路设计与分析 各单元电路的选择 设计及工作原理分析 第四章电路的组构与调试 遇到的主要问题 现象记录及原因分析 解决措施及效果 功能的测试方法,步骤,记录的数据 第五章结束语 对设计题目的结论性意见及进一步改进的意向说明总结设计的收获与体会 附图(电路总图及各个模块详图) 参考文献 第一章设计背景与要求 一.设计背景与要求

在公共场所,例如车站、码头,准确的时间显得特别重要,否则很有可能给外出办事即旅行袋来麻烦。数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确度和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。 设计一个简易数字钟,具有整点报时和校时功能。 (1)以四位LED数码管显示时、分,时为二十四进制。 (2)时、分显示数字之间以小数点间隔,小数点以1Hz频率、50%占空比的亮、灭规律表示秒计时。 (3)整点报时采用蜂鸣器实现。每当整点前控制蜂鸣器以低频鸣响4次,响1s、停1s,直到整点前一秒以高频响1s,整点时结束。 (4)才用两个按键分别控制“校时”或“校分”。按下校时键时,是显示值以0~23循环变化;按下“校分”键时,分显示值以0~59循环变化,但时显示值不能变化。 二.设计要求 电子技术是一门实践性很强的课程,加强工程训练,特别是技能的培养,对于培养学生的素质和能力具有十分重要的作用。在电子信息类本科教学中,课程设计是一个重要的实践环节,它包括选择课题、电子电路设计、组装、调试和编写总结报告等实践内容。通过本次简易数字钟的设计,初步掌握电子线路的设计、组装及调试方法。即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求。 第二章系统概述 设计思想与方案选择 方案一,利用数字电路中学习的六十进制和二十四进制计数器和三八译码器来实现数字中的时间显示。 方案二,利用AT89S51单片机和74HC573八位锁存器以及利用C语言对AT89S51进行编程来实现数字钟的时间显示。 由于方案一通过数电的学习我们都比较熟悉,而方案二比较复杂,涉及到比较多我们没学过的内容,所以选择方案一来实施。 简易数字钟电路主体部分是三个计数器,秒、分计数器采用六十进制计 数器,而时计数器采用二十四进制计数器,其中分、时计数器的计数脉 冲由

java课程设计报告计算器

java课程设计报告 计算器 1 2020年4月19日

目录 一、课程设计目的 (5) 二、课程设计任务.................................................................................................... .. (2) 2.1、设计任务 (5) 2.2、课程设计要求: (6) 2.3、需求分析 (6) 三、开发工具与平台.................................................................................................... (3) 3.1、开发工具 (7) 3.2、开发平台 (7) 2 2020年4月19日

四、设计思路.................................................................................................... . (4) 4.1、界面设计.................................................................................................... . (4) 4.2.1、逻辑设计 (8) 4.2.2、程序流程图.................................................................................................... . (5) 4.2.3、主要代码展示及说明 (5) 4.3、程序测试 (18) 五、实验小结 (20) 3 2020年4月19日

相关文档
最新文档