>str; len=strl">

实验一讲义C++

  • 格式:doc
  • 大小:58.00 KB
  • 文档页数:7

实验源代码1.编写函数实现字符串逆序存放。

#include<iostream> //头文件{ char str[100],*strs;int len;cout<<"请输一行字符串:";cin>>str;len=strlen(str); //计算字符串的长度strs=str;cout<<"字符串的逆序为:";for(int i=len;i>0;i--) //逆序循环输出{ cout<<strs[i-1];}cout<<endl;system("pause");}2.写函数实现字符串拷贝功能。

#include<iostream> //头文件#include<string.h>char str[100],strs[20];cout<<"\t请输一行字符串:";cin>>str;cout<<"\t拷贝后的字符串:"<<strcpy(strs,str)<<endl; //调用strcpy函数拷贝字符串3写函数将用户输入的一个十进制数转换为二、八、十六进制数。

#include<iostream> //头文件int a,b,count=0,binary_sys[32]={0}; //定义二进制数组binary_syscout<<"请输入一个十进制数:"; cin>>a; b=a;for(int i = 0; a > 0; i++) //把十进制转换为二进制{binary_sys[i] = a%2;a = a/2;count++;}cout<<b<<"转换成二进制为:";for(int j=count;j>0;j--) //二进制输出{cout<<binary_sys[j-1];}cout<<'\n'<<b<<"转换成八进制为:"<<oct<<b<<'\n'<<resetiosflags(ios::oct)<<b<<"转换六进制为:"<<hex<<b<<endl;system("pause");}3.利用重载,编写求整数绝对值和求实数绝对值的两个函数。

#include<iostream> //头文件int numbers(int); //自定义重载函数double numbers(double);while(1){ double n;cout<<'\t'<<"求一个数的绝对值,请输入该数:";cin>>n;cout<<"\t该数的绝对值为:"<<numbers(n)<<endl;cout<<endl;}system("pause");}Int numbers(int integral) //重载函数return (integral>0 ? integral:-integral);}double numbers(double real){ return (real>0 ? real:-real);4.条件编译方法实现下列功能。

#include<iostream> //头文件#include<string.h>#define READ 1 //声明和自定义char change_char(char str_s[],int nums);void output();void main(){ int trues=1;system("title 5.密码的翻译"); //设置DOS窗口的属性while(trues){ output();cout<<"继续请摁1键:0退出:";cin>>trues;}system("pause");void output() //电报文字的输入{ int num,j,i;char str[100],other_str[100];cout<<"请输入电报文字:";cin>>str;num=strlen(str);strcpy(other_str,str);#if READ //条件编译处理cout<<"第一种密码翻译:";change_char(str,num);for(j=0;j<num;j++)cout<<str[j];#else //条件编译处理cout<<"原样输出";for(i=0;i<num;i++)cout<<other_str[i];#endif //endifcout<<endl;}char change_char(char str_s[],int nums) //对字符串进行判断处理{ char primal,later;for(int i=0;i<nums;i++){ primal=str_s[i];if( primal<'A'|| primal>'z') //条件判断later=primal;else{if( (primal<='y' && primal>='a') || (primal<='Y' && primal>='A')) //条件判断later=primal+1;else{if(primal=='z')later='a';if(primal=='Z') //条件判断later='A';str_s[i]=later;}return 0;}#define READ 1:#define READ 0:5.定义学生成绩结构体。

#include<iostream> //头文件using namespace std;int intput(void); //声明自定义函数int sort(int number_s);int out(int number_o);struct student //定义学生成绩结构体{ int number; int english;int math; int physics; int sum;}stu[100];void main() //主函数main{ int number_m;system("title 6.学生成绩管理"); //设置DOS窗口的属性number_m=intput();out(number_m);sort(number_m);}int intput(void) //数据的输入{ static int i=0,number_s;int trues=1,g;cout<<"1:继续;0:完成---"<<"例如1110011 90 90 90 1"<<endl;cout<<"请输入学生的成绩信息"<<endl;while(trues) //多次循环输出,当trues为0时结束{ i++;cout<<" 学号英语数学物理(1/0)"<<endl<<"第"<<i<<"位";cin>>stu[i-1].number>>stu[i-1].english>>stu[i-1].math>>stu[i-1].physics>>trues; //获取各科成绩}cout<<"\t输入完成,一共"<<i<<"名同学"<<endl;for(g=0;g<i;g++) //对各科的成绩相加(sum){stu[g].sum=stu[g].english + stu[g].math + stu[g].physics;}number_s=i;return number_s; //返回输入学生的人数}int sort(int number_s) //对sum进行排列{int k,j,m;struct student t;for(j=0;j<number_s-1;j++) //交换结构体for(k=j+1;k<number_s;k++)if(stu[j].sum<stu[k].sum){ t=stu[k];stu[k]=stu[j];stu[j]=t;}cout<<"\t从高到低的排列顺序如下:"<<endl;cout<<"\t总成绩\t学号"<<endl;for(m=0;m<number_s;m++) //输出从高到低的排列cout<<'\t'<<stu[m].sum<<'\t'<<stu[m].number<<endl;}return 0;}int out(int number_o) //输出所有学生的学号和总成绩{int k,g;cout<<"\t所有用的学生的信息:"<<endl;cout<<"\t学号\t总成绩"<<endl;for(k=0;k<number_o;k++){cout<<'\t'<<stu[k].number<<'\t'<<stu[k].sum<<endl;}return 0;}6.编写将两个已知的有序链表合并为一个有序链表函数。