c++入门题(我的大一上学期C++课程设计)

本人辽宁科技大学计算机专业2019学生,下面是我大一上学期的C++课程设计,老师出的都是最基本的入门题,没有什么难度,对于刚入门的码友,有些许参考价值

  1. 一数组中已存放了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;
}

  1. 输入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;
}

  1. 输出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;
}

  1. 有一个一维数组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;
}
  1. 从键盘输入两个字符串,将它们合并成一个新的字符串。
 #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;
}
  1. 编写函数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;
}

  1. 设计一个实用的小型学生成绩管理系统,具有输入学生信息、计算学生平均分、按任意成绩(各科或平均分)降序排序和输出学生信息的功能。以便使学生了解和掌握如何编制一个应用程序,从而进一步锻炼实际编程能力。
#include<iostream>
#include<cstring>
using namespace std;
const int Max=100;
struct Student
{
    long no;//定义学号
    char name[20];//定义姓名
    double math;//定义数学
    double English;//定义英语
    double Pro;//定义高程
    double sum;//定义总分
    double average;//定义平均分
};
void Choice()//定义操作函数
{
    cout<<"请选择您要排序的科目:"<<endl;
    cout<<"***1.平均分***"<<endl;
    cout<<"***2.总分***"<<endl;
    cout<<"***3.数学***"<<endl;
    cout<<"***4.英语***"<<endl;
    cout<<"***5.高程***"<<endl;
}
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;//平均分初始化
        a[i].sum=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<<" "<<"总分:"<<a[i].sum<<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;
    }
    cout<<"操作成功,平均分已计算完毕!"<<endl;
}
void Sum(Student a[],int n)//总分计算函数
{
    for(int i=0;i<n;i++)
        a[i].sum+=a[i].math+a[i].English+a[i].Pro;
        cout<<"总分已计算完毕!"<<endl;
}
void Sort(Student a[],int n)//学生成绩排序函数
{
    Choice();
    int x;
    cin>>x;
    switch(x)
    {
    case 1:
        for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
    {
        //三值交换法
        Student s;
        if(a[i].average<a[j].average)//平均分降序
        {
            s=a[i];
            a[i]=a[j];
            a[j]=s;
        }
    }
    cout<<"操作成功,平均分已降序进行排序!"<<endl;
    break;
    case 2:
        for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
    {
        //三值交换法
        Student s;
        if(a[i].sum<a[j].sum)//总分降序
        {
            s=a[i];
            a[i]=a[j];
            a[j]=s;
        }
    }
    cout<<"操作成功,总分已降序进行排序!"<<endl;
    break;
    case 3:
        for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
    {
        Student s;
        if(a[i].math<a[j].math)//数学降序
        {
            s=a[i];
            a[i]=a[j];
            a[j]=s;
        }
    }
    cout<<"操作成功!数学已降序进行排序!"<<endl;
    break;
    case 4:
        for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
    {
        Student s;
        if(a[i].English<a[j].English)//英语降序
        {
            s=a[i];
            a[i]=a[j];
            a[j]=s;
        }
    }
    cout<<"操作成功!英语已降序进行排序!"<<endl;
    break;
    case 5:
        for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
    {
        Student s;
        if(a[i].Pro<a[j].Pro)//高程降序
        {
            s=a[i];
            a[i]=a[j];
            a[j]=s;
        }
    }
    cout<<"操作成功!高程已降序进行排序!"<<endl;
    break;
    }
}
bool Search(Student a[],int n,char Name[20])//学生成绩查询函数
{
    for(int i=0;i<n;i++)
        if(strcmp(a[i].name,Name)==0)
    {
        cout<<"经过查询,该学生信息为:"<<endl;
        cout<<"学号\t"<<"姓名\t"<<"数学\t"<<"英语\t"<<"高程\t"<<"平均分\t"<<"总分"<<endl;
        cout<<a[i].no<<"\t"<<a[i].name<<"\t"<<a[i].math<<"\t"<<a[i].English<<"\t"<<a[i].Pro<<"\t"<<a[i].average<<"\t"<<a[i].sum<<endl;
        return true;//找到返回true
    }
    return false;//未找到返回false
}
void (*menu[])(Student a[],int n)={Input,GetScore,Sum,Output,Sort};//指针函数
int main()
{
    cout<<"***************************您已进入学生信息管理系统(≧▽≦o)**************************"<<endl;
    Student a[Max];
    int n;//定义学生人数
    char Name[20];//查找的学生姓名
    cout<<"请输入学生人数"<<endl;
    cin>>n;
    int x;
    while(1)
    {
        cout<<"----------程序功能表-----------"<<endl;
        cout<<"***1:输入信息***"<<endl;
        cout<<"***2:计算平均分***"<<endl;
        cout<<"***3:计算总分***"<<endl;
        cout<<"***4:输出信息***"<<endl;
        cout<<"***5:按任意成绩排序***"<<endl;
        cout<<"***6:学生信息查询***"<<endl;
        cout<<"***0:退出系统***"<<endl;
        cout<<"请选择功能:"<<endl;
        cin>>x;
        if(x==6)
        {
            cout<<"请您输入该学生的名字:";
            cin>>Name;
            Search(a,n,Name);//调用查找函数
        }
        else if(x==0)
            break;
            else
            menu[x-1](a,n);//执行指针函数
    }
    cout<<"已退出操作系统 ̄へ ̄"<<endl;
    return 0;
}

  • 17
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无所畏惧的man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值