跪求解两道c语言课程设计题,万分感谢!!!

2 成绩排序

假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求:
⑴ 编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩;
⑵ 编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中;
⑶ 用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;
⑷ 用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;
⑸ 对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表;
⑹ 设计一个菜单,至少具有上述操作要求的基本功能。

6 航班信息管理
问题描述:
飞机航班系统的数据包括两部分:
① 航班信息:航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间,单价;
② 乘客信息:航班号、身份证号码、姓名、性别、出生年月、座位号。
乘客订票的主要方式是:乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票?只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数);否则,订票失败,并且给出不能订票的原因。
要求将航班数据保存在数据文件中,在处理时按航班的起飞地点建立不同的链表。
功能要求 :
⑴ 增加航班记录。将新的航班记录增加到原有的航班数据文件中。在进行处理时必须检查所要增加的航班记录是否存在,如果已经存在,应给出提示信息后停止增加;
⑵ 航班取消。如果某次航班的乘客数太少(已订票的少于本次航班最大载客数的10%),将取消该航班,但该航班的记录仍然保存在原有的航班数据文件中;
⑶ 航班查询。应该有以下几种基本的查询方式:按航班号、按起飞地点和起飞时间、按降落地点,按起飞地点和降落地点;
⑷ 航班订票。按上述问题描述中的乘客订票方式完成航班订票处理。
⑸ 设计一个菜单,至少具有上述操作要求的基本功能。

第1个回答  2015-07-17
又按你的新要求改了一下
还有二题也做了修改这次
因该是你想要的答案了:
一题:
#include<stdio.h>
void main()
{
int i,n,j,a;char c;
scanf("%d",&n);
a=n-1;
for(i=1;i<=n;i++,a--)
{
for(j=1;j<=a;j++)
printf("%c",' ');
for(c='A';c<'A'+i;c++)
printf("%c",c);
for(c=c-2;c>='A';c--)
printf("%c",c);
printf("\n");
}
}
二题:
#include<stdio.h>
void main()
{
void print(int *p[50],char *q[50],int n);
int n,i,j; int a[50][4];char str[50][10];
int *p[50]; char *q[50];
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
gets(str[i]);
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
getchar();
}
}
for(i=0;i<n;i++)
{
p[i]=a[i];
q[i]=str[i];
}
print(p,q,n);
}
void print(int *p[50],char *q[50],int n)
{
int i,j; int *q2; char *q1;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(*(*(p+i)+3)<*(*(p+j)+3))
{
q2=p[i];
p[i]=p[j];
p[j]=q2;
q1=q[i];
q[i]=q[j];
q[j]=q1;
}
printf("unmber name score1score2score3 sum\n");
for(i=0;i<n;i++)
{
printf("%-6d %-10s ",i+1,*(q+i));
for(j=0;j<4;j++)
printf("%-6d",*(*(p+i)+j));
printf("\n");
}
}本回答被提问者采纳
相似回答