C++ 课程设计 复数计算器
- 格式:doc
- 大小:140.50 KB
- 文档页数:4
《C++面向对象程序设计》课程设计系专:班级:姓名:学号:指导老师:目录一、设计课题目的 (3)二、课程设计任务及要求 (3)三、课程设计总思路 (4)四、程序源代码 (4)五、运行结果显示 (11)六、本次课程设计的总结 (14)七、参考文献 (14)一、设计课题目的通过C++ 课程设计,使学生能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述,掌握面向对象设计语言的方法。
同时,在实践过程中达到对C++ 语言程序设计的深入理解和熟练掌握。
二、课程设计任务及要求1、任务:课程设计选题是“小型复数计算器”,其任务:请用面向对象方法设计并实现一个小型复数计算器,功能包括:(1)实现复数的设置和显示。
(2)实现复数加减乘除功能,并显示运算结果。
2、要求:1、利用C++ 面向对象方法设计该程序,并实现其功能。
2、从键盘以a+bi的形式输入复数。
3、仿照计算器的运算过程,采用计算器方式进行有关分数运算。
三、课程设计总思路根据题中任务的功能,首先要搞清复数的运算法则,并使用c++语言表达。
复数包含实部与虚部,如何将这两部分表达出来也使关键。
主要需要定义一个cal类。
里面定义了复数所需的各种计算符,来实现复数的各种运算。
esc 函数实现提取输入的实部和虚部。
add 函数实现函数的加法运算。
sub 函数实现函数的减法运算。
mul 函数实现函数的乘法运算。
div 函数实现函数的除法运算。
在主函数中调用类中已定义的函数来实现程序。
四、程序源代码:#include<iostream>#define M 20using namespace std;class cal //定义一个类{public:cal(char a[M]){pt=a;}void esc(); //实现提取输入的实部和虚部void add(); //实现加法void sub(); //实现减法void mul(); //实现乘法void div(); //实现除法void out(); //输出结果void pass(); //传递数据private:char *p,*pt;float SUM_1,SUM_2,A,B;};//成员函数的实现void cal::esc(){int m,n,n2,m2;float shi=0,shi2=0,xu=0,xu2=0;if(pt[0]=='-')p=pt+1;else p=pt;for(m=0;m<M;m++){shi=shi*10+float(p[m]-48);if(p[m+1]=='+'||p[m+1]=='-'){m2=m+1;n2=m;break;}if(p[m+1]=='.'){n=m+2;n2=n-1;for(m=n;m<M;m++){if(p[m]=='-'||p[m]=='+'){m2=m;break;}n2++;}for(m=n2;m>=n;m--){shi2=shi2/10+float(p[m]-48);}break;}}shi+=shi2/10;if(pt[0]=='-')shi=0-shi;for(m=n2+2;m<M;m++){xu=xu*10+float(p[m]-48);if(p[m+1]=='i')break;if(p[m+1]=='.'){n=m+2; n2=n-1;for(m=n;m<M;m++){if(p[m]=='i')break;n2++;}for(m=n2;m>=n;m--){xu2=xu2/10+float(p[m]-48);}break;}}xu+=xu2/10;if(p[m2]=='-')xu=0-xu; A=shi;B=xu;}void cal::pass(){SUM_1=A;SUM_2=B;}void cal::add(){SUM_1+=A;SUM_2+=B;}void cal::sub(){SUM_1-=A;SUM_2-=B;}void cal::mul(){float C=SUM_1;SUM_1=SUM_1*A-B*SUM_2;SUM_2=B*C+SUM_2*A;}void cal::div(){float C=SUM_1;float D=(A*A+B*B);SUM_1=(SUM_1*A+B*SUM_2)/D;SUM_2=(B*C-SUM_2*A)/D;}void cal::out(){cout<<"----"<<endl;if(SUM_2<0)cout<<SUM_1<<SUM_2<<"i"<<endl;elsecout<<SUM_1<<"+"<<SUM_2<<"i"<<endl;}//主函数int main(){cout<<"这是一个简单的复数计算器,具有对复数进行'+,-,*,/' 运算的能力。
c 简单计算器课程设计一、课程目标知识目标:1. 让学生掌握简单计算器的基本操作,包括开机、关机、清除屏幕、输入数字和运算符号。
2. 使学生理解加、减、乘、除四则运算的基本概念,并能够在简单计算器上进行正确的运算操作。
3. 帮助学生识别计算器上各个按键的功能,了解其对应的数学意义。
技能目标:1. 培养学生运用简单计算器解决实际问题的能力,如购物找零、计算面积等。
2. 提高学生进行四则运算的速度和准确性,提高计算效率。
3. 引导学生掌握计算器使用技巧,如连续计算、顺序计算等。
情感态度价值观目标:1. 培养学生对计算器的正确态度,认识到计算器是学习数学的工具,而非替代品。
2. 激发学生学习数学的兴趣,让学生在轻松愉快的氛围中体验数学计算的乐趣。
3. 培养学生的合作意识,使学生在小组讨论和互助学习中提高沟通能力,培养团队精神。
本课程针对小学三年级学生设计,结合学生年龄特点,注重激发兴趣和培养动手操作能力。
课程内容紧密联系教材,将目标分解为具体的学习成果,便于后续教学设计和评估。
通过本课程的学习,学生将能够熟练运用简单计算器,提高数学计算能力,培养良好的学习习惯和团队协作能力。
二、教学内容1. 计算器的基本结构:引导学生认识计算器的外观、各部分名称及其功能。
- 教材章节:第三章第1节《认识计算器》- 内容列举:计算器按键布局、显示屏、开机与关机、清除键等。
2. 四则运算操作:讲解加、减、乘、除四则运算在计算器上的操作方法。
- 教材章节:第三章第2节《计算器的四则运算》- 内容列举:按键输入、运算顺序、连续运算、计算结果读取等。
3. 计算器使用技巧:教授计算器的高级使用技巧,提高计算效率。
- 教材章节:第三章第3节《计算器使用技巧》- 内容列举:百分比计算、乘方运算、记忆功能等。
4. 实践应用:结合实际生活场景,让学生运用计算器解决实际问题。
- 教材章节:第三章第4节《计算器在实际生活中的应用》- 内容列举:购物找零、计算面积、体积、速度等。
简单实现C++复数计算器本⽂实例为⼤家分享了简单实现C++复数计算器的具体代码,供⼤家参考,具体内容如下1.有关计算器的功能A,实现多个复数(包括实数)的加减乘除,⼤⼩⽐较,B.实现⼗进制实数的进制转换,可以转换任意进制2.有关设计的原理A.复数计算的部分,采⽤运算符的重载,进⾏复数的加减乘除以及⼤⼩⽐较对于输⼊输出,(>>和<<),加减乘除运算进⾏重载。
输⼊的重载,实现a+bi形式的复数的输⼊。
输出的重载,实现实数的输出(实现特殊的只输出实部虚部之类的)。
加减乘除的重载,实现有关复数的运算。
B.进制转换的部分,采⽤进制转换的⽅法,实现10进制的任意进制转换。
辗转相除,记录每次的余数,存储在数组中来记录转换得到的数字3.有关设计的特点A.采⽤函数对所实现功能进⾏封装。
B.采⽤运算符的重载,使复数运算更加⽅便C.考虑所有的输⼊输出情况,对选择的操作,输⼊复数的类型等进⾏判断与相应的处理D.程序在完成以后,接受⼤家建议,规范代码格式,⾃⼰在制作过程有所收获也有所学习。
下⾯是有关代码的实现:#include <iostream>#include <algorithm>#include <cmath>#include <cstdlib>#include <cstring>#include <fstream>#include <ctime>#define EPS 1e-5 //定义精度常数using namespace std; //使⽤标准空间命名stdnamespace NameCCom //定义命名空间NameCCom{class CCom //定义⼀个CCom类{public:double Real,Image;//实部和虚部CCom(double real=0,double image=0) //构造函数{Real=real;Image=image;}friend istream & operator>>(istream &is,CCom &com); //重载输⼊friend ostream & operator<<(ostream &os,CCom &com); //重载输出CCom operator+(CCom &com); //加法重载CCom operator-(CCom &com); //减法重载CCom operator*(CCom &com); //乘法重载CCom operator/(CCom &com); //除法重载CCom operator+=(CCom &com); //加法赋值重载CCom operator-=(CCom &com); //减法赋值重载CCom operator*=(CCom &com); //乘法赋值重载CCom operator/=(CCom &com); //除法赋值重载};struct User //定义⽤户结构体类型{char szName[20]; //⽤户名}user; //定义全局变量int CCom::operator>(CCom &com) //重载运算符">",⽐较模的⼤⼩{if(mod()>com.mod())return 1; //若⼤,则返回1elsereturn 0; //否则,则返回0}int CCom::operator<(CCom &com) //重载运算符"<",⽐较模的⼤⼩{if(mod()<com.mod())return 1; //若⼩,则返回1elsereturn 0; //否则,则返回0}int CCom::operator!=(CCom &com) //重载运算符"!=",分别判断复数的实部和虚部{if(*this==com)return 0; //若相等,则返回0elsereturn 1; //否则,则返回1}istream & operator>>(istream &is,CCom &com) //重载输⼊,可以输⼊a+bi的形式{cout<<"请输⼊复数:";char s[80];is>>s; //⽤字符串的形式接受复数int len=strlen(s); //求出字符串的长度int n=0,sign=1; //n为当前从字符串中提取出来的数字,初始化为0;sign是标记符号,初始化为正 com.Image=com.Real=0;for(int k=0;k<len;k++) //判断接受的字符串是否合法{if((s[k]<'0' || s[k]> '9') && (s[k]!='+' && s[k]!='-' && s[k]!='i')){cout<<"error"<<endl;return is; //错误,输出出错信息并返回}}for(int k=0;k<len;) //顺序识别字符串中各字符{if(n!=0 &&(s[k]=='-'||s[k]=='+')) //当前字符是否是符号位{com.Real=sign*n; //sign是符号位,且n!=0,即n已被赋值,表明当前读取的是虚部的符号n=0; //将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-') //当前字符为负号{sign=-1;k++; //给符号标志赋值}if(s[k]=='+') //当前字符为正号{sign=1;k++; //给符号标志赋值}if(s[k]=='i') //当前字符为'i'{if(k!=len-1) //判断字符'i'是否为字符串中作后⼀个字符cout<<"error\n"; //如果不是,说明复数数据格式错误elsecom.Image=sign*n; //如果是最后⼀个字符,复数对象已接受完,⽤sign*n为虚部赋值break;}while(s[k]>='0' && s[k]<='9') //如果当前字符在0~9之间,将数字字符转换成数字数值{n=n*10+s[k]-'0';k++;}}if(s[len-1]!='i' && n!=0) //如果最后⼀个字符不是'i',表⽰复数对象内只有实部,没有虚部{com.Real=n*sign;}return is;}ostream & operator<<(ostream &os,CCom &com) //重载输⼊{if(fabs(com.Image)<EPS) // 如果虚部为0os<<com.Real; //只输出实部else if((fabs(com.Real)<EPS)) //如果实部为0os<<com.Image<<"i"; //只输出虚部else if(com.Image>0)os<<com.Real<<"+"<<com.Image<<"i";elseos<<com.Real<<com.Image<<"i"; //虚部为正return os;}CCom CCom::operator+(CCom &com) //加法重载{CCom sum;sum.Real=Real+com.Real; //实部相加sum.Image=Image+com.Image; //虚部相加return sum;}CCom CCom::operator-(CCom &com) //减法重载{CCom sub;sub.Real=Real-com.Real; //实部相减sub.Image=Image-com.Image; //虚部相减return sub;}CCom CCom::operator*(CCom &com) //乘法重载{CCom multi;multi.Real=Real*com.Real-Image*com.Image; //实部乘积multi.Image=Real*com.Image+Image*com.Real; //虚部乘积return multi;}CCom CCom::operator/(CCom &com) //除法重载{CCom div;div.Real=(Real*com.Real+Image*com.Image)/(com.Real*com.Real+com.Image*com.Image); //实部除积div.Image=(Image*com.Real-Real*com.Image)/(com.Real*com.Real+com.Image*com.Image); //虚部除积return div;}CCom CCom::operator+=(CCom &com) //重载加法赋值{Real=Real+com.Real; //实部相加Image=Image+com.Image; //虚部相加return *this;}CCom CCom::operator-=(CCom &com) //重载减法赋值{Real=Real-com.Real; //实部相减Image=Image-com.Image; //虚部相减return *this;}CCom CCom::operator*=(CCom &com) //重载乘法赋值{double nReal=Real*com.Real-Image*com.Image; //实部乘积double nImage=Real*com.Image+Image*com.Real; //虚部乘积Real=nReal;Image=nImage;return *this;}CCom CCom::operator/=(CCom &com) //重载除法赋值{double nReal=(Real*com.Real+Image*com.Image)/(com.Real*com.Real+com.Image*com.Image); //实部除积 double nImage=(Image*com.Real-Real*com.Image)/(com.Real*com.Real+com.Image*com.Image); //虚部除积 Real=nReal;Image=nImage;return *this;}int CCom::operator==(CCom &com) //重载等于{if(Real==com.Real && Image==com.Image)return 1;elsereturn 0;}void Add() //复数加法运算函数{CCom num1,num2,sum,Zero(0,0);cout<<"加法计算\n"<<"最少输⼊两个复数,并且以0结束\n"; cout<<"第⼀个复数:";cin>>num1;cout<<"第⼆个复数:";cin>>num2;sum=num1+num2;cout<<"第三个复数:";cin>>num1;int i=4;while(!(num1==Zero)){sum=sum+num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"加法结果是:"<<sum<<endl;cout<<"请按任意键继续\n";cin.get();cin.get();}void Sub() //复数减法运算函数{CCom num1,num2,sub,Zero(0,0);cout<<"最少输⼊两个复数,并且以0结束\n";cout<<"第1个复数:";cin>>num1;cout<<"第2个复数:";cin>>num2;sub=num1-num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==Zero)){sub=sub-num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"减法结果是:"<<sub<<endl;cout<<"请按任意键继续\n";cin.get();cin.get();}void Mul() //复数乘法运算函数{CCom num1,num2,mul,Zero(0,0);cout<<"乘法计算\n"<<"最少输⼊两个复数,并且以0结束\n"; cout<<"第⼀个复数:";cin>>num1;cout<<"第⼆个复数:";cin>>num2;mul=num1*num2;cout<<"第三个复数:";cin>>num1;int i=4;while(!(num1==Zero)){mul*=num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"乘法结果是:"<<mul<<endl;cout<<"请按任意键继续\n";cin.get();cin.get();}void Div() //复数除法运算函数{CCom num1,num2,div,Zero(0,0);cout<<"除法计算\n"<<"最少输⼊两个复数,并且以0结束\n";cout<<"第⼀个复数:";cin>>num1;cout<<"第⼆个复数:";cin>>num2;div=num1/num2;cout<<"第三个复数:";cin>>num1;int i=4;while(!(num1==Zero)){div/=num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"除法结果是:"<<div<<endl;cout<<"请按任意键继续\n";cin.get();cin.get();}void Compare() //两复数⽐较函数{CCom num1,num2;cout<<"请输⼊两个复数\n";cout<<"第⼀个复数:";cin>>num1;cout<<"第⼆个复数\n";cin>>num2;if(num1==num2)cout<<"这两个复数相等\n";else if(num1>num2)cout<<num1<<"的模⼤于"<<num2<<"的模\n";else if(num1<num2)cout<<num2<<"的模⼤于"<<num1<<"的模\n";elsecout<<"这两个复数的模相等\n";cout<<"请按任意键继续\n";cin.get();cin.get();}void Jinzhi() //实现进制转换{long n;int p,c,m=0,s[100];cout<<"输⼊要转换的数字:\n";cin>>n;cout<<"输⼊要转换的进制:\n";cin>>p;cout<<"("<<n<<")10="<<"(";while (n!=0)//数制转换,结果存⼊数组s[m]{c=n%p;n=n/p;m++;s[m]=c; //将余数按顺序存⼊数组s[m]中 }for(int k=m;k>=1;k--)//输出转换后的序列{if(s[k]>=10) //若为⼗六进制等则输出相对应的字母 cout<<(char)(s[k]+55);else //否则直接输出数字cout<<s[k];}cout<<")"<<p<<endl;cout<<"请按任意键继续\n";cin.get();cin.get();}void outpt(){char szName[20];cout<<"请输⼊您的姓名:";cin>>szName;system("cls");do{system("cls");cout<<"\t这是⼀个计算器,可实现以下功能,请按对应的按键(0-6)\n\n\n";cout<<"\t*----------Hpioneer⼩计算器菜单---------*\n";cout<<"\t| 1:多个复数加法,以0结束 |\n";cout<<"\t| 2:多个复数减法,以0结束 |\n";cout<<"\t| 3:多个复数乘法,以0结束 |\n";cout<<"\t| 4:多个复数除法,以0结束 |\n";cout<<"\t| 5:复数⽐较 |\n";cout<<"\t| 6:进制转换 |\n";cout<<"\t| 0:退出程序 |\n";cout<<"\t| 请您选择: |\n";cout<<"\t*---------------------------------------*\n";}}using namespace NameCCom;int main(void) //主函数开始,void可以不写{int h;output();cin>>h;//每步操作if(h==1) //⽤户选1则调⽤Add()函数Add();else if(h==2) //⽤户选2则调⽤Sub()函数Sub();else if(h==3) //⽤户选3则调⽤Mul()函数Mul();else if(h==4) //⽤户选4则调⽤Div()函数Div();else if(h==5) //⽤户选6则调⽤Compare()函数Compare();else if(h==6) //⽤户选7则调⽤函数Jinzhi()函数Jinzhi();else if(h==0)cout<<"⾮常感谢您的使⽤\n";elsebreak;}return 0;}以上就是本⽂的全部内容,希望对⼤家学习C++程序设计有所帮助。
c 简易计算器课程设计一、课程目标知识目标:1. 学生能理解简易计算器的基本原理,掌握加、减、乘、除四则运算的操作方法。
2. 学生能够运用所学知识,解决生活中简单的数学问题。
3. 学生了解计算器的发展历程,认识到科技对生活的影响。
技能目标:1. 学生能够熟练操作简易计算器,进行基本的四则运算。
2. 学生通过实际操作,培养动手能力和问题解决能力。
3. 学生能够运用计算器辅助学习,提高数学学习效率。
情感态度价值观目标:1. 学生培养对数学学习的兴趣,树立正确的数学观念。
2. 学生在合作交流中,培养团队意识和沟通能力。
3. 学生通过计算器的使用,认识到科技发展的成果,增强民族自豪感。
课程性质:本课程为信息技术与数学学科的整合课程,旨在通过简易计算器的学习,提高学生的数学素养和信息技术能力。
学生特点:四年级学生具备一定的数学基础和信息技术能力,好奇心强,善于合作交流。
教学要求:教师需结合学生的特点,采用启发式教学,引导学生主动探究,注重培养学生的动手能力和问题解决能力。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,使学生在轻松愉快的氛围中学习。
通过本课程的学习,使学生达到预期的学习成果。
二、教学内容1. 计算器的历史与原理:介绍计算器的发展简史,探讨计算器的工作原理,让学生了解计算器的演变过程,认识到科技对生活的改变。
2. 简易计算器操作方法:详细讲解加、减、乘、除四则运算的操作步骤,让学生熟练掌握计算器的使用方法。
3. 实践应用:结合数学课本中的实际例题,指导学生运用计算器进行计算,解决实际问题,提高计算速度和准确性。
4. 计算器在数学学习中的应用:探讨计算器在辅助数学学习中的作用,如:简化计算过程、提高解题效率等。
教学内容安排和进度:第一课时:计算器的历史与原理,计算器的简单操作。
第二课时:四则运算的操作方法,实践练习。
第三课时:计算器在数学学习中的应用,解决实际问题。
教材章节:《信息技术》第四章:计算器与计算机。
复数计算器课程设计(总8页) -本页仅作为预览文档封面,使用时请删除本页-目录1 题目内容及设计要求 .......................... 错误!未定义书签。
2 总体设计.............................................. 错误!未定义书签。
总体功能框图.................................. 错误!未定义书签。
类的设计说明 ................................. 错误!未定义书签。
主要算法流程图 ............................. 错误!未定义书签。
3 程序清单及注释................................. 错误!未定义书签。
4 运行结果与分析................................. 错误!未定义书签。
5 总结 .................................................... 错误!未定义书签。
6 参考文献 ............................................ 错误!未定义书签。
1 题目内容及设计要求题目17 复数计算器内容及要求:(1)所设计的复数计算器可以进行+ - * += -= *= ++ -- >= <= == !=运算符,其中>= <=是针对复数的模进行运算。
(2)设计输入重载函数,要求能接收从键盘输入a+bi形式的复数,在程序中可以识别出实部虚部并正确赋值。
(3) 设计计算器测试程序,对加减法进行测试,要求在两位数以内进行,对乘法进行测试,乘法要求为一位数的运算。
(4) 设计记录功能,可以记录下不同用户使用计算器的情况,记录以文件的形式保存在计算机内,开机时要求用户输入用户名,显示该名户以前的记录。
复数计算器课程设计-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN目录1 题目内容及设计要求 .......................... 错误!未定义书签。
2 总体设计.............................................. 错误!未定义书签。
总体功能框图.................................. 错误!未定义书签。
类的设计说明 ................................. 错误!未定义书签。
主要算法流程图 ............................. 错误!未定义书签。
3 程序清单及注释................................. 错误!未定义书签。
4 运行结果与分析................................. 错误!未定义书签。
5 总结 .................................................... 错误!未定义书签。
6 参考文献 ............................................ 错误!未定义书签。
1 题目内容及设计要求题目17 复数计算器内容及要求:(1)所设计的复数计算器可以进行+ - * += -= *= ++ -- >= <= == !=运算符,其中>= <=是针对复数的模进行运算。
(2)设计输入重载函数,要求能接收从键盘输入a+bi形式的复数,在程序中可以识别出实部虚部并正确赋值。
(3) 设计计算器测试程序,对加减法进行测试,要求在两位数以内进行,对乘法进行测试,乘法要求为一位数的运算。
(4) 设计记录功能,可以记录下不同用户使用计算器的情况,记录以文件的形式保存在计算机内,开机时要求用户输入用户名,显示该名户以前的记录。
目录第一章需求分析 (1)第二章概要设计 (2)第三章详细设计 (4)第四章调试分析 (21)第五章测试结果 (25)第六章课程设计总结 (36)第七章参考文献 (37)第八章附录 (37)第一章需求分析1.1程序设计的任务1.1.1编程目的1.本次程序设计的目的运用面向对象程序设计知识,利用C++语言设计和实现一个复数计算器,要求具备如下主要功能:(1)建立实数类、复数类(2)实现实数、复数信息的初始化(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算(5)实现实数、复数信息的输出1.1.2编程要求在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。
1.1.3数据范围数据输入的形式为float型,输出形式亦是float型,数据(实数、复数的实部、虚部)范围是-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38。
1.2本程序能实现的功能1.2.1实数类(Complex)所实现的功能:实数的加法运算、减法运算、乘法运算、除法运算、前置自增运算、后置自增运算、前置自减运算、后置自减运算、求平方运算、求平方根运算;1.2.2复数类(Complex1)所实现的功能:复数的加法运算、减法运算、乘法运算、除法运算、模长运算、求平方运算、共轭复数运算、求单个复数的向量角运算、求两个复数的夹角运算。
1.2.3主函数所能实现的功能1.提供给操作者操作数据的类型(实数还是复数)的标识;2.操作者选择数据类型后,提供运算类型操作的标识;3.运用指针调用两个类的各成员函数分别完成各项计;第二章概要设计2.1构成部分2.1.1系统由三部分构成:实数类(Complex)、复数类(Complex1)、主函数main。
vc 课程设计计算器一、教学目标本课程旨在让学生掌握计算器的基本使用方法,理解计算器在数学和科学计算中的应用,培养学生的逻辑思维能力和解决问题的能力。
具体目标如下:知识目标:使学生了解计算器的各种功能及其应用场景,掌握计算器的基本操作方法。
技能目标:能够运用计算器进行简单的数学计算、科学计算和数据处理,提高计算准确性和效率。
情感态度价值观目标:培养学生对科学技术的兴趣和好奇心,激发学生探索未知、创新思维的精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.计算器的基本结构:介绍计算器的各种按键功能及其对应的操作。
2.计算器的使用方法:讲解如何使用计算器进行数学计算、科学计算和数据处理。
3.计算器在实际应用中的案例分析:通过实际案例,使学生了解计算器在日常生活和学习中的重要作用。
4.计算器的维护与保养:教授学生如何正确使用和维护计算器,延长其使用寿命。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:教师讲解计算器的基本原理、功能及使用方法。
2.讨论法:分组讨论计算器在实际应用中遇到的问题,培养学生解决问题的能力。
3.案例分析法:分析实际案例,使学生了解计算器在生活和学习中的重要作用。
4.实验法:让学生亲自动手操作计算器,进行实际计算,巩固所学知识。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用内容丰富、适合学生年龄特点的计算器教材。
2.参考书:提供相关的计算器使用手册和资料,供学生课后自学。
3.多媒体资料:制作课件、教学视频等,以生动形象的方式展示计算器的使用方法。
4.实验设备:为学生提供足够的计算器,以便进行实际操作和实验。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和兴趣。
2.作业:布置适量的课后作业,检查学生对课堂所学知识的掌握程度。
实验一复数ADT的描述及实现
1.实验要求
用抽象数据类型描述complex类,要求实现复数的构造(三个构造函数:缺省构造函数、带有参数的构造函数和拷贝构造函数),设计getreal、getimag函数来实现复数的取值,setreal、setimag函数设定复数的实部和虚部,用操作符重载实现复数的加法、减法和输出。
2.程序功能说明
在用户界面中用户可以选择将要进行的操作,该程序可以实现复数的输入、输出、加法、减法。
3.概要设计
(1)抽象数据类型
ADT complex{
数据对象:D={ c1,c2,c3,c4 | c1,c2,c3,c4均为double型}
数据关系:R={<c1,c2>,<c2,c3> ,<c3,c4>}
基本操作:创建复数setreal(),setimag();
取复数的值getreal(),getimag();
复数的加法;
复数的减法;
} ADT complex;
(2)主函数
void main() {
complex c1,c2,c3,c4;
int i=1;
while(i>=0&&i<5){
cout<<"*****************************************************"<<endl;
cout<<" 1.设置复数c1"<<endl;
cout<<" 2.设置复数c2"<<endl;
cout<<" 3.计算两个复数之和"<<endl;
cout<<" 4.计算两个复数之差"<<endl;
cout<<" 0.退出程序"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请用户输入操作序号:";
cin>>i;
switch(i)
{
case 1:c1.setimag(),c1.setreal();break;
case 2:c2.setimag(),c2.setreal();break;
case 3:c3=c1+c2; cout<<"("<<c3.getreal()<<","<<c3.getimag()<<")"<<endl;break;
case 4:c4=c1-c2; cout<<"("<<c4.getreal()<<","<<c4.getimag()<<")"<<endl;break;
case 0:exit(1);break;
}
}
}
4.详要设计
类定义:
#ifndef COMPLEX_H
#define COMPLEX_H
class complex {
private:
double real,imag;
public:
complex(){real=0.0;imag=0.0;} //缺省构造函数
complex(double r,double i){real=r;imag=i;}//带参数的构造函数complex(complex &p);//拷贝构造函数
void setreal();
void setimag();
double getreal() {return real;}
double getimag() {return imag;}
complex operator+(const complex &c2) const;//操作符“+”的重载complex operator-(const complex &c2) const;// 操作符“-”的重载};
#endif
类实现:
#include"complex.h"
#include<iostream>
using namespace std;
complex::complex(complex &p) {
real=p.real;
imag=p.imag;}
complex complex::operator+(const complex &c2) const {
return complex(real+c2.real,imag+c2.imag);
}
complex complex::operator-(const complex &c2) const {
return complex(real-c2.real,imag-c2.imag);
}
void complex::setreal() {
cout<<"输入实部: ";
cin>>real;}
void complex::setimag() {
cout<<"输入虚部: ";
cin>>imag;}
主函数:
#include"complex.h"
#include<iostream>
using namespace std;
void main() {
complex c1,c2,c3,c4;
int i=1;
while(i>=0&&i<5){
cout<<"*****************************************************"<<endl;
cout<<" 1.设置复数c1"<<endl;
cout<<" 2.设置复数c2"<<endl;
cout<<" 3.计算两个复数之和"<<endl;
cout<<" 4.计算两个复数之差"<<endl;
cout<<" 0.退出程序"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请用户输入操作序号:";//用户界面
cin>>i;
switch(i)
{
case 1:c1.setimag(),c1.setreal();break;
case 2:c2.setimag(),c2.setreal();break;
case 3:c3=c1+c2; cout<<"("<<c3.getreal()<<","<<c3.getimag()<<")"<<endl;break;
case 4:c4=c1-c2; cout<<"("<<c4.getreal()<<","<<c4.getimag()<<")"<<endl;break;
case 0:exit(1);break;
}
}
}
5.调试结果和测试说明
(1)用户界面
(2)输入复数的值
(2)复数的加法
(3)复数的减法。