求C++程序设计语言高手帮我做这几道期末考试题啊。如果哪位高手做出来请发我邮箱:934418068@qq.com.

(一) 学生成绩排名
程序要求:先采用冒泡法,将学生成绩 从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。
参考步骤:
1. 定义一个数组a[11],用以存放学生的成绩。
2. 从键盘输入10个学生成绩
3. 采用冒泡法,将学生成绩按照从高到低进行排序
4. 再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组
5. 将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
6. 将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求

(二) 根据条件进行学生成绩排名
程序要求:在函数中进行 10个学生成绩从高到低排名,再改进函数, 进行 n个学生成绩从高到低排名, 排名方式根据函数的style参数进行,如style为'a'按升序排,style为'd'按降序排。( a:ascending 升,d:descending 降)
参考步骤:
1. 在函数中进行10个学生成绩从高到低排名 sort(int a[10])
2. 改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,
3. 改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending 升,d:descending 降)

(三) 用指针优化学生成绩排名
程序要求:(1)用指针实现数组的输入输出以及数组的排序(在函数中进行)
(2)采用指针方法,输入字符串“ student score ”,不使用 strcpy() 函数,自行编制函数实现复制该字符串并在第四步输出排序后的成绩单后下一行输出该字符串
(3)相关实训题目:不使用C++语言库函数自行编制函数实现字符串的复制、连接、转换为大写、小写、字符串比较功能。
参考步骤:
1. 定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现
2. 将数组stu[10]的内容输出到屏幕上,要求用指针实现
3. 将成绩数组按照从高到低进行排序,要求用指针实现
4. 将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单
5. 5. 采用指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)

(四) 学生成绩单制作
程序要求:定义一个结构体数组,存放 10个学生的学号、姓名、三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,再将 10个学生按照平均分数从高到低进行排序,输出结果。
参考步骤:
1. 定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩
2. 从键盘输入10个学生的以上内容
3. 输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩
4. 输出三门课程的平均分数最高的学生的学号、姓名及其平均分
5. 将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:
number name math Chinese English average
103 tom 90 90 100 95
101 alice 90 80 70 80

啧,上次我给人在知道上做了一张卷子,回头他把问题注销了....mother fucker
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-17
答案已发 做题不容易 请给分 谢谢
第2个回答  2010-10-16
#include"stdio.h"
#include<malloc.h>

typedef char ElemType;

typedef struct LNode
{ElemType data;
struct LNode *next;
}LinkList;

void CreatListF(LinkList *&L,ElemType a[],int n) //头插法建表
{
LinkList *s;int i;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
s->next=L->next;
L->next=s;
}
}

void CreateListR(LinkList *&L,ElemType a[],int n) //尾插法建表
{
LinkList *s,*r;int i;
L=(LinkList *)malloc(sizeof(LinkList));
r=L;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}

void InitList(LinkList *&L) //初始化线性表
{
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
}

void DestroyList(LinkList *&L) //销毁线性表
{
LinkList *p=L,*q=p->next;
while(q!=NULL)
{
free(p);
p=q;
q=p->next;
}
free(p);
}

int ListEmpty(LinkList *L) //判断线性表是否为空
{
return(L->next==NULL);
}

int ListLength(LinkList *L) //求线性表的长度
{
LinkList *p=L;int n=0;
while(p->next!=NULL)
{
n++;p=p->next;
}
return(n);
}

void DispList(LinkList *L) //输出线性表
{
LinkList *p=L->next;
while(p!=NULL)
{
printf("%c",p->data);
p=p->next;
}
}

int GetElem(LinkList *L,int i,ElemType &e) //求线性表中某个数据元素值
{
int j=0;
LinkList *p=L;
while(j<i&&p!=NULL)
{
j++;p=p->next;
}
if(p==NULL)
return 0;
else
{
e=p->data;return 1;
}
}

int LocateElem(LinkList *L,ElemType e) //按元素值查找
{
LinkList *p=L->next;
int i=1;
while(p!=NULL&&p->data!=e)
{
p=p->next;i++;
}
if(p==NULL)return(0);
else return(i);
}

int ListInsert(LinkList *&L,int i,ElemType e) //插入数据元素
{
int j=0;
LinkList *p=L,*s;
while(j<i-1&&p!=NULL)
{
j++;p=p->next;
}
if(p==NULL)return 0;
else
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=e; s->next=p->next; p->next=s;
return 1;
}
}

int ListDelete(LinkList *&L,int i,ElemType &e) //删除数据元素
{
int j=0;
LinkList *p=L,*q;
while(j<i-1&&p!=NULL)
{
j++;p=p->next;
}
if(p==NULL)
return 0;
else
{
q=p->next;
if(q==NULL)return 0;
e=q->data;
p->next=q->next;
free(q);
return 1;
}
}

int main()
{
ElemType e,a[5]=;
LinkList *h;

InitList(h); //初始化顺序表h
CreateListR(h,&a[0],5); //依次采用尾插入法插入a,b,c,d,e元素
printf("单链表为:");
DispList(h); printf("\n"); //输出顺序表h

printf("该单链表的长度为:");
printf("%d",ListLength(h)); printf("\n"); //输出顺序表h的长度
if(ListEmpty(h)) printf("该单链表为空。\n");
else printf("该单链表不为空。\n"); //判断顺序表h是否为空

GetElem(h,3,e);printf("该单链表的第3个元素为:");
printf("%c",e); printf("\n"); //输出顺序表h的第3个元素
printf("该单链表中a的位置为:");
printf("%d",LocateElem(h,'a')); printf("\n"); //输出元素'a'的位置

ListInsert(h,4,'f'); //在第4个元素位置插入'f'素
printf("在第4 个元素位置上插入'f'后单链表为:");
DispList(h); printf("\n"); //输出顺序表h

ListDelete(h,3,e); //删除L的第3个元素
printf("删除第3个元素后单链表为:");
DispList(h); printf("\n"); //输出顺序表h

DestroyList(h); //释放顺序表h
return 0;
}

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela本回答被提问者和网友采纳
相似回答
大家正在搜