江苏科技大学c++程序设计实践教程

合集下载

江苏科技大学c++实验报告

江苏科技大学c++实验报告

江科技大学课程实践报告设计题目:计算机程序设计实验(C++)设计时间: 2016年10月3日至2016年10月4日学院:计算机科学与工程学院专业班级:通信工程 1522107041学生:周祯楠学号:****************:***一、第三题(一)题目:3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

具体要求如下:(1)私有数据成员。

○1float array[20]:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数○1MOVE(float b[],int m):构造函数,初始化成员数据。

○2void average():输出平均值,并将数组中的元素按要求重新放置。

○3void print():输出一维数组。

(3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

(二)源程序:#include<iostream.h>class MOVE{float array[20];int n;public:MOVE(float b[],int m);void average();void print();};MOVE::MOVE(float b[],int m){int i;n=m;for(i=0;i<m;i++)array[i]=b[i];}void MOVE::average(){int i,x;float a = 0;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"平均值为:"<<a<<endl; //○1float f[20];for(i=0,x=0;i<n;i++)if(array[i]<a){f[x] = array[i];x++;}for(i=0;i<n;i++)if(array[i]>a){f[x] = array[i];x++;} //○2 for(i=0;i<n;i++)array[i] = f[i]; //○3}void MOVE::print(){int i;for(i=0;i<n;i++){cout<<array[i]<<'\t';if((i+1)%5==0) cout<<endl; //○4 }cout<<endl;}void main(){float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};int m = 9;MOVE ff(b,m);ff.average();ff.print();}(三)运行结果:(四)基本分析:1.就结构而言,定义类以及成员函数按照题目要求写即可,注意类作用域符::不可缺失。

江苏科技科技大学C++程序设计课程实践

江苏科技科技大学C++程序设计课程实践

3. 建立一个类 MOVE, 不进行排序, 将数组中小于平均值的元素 放到数组的左边, 大于平均值的元素放到数组的右边。 具体要求如下: (1) 私有数据成员
float array[20]: 一维整型数组。 int n: 数组中元素的个数。 (2) 公有成员函数 MOVE(float b[],int m): 构造函数, 初始化成员数据。 void average(): 输出平均值, 并将数组中的元素按要求重新 放置。 void print(): 输出一维数组。 (3) 在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该 类进行测试。 源程序: #include<iostream.h> class MOVE{ float array[20]; int n; public: MOVE(float b[],int m)
if((*p)<t) {
q[j]=*p; j++; } p=array; for(i=0;i<n;i++,p++) if((*p)>t) {
q[j]=*p; j++; } for(i=0;i<n;i++) { array[i]=q[i]; } } void print() { cout<<"排序后的数组为:"<<endl; for(int i=0;i<n;i++) cout<<array[i]<<'\t'; cout<<endl; } }; void main() { float a[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}; int b; b=sizeof(a)/sizeof(float); cout<<"原数组为:"<<endl;

江苏科技大学苏州理工学院(镇江校区)VC++程序设计

江苏科技大学苏州理工学院(镇江校区)VC++程序设计

计算机程序VC++课程设计报告班级学号姓名一.课程设计教学和任务《计算机程序设计(VC++)课程设计》是实践性教学环节,是学生必修的一门计算机实践课程。

本课程设计的目的是通过综合性程序设计训练,使学生进一步巩固对计算机程序设计语言(VC++)基本语法、基本算法的理解,加深对面向对象程序设计的理解与应用,并使学生养成模块化、结构化程序设计的良好风格,以及一定的程序组织能力,掌握基本程序设计的方法和技巧,为学习后续课程和实际编程打下良好的基础。

本课程设计的重点要求学生掌握基本程序设计理念和方法,培养学生基本程序设计的应用和开发能力。

二.课程设计要求和内容1 .本课程设计要求(1)学生必须完成本指导书中所有的小综合设计题(2)每个学生必须完成课程设计报告一篇2.课程设计的内容(1)设计一个程序实现如下的选择菜单:用switch语句。

要保证选择的语句只能是0~5的数字,否则重新输入。

#include<iostream.h>void main(){int a;cin>>a;switch(a){case 0:cout<<“退出”<<endl;case 1:cout<<“星期一馒头”<<endl;case 2:cout<<“星期二包子”<<endl;case 3:cout<<“星期三面条”<<en dl;case 4:cout<<“星期四汉堡”<<endl;case 5:cout<<“星期五油条”<<endl;deflaut:cout<<“输入有误重新输入”;}}(2)设计一个循环结构的程序,循环体分别是单个C++语句,循环体是空语句,循环体是复合语句。

单个C++语句:#include<iostream.h>void main(){int i=1,s=1;while(++i<=100)s+=i;cout<<“s=”<<s<<…\n‟;}空语句:#include<iostream.h>void main(){int x,y;for(x=1,y=5;y<++x*x++;y++);cout<<“y=”<<y<<…\n‟;}复合语句:#include<iostreaam.h>void main(){int i,q,n,sum;i=1;q=2;n=sum=0;do{sum=sum+i;++n;i=i*q;}while(sum<100);n--;cout<<n<<endl;}(3)设计一个程序实现练习同名全局变量和局部变量的特点,如能同名覆盖等;局部静态变量(能说明局部静态变量暂时不释放的特点)局部变量:#include<iostream.h>void fn();void main(){fn();fn();fn();}void fn(){static n=10;cout<<n<<endl;n++;}全局变量同名覆盖等:#include<iostream.h>int a=10;void main(){ int a=20,b=30;{ int a=0,b=0;for(int i=1;i<4;i++){a=a+b;b=::a+b;}cout<<a<<''<<b<<endl;}cout<<a<<''<<b<<endl;}(4)设计一个函数,实参与形参结合分别用值传递,引用传递,指针传递(也可以是数组)。

C++课程设计

C++课程设计

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间: 2018-2-26至2018-3-2学院: xxxxxx专业班级xxxxxxx学生姓名:xxxx学号xxxxxxx指导老师:严熙基础题第二题:实验目的:建立类练习类的使用;练习类内说明类外定义;练习调用函数;;for循环语句实验内容:试建立一个类SP,求f(n,k)=1^k+2^k+3^k+....+n^k,另有辅助函数power(m,n)用于求m^n。

具体要求如下:(1)私有成员数据。

int n,k:存放公式中n和k的值(2)公有成员函数SP(int n1,int k1):构造函数,初始化成员数据n和k。

int power(int m,int n):m^n。

int fun():求公式的累加和。

void show():输出求得的结果。

(3)在主程序上定义对象s,对该类进行测试。

实验编码:#include<iostream.h>class SP{int n,k;public:SP(int n1,int k1){n=n1;k=k1;}int power(int m,int n);int fun();};int SP::power(int m,int n){int s=1;for(;n;){s=s*m;n=n-1;}return s;}int SP::fun(){int t=0;for(int i=1;i<=n;i++){t=t+power(i,k);return t;}void main(){int n,k;cout<<"请输入n"<<endl;cin>>n;cout<<"请输入k"<<endl;cin>>k;SP s(n,k);int t=s.fun();cout<<"测试结果为"<<t<<endl;}实验结果:实践小结:类内说明类外定义的时候千万不能忘了全局运算符。

江苏科技大学课程实践设计报告VC++

江苏科技大学课程实践设计报告VC++

江苏科技大学课程实践报告设计题目: 计算机程序设计实践(VC++) 设计时间: 2010 - 03-01 至2010- 03-07 学院:专业班级:学生姓名: 学号指导老师:2010年03月实践一一、实践任务1.基础题第2题:试建立一个类SP,求f(n,k)=1k + 2k + 3k + …… + n k,另有辅助函数power(m,n)用于求m n。

具体要求如下:(1)私有数据成员●int n,k;存放公式中n和k的值;共有成员函数(2)共有成员函数●SP(int n1,int k1):构造函数,初始化数据成员数据n和k。

●int power(int m,int n):求m n●int fun():求公式的累加和●void show():输出求得的结果(3)在主程序中定义对象s,对该类进行测试。

二、系统设计(1)系统功能分析本系统主要实现函数f(n,k)=1k + 2k + 3k + …… + n k的求值。

(2)类的定义与描述(3)编写源程序如下:#include <iostream.h>class SP{int n;int k;public:SP (int n1,int k1){n=n1;k=k1;}int power (int m,int n){int s=1;for (int i=1;i<=n;i++)s*=m;return s;}int fun ( ){int f=0;int j=1;while (j<=n){f+=power(j,k);j++;}return f;}void show(){cout<<fun()<<endl;}};void main (){int n,k;cin>>n>>k;SP s(n,k);s.show();}三.系统测试对类进行测试,测试数据为2 3;预期输出结果为9四.实验小结此题的关键是fun函数中条件的控制,通过此次实践,熟悉了类的基本构造,学会了用类来求解函数。

最新C程序设计与实践第1章(课件)

最新C程序设计与实践第1章(课件)
C语言的语法限制不太严,例如,对数组下标越界不做检查,整型、字
符型数据可以通用,不专设逻辑型数据而以整型来代替等。较少的限 制给程序员带来较大自由,这就要求程序员在编程时应确实明白自己在做 什么,而不要把检查错误的工作完全寄托于编译程序。当然这也可能会带 来一些麻烦,作为程序员应该考虑好再开始编码,平时还要注意养成良好 的编程习惯。
三、初学者对于C语言的学习方法
C语言的学习目的是进行程序设计的基本训练,不是要求立即写出大型 程序,也不能设想今后一辈子只使用学过的某一种语言。因此,学习程序 设计时,应该把主要精力放在最基本的、最常用的内容上,开始不必在一 个细节上死背死抠,可以先“照搬照抄、不求甚解”,多模仿,多实践,在 有一定的基础后再深入到一些常见的细节中去,有些细节是需要通过较长 时间才能掌握的。初学时切忌滥用C的某些容易引起错误的细节。
5.C语言是程序员的语言 C语言的设计者Ritchie是专业程序员,而C最初是为了他自己写UNIX操 作系统而设计的。C语言实现了程序员的期望:很少限制,很少强求,程序 设计自由度大,方便的控制结构,独立的函数,紧凑的关键字集合和较高 的执行效率。用C编写程序可获得高效的机器代码,其效率通常只比汇编语 言生成的机器代码低10%~20%,而同时C又具有PASCAL那样的结构,这就 难怪有大量的程序员喜欢它。
1.2 简单C程序举例 这一节我们主要是通过几个简单的C语言程序来初步了解C程序的有关 特性。 例1.1 最简单的C程序 #include<stdio.h>
void main( ) { printf( ”您好!\\n”); }
这个程序的功能(运行结果)是在屏幕的左上角输出“您好!”。 其中“#include<stdio.h>”,是预处理命令,在本程序中包含标准输入输 出的头文件;main表示“主函数”,每个C程序都必须且只能有一个main函数 。本程序中只有一个函数,函数体是由大括号括起来的部分。函数中只包 含一条输出语句,是通过调用C语言中的输出函数printf来实现输出的,此 函数名字后面圆括号中的双引号内部的字符或字符串按照原样输出,但是 “\\n”表示的是换行符,在屏幕上输出的效果就是将屏幕上的光标从当前位 置移到下一行开始位置,它在程序输出的格式中经常被用到。函数调用的 结束相当于一条语句也结束了,在每条语句后面要有一个分号,即使是函 数体内最后一条语句的后面也要有分号。

计算机程序设计实践答案(江苏科技大学)

计算机程序设计实践答案(江苏科技大学)

计算机程序设计实践答案(江苏科技大学)1,#includeclass PP{int n;double x;double *p;public:PP(int num,double x1);~PP();double fun(int n1,double x);void process();void show();};PP::PP(int num,double x1){n=num;x=x1;p=new double[n+1];}PP::~PP(){if(p) delete[]p;}double PP::fun(int n,double x){if(n==0) return 1;else if(n==1) return x;else return ((2*n-1)*x*fun(n-1,x)-(n-1)*fun(n-2,x))/n; }void PP::process(){int i;for(i=0;i<=n;i++)p[i]=fun(i,x);}void PP::show(){int count=0;cout<<"n="<<n<<'\t'<<"x="<<x<<endl;< p=""> for(int i=0;i<n;i++)< p="">{cout<<p[i]<<'\t';< p="">count+=1;if(count%4==0) cout<<'\n';}}void main(){int num;double x1;cout<<"num=";cin>>num;cout<<"x1=";cin>>x1;PP items(num,x1);items.process();items.show();}2. #includeclass sp{private:int n,k;public:sp(int n1,int k1);int powers(int m,int n);int fun(int m,int n);void show();};sp::sp(int n1,int k1){k=k1;}int sp::powers(int m,int n){int i,p=1;for(i=1;i<=n;i++)p*=m;return p;}int sp::fun(int n,int k){int s=0;for(int i=1;i<=n;i++)s+=powers(i,k);return s;}void sp::show(){cout<<fun(n,k)<<endl;< p="">}void main(){cin>>x>>y;sp s(x,y);s.show();}3. #includeclass move{privatefloat array[20];int n;public:move(float b[],int m){for(int i=0;i<m;i++)< p="">array[i]=b[i];n=m;}void average(){float sum=0,ave;for(int i=0;i<n;i++)< p="">sum+=array[i];ave=sum/20;float Array[20],*p1=Array,*p2=Array; for(i=1;i<="">for(i=0;i<n;i++)< p="">{if(array[i]<=ave) *(p1++)=array[i];else *(p2--)=array[i];}for(i=0;i<n;i++)< p="">array[i]=Array[i];}void print(){cout<<"执行后的数据为:"<<endl;< p=""> for(int i=0;i<n;i++)< p="">cout<<'\t'<<array[i];< p="">cout<<endl;< p="">}};void main(){float b[9]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}; cout<<"原数据为:"<<endl;< p="">for(int i=0;i<9;i++)cout<<'\t'<<b[i];< p="">cout<<endl;< p="">move s(b,9);s.average();s.print();}4. #includeclass MOVE{int *array;int n;public:MOVE(int b[],int m){n=m;array=new int[n];for (int i=0;i<n;i++)< p="">{array[i]=b[i];}}void exchange(){float x=0;int max=0,m=0,min=0;for(int i=0;i<n;i++)< p="">{x+=array[i];if(array[i]>array[max]){max=i;}if(array[i]<array[min])< p="">{min=i;}}x/=n;cout<<"平均数为:"<<x<<endl;< p=""> x=array[min];array[min]=array[max];array[max]=x;}void print(){for(int i=0;i<n;i++)< p="">{cout<<array[i]<<'\t';< p="">}}~MOVE(){delete array;}};void main(){int s[10]={21,65,43,87,12,84,44,97,32,55}; MOVE a(s,10);a.exchange();a.print();}5. #include#includeclass palindrome{int n;int y;public:palindrome (int x);void huiwen();void show();};palindrome:: palindrome(int x){n=x;y=0;}void palindrome::huiwen(){int a[20],b[50],k=n,s=n,i=0,count=0; while(k){a[i]=k%10;k=k/10;i++;count++;}for( i=0;i<count;i++,count--)< p=""> if(a[i]==a[count]) y=1;else {y=0;break;}if(y==1){int i=0,j=0;while(s){b[i]=s%2;s=s/2;i++;j++;for( i=0;i<j;i++)< p="">if(b[i]==b[j]) { y=1;j--;}else {y=0;break;}}if(y==1)cout<<"是绝对回文字符串"<<endl;< p=""> if(y==0)cout<<"不是绝对回文字符串"<<="">void palindrome::show(){cout<<n;< p="">}void main(void){int a;cout<<"请输入a=";cin>>a;palindrome p(a);p.show();p.huiwen();}6. #include#includeclass String{char *str;int y;public:String(char*s){if(s){str=(char*)new char[strlen(s)+1];strcpy(str,s);}else str=0;}void huiwen();void show();};void String::huiwen(){char *t1,*t2;t1=t2=str;while(*t2) t2++;t2--;while (t1<t2)< p="">{if(*t1++!=*t2--) y=1;}}void String::show(){cout<<str<<endl;< p="">if(y) cout<<"不是回文字符串"<<endl;< p=""> else cout<<"是回文字符串"<<="">void main(){char s[]="ababcedbaba";String text(s);text.huiwen();text.show();}7. #includeclass phalanx{int (*p)[20];int startnum;int n;public:phalanx(int s[20][20],int m){startnum=1;p=s;n=m;}void process(){p[0][0]=startnum;for(int i=0;i<n;i++)< p="">for(int j=0;j<n;j++)< p="">{if(i>j){p[i][j]=1+i*i+i+i-j;}else{p[i][j]=1+j*j+i;}}}void print(){for(int i=0;i<n;i++)< p="">{for(int j=0;j<<'\t'<<p[i][j];<="" p=""> cout<<'\n';}}~ phalanx() { }};void main(){int m;int s[20][20];cout<<"请输入折叠层数:";cin>>m;cout<<'\n';phalanx pp(s,m);pp.process();pp.print();}9. #include#includeclass CString{char *str;int size;int maxsize;public:CString(){str=NULL;size=0;maxsize=0;}void Count(CString & s);friend ostream& operator<<(ostream &ostr,const CString & s);friend istream& operator>>(istream &istr,CString & s);};void CString::Count(CString &s){int i,k;for(i=0;i<s.size;i++)< p="">{int m=1;for(k=i+1;k<s.size;k++)< p="">{if(s.str[i]==s.str[k]){for(int n=k;n<s.size;n++)< p="">{s.str[n]=s.str[n+1];}s.size--;s.maxsize--;m++;}}cout<<s.str[i]<<"的个数:"<<m<<endl;< p="">}}ostream & operator<<(ostream &ostr,const CString &s) { cout<<"s.size="<<s.size<<endl;< p="">cout<<"s.str="<<s.str<<endl;< p="">return ostr;}istream& operator>>(istream &istr,CString &s){delete []s.str;cout<<"输入字符串的元素个数:";cin>>s.size;s.maxsize=s.size+1;s.str=new char[s.maxsize]; cout<<"输入字符串:";for(int i=0;i<s.size;i++)< p=""> cin>>s.str[i];s.str[s.size]=NULL;return istr;}void main(){CString s;cin>>s;cout<<s;< p="">s.Count(s);}1113#includeclass MOVE{int array[20];int n;public:MOVE(int b[],int m){n=m;for(int i=0;i<n;i++)< p=""> {array[i]=b[i];}}void change(){for(int j=0;j<3;j++){int a=array[n-1];for(int i=n-1;i>0;i--){array[i]=array[i-1];}array[0]=a;}}void print(){for(int i=0;i<n;i++)< p="">cout<<array[i]<<'\t';< p="">}};void main(){int s[10]={21,65,43,87,12,84,44,97,32,55}; MOVE test(s,10);test.change();test.print();}14. #include#includeclass move{char *array;int n;public:move(char b[],int m){n=m;array=new char[strlen(b)+1]; strcpy(array,b);}void change();void print();~move(){delete[]array;}};void move::change(){char Aa[20];int j=0,k=n;for(int i=0;i<n;i++)< p="">if(array[i]>='A'&&array[i]<='Z') {Aa[j]=array[i];j++;}else{Aa[k-1]=array[i];k--;}for(i=0;i<n;i++)< p="">array[i]=Aa[i];array[n]=0;}void move::print(){for(int i=0;i<n;i++)< p=""> cout<<array[i];< p="">cout<<endl;< p="">}void main(){char b[]={"fdsUFfsTjfsKFEkWC"}; move test(b,17);test.change();test.print();}15. #include#includeclass Carray{int *a;int n;int b;public:Carray(int m[],int n1,int x){ a=m;for(int i=0;i< p="">n=n1;b=x;}void Transform(){int i;int x;int T[10];for(i=0;i<n;i++)< p=""> { x=*a++;T[i]=(b*x+i);}a=T;}void show(){for(int i=0;i<10;i++)cout<<*a<<'\t';cout<<endl;< p="">}~Carray(){delete a;}};void main(){int arr[]={1,2,3,4,5,6,7,8,9,10}; int b;int i=10;//i=strlen(arr);cout<<"请输入b="; cin>>b;Carray test(arr,i,b);test.Transform();test.show();}17. #include#includeclass SIN{private:int x;int n;public:SIN(int a,int b){x=a;n=b;}int power(int q){int c;if(q==1||q==0) c=1;else c=q*power(q-1); return c;}int mi(int m,int n){int p=1;for(int i=0;i<n;i++)< p=""> p=p*m;return p;}double fun(){double sum,s;s=1;sum=0;for (int j=1;j<=n;j++){s=s*mi(x,2*j-1)/power(2*j-1);sum+=s;s=-1;}cout<<sum<<endl;< p="">return sum;}void show(){cout<<"结果为"<<fun()<<endl;< p=""> }};void main(){SIN test(1,2);test.fun();test.show();}18. #includeclass VAR{private:double a[100];int n;public:V AR(double x[],int n1){n=n1;for(int i=0;i<n;i++)< p="">a[i]=x[i];}double average(double x[],int n) {double xp, s=0;for(int i=0;i<n;i++)< p="">{s=s+a[i];}xp=s/n;return xp;}double variance(double x[],int n){double b=0.00,d;for(int i=0;i<n;i++)< p="">{b=b+(x[i]-average(a,n))*(x[i]-average(a,n));}d=b/n;return d;}void show(double x[],int n){cout<<"标准差是:"<<variance(x,n)<<endl;}< p=""> };void main(){double e[100]={1,2,3,4,5};V AR c(e,5);c.show(e,5);}19. #includeclass Array{int a[4][4];public:Array(int a1[][4],int n){for(int i=0;i<n;i++)< p="">for(int j=0;j<4;j++)a[i][j]=a1[i][j];}void xuanzhuan();void show();};void Array::xuanzhuan(){int a2[4][4];for(int i=0;i<4;i++)for(int j=0;j<4;j++)a2[j][3-i]=a[i][j];for(int k=0;k<4;k++)for(int h=0;h<4;h++)a[k][h]=a2[k][h];}void Array::show(){for(int i=0;i<4;i++){for(int j=0;j<4;j++){if(a[i][j]<10)cout<<" "<<a[i][j]<<" ";<="" p=""> elsecout<<a[i][j]<<" ";<="" p="">}cout<<endl;< p="">}}void main(){int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; Array test(b,4);cout<<"原二维数组为:"<<endl;< p=""> test.show();test.xuanzhuan();cout<<"旋转后的二维数组为:"<<endl;< p=""> test.show();}20. #includeclass Array{private:int a[4][4];public:Array(int a1[][4],int n){for(int i=0;i<n;i++)< p="">for(int j=0;j<4;j++)a[i][j]=a1[i][j];}void xuanzhuan(){int b[4][4];for(int i=0;i<4;i++)for(int j=0;j<4;j++)b[i][j]=a[i][j];for( i=0;i<4;i++)for(int j=0;j<4;j++)a[3-j][i]=b[i][j];}void show(){for(int i=0;i<4;i++){for(int j=0;j<4;j++)cout<<a[i][j]<<'\t';< p="">cout<<'\n';}}};void main(){int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; Array test(b,4);test.xuanzhuan();test.show();}23. #includeclass Fract{private:int num,den;public:Fract(int a=0,int b=1){num=a;den=b;}int ged(int m,int n){int k,i,D;if(m<=n)k=m;else k=n;for( i=k;i>=1;i--)if(m%i==0&&n%i==0)break;D=m*n/i;return D;}Fract add(Fract f){Fract temp;int k,i;temp.den=ged(den,f.den);temp.num=temp.den/den*num+temp.den/f.den*f.num;if(temp.den<=temp.num)k=temp.den;else k=temp.num;for( i=k;i>=1;i--)if(temp.den%i==0&&temp.num%i==0){temp.den=temp.den/i;temp.num=temp.num/i;break;}return temp;}void show(){cout<<"两分数之和为"<<num<<" "<<den<<="">void main(){Fract f1(1,5),f2(7,20),f3;</num<<"></a[i][j]<<'\t';<></n;i++)<></endl;<></endl;<></a[i][j]<<"></a[i][j]<<"></n;i++)<></variance(x,n)<<endl;}<></n;i++)<></n;i++)<></n;i++)<></fun()<<endl;<></sum<<endl;<></n;i++)<></endl;<></n;i++)<><></endl;<></array[i];<></n;i++)<></n;i++)<></n;i++)<></array[i]<<'\t';<></n;i++)<></n;i++)<></s;<></s.size;i++)<></s.str<<endl;<></s.size<<endl;<></s.str[i]<<"的个数:"<<m<<endl;<> </s.size;n++)<></s.size;k++)<></s.size;i++)<></n;j++)<></n;i++)<></endl;<></str<<endl;<></t2)<></n;<></endl;<></j;i++)<></count;i++,count--)<> </array[i]<<'\t';<></n;i++)<></x<<endl;<></array[min])<></n;i++)<></n;i++)<></endl;<></b[i];<></endl;<></endl;<></array[i];<></n;i++)<></endl;<></n;i++)<></n;i++)<></n;i++)<></m;i++)<></fun(n,k)<<endl;<> </p[i]<<'\t';<></n;i++)<></n<<'\t'<<"x="<<x<<endl;<>。

C++程序设计实践教程课程设计

C++程序设计实践教程课程设计

C++程序设计实践教程课程设计1. 课程设计简介本次课程设计旨在通过实践方式,帮助学生深入学习C++程序设计,提高他们的实践能力和编程思维。

课程设计主要包括以下内容:•C++基础语法复习•C++面向对象程序设计实践•C++数据结构程序设计实践•C++图形界面程序设计实践通过本次课程设计,学生将能够掌握C++基础语法,理解面向对象程序设计思想,掌握C++数据结构和图形界面编程基础知识,同时也能够锻炼解决问题的能力和编程思维。

2. 课程设计要求情况在本次课程设计中,学生需要完成以下5个实践项目:2.1 个人简历设计要求难度:入门要求内容:学生需要使用C++语言编写一个个人简历设计程序,程序能够实现以下功能:•输入个人基本信息(如姓名、出生年月日、联系方式等)•输入教育背景信息(如教育经历、获得荣誉等)•输入工作经历(如工作岗位、工作时间、主要工作内容等)•将以上信息以美观的形式输出到屏幕上或保存到文件中2.2 学生成绩管理系统要求难度:初级要求内容:学生需要使用C++语言编写一个学生成绩管理系统,程序能够实现以下功能:•输入学生信息(如姓名、学号、班级等)•输入各门课程的成绩(如数学、物理、化学等)•统计每个学生的总分和平均分,并以降序输出•统计每门课程的平均分和最高分,并以升序输出2.3 二叉树的基本操作要求难度:中级要求内容:学生需要使用C++语言实现一个二叉树,并实现以下操作:•构建二叉树(手动输入或读取文件)•遍历二叉树(先序、中序、后序)•插入和删除节点•按照指定顺序输出二叉树节点2.4 迷宫游戏设计要求难度:中高级要求内容:学生需要使用C++语言编写一个迷宫游戏设计程序,程序能够实现以下功能:•根据给定的地图信息构建迷宫(手动输入或读取文件)•给定起点和终点,在迷宫中寻找到通路•将通路以动画形式输出到屏幕上或保存到文件中2.5 图形界面程序设计要求难度:高级要求内容:学生需要使用C++语言编写一个图形界面程序,程序能够实现以下功能:•给定一组数据(如股票涨跌幅度),给出相关信息(如最大涨幅、最大跌幅、平均涨幅等)•在程序中设计出简洁美观、易于操作的图形界面•实现交互功能,用户能够输入或修改数据并获取相应的结果3. 课程设计总结本次课程设计旨在通过实践方式提高学生的C++编程能力和编程思维。

c程序设计实践教材

c程序设计实践教材

C程序设计实践通选课讲义山东轻工业学院信息学院目录C程序设计实践 (I)通选课讲义 (I)山东轻工业学院 (I)信息学院目录 (I)目录 (II)第一章程序设计概述 (1)1.1 学习要点 (1)1.2 Visual C++ 6.0 集成开发环境 (1)1.2.1 Visual C++ 6.0 开发环境介绍 (1)1.2.2 创建一个C源程序 (8)1.2.3 C源程序的编译、连接和运行 (13)1.2.4 C程序的单步调试命令 (15)1.2.5 C程序的调试窗口 (20)1.2.6创建一个项目文件(工程) (31)1.3 实验认识Visual C++ 6.0 的开发环境 (35)1.4 常见错误及解决方法 (36)第二章C语言基础知识 (38)2.1 学习要点 (38)2.2 实验内容 (40)2.2.1 实验1 变量的使用与赋值运算 (40)2.2.2 实验2 格式化输入、输出函数的应用 (41)2.2.3 实验3 宏定义、条件编译编程 (43)2.3 常见错误及解决方法 (43)第三章程序的控制结构 (48)3.1 学习要点 (48)3.2 实验内容 (50)3.2.1 实验1 if语句编程 (50)3.2.2 实验2 switch语句编程 (51)3.2.3 实验3 循环结构编程 (52)3.3 常见错误及解决方法 (53)第四章数组 (60)4.1 学习要点 (60)4.2 实验内容 (63)4.2.1 实验1 一维数组编程 (63)4.2.2 实验2 二维数组编程 (65)4.2.3 实验3 字符数组编程 (66)4.3 常见错误及解决方法 (66)第五章函数 (70)5.1 学习要点 (70)5.2 实验内容 (71)5.2.1 实验1 简单函数编程 (71)5.2.2 实验2 综合运用一维数组和函数编程 (72)5.2.3 实验3 综合运用二维数组和函数编程 (74)5.3 常见错误及解决方法 (76)第六章指针 (83)6.1 学习要点 (83)6.2 实验内容 (85)6.2.1 实验1 指向变量的指针变量编程 (85)6.2.2 实验2 字符指针编程 (86)6.2.3 实验3 指向一维数组的指针变量编程 (87)6.2.4 实验4 指向二维数组的指针变量编程 (88)6.3 常见错误及解决方法 (90)第七章结构体与链表 (93)7.1 学习要点 (93)7.2 实验内容 (94)7.2.1 实验1 结构体变量与结构体数组编程 (94)7.2.2 实验2 链表基本操作编程 (96)7.2.3 实验3 链表复杂应用编程 (98)7.3 常见错误及解决方法 (98)第八章文件 (102)8.1 学习要点 (102)8.2 实验内容 (103)8.2.1 实验1 文件顺序读写编程 (103)8.2.2 实验2 文件随机读写编程 (104)8.3 常见错误及解决方法 (105)第九章综合程序设计 (109)9.1 学习要点 (109)9.2 实验内容 (109)9.2.1 实验1常用通讯录管理系统 (109)9.2.2 实验2 学生成绩管理系统 (110)9.2.3 实验3学校教师人事管理系统 (110)9.2.4 实验4 仓库物资管理系统 (111)9.2.5 实验5 手机销售管理系统 (112)9.2.6 实验6 停车场管理系统 (113)9.2.7 实验7 火车订票管理系统 (115)附录A 常见编译错误和警告 (117)附录B 常用标准库函数 (119)一. stdio.h中包括的常用函数 (119)二. math.h中包括的常用函数 (122)三. stdlib.h中包括的常用函数 (124)四. string.h中包括的常用函数 (126)五. time.h中包括的常用函数 (128)六. ctype.h中包括的常用函数 (129)七. conio.h中包括的常用函数 (130)参考文献 (132)第一章程序设计概述1.1 学习要点1. 计算机程序设计语言的基本成分有:数据成分、运算成分、控制成分、传输成分。

江苏科技大学编译原理实验报告

江苏科技大学编译原理实验报告

实验一词法分析设计一、实验目的通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。

二、实验内容用VC++/VB/JAV A语言实现对C语言子集的源程序进行词法分析。

通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示“Error”,然后跳过错误部分继续显示;同时进行标识符登记符号表的管理。

以下是实现词法分析设计的主要工作:(1)从源程序文件中读入字符。

(2)统计行数和列数用于错误单词的定位。

(3)删除空格类字符,包括回车、制表符空格。

(4)按拼写单词,并用(内码,属性)二元式表示。

(属性值——token的机内表示)(5)如果发现错误则报告出错(6)根据需要是否填写标识符表供以后各阶段使用。

单词的基本分类:关键字:由程序语言定义的具有固定意义的标识符。

也称为保留字例如if、for、while、printf ;单词种别码为1。

◆标识符:用以表示各种名字,如变量名、数组名、函数名;◆常数:任何数值常数。

如125, 1,0.5,3.1416;◆运算符:+、-、*、/;◆关系运算符:<、<=、= 、>、>=、<>;◆分界符:;、,、(、)、[、];三、词法分析实验设计思想及算法1、主程序设计考虑:◆程序的说明部分为各种表格和变量安排空间。

在具体实现时,将各类单词设计成结构和长度均相同的形式,较短的关键字后面补空。

k数组------关键字表,每个数组元素存放一个关键字(事先构造好关键字表)。

s 数组------存放分界符表(可事先构造好分界符表)。

为了简单起见,分界符、算术运算符和关系运算符都放在s表中(编程时,应建立算术运算符表和关系运算符表,并且各有类号),合并成一类。

id 和ci 数组分别存放标识符和常数。

江科大c++课程实践题库

江科大c++课程实践题库

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间: 永久学院: 各个学院专业班级:学生姓名: *** 学号**********指导老师: ******实践一设计要求:试建立一个类pp,求出下例多项式的前n项的值。

1 n=0Pn(x)= x n=1((2n-1)xPn-1(x)-(n-1)Pn-2(x))/n n>1具体要求如下:(1)私有数据成员int n:前若干项的项数。

●double x:存放x的值。

●double *p:根据n的大小动态申请存放Pn(x)前n项的数组空间。

(2)公有成员函数●PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。

~PP():析构函数,释放p指向的动态内存空间。

●double fun(int n1,double x):递归函数,用于求多项式Pn(x)的第n1项。

注意,将递归公式中的n用作函数参数。

本函数供process函数调用。

●void process():完成求前n项的工作,并将它们存放在p指向的动态数组中。

●void show():输出n和x,并将前n项以每行4个数的形式输出到屏幕上。

(3)在主函数中完成对该类的测试。

先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前n项的值。

系统设计:(1)概要设计:本题主要考察递归在函数中的运用,利用递归函数求多项式的值。

在成员函数fun()中分类讨论Pn(X)的值,由process()调用,直至求出n项为止。

(2)详细设计:创建类PP的成员函数PP(int num,double x1)初始化类的数据成员,以及fun(int n1,double x)和process( ).(3)源程序代码如下:#include<iostream.h>class pp{int n;double x;double *p;public:pp(int num,double x1);~pp() { delete []p;}double fun(int n1,double x);void process();void show();};pp:: pp(int num,double x1){n=num;x=x1;p=new double[n];}double pp::fun(int n1,double x){if(n1==0) return 1;if(n1==1) return x;if(n1>1) return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n;}void pp::process(){ for(int i=0;i<n;i++)p[i]=fun(i,x);}void pp::show(){cout<<n<<'\t'<<x<<'\n';for(int i=1;i<=n;i++){cout<<p[i-1]<<'\t';if (i%4==0)cout<<'\n';}}void main(){int num;double x1;cin>>num>>x1;pp items(num,x1);items.process();items.show();}程序测试结果:n=16,x=1。

c语言程序设计实践课程设计

c语言程序设计实践课程设计

c语言程序设计实践课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、编程技巧和相关算法,培养学生独立编写C语言程序的能力,提高学生的逻辑思维和问题解决能力。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等知识。

2.技能目标:学生能够熟练使用C语言编写程序,解决实际问题,具备一定的编程实践能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生自主学习、合作探究的能力,培养学生的创新精神和团队意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、编程技巧和相关算法。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。

2.第二章:数据类型和运算符,讲解整型、浮点型、字符型数据以及各类运算符的使用。

3.第三章:控制结构,学习顺序结构、分支结构和循环结构的使用。

4.第四章:函数,包括函数的定义、声明、调用以及递归等概念。

5.第五章:数组和指针,讲解一维、二维数组的定义和使用,以及指针的基本概念和应用。

6.第六章:字符串和文件操作,学习字符串的表示、处理方法以及文件读写操作。

7.第七章:算法和编程实践,介绍常见的排序算法、查找算法,并通过实际案例提高学生的编程能力。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师讲解基本概念、语法规则和算法原理,引导学生理解和掌握相关知识。

2.案例分析法:通过分析实际案例,让学生学会将理论知识应用于解决实际问题。

3.实验法:安排上机实验,让学生动手编写程序,培养学生的编程实践能力。

4.讨论法:课堂讨论,鼓励学生发表自己的观点,提高学生的思辨能力和团队协作能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供系统性的学习资料。

2.参考书:提供《C程序设计语言》等参考书籍,帮助学生深入了解C语言的内涵。

C程序设计教程实验指导书

C程序设计教程实验指导书

面向对象程序设计实验指导书前言本书是本科课程《面向对象程序设计》的实验指示书,一般人员也可以使用它作为学习语言的上机指导。

因为选择以公司的开发环境作为实验环境,因此书的前一部分介绍了的一些基本知识,并且在实验进行的过程中穿插介绍使用的一些技巧。

书的内容分为两大部分:第一部分介绍实验环境;第二部分是具体的实验安排。

书中共识点对应。

每个实验都列出了实验目的、实验要求以及思考问题,一些实验还列出了测试数据。

使用本书前,请先阅读以下内容:.语言实验环境配置要求硬件配置:以上兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于,硬盘自由空间不少于。

推荐配置为内存或(或以上),硬盘自由空间以上。

软件配置:操作系统:, , 以上版本。

开发集成环境:以上版本.建立自己的工作目录你需要在计算机上先建立自己的工作目录,所有的实验都在该工作目录下进行。

使用建立新项目时,需要指定该目录作为项目所在的目录。

本书中假设你的工作目录为:\\,具体的实验目录由你的指导教师指定。

.安装和最大的不同是在联机帮助系统上做了很大改变。

的帮助系统直接集成在开发环境之中,在安装时就可以选择安装帮助内容。

而的联机帮助系统采用了()库,在安装时,只安装了的索引,实际的内容在光盘上。

如果希望能脱离光盘使用帮助系统,需要在安装了以后,再运行的安装程序,把完整的库装到硬盘上。

目录第一部分实验环境介绍..........................................错误!未指定书签。

一、简介错误!未指定书签。

二、项目开发过程错误!未指定书签。

三、集成开发环境错误!未指定书签。

四、常用功能键及其意义错误!未指定书签。

第二部分实验错误!未指定书签。

实验一熟悉实验环境错误!未指定书签。

实验二简单程序开发错误!未指定书签。

实验三函数与程序结构错误!未指定书签。

实验四复杂数据类型错误!未指定书签。

实验五结构和类错误!未指定书签。

实验六继承与虚函数错误!未指定书签。

(完整版)江苏科技大学VC++程序实践答案

(完整版)江苏科技大学VC++程序实践答案

(完整版)江苏科技大学VC++程序实践答案江苏科技大学VC++实践报告一、实践任务任务一(第2题):试建立一个类SP,求f(n,k)=1^k+2^k+3^k+…+n^K,另有辅助函数power(m,n),用于求m^n。

具体要求如下:(1)私有成员数据:int n,k:存放公式中n和k得值。

(2)公有成员函数:SP(int n1,int k1):构造函数,初始化成员数据n和k。

int power(int m,int n):求m^n。

int fun( ):求公式的累加和。

void show( ):输出求的结果。

(3)在主程序中定义对象s,对该类进行测试。

任务一分析1、任务分析通过SP的成员函数power( )可求出m^n的值,再通过累加函数fun(),可求出累加和。

类的定义如下:#includeclass SP{int n,k;public:SP()int power()int fun()void show()};2、算法设计求m^n:定义变量P=1,循环n次,每次循环P乘以m求累加和:定义变量S=0,通过for循环,将power()函数计算的结果累加。

3、系统测试在主函数中用整数初始化SP的对象,并调用成员函数show()输出结果。

主函数定义如下:void main(){SP a(2,3);a.power(2,3);a.fun();a.show();}用以测试的数据为:n=2,k=3;预期的输出结果为:当n=2,k=3时,f(n,k)=9任务一程序#includeclass SP{int n,k;public:SP(int n1,int k1){n=n1;k=k1;}int power(int m,int n){int p=1;for (int i=1;i<=n;i++)p*=m;return p;}int fun(){int s=0;for (int i=1;i<=n;i++)s+=power(i,k);return s;}void show(){cout<<"当n="<<n<<",k="<<k<<"时,f(n,k)="<<fun()<<endl;< p="">}};{SP a(2,3);a.power(2,3);a.fun();a.show();}任务二(第24题):建立一个NUM,并统计特定序列中相同的字符的个数。

程序设计实践

程序设计实践

程序设计实践(总11页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March苏州科技学院二○一四~二○一五学年第二学期电子与信息工程学院课程设计报告书课程名称:班级:学号:姓名:指导教师:二○一五年三月1.题目小型图书信息管理系统2.功能1、信息录入,包括记录的追加和插入;2、信息删除;3、信息修改;4、信息排序和查询;5、信息的保存和装载;6、简单的帮助。

3.要求(1)整个系统均用C语言实现;(2)利用指针、链表来实现图书馆的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将图书信息保存在文件中。

(6)可以将图书信息从文件中读取出来。

4.设计内容整个系统除了主函数外,另外还有6个函数,实现八大功能:输入功能,查找功能,插入功能,保存功能,删除功能,读取功能。

各个函数的详细设计说明分别如下:主函数 main()利用无限次循环for(;;)实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

初始化函数 book *create()这是一个无参函数,它的作用是使链表初始化,使head的值为NULL。

输入函数 Insert(book *head)这是一个无参函数,用来执行图书信息的输入。

算法:先声明一个首节点head,并将head->next设为NULL。

每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。

N-S修改函数 change(book *head)用于修改图书信息。

算法:输入需修改图书的书名,判断是否有本书,若有,再进行修改。

N-S显示记录函数 void Print(book *head)这是一个不返回值的有参函数,将记录的输出。

算法:先将p结点的指针指向第一个结点,将p结点的数据输出,再将p结点的指针指向下一结点,将下一结点的数据输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档