本人辽宁科技大学计算机专业2019学生,下面是我大一上学期的C++课程设计,老师出的都是最基本的入门题,没有什么难度,对于刚入门的码友,有些许参考价值
- 一数组中已存放了10个有序的整数,现由键盘输入一个整数,将此数插入到该数组中,使数组仍然是有序的。
#include<iostream>
using namespace std;
void Big_Small_Arrange(int a[],int n)//由大到小排序函数(选择排序法)
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if(a[i]<a[j])//三值交换法
{
int t;
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
void Small_Big_Arrange(int a[],int n)//由小到大排序函数(选择排序法)
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
int t;
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
void Insert(int a[],int X,int Num)//插入函数
{
for(int i=9;i>=X;i--)
a[i+1]=a[i];
a[X]=Num;
}
int main()
{
int a[11]={0};//数组初始化
int x,num;
cout<<"请您输入10个整数"<<endl;
for(int i=0;i<10;i++)
cin>>a[i];
cout<<"请输入你要插入的位置:";
cin>>x;
cout<<endl;
cout<<"请输入你要插入的数值:";
cin>>num;
Insert(a,x,num);
Big_Small_Arrange(a,11);
cout<<"插入后(由大到小排序):"<<endl;
for(int i=0;i<11;i++)
cout<<a[i]<<" ";
cout<<endl;
Small_Big_Arrange(a,11);
cout<<"插入后(由小到大排序):"<<endl;
for(int i=0;i<11;i++)
cout<<a[i]<<" ";
return 0;
}
- 输入20个整数存入数组中,输出其中的偶数及偶数之和。
#include<iostream>
using namespace std;
int main()
{
int a[20]={0};//数组初始化
int Num=0;//累加器
cout<<"请输入20个整数:"<<endl;
for(int i=0;i<20;i++)
cin>>a[i];
cout<<"数组元素偶数如下:"<<endl;
for(int i=0;i<20;i++)
{
if(a[i]%2==0)
{
cout<<a[i]<<" ";
Num+=a[i];
}
}
cout<<endl;
cout<<"偶数之和为:"<<Num<<endl;
return 0;
}
- 输出50—100间的所有素数,其中判断一个数是否为素数用函数完成。
#include<iostream>
using namespace std;
int Primes(int x)
{
int i;
for(i=2;i<=x;i++)
{
if(x%i==0)//判断数值
break;
}
if(i==x)
return 1;
else
return 0;
}
int main()
{
cout<<"50——100之间的素数有:"<<endl;
for(int i=51;i<100;i++)
{
if(Primes(i)==1)
cout<<i<<" ";
}
return 0;
}
- 有一个一维数组score,内放10个学生成绩,求平均成绩。
#include<iostream>
using namespace std;
int main()
{
double score[10]={0};//数组初始化
double Num=0;//累加器
cout<<"请输入10个学生的成绩:"<<endl;
for(int i=0;i<10;i++)
{
cin>>score[i];
Num+=score[i];
}
cout<<"这是为同学的平均成绩为:"<<Num/10*1.0<<endl;
return 0;
}
- 从键盘输入两个字符串,将它们合并成一个新的字符串。
#include<iostream>
using namespace std;
int main()
{
char s1[100],s2[100];
cout<<"请输入第一个字符串:"<<endl;
cin>>s1;
cout<<"请输入第二个字符串:"<<endl;
cin>>s2;
char *p=s1,*q=s2;
for(;*p!='\0';p++);
for(;*q!='\0';q++)
{
*p++=*q;
}
*p='\0';
cout<<s1<<endl;
return 0;
}
- 编写函数f(char *s1,char *s2),将字符串s2连接到字符串s1的后面。
#include<iostream>
using namespace std;
void f(char *String_One,char *String_Two)
{
while(*String_One!='\0')
{
String_One++;
}
while(*String_Two!='\0')
{
*String_One++=*String_Two++;
}
*String_One='\0';
}
int main()
{
char s1[20],s2[20];
cout<<"请输入两个字符串:"<<endl;
cin>>s1>>s2;
cout<<"字符串连接后为:"<<endl;
f(s1,s2);
cout<<s1<<endl;
return 0;
}
- 设计一个实用的小型学生成绩管理系统,具有输入学生信息、计算学生平均分、按任意成绩(各科或平均分)降序排序和输出学生信息的功能。以便使学生了解和掌握如何编制一个应用程序,从而进一步锻炼实际编程能力。
#include<iostream>
using namespace std;
const int Max=100;
struct Student
{
long no;
char name[20];
double math;
double English;
double Pro;
double average;
};
void Input(Student a[],int n)
{
cout<<"学号----姓名----数学----英语----高程----平均分"<<endl;
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"学生的信息:";
cin>>a[i].no>>a[i].name>>a[i].math>>a[i].English>>a[i].Pro;
a[i].average=0;
}
cout<<"学生信息已输入完毕"<<endl;
}
void Output(Student a[],int n)
{
cout<<"学生信息正在输出中..."<<endl;
for(int i=0;i<n;i++)
{
cout<<"第"<<i+1<<"个学生的信息:";
cout<<a[i].no<<" "<<a[i].name<<" "<<a[i].math<<" "<<a[i].English<<" "<<a[i].Pro<<" "<<a[i].average<<endl;
}
}
void GetScore(Student a[],int n)
{
for(int i=0;i<n;i++)
{
a[i].average+=a[i].math+a[i].English+a[i].Pro;
a[i].average/=3;
}
}
void Sort(Student a[],int n)
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
//三值交换法
double s;
if(a[i].average>a[j].average)
{
s=a[i].average;
a[i].average=a[j].average;
a[j].average=s;
}
}
}
void (*menu[])(Student a[],int n)={Input,GetScore,Output,Sort};
int main()
{
Student a[Max];
int n;
cout<<"请输入学生人数"<<endl;
cin>>n;
int x;
while(1)
{
cout<<"----------程序功能表-----------"<<endl;
cout<<"***1:输入信息***"<<endl;
cout<<"***2:计算平均分***"<<endl;
cout<<"***3:输出信息***"<<endl;
cout<<"***4:按任意成绩排序***"<<endl;
cout<<"***0:退出系统***"<<endl;
cout<<"请选择功能:"<<endl;
cin>>x;
if(x==0)
break;
else
menu[x-1](a,n);
}
return 0;
}