C++程序设计作业,有具体要求,80分奖励

1. 熟悉变量、数组定义、使用、输入、输出等基本操作。
2. 进行选择、循环结构程序设计练习。
3. 掌握冒泡法排序的算法。
4. 熟悉变量的指针和指向变量的的指针变量的概念和使用。
5. 熟悉数组的指针和指向数组的的指针变量的概念和使用。
内容(方法、步骤、要求或考核标准)
一实训步骤、方法与要求
1. 定义一个数组a[11],用以存放学生的成绩。
2. 从键盘输入10个学生成绩。
3. 采用冒泡法,将学生成绩按照从高到低进行排序,排序由排序函数实现,在主函数中调用实现排序,并在主函数中输出排序后的成绩单(要求用指针实现参数传递)。
4. 再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组。
5. 将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
6. 将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求。
7. 在项目报告中画出程序流程图,说明程序设计的算法,附主要程序段。
8. 在项目报告中说明知识点。
9. 在项目报告中说明程序设计过程中的难点、解决办法及编程小结或体会。
二. 评分方法
1.程序按照每一步骤是否实现分别给5,5,20,20,15分。
2.项目报告中,流程图和算法描述(15分),知识点描述(15分),难点及解决办法或体会(5分)

第1个回答  2009-06-15
#include <iostream>

using namespace std;

void bubbleSort(int* score,int len);

void printSort(int* score,int len);

int main()
{
int score[11];

int iscore;

int i = 0;

cout << "please input 10 scores:\n";
for (i = 0; i < 10; i++)
{
cin >> iscore;
if(!cin.fail())
{
score[i] = iscore;
}
else
{
cout << "the input is error,please input correct number.\n";
return 1;
}
}

bubbleSort(score,10); //十名学生成绩排序
printSort(score,10); //输出十名学生排序后的成绩

cout << "please input 1 score:\n";
cin >> iscore;
if(cin.fail())
{
cout << "the input is error,please input correct number.\n";
return 1;
}

score[10] = 0; //初始化最后一个值为0

//插入已经排好的序列中
for(i = 0; i < 11; i++)
{
if (score[i] < iscore)
{
for(int j = 10; j > i; j--)
{
score[j] = score[j - 1];
}
score[i] = iscore;
break;
}
}

printSort(score,11); //输出十一名学生排序后的成绩

int k;
//逆序
for(i = 0; i < 11 / 2; i++)
{
k = score[i];
score[i] = score[10 - i];
score[10 - i] = k;
}

printSort(score,11); //输出十一名学生逆序后的成绩

return 0;
}

void printSort(int* score,int len)
{
int* iTmp = score;
for (int i = 0; i < len; i++,iTmp++) //输出学生成绩
{
cout << *iTmp <<" ";
}
cout << endl;
}

void bubbleSort(int* score,int len)
{
int i,j,k;

for (i = 0; i < len; i++) //冒泡排序
{
for (j = i; j < len; j++)
{
if(score[i] < score[j])
{
k = score[i];
score[i] = score[j];
score[j] = k;
}
}
}
}
第2个回答  2009-06-15
#include<iostream>
using namespace std;
void xu(double *a,int n);
int main()
{
double a[11];
double b;
cout<<"请输入10名学生的成绩:"<<endl;
for(int i=0;i!=10;++i)
cin>>a[i];
cout<<endl;
cout<<"排序前学生的成绩为:";
for(int i=0;i!=10;++i)
cout<<a[i]<<" ";
xu(a,10);
cout<<endl;
cout<<"排序后学生的成绩为:";
for(int i=0;i!=10;++i)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请再输入一名学生的成绩:";
cin>>a[10];
xu(a,11);
cout<<endl;
cout<<"从高到低学生的成绩为:";
for(int i=0;i!=11;++i)
cout<<a[i]<<" ";
for(int i=0,j=10;i!=j;++i,--j)
{
double t;
t=a[i];
a[i]=a[j];
a[j]=t;
}
cout<<endl;
cout<<"从低到高现在学生的成绩为:";
for(int i=0;i!=11;++i)
cout<<a[i]<<" ";
return 0;
}
void xu(double *a,int n)
{
for(int i=0;i!=n;++i)
for(int j=i;j!=n;++j)
{
double max=a[i];
if(a[j]>max)
{
max=a[j];
a[j]=a[i];
}
a[i]=max;
}
}
剩下的部分你自己做吧本回答被提问者采纳
相似回答
大家正在搜