计算机课程设计说明书(C++,包括代码)
c语言设计计算器课程设计
c语言设计计算器课程设计一、课程目标知识目标:1. 学生能够掌握C语言基本语法和数据类型,特别是整型、浮点型的运用。
2. 学生能够理解并运用顺序结构、选择结构和循环结构进行程序设计。
3. 学生能够运用C语言的算术运算符,实现基本的数学运算功能。
技能目标:1. 学生能够编写简单的C程序,实现加、减、乘、除等基本计算功能。
2. 学生能够通过键盘输入数据,并处理输入异常。
3. 学生能够运用调试工具检查并修正程序中的错误。
情感态度价值观目标:1. 学生培养编程的兴趣,认识到编程在解决问题中的重要性。
2. 学生在学习过程中形成合作意识,培养团队精神。
3. 学生通过编程解决实际问题,体验成就感,增强自信心。
分析课程性质、学生特点和教学要求:本课程针对的是高一年级学生,他们对C语言已有一定的基础知识,具备基本的编程能力。
课程性质为实践性较强的编程课程,旨在让学生通过动手实践,掌握C语言编程技巧。
教学要求注重培养学生的实际编程能力,将理论知识与实际应用相结合。
课程目标分解:1. 学生能够独立完成一个简单的计算器程序,实现加、减、乘、除功能。
2. 学生能够运用所学知识对程序进行优化,提高计算器的运算效率和用户体验。
3. 学生通过课程学习,培养良好的编程习惯和解决问题的能力。
二、教学内容本课程教学内容紧密结合课程目标,确保学生能够系统地学习和掌握C语言编程计算器的制作。
1. C语言基本语法和数据类型复习:回顾整型、浮点型等基本数据类型,强调其在计算器程序中的应用。
2. 运算符和表达式:详细介绍C语言的算术运算符,如加、减、乘、除等,并讲解表达式的构成和计算规则。
3. 控制结构:- 顺序结构:巩固顺序执行的概念,并应用于计算器程序。
- 选择结构:讲解if语句,实现计算器的不同运算功能。
- 循环结构:介绍for和while循环,实现重复计算功能。
4. 输入输出函数:教授scanf和printf函数的使用,实现用户与计算器程序的交互。
C语言游戏代码课程设计
C语言游戏代码课程设计一、教学目标本课程旨在通过C语言游戏代码的学习,让学生掌握C语言编程的基本知识和技能,培养学生独立思考、创新能力和团队协作精神。
具体目标如下:1.知识目标:(1)掌握C语言的基本语法和数据结构;(2)理解程序设计的基本原理和方法;(3)了解游戏编程的基本概念和技巧。
2.技能目标:(1)能够运用C语言编写简单的游戏程序;(2)具备调试和优化程序的能力;(3)学会阅读和分析游戏代码。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生勇于探索、积极进取的精神;(3)培养学生团队协作、共同进步的意识。
二、教学内容本课程的教学内容主要包括C语言基础知识、游戏编程原理和实战演练。
具体安排如下:1.C语言基础知识:(1)C语言概述;(2)数据类型、运算符和表达式;(3)控制结构;(4)函数、数组和指针;(5)结构体和文件操作。
2.游戏编程原理:(1)游戏设计基本概念;(2)游戏开发流程;(3)游戏编程技巧;(4)游戏引擎的使用。
3.实战演练:(1)编写简单的游戏程序;(2)分析经典游戏代码;(3)团队协作完成游戏项目。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解C语言基本语法和游戏编程原理;2.讨论法:用于探讨游戏设计思路和解决编程问题;3.案例分析法:分析经典游戏代码,让学生深入了解游戏编程技巧;4.实验法:动手编写游戏程序,培养学生的实际编程能力。
四、教学资源本课程所需教学资源包括:1.教材:《C语言程序设计》;2.参考书:《游戏编程模式》、《游戏设计艺术》;3.多媒体资料:教学PPT、游戏编程教程视频;4.实验设备:计算机、编程环境。
教学资源应结合课程内容和教学方法,为学生提供丰富的学习体验,提高教学效果。
五、教学评估本课程的教学评估采用多元化评价方式,全面客观地评价学生的学习成果。
2410英贝特开发箱_课程设计说明书及代码
目录一.课程设计的目的 .............................................................................................................. - 1 -二.课程设计的任务和要求 ................................................................................................... - 1 -三.设计思想和硬件环境....................................................................................................... - 2 -3.1设计思想 (2)3.2硬件环境 (2)四.WINDOWS CE系统 ....................................................................................................... - 4 -4.1W INDOWS CE4.2的概述 (4)4.2W INDOWS CE系统定制环境 (4)4.3定制系统的步骤 (5)4.4W INDOWS CE系统的移植 (6)五.程序开发 ......................................................................................................................... - 7 -5.1驱动程序 (7)5.2应用程序 (9)5.3应用程序截图 (10)六.总结............................................................................................................................. - 12 -参考文献 .............................................................................................................................. - 13 -附录源代码......................................................................................................................... - 14 -一.课程设计的目的通过本课程的学习,使学生掌握Windows CE 4.2操作系统下,基于EduKit2410 III试验箱实现操作系统的定制、引导程序和操作系统的移植,以及设备驱动程序和应用程序的开发方法。
计算机课程设计任务书
计算机课程设计任务书全文共四篇示例,供读者参考第一篇示例:计算机课程设计任务书一、课程名称:计算机课程设计二、课程代码:CS101三、课程性质:必修四、学时学分:48学时3学分五、课程简介:本课程旨在培养学生计算机科学的设计和实现能力,通过实际项目的设计和开发,加深对计算机科学理论知识的理解和应用。
通过本课程的学习,学生将掌握软件工程的基本原理、方法和技术,提高计算机程序设计和开发能力,培养团队协作和创新能力。
六、教学目标:本课程旨在通过实际项目的设计和开发,培养学生的计算机科学综合素养和实际应用能力,具体目标包括:1. 熟练掌握软件工程的基本原理、方法和技术;2. 提高计算机程序设计和开发能力;3. 培养团队协作和创新能力;4. 提高学生的问题解决能力和逻辑思维能力;5. 提升学生的沟通能力和表达能力;6. 培养学生具有独立学习和自主探究的能力。
七、教学内容:1. 软件工程基础知识2. 软件需求分析和规格说明3. 软件设计和架构4. 程序设计和编码技术5. 质量保证和测试技术6. 软件项目管理和团队协作1. 理论讲授:介绍软件工程的基本理论知识和方法2. 分组项目设计:学生组成小组,完成软件项目设计和开发3. 案例分析:通过案例分析,加深对软件工程知识的理解4. 实践操作:学生通过实际操作,掌握软件设计和开发技术5. 课堂讨论:鼓励学生在课堂上积极提问和参与讨论九、考核方式:1. 项目报告:学生需提交项目设计和开发的报告,包括需求分析、设计方案、实现过程和测试结果等2. 课堂演示:学生需在课堂上进行项目演示,展示项目成果和技术实现3. 期末考试:学生需参加期末考试,考核软件工程知识和理论基础掌握情况十、教学资源:1. 课程教材:《软件工程导论》、《软件需求工程》、《软件设计与构造》等2. 计算机实验室:提供实际项目设计和开发的硬件设备和软件环境3. 专业导师:专业教师指导学生解决问题和开展项目工作十一、课程审核和评估:1. 课程审核:本课程需由学校计算机系审核并定期评估2. 教学效果评估:通过学生评价、教师评价和项目成果评价等方式,对教学效果进行评估和改进3. 课程质量保障:通过持续优化教学资源、提高师资力量、加强项目管理等方式,保障教学质量和效果以上为《计算机课程设计任务书》的内容,希望学生们在本课程的学习中,能够提高计算机科学的综合素养和实际应用能力,为将来的职业发展打下坚实基础。
计算机算法设计与分析课程设计常规题目的(C及C++)代码集
合并排序1:#include<iostream>using namespace std;const int N=100;class list{public:int array[N];void input(int a);void merge(int arrayc[],int arrayd[],int l,int m,int r);void mergepass(int arrayx[],int arrayy[],int s);void mergesort(int array1[]);void diaplay(int a);};void list::input(int a){cout<<"Please input shorted array:"<<endl;for(int i=0;i<a;i++)cin>>array[i];}void list::merge(int arrayc[],int arrayd[],int l,int m,int r) {int i=l;int j=m+1;int k=l;while((i<=m)&&(j<=r))if(arrayc[i]<=arrayc[j])arrayd[k++]=arrayc[i++];else arrayd[k++]=arrayc[j++];if(i>m)for(int q=j;q<=r;q++)arrayd[k++]=arrayc[q];elsefor(int q=i;q<=m;q++)arrayd[k++]=arrayc[q];}void list::mergepass(int arrayx[],int arrayy[],int s){int i=0;while(i<=N-2*s){merge(arrayx,arrayy,i,i+s-1,i+2*s-1);i=i+2*s;}if((i+s)<N)merge(arrayx,arrayy,i,i+s-1,N-1);elsefor(int j=i;j<N;j++)arrayy[j]=arrayx[j];}void list::mergesort(int array1[]){int array2[N];int s=1;while(s<N){mergepass(array1,array2,s);s+=s;mergepass(array2,array1,s);s+=s;}}void list::diaplay(int a){for(int i=N-a;i<N;i++)cout<<array[i];}void main(){list f;int a;cout<<"请输入要合并排序的数组大小:(数组最大上限100)"<<endl;cin>>a;f.input(a);f.mergesort (f.array);f.diaplay (a);}合并排序:2#include <iostream>usingnamespace std;void MERGES(int *A,int p,int q,int r) //下标P<=q<r{int n1=q-p+1; //n1:p,q之间的数的个数int n2=r-q; //n2:q以后到r的数的个数int *L=newint [n1+1], //动态申请两个子数组*R=newint [n2+1];int i,j,k;for (i=0;i<n1;i++){L[i]=A[p+i-1];}for (j=0;j<n2;j++){R[j]=A[q+j];}L[n1]=10000; //设置哨兵R[n2]=10000;i=0;j=0;for (k=p-1;k<r;k++){if (L[i]<=R[j]){A[k]=L[i];i=i+1;}else{A[k]=R[j];j=j+1;}}}void MERGESORT(int *A,int p,int r) {if (p<r){int q=(p+r)/2;MERGESORT(A,p,q);MERGESORT(A,q+1,r);MERGES(A,p,q,r);}}void main(){int x,z,p,r;cout<<"请输入数组长度"<<endl;cin>>x;int *A= newint[x];cout<<"请输入数组的元素"<<endl;for(int y=0;y<x;y++){cin>>z;A[y]=z;}cout<<"请输入上下限p,r"<<endl;cin>>p>>r;MERGESORT(A,p,r);cout<<"合并排序后为:"<<endl;for (int m=p;m<=r;m++){cout<<A[m];}delete []A;}合并排序3:#include <iomanip.h>#include <iostream.h> //这个函数将b[0]至b[right-left+1]拷贝到a[left]至a[right] template <class T>void Copy(T a[],T b[],int left,int right){int size=right-left+1;for(int i=0;i<size;i++){a[left++]=b[i];}} //这个函数合并有序数组a[left:i],a[i+1:right]到b,得到新的有序数组b template <class T>void Merge(T a[],T b[],int left,int i,int right){int a1cout=left,//指向第一个数组开头a1end=i,//指向第一个数组结尾a2cout=i+1,//指向第二个数组开头a2end=right,//指向第二个数组结尾bcout=0;//指向b中的元素for(int j=0;j<right-left+1;j++)//执行right-left+1次循环{if(a1cout>a1end){b[bcout++]=a[a2cout++];continue;}//如果第一个数组结束,拷贝第二个数组的元素到bif(a2cout>a2end){b[bcout++]=a[a1cout++];continue;}//如果第二个数组结束,拷贝第一个数组的元素到bif(a[a1cout]<a[a2cout]){b[bcout++]=a[a1cout++];continue;}//如果两个数组都没结束,比较元素大小,把较小的放入belse{b[bcout++]=a[a2cout++];continue;}}} //对数组a[left:right]进行合并排序template <class T>void MergeSort(T a[],int left,int right){T *b=new int[right-left+1];if(left<right){int i=(left+right)/2;//取中点MergeSort(a,left,i);//左半边进行合并排序MergeSort(a,i+1,right);//右半边进行合并排序Merge(a,b,left,i,right);//左右合并到b中Copy(a,b,left,right);//从b拷贝回来}} //from /zhangamxqunint main(){int n;cout<<"how many numbers to sort:";cin>>n;int *a=new int[n];cout<<"input "<<n<<" numbers:";for(int i=0;i<n;i++){cin>>a[i];}MergeSort( a, 0, n-1);for(int j=0;j<n;j++){cout<<setw(5)<<a[j];}return 1;}合并排序4:#include <iostream>using namespace std;void Merge(int a[],int b[],int l,int m,int r) {int i=l,j=m+1,k=l;while ((i<=m)&&(j<=r))if (a[i]<=a[j])b[k++]=a[i++];else b[k++]=a[j++];if (i>m)for(int q=j;q<=r;q++)b[k++]=a[q];elsefor(int q=i;q<=m;q++)b[k++]=a[q];}void Copy(int a[],int b[],int s,int n){for(int i=s;i<=n;i++)a[i]=b[i];}void MergeSort(int a[],int left,int right) {int i;if(left<right){i=(left+right)/2;int b[100];MergeSort(a,left,i);MergeSort(a,i+1,right);Merge(a,b,left,i,right);Copy(a,b,left,right);}}int main(){int a[100];int n,i;cout<<"输入元素个数n:";cin>>n;cout<<"输入一维数组a["<<n<<"]:";for( i=0;i<n;i++)cin>>a[i];MergeSort(a,0,n-1);cout<<"输出排序为:";for ( i=0;i<n;i++)cout<<a[i]<<' ';cout<<endl;return 0;}矩阵相乘1:#include <iostream>#include <stdio.h>using namespace std;int main(){int i, j, k;cout<<"输入二维数组a的行数和二维数组c的行数x:";int x;cin>>x;cout<<"输入二维数组a的列数和二维数组b的行数y:";int y;cin>>y;cout<<"输入二维数组b的列数和二维数组c的行数z:";int z;cin>>z;int **a, **b, **c;a=new int*[x];for(i=0;i<x;i++){a[i]=new int[y];}cout<<"输入二维数组a:"<<endl;for(i=0;i<x;i++){for(j=0;j<y;j++){cin>>a[i][j];}}b=new int*[y];for(i=0;i<y;i++){b[i]=new int [z];}cout<<"输入二维数组b:"<<endl;for(i=0;i<y;i++){for(j=0;j<z;j++){cin>>b[i][j];}}c=new int*[x];for(i=0;i<x;i++){c[i]=new int [z];}cout<<"输入二维数组c:"<<endl;for(i=0;i<x;i++){for(j=0;j<z;j++){c[i][j]=0;}}for(i=0;i<x;i++){for(j=0;j<z;j++){for(k=0;k<y;k++){c[i][j]+=a[i][k]*b[k][j];}}}for(i=0;i<x;i++){for(j=0;j<z;j++){cout<<c[i][j]<<' ';}cout<<endl;}for(i=0;i<x;i++){delete [] a[i];}delete [] a;for(i=0;i<x;i++){delete [] c[i];}delete [] c;for(i=0;i<y;i++){delete [] b[i];}delete [] b;return 0;}矩阵相乘2:#include<iostream>using namespace std;#define M 2#define N 3#define P 4int main(){int a[M][N]={{1,2,3},{4,5,6}};int b[N][P]={{7,8,9,1},{2,3,4,5},{6,7,8,9}};int c[M][P];int i,j,k;for(i=0;i<M;i++)for(j=0;j<P;j++)c[i][j]=0;for(i=0;i<M;i++)for(j=0;j<P;j++)for(k=0;k<N;k++)c[i][j]+=a[i][k]*b[k][j];cout<<"矩阵相乘结果是:"<<endl;for(i=0;i<M;i++){for(j=0;j<P;j++)cout<<c[i][j]<<" ";cout<<endl;}//system("pause");return 0;}矩阵相乘3:#include <iostream>#include <iomanip>using namespace std;int main(){const int m=3;const int n=3;int a[m][n],i,j; //初始化数组a,bfor(i=0;i<m;i++) //对数组 a 赋值并显示{for( j=0;j<n;j++){cout<<"a["<<i<<"]"<<"["<<j<<"]=";cin>>a[i][j];}}for( i=0;i<m;i++){for( j=0;j<n;j++)cout<<setw(4)<<a[i][j];cout<<endl;}const int k=3;const int h=2;int b[k][h],x,y;for( x=0;x<k;x++){for( y=0;y<h;y++){cout<<"b["<<x<<"]"<<"["<<y<<"]=";cin>>b[x][y];}}for( x=0;x<k;x++){for( y=0;y<h;y++)cout<<setw(4)<<b[x][y];cout<<endl;}int c[m][h]; //乘赋值给数组cfor(int r=0;r<m;r++){for(int t=0;t<h;t++) //数组a 与b 相//对数组b 赋值并显示{c[r][t]=0;for(int s=0;s<k;s++){c[r][t]+=a[r][s]*b[s][t];}}}cout<<"c["<<m<<"]"<<"["<<h<<"]"<<endl;for(int z=0;z<m;z++){for(int w=0;w<h;w++)cout<<setw(4)<<c[z][w];cout<<endl;}return 0; //显示数组c}矩阵相乘4:#include<iostream>using namespace std;void chain(int*p,int n,int m[][7],int s[][7])//p维数数组,m最优乘次数组,s记录划分方案{int j;for(int i=1;i<=n;i++)m[i][i]=0;for(int r=2;r<=n;r++){for(i=1;i<=n-r+1;i++){j=i+r-1;m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];s[i][j]=i;for(int k=i+1;k<j;k++){int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];if(t<m[i][j]){m[i][j]=t;s[i][j]=k;}}}}for(i=1;i<=n;i++)//我把它翻过来输出。
C语言课程设计报告(多项式简单的计算器)
沈阳航空航天大学课程设计报告课程设计名称:C 语言课程设计课程设计题目:多项式简单的计算器院(系):计算机学院专业:计算机科学与技术班级:14010106学号:2011040101258 姓名:崔雨濛指导教师:孙恩岩完成日期:2012年3月16日第1章概要设计 (2)1.1题目的内容与要求 (2)1.2总体结构 (2)第2章详细设计 (3)2.1主模块 (3)2.2多项式建立模块 (4)2.3计算模块 (5)2.4显示模块 (6)第3章调试分析 (7)3.1无法完整输出多项式 (7)3.2多项式中出现多余的项目 (7)3.3用户无法自行选择结束运行程序 (7)第4章使用说明与执行结果 (8)参考文献 (10)附录(程序清单) (11)第1章概要设计1.1题目的内容与要求课程设计的内容是设计一个简单的单词替换程序,可以替换文本文件中指定的单词。
要求:(1)输入多项式各项并建立多项式。
(2)输出多项式。
(3)两个多项式相加减,并输出结果多项式。
(4)采用VC环境进行调试运行。
1・2总体结构本程序主要分为四个模块(功能模块图见图1.1):主模块,多项式建立模块, 计算模块,显示模块。
主模块:输入多项式各项,建立多项式,输出多项式。
多项式建立模块:将输入的多项式各项以链表形式建立起来。
计算模块:比较两个多项式的系数和指数,合并同类项。
显示模块:显示输入的多项式及结果多项式。
图1.1功能模块图第2章详细设计2.1主模块控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块, 实现各项功能,流程如图2.1所示。
图2.1主模块流程图2.2多项式建立模块注释:根据多项式的项数循环存入结构体中2.3计算模块比较两个多项式的系数和指数,合并同类项。
流程图如图 2.3所示图2.3计算模块流程图注释:具体比较方法如下:(1)qa->expn < qb->expnqa所指节点应为结果多项式中的结点,qa后移:qa=qa->next; qb不动。
c语言课程设计+报告+源代码
西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。
二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。
用户密码的修改。
而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。
三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。
2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。
3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。
4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。
5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。
6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。
b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。
C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。
7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。
8.输出现有职工的信息: 会显示现在记录的职工的各项信息。
c语言课程设计及源代码
c语言课程设计及源代码一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力。
通过本课程的学习,学生将能够:1.理解C语言的基本语法和编程规则;2.熟练使用C语言进行简单的程序设计;3.掌握常用的数据结构和算法;4.培养良好的编程习惯和问题解决能力。
二、教学内容教学内容将按照教材的章节进行,主要包括:1.C语言的基本语法和编程规则;2.数据类型的定义和运算;3.控制语句和函数的使用;4.常用的数据结构和算法;5.指针和内存管理;6.文件操作和编程实践。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法:1.讲授法:通过讲解和演示,让学生掌握C语言的基本语法和编程规则;2.讨论法:通过小组讨论和实践,让学生深入理解和运用数据结构和算法;3.案例分析法:通过分析实际案例,让学生学会解决实际编程问题;4.实验法:通过上机实验,让学生动手实践,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,辅助讲解和演示;4.实验设备:提供计算机实验室,让学生进行上机实验。
通过以上教学设计,相信学生能够顺利完成本课程的学习,掌握C语言编程的基本技能。
五、教学评估为了全面、客观、公正地评估学生的学习成果,将采用多种评估方式:1.平时表现:通过课堂参与、提问和讨论,评估学生的学习态度和理解程度;2.作业:布置适量的作业,评估学生的编程能力和实践能力;3.考试:进行期中和期末考试,评估学生对课程知识的掌握程度;4.项目实践:课程项目,让学生综合运用所学知识解决问题,评估学生的综合能力。
六、教学安排教学安排将根据课程内容和学生的实际情况进行设计:1.教学进度:按照教材的章节顺序,合理安排每一节课的教学内容;2.教学时间:根据学生的作息时间,选择合适的时间段进行授课;3.教学地点:选择适宜的教室或实验室,保证教学环境的舒适和设施的齐全;4.教学活动:结合学生的兴趣爱好,安排一些实践活动,提高学生的学习积极性。
c语言课程设计单
c语言课程设计单一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程技巧,培养学生独立思考和解决问题的能力。
具体目标如下:1.知识目标:–了解C语言的发展历程和特点;–掌握C语言的基本语法,包括数据类型、运算符、控制结构等;–理解函数的定义和调用方法。
2.技能目标:–能够运用C语言编写简单的程序,实现输入输出、计算等功能;–学会使用调试工具,分析程序的运行过程和结果;–能够阅读和理解他人的代码,进行简单的代码审查。
3.情感态度价值观目标:–培养学生对编程的兴趣和热情,提高学生自主学习的积极性;–培养学生解决问题的信心和耐心,增强学生的团队协作意识。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言的发展历程和特点;2.C语言的基本语法,包括数据类型、运算符、控制结构等;3.函数的定义和调用方法;4.简单的C语言编程实践。
三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:教师讲解C语言的基本语法和概念,引导学生理解和掌握相关知识;2.案例分析法:通过分析典型代码案例,让学生了解C语言的应用场景和编程技巧;3.实验法:让学生动手编写程序,培养学生的实际编程能力和解决问题的能力;4.讨论法:鼓励学生之间进行交流和讨论,提高学生的团队协作能力和沟通能力。
四、教学资源为了支持教学内容的传授和教学方法的应用,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料;2.参考书:提供一些经典的C语言编程参考书籍,方便学生深入研究;3.多媒体资料:制作精美的PPT,直观展示C语言的语法和编程实例;4.实验设备:准备充足的计算机和编程环境,确保学生能够顺利进行编程实践。
五、教学评估本节课的教学评估将采用多元化的评价方式,全面、客观地评价学生的学习成果。
具体评估方式如下:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和理解能力;2.作业:布置适量的课后作业,要求学生独立完成,以检验学生对课堂知识的掌握情况;3.考试:安排一次课程结束考试,测试学生对C语言基本语法和编程技巧的掌握程度;4.编程实践:评估学生在课堂编程实践中的表现,包括代码质量、解决问题能力等。
c语言课程设计
c语言课程设计一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握数据类型、变量、运算符和表达式的使用;2. 学会使用C语言进行顺序、分支和循环结构的程序设计;3. 熟悉C语言数组、函数的基本应用,并能运用解决实际问题;4. 了解C语言指针的概念,初步掌握指针的使用。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题;2. 学会分析问题,设计算法,并用C语言实现;3. 掌握基本的调试技巧,能够调试并优化程序;4. 培养良好的编程习惯,编写规范、简洁、高效的代码。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学习动力;2. 培养学生的逻辑思维能力,提高分析问题和解决问题的能力;3. 培养学生的团队协作意识,学会与他人合作共同完成任务;4. 培养学生勇于尝试、不怕困难的品质,形成积极向上的学习态度。
课程性质:本课程为C语言入门课程,以实用为主,注重培养学生的实际编程能力。
学生特点:学生为初中或高一学生,对计算机编程有一定兴趣,但基础薄弱,需要从基础知识开始学习。
教学要求:结合学生特点,以实际案例为主线,引导学生主动参与,注重实践操作,提高学生的编程兴趣和能力。
在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。
通过课程学习,使学生能够独立完成简单的C语言程序设计,为后续学习打下坚实基础。
二、教学内容1. C语言概述:介绍C语言的发展历史、特点及应用领域,使学生了解C语言的重要性。
教材章节:第一章 C语言概述2. 数据类型、变量和常量:讲解C语言的基本数据类型,变量的定义、赋值和作用域,常量的概念和使用。
教材章节:第二章 数据类型、变量和常量3. 运算符与表达式:介绍C语言的运算符及其优先级,表达式的构成和计算。
教材章节:第三章 运算符与表达式4. 顺序结构程序设计:讲解C语言程序的基本结构,顺序执行语句,输入输出函数。
教材章节:第四章 顺序结构程序设计5. 分支结构程序设计:介绍if语句、switch语句等分支结构的使用。
C语言编程-简单的计算器
int i=0;
a[0]='$';
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);
}
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;
nibo[t1+1]='\0';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
}
else if(a[i]=='*'||a[i]=='/')
《C语言程序设计》课程标准
《C语言程序设计》课程标准课程代码:040070 课程类别:行业通用能力培养课程学时:76一、课程定位和课程设计(一)课程性质与作用课程的性质:本课程是电子信息工程技术专业的行业通用能力培养课程,是校企合作开发的基于面向过程程序开发工作过程的课程。
课程的作用:本课程主要培养学生面向过程程序开发岗位的行业通用能力和职业素质,是一门面向职业岗位的技术应用类课程。
《C语言程序设计》课程包含有一定的理论知识,同时也强调对学生的编程能力的培养。
本课程是电子信息工程技术专业的一门专业基础课程,是一门理论与实践相结合的课程,具有一定的理论深度与实践难度。
通过对本课程的学习,不仅能为后续课程(如:《单片机》、《电子产品设计》等)打下基础,还为学生从事C语言程序设计方向的深入编程打下基础。
(二)课程基本理念根据教育部的规定,程序设计语言作为计算机基础教育的核心内容之一已经成为高等院校理工类学生的公共基础课程。
我们通过教学方式和手段改革、教学内容和教材建设、课程设计遵循“设计导向”的职教观,“以学生为根本,以能力培养为核心”的能力本位的质量观。
重在理论与实践相结合,使学生通过“做中学”,掌握实际工作的过程和方法,形成建构主义的知识观,提高职业能力,养成终身学习的教育观。
(三)课程设计思路为了提高学生职业技能,落实工学结合的教育理念,根据软件开发岗位群及能力要求,改革了传统的课程体系和教学方法。
将原来以课堂理论教学为主,辅助以相应的实践教学的课程设计思路,改革为以实践技能培养为主,理论知识够用为度的设计思路。
在课程内容设计方面,以软件项目开发过程内容为主线进行设计,积极与行业企业合作开发课程,共同开发模块化的课程,进一步体现课程设计职业性、实践性的特点。
教学内容的组织安排是根据整个课程的内容,确定一定的载体,将整个课程划分为几个大的基本模块,根据模块内容,可将多个单元的训练要求综合考虑,设计内含多个训练任务的、具有平行、递进关系或包含关系的一级训练项目。
c语言课程设计实验指导及课程设计
c语言课程设计实验指导及课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力和良好的编程习惯。
具体包括以下三个方面的目标:1.知识目标:(1)掌握C语言的基本语法,包括数据类型、运算符、表达式、语句等。
(2)理解函数的定义和调用,掌握函数的参数传递、返回值等概念。
(3)熟悉数组、字符串、指针等数据结构的基本概念和用法。
(4)了解常用的算法和编程思想,如排序、查找、递归等。
2.技能目标:(1)能够使用C语言编写简单的程序,解决实际问题。
(2)具备良好的编程习惯,如合理的代码结构、注释、变量命名等。
(3)能够阅读和理解他人的代码,进行简单的代码调试和优化。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情,提高学生主动学习的积极性。
(2)培养学生具备团队合作精神,学会与他人共同解决问题。
(3)培养学生具备创新意识,勇于尝试和探索新的编程方法和技术。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、语句等。
2.函数:函数的定义和调用、参数传递、返回值等。
3.数据结构:数组、字符串、指针等。
4.算法和编程思想:排序、查找、递归等。
5.编程实践:编写简单的C语言程序,解决实际问题。
三、教学方法为了实现教学目标,本课程将采用以下几种教学方法:1.讲授法:通过讲解和示范,使学生掌握C语言的基本语法和编程思想。
2.讨论法:学生进行小组讨论,培养学生的团队合作精神和创新意识。
3.案例分析法:分析实际案例,使学生更好地理解和应用所学知识。
4.实验法:让学生通过动手实践,提高编程能力和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R)或其他同类教材。
2.参考书:《C Primer Plus》、《C和指针》等。
简单计算器课程设计(DOC)
简单计算器课程设计一. 课程设计的目的Java语言是此刻流行的网络编程语言,它拥有面向对象、跨平台、散布应用等特色。
面向对象的开发方法是此刻世界最流行的开发方法,它不单具有更切近自然的语义,并且有益于软件的保护和继承。
为了进一步稳固讲堂上所学到的知识,深刻掌握Java语言的重要观点及其面向对象的特征,锻炼学生娴熟的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java 程序设计课程设计。
经过此次课程设计,稳固所学Java 语言基本知识,增进Java 语言编写基本功,掌握 JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。
使学生经过该教课环节与手段,把所学课程及有关知识加以举一反三,全面掌握 Java 语言的编程思想及面向对象程序设计的方法,为此后从事实质工作打下坚固的基础。
二. 设计方案论证1.开发环境:JAVA编程工具 JDK 1.5.0 ,操作系统WindowsXP.2.功能描绘 :本计算器能够进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还能够进行(八进制, 十进制, 十六进制)之间的互相变换, 八进制最多能够输入19 位数, 十进制最多能够输入18 位数,十六进制最多能够输入14 位数,backspace 表示退格,clear 表示初始化,在window 下直接运转(Jsp2003.bat )即可,界面为灰白对称。
3.纲要设计 :**********************************************************类名 : This_number_too_big作用 :自定义的异样类,用来办理计算结果溢出继承的父类 : Exception类实现的接口 :没有**********************************************************class This_number_too_big extends Exception{}// 自定义的一个结果溢出异样类**********************************************************类名 : Jsp2003作用:主类继承的父类 : Frame 类实现的接口 : ItemListener类,ActionListener类**********************************************************class Jsp2003 extends Frame implements ItemListener,ActionListener{public int number=0,length=18;//number 是用来记录输入的数字个数,//length是用来设置在不一样进制下同意输入的最多半字位数,默以为十进制char mark='n';//设置运算符号为没有即为‘ n’,它的值是‘ +’‘ - ’‘ * ’‘ / ’public double data=0;//设置运算数据为零public char ch;//用到暂时寄存所按按钮的第一个字符public boolean Refresh=false;//设置 lab 能否要在输入数据的时候刷新,初始为否4.主要方法说明://用来办理按了运算符后的计算 -public void js() throws This_number_too_big //指定由method抛出异常{if (mark=='n') //没有运算符{mark=ch; //,则设置运算符为刚才输入的字符,data=Double.parseDouble(lab.getText());//则设置运算数据为lab 的值Refresh=true;// 则设置下一次输入的时候要刷新lab}else //假如采纳的是连续运算(即没有使用‘=’号)则运转下边的语句{switch (mark) //依据运算符计算结果,并把结果保留到data{ case '+': data+=Double.parseDouble(lab.getText()); break;case '-': data-=Double.parseDouble(lab.getText()); break;case '*': data*=Double.parseDouble(lab.getText()); break;case '/': data/=Double.parseDouble(lab.getText()); break;}lab.setText(Double.toString(data)); //显示运算结果mark=ch;// 设置运算符为刚才按下的运算符Refresh=true;// 则设置下一次输入的时候要刷新 labnumber=lab.getText().length();//设置输入的字符个数// System.out.println(lab.getText());//用来调试用的if (data>Double.MAX_VALUE)//假如 data 超出 double 种类的最大值则抛出自定义的一个异样类{throw new This_number_too_big(); }}}//end js() methodpublic void enter()//办理输入字符{if(Refresh==true)//假如已经设置了运算符则在下一次输入数据的时候要把从前 lab 的内容消除去{lab.setText("0"); number=0; Refresh=false;}if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)//假如 lab 的内容为 0 则, lab 的内容将被所输入的字符取代,//不然直接在 lab 的内容后边加上所输入的字符{lab.setText(Character.toString(ch)); number++;}elseif(number<length){number++;lab.setText(lab.getText()+ch);}}//end enter() method//八进制或十六进制变换成十进制I public String goto_10(String s,long l)//参数 s:是要变换的字符串,因为输入的控制,保证了字符串的合法性;//参数 l :使用来设置是将 8 进制仍是 16 进制变换成 10 进制,它的有效值为8或 16;{ String str=s; //用来变换的字符串long j=l; //表示进制long lg=0,jing=1;//lg用来记录权乘和,jing用来记录位权char cha;//暂时记录要变换的字符for(int i=1;i<=str.length();i++){ cha=str.charAt(str.length()-i);switch(cha){ case '1': lg=lg+1*jing;break;case '2': lg=lg+2*jing;break;case '3': lg=lg+3*jing;break;case '4': lg=lg+4*jing;break;case '5': lg=lg+5*jing;break;case '6': lg=lg+6*jing;break;case '7': lg=lg+7*jing;break;case '8': lg=lg+8*jing;break;case '9': lg=lg+9*jing;break;case 'A': lg=lg+10*jing;break;case 'B': lg=lg+11*jing;break;case 'C': lg=lg+12*jing;break;case 'D': lg=lg+13*jing;break;case 'E': lg=lg+14*jing;break;case 'F': lg=lg+15*jing;break;}jing*=j; //位权升一级,为下次使用做好准备}return Long.toString(lg);}//end String goto_10() method}3.系统流程图开始初始化数据Double result=0; //储存结果Boolean newnum=true; //能否新数String lastop=” =”; /储存操作符按下数字按钮按下操作符( +-* 、 =)按钮判断把目前文本框的内容转为double 后传给calc 方法calc(double.parsedouble(txt.gettext()))newnumTrue false文本框显示新数;文本框接着显示Lastop=”操作txt.settext(“数txt.settext(txtgettext()+ ”符”newnum=true 字”)newnum=false 数字”)4.详尽设计第一剖析这个说要达成的任务,它的主要任务是达成十六进制、十进制、八进制和二进制之间的互相转变,需要包括负数,但不用考虑小数。
C语言课程设计指导书2022
C语言课程设计指导书20221课程设计目标课程设计的目的和要求:1.使学生巩固和加强《C语言程序设计》课程的理论知识。
2.使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。
3.使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。
8.初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
9.培养学生的创新能力和创新思维。
学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
10.培养学生良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
2课程设计内容2.1设计环境1、硬件:PC机。
2、软件:操作系统为Win7或Window某p,设计语言为ViualC++6.0或TurboC2.0。
2.2基本要求1.课程设计采取每两人一组,体现团队合作精神,要求选定一人为组长。
2.可以选择老师提供的参考选题(选题方法另行公布),也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用(和网上1雷同的一律不批准)。
3.要求有欢迎界面、菜单、数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;可以加以其他功能或修饰,使程序更加完善、合理;4.模块化程序设计:要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;5.学生所选课题必须上机通过,并获得满意的结果;6.设计上交内容:设计报告每组一份(按附件1的格式书写);源程序文件;7.流程图要采用N-S流程图;10.源程序书写风格:锯齿型书写格式。
2.3设计过程1.根据问题描述,设计数据存储方式;2.分析系统功能,划分功能模块,确定各模块函数名称;3.主程序算法设计和各模块算法设计;4.编程实现;5.调试和测试;6.完成设计文档和课程设计说明书。
c语言程序设计课程设计
c语言程序设计课程设计一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本概念、语法和编程技巧,培养学生独立思考、解决问题的能力,并培养学生的逻辑思维和团队合作精神。
具体分为以下三个维度:知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等概念,理解程序设计的基本原理和方法。
技能目标:学生能够运用C语言独立编写和调试程序,解决实际问题,具备一定的程序设计能力和创新思维。
情感态度价值观目标:学生通过课程学习,培养对计算机科学和程序设计的兴趣和热情,增强自主学习意识和团队合作精神,树立正确的创新观念和职业道德。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等知识点,具体涵盖如下:1.C语言概述:介绍C语言的历史、特点和应用领域。
2.基本语法:变量、常量、数据类型、运算符、表达式等。
3.控制结构:顺序结构、选择结构、循环结构等。
4.函数:函数的定义、声明、调用、返回值等。
5.数组和指针:一维、二维数组,指针的概念、运算、应用等。
6.字符串:字符串的基本操作、常用函数等。
7.结构体和联合:结构体的定义、使用,联合的概念等。
8.文件操作:文件的打开、关闭、读写等。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性,包括:1.讲授法:教师讲解基本概念、语法和编程技巧,引导学生理解并掌握知识。
2.案例分析法:通过分析实际案例,让学生学会将理论知识应用于实际问题。
3.实验法:学生动手编写和调试程序,培养实际编程能力和创新思维。
4.小组讨论法:学生分组讨论问题,培养团队合作精神和沟通能力。
四、教学资源本课程的教学资源包括以下几个方面:1.教材:《C语言程序设计》(简称教材),为学生提供系统、全面的知识体系。
2.参考书:提供拓展阅读资料,帮助学生深入理解C语言及相关技术。
3.多媒体资料:包括课件、教学视频等,辅助学生更好地学习课程内容。
C语言程序设计说明书
员工工资管理系统———C语言程序设计课程设计说明书指导教师:***专业班级:应化082设计者:李响周金娟解敏李伟生] 设计时间: 2 0 0 9年 9月员工工资管理系统一、需求分析随着计算机的飞速发展,它的应用已经十分广泛,它在人们的生产、生活、工作和学习中发挥着重要的作用。
例如一个现代化的公司,拥有数千名的员工,那么如何管理这么庞大的职工信息档案呢?这时,开发一个功能完善的职工信息管理系统就必不可少了。
从员工的信息的查询到管理实现了自动化的模式,从而提高了工作效率和减少工作中的出错率,对公司内部的员工管理更加方便。
系统是为公司财会部门设计的。
主要管理的数据包括:员工姓名、年龄、性别、员工号、实发。
该系统具有的功能是:根据职工号对职工的信息进行录入、查询、删除、修改、追加、统计、等。
对各功能模块的界面采用菜单显示方式。
本系统具有通用性,即可广泛适用于多单位,多人数,多功能的使用,并且系统采用模块化设计,主体为一个主函数,分别可以调用其他模块,利用不同子模块具有的不同功能,综合完成系统功能,不但主体与子模块间有相互联系,各个子模块间也有相互作用,从而实现了预期的功能。
二、系统的软硬件环境1、硬件环境:一般来说586电脑就可以提供并支持系统的使用及运行,此外,若想打印或成稿还需要使用打印机; U盘、软盘也是程序的必要载体。
2、软件环境:MS-DOS或Windows环境下安装Turbo C语言系统,安装完毕后即可使用,而且要用到UCDOS。
三、系统功能1、系统总体框图四、模块设计分析:此程序中输入模块:该模块是实现对员工姓名、年龄、性别、员工号、工资的录入并保存到文件“yuangong”中。
查询模块:实现按员工号查询每个员工的姓名、年龄、性别、实发,姓名、员工号、性别、年龄、实发;输入错误员工号,显示查无此人;输入错误字符显示“WRONG”首先定义一个变量X;进入循环体While;当X=1时,执行函数dele_num();否则,输出”Wrong!”;如果X=0,则跳出While循环。
c课程设计游戏代码
c 课程设计游戏代码一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握游戏代码的基本概念、原理和编程技巧。
技能目标要求学生能够运用游戏代码解决实际问题,提高编程能力和创新思维。
情感态度价值观目标要求学生培养对游戏代码的兴趣和热情,增强自我认知和团队协作能力。
通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。
学生将能够理解游戏代码的基本原理,熟练使用相关编程语言,编写简单的游戏程序。
同时,学生将培养解决问题的能力,学会与他人合作,并能够对游戏代码作品进行评价和反思。
二、教学内容根据课程目标,我们选择和了以下教学内容。
首先,介绍游戏代码的基本概念和原理,包括游戏编程的基本要素、游戏引擎的使用和游戏设计的流程。
其次,教授编程语言的基本语法和编程技巧,通过实例讲解和练习,使学生能够熟练掌握编程语言的使用。
然后,引导学生进行游戏编程实践,完成一系列游戏项目的开发,培养学生的实际编程能力和解决问题的能力。
最后,进行游戏代码作品的展示和评价,使学生能够反思和总结自己的学习成果。
三、教学方法为了激发学生的学习兴趣和主动性,我们采用了多样化的教学方法。
首先,通过讲授法,向学生传授游戏代码的基本概念和原理,引导学生掌握编程语言的语法和编程技巧。
其次,利用讨论法,鼓励学生积极参与课堂讨论,培养学生的思考能力和团队合作意识。
同时,通过案例分析法,分析游戏代码的实际应用案例,使学生能够将理论知识应用于实际问题中。
最后,运用实验法,让学生亲自动手编写游戏程序,培养学生的实际编程能力和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们选择了适当的教学资源。
教材包括相关的书籍和教材,为学生提供系统的知识体系和学习指导。
参考书提供更多的学习资料和案例,帮助学生深入理解和应用游戏代码。
多媒体资料包括教学视频和演示文稿,丰富学生的学习体验和视觉效果。
实验设备包括计算机和编程工具,为学生提供实际编程的环境和工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码:题目: 计算器年级/专业/班:学生姓名:学号:开始时间:2011 年 5 月28日完成时间:2011 年6月 27 日课程设计成绩:指导教师签名:年月日目录1 引言 (1)1.1问题的提出 (1)1.2任务与分析 (1)2.1加法功能 (2)2.2减法功能 (2)2.3乘法功能 (2)2.4除法功能 (2)2.5开平方功能 (2)2.6四则混合运算功能 (2)2.7显示功能 (2)3 程序运行平台 (3)4 总体设计 (3)5 程序类的说明 (4)6 模块分析 (6)6.1加法模块 (6)6.2减法模块 (7)6.3乘法模块 (8)6.4除法模块 (10)6.5开方模块 (11)6.6求余模块 (13)6.7四则混合运算模块 (14)7 系统测试 (22)8 结论 (27)参考文献 (28)摘要本课程设计是为了实现一个简单计算器,该计算器类似于windows附件中自带的计算器。
分析了现在人们对数据的处理需求,利用系统平台Windows 2000XP,程序设计语言采用面向对象程序设计语言C++,利用Visual C++编程实现了该系统。
该系统具有数据录入,数据修改,数据处理,数据显示等功能。
用户根据系统界面提示,输入需要处理的数据,系统根据要求实现加、减、乘、除以及开方等功能。
关键词:计算器;程序设计;C++1 引言1.1 问题的提出在现在这个现代化的经济社会中,经常会涉及到大量数据的处理。
这时计算器就显得相当重要,计算器系统允许人们录入大量数据,实现各种运算功能。
本课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。
并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。
1.2任务与分析本课程设计的主要目的是通过计算器的来完成各种功能的运算过程,这样可以减少计算量。
该计算器可以实现加、减、乘、除运算以及平方根运算,也可以实现四则混合运算。
数据操作既可以实现整数操作也可以实现实数的操作。
2 程序的主要功能2.1加法功能可以实现整数和实数的相加运算。
2.2减法功能可以实现整数和实数的相减运算。
2.3 乘法功能可以实现整数和实数的乘法运算。
2.4除法功能可以实现整数和实数的除法运算。
2.5开平方功能可以实现整数和浮点数的求平方根运算2.6四则混合运算功能可以实现整数和实数的四则混合运算。
2.7显示功能显示用户输入的数据,并显示处理后的结果。
3 程序运行平台VC++6.0具体操作如下:建立工程Calculator ,添加相应的源文件Main 和Mixoperation.h ,最后编译,链接,执行。
4 总体设计由本系统的要求可以得到相应的总体设计模块:图4.1 计算机总体框架图计算器减法运算加法运算求余运算开方运算除法运算乘法运算显示功能5 程序类的说明•Operation类的声明//-----operation类(+ 、-、 *、 / 、remainder、sqrt、mixopertion)定义----- class operation{double first;double second;public:void get(){cout<<"输入第一操作数:\n";cin>>first;cout<<"输入第二操作数:\n";cin>>second;cout<<"操作结果:";} //输入操作数函数void add(){cout<<first<<"+"<<second<<"="<< first+second<<endl;} //加法定义void subtract(){cout<<first<<"-"<<second<<"="<<first-second<<endl;} //减法定义void multiplication(){cout<<first<<"*"<<second<<"="<<first*second<<endl;} //乘法定义void divide(){cout<<first<<"/"<<second<<"="<<first/second<<endl;} //除法定义void square(){cout<<"输入要开平方的数:\n";cin>>first;cout<<first<<"开放后:"<<sqrt(first)<<endl;} //开方运算定义void FindRemainder(){cout <<first<<" % " <<second <<" = " <<(int)first % (int)second <<endl; } //求余定义void FindMixOperation();}; //四则混合运算定义6 模块分析6.1 加法模块用户根据需要选择加法功能,输入需要处理数据,系统根据用户要求实现整数和实数的相加功能加法流程图如下:开始第一操作get()第二操作数get()结果显示结束图 6.1 加法流程图实现加法功能的主要代码:void Plus(){system("cls");cout<<" ***********************************************\n";cout<<" * *\n";cout<<" * 相加运算 *\n";cout<<" * *\n";cout<<" * *\n";cout<<" ***********************************************\n";operation a; //调用类a.get ();a.add();}6.2 减法模块用户根据需要选择减法功能,输入需要处理数据,实现整数和实数的相减功能减法流程图:开始第一操作get()第二操作数get()结果显示结束图 6.2减法流程图实现减法功能的主要代码:void Minus(){ system("cls");cout<<" ***********************************************\n";cout<<" * *\n";cout<<" * 减法运算 *\n";cout<<" * *\n";cout<<" * *\n";cout<<" ***********************************************\n";operation b;b.get ();b.subtract();}6.3 乘法模块用户根据需要选择乘法功能,输入需要处理数据,实现整数和实数的相减功能乘法流程图如下:开始第一操作get()第二操作数get()结果显示结束图 6.3 乘法流程图实现乘法功能的主要代码:void Multiplication(){system("cls");cout<<" ***********************************************\n";cout<<" * *\n";cout<<" * 乘法运算 *\n";cout<<" * *\n";cout<<" * *\n";cout<<" ***********************************************\n";operation c;c.get ();c.multiplication ();}6.4 除法模块用户输入系统功能,输入数据实现整数与实数的除法功能除法流程图:开始第一操作get()第二操作数get()结果显示结束图 6.4 除法流程图实现除法功能主要代码:void Divide(){system("cls");cout<<" ***********************************************\n";cout<<" * *\n";cout<<" * 除法运算 *\n";cout<<" * *\n";cout<<" * *\n";cout<<" ***********************************************\n";operation d;d.get();d.divide();}6.5开方模块用户选择功能,输入处理数据,实现整数和实数的开方功能开方流程图:开始第一操作get()第二操作数get()结果显示结束图 6.5 开方流程图实现开方功能主要代码:void OpenSqrt(){system("cls");cout<<" ***********************************************\n";cout<<" * *\n"; cout<<" * 开方运算 *\n";cout<<" * *\n";cout<<" * *\n";cout<<" ***********************************************\n";operation e;e.square();}6.6 求余模块用户选择功能,输入数据,实现整数的求余求余流程图:开始第一操作get()第二操作数get()结果显示结束图 6.6 求余流程图实现求余功能的主要代码:void Remainder(){operation f;f.get();f.FindRemainder();}6.7四则混合运算模块用户选择功能,输入需要进行处理的多项式(不能输入空格符),实现整数和实数的四则混合运算混合运算流程图:开始输入多项式处理函数mixoperation()结果显示结束图 6.7 四则混合运算流程图实现四则混合运算功能的主要代码:#include<iostream>using namespace std;int check(char *c) //检查字符串中是否有除了 0-9, +,-,*,/,(,),之外的其他字符,有返回0无则为1,正确输出{int k=0;while(*c!='\0'){if((*c>='0' && *c<='9') || *c=='+' ||*c=='-' || *c=='*' || *c=='/' ||*c=='.' || *c=='(' || *c==')' )}else{cout<<"input error, there have the char not the math expression char!\n"; return 0;}if(*c=='(')k++;else if(*c==')')k--;c++;}if(k!=0){cout <<"input error, there is not have correct bracket '()'!\n";return 0;}return 1;}void move(char *f, double *s,int p) //将当前已经完成运算的运算符消去,同时将数值数组的位置调整以进行下一次运算{int i=0,len=strlen(f);for(i=p; i<len; i++) //将已经运算过的符号,空出来的位置用后面的符号来填充, { //即把乘和除号的位置用后面的加和减号填充f[i]=f[i+1];s[i]=s[i+1];}s[i]=s[i+1];f[len-1]='\0';}double convnum(char *c)// 将输入的字符串先将其小数点以前的部分复制到temp[]数组中{double num=0.0;double a=1.0;int i=0,p=0,len=0;char temp[100];int tempi=0;int start=0;int f=1; //正负符号指示器,若为1则为正数,为-1,此数为负数len=strlen(c);if(c[0]=='-'){start=1;f=-1;}for(i=start; i<len; i++){if(c[i]=='.'){p=i;break;}temp[tempi++]=c[i]; //将整数部分复制到temp[]中}temp[tempi]='\0';if(p!=0){for(i=p+1;i<len;i++) //将小数部分计算出来{if(c[i]=='.') //如果有多余的小数点,则表示输入错误{cout <<"there is more that one dot '.' in number!error!\n"; exit(0);}a=a*0.1;num+=(a*(c[i]-48));}}a=1.0;len=strlen(temp); //计算整数部分for(i=len-1;i>=0; i--){num=num+(a*(temp[i]-48));a*=10;}num=num*f;return num;}double good(char *c) //可递归函数{ //取得数值字符串,并调用convnum转换成doublechar g[100],number[30]; //g,保存当前的表达式串,number保存一个数的所有字符 char f[80]; //保存所有的符号的堆栈int fi=0; //保存符号的位置指针double s[80]; //保存当前所有的数的一个堆栈int si=0; //保存数字位置指针int k=0; // 若k=1则表示有一对括号int num=0,i=0; //num保存新括号内的字符数,i 保存number里的字符位置 int cc=0; //乘除符号数量int jj=0; //加减符号数量while(*c!='\0') //当p==1 和k==0时,表示已经把括号里的内容全部复制到g[100]中了{k=0;num=0;switch(*c){case '+': //当前字符为+-乘除时则表示case '-':case '*':case'/':f[fi++]=*c;if(*c=='*' || *c=='/')cc++;elsejj++;if(*(c-1)!=')'){number[i]='\0';i=0; //完成一个数字的复制,其位置指针i=0s[si++]=convnum(number);}break;case'(': //有括号,则将当前括号作用范围内的全部字符保存,作为 k++; //一个新的字符表达式进行递归调用good函数计算。