C语言的,帮我编一下.谢谢了

1. 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低和最高的学生记录,及求出学生的平均成绩。
提示:
#define N 100
struct student
{ char * Stu_No;
float Stu_Score;
} a[N];

2. 一个班级有5个学生,共学习4门课。要求编写程序完成下面的三个功能。
(1) 求出第3门功课的平均分;
(2) 找出有两门以上功课不及格的学生,输出他们的学号和全部课程成绩及平均分。
(3) 找出平均成绩在85分以上或者全部课程成绩在80分以上的学生。
提示:可以用二维数组或结构体数组实现之
struct student
{ float score1;
float score2;
float score3;
float score4;
} str[5];
3. 利用链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握C语言中的结构体、指针、函数、文件操作等知识。主要完成以下功能:输入、显示、删除、查找、插入、保存、读入、排序、计算等。
#define N 3
tpyedef struct s1
{char no[11]; /*学号*/
char name[15]; /*姓名*/
int score[N]; /*各门课成绩*/
float sum; /*总分*/
float average; /*平均分*/
int order; /*名次*/
struct s1 next; /*指向后续结点的指针*/
}Student; /*定义结构体类型*/
Student *head;
4. 利用链表结构实现工资管理,通过这个程序掌握C语言灵活的数据类型以及表示数据和存储数据的方法,完成输入、显示、删除、查找、插入、保存、读入、计算工资、排序等功能。
typedef struct z1
{
char no[11]; /*职工编号*/
char name[15]; /*职工姓名*/
float jbgz; /*基本工资*/
float koukuan; /*扣款*/
float yfgz; /*应发工资*/
float shuijin; /*税金*/
float sfgz; /*实发工资*/
struct z1 *next; /*指向后续结点的指针*/
} Salary; /*定义结构体类型*/
5. 利用静态数组(或链表)实现通讯录管理,数组的每一个元素是结构体类型,通过这个例子了解数据库管理的基本功能,重点掌握数组元素为结构体的应用、数组坐函数参数、文件读写、自定义函数等知识,这里主要包括输入、显示、查找、删除、插入、保存、读入、排序等功能。
提示:可以用静态数组或链表实现之,这里以静态数组为例
#define M 50 /*估计的记录数*/
typedef struct
{char name[20]; /*姓名*/
char units[30]; /*单位*/
char tele[10]; /*电话*/
} Address; /*结构体类型名*/
Address adr[M];
6. 利用链表结构实现教师工作量计算,通过这个程序掌握C语言灵活的数据类型以及表示数据和存储数据的方法,完成创建教师基本信息、显示、查找、读入、保存、删除等功能。
typedef struct t1
{
char no[11]; /*编号*/
char name[15]; /*姓名*/
char sex[5]; /*性别*/
char profess; /*职称*/
char dept[15]; /*部门*/
char class[15]; /*课程*/
float workload; /*工作量*/
float lessonf;/*代课费*/
struct t1 *next; /*指向后续结点的指针*/
} Teacher; /*定义结构体类型*/
3、4、5、6题目要去要有一些界面的选择操作,如:
menu_select()主菜单函数实现界面设计,具体模型如下:

**************************************************
0. Enter record
1. List the file
2. Search record on name
3. Delete a record
4. Add record
5. Save the file
6. Load the file
7. Display record on order
8. Sort to make new file
9. Quick seek record
10. Copy the file to new file
11. Quit
******************************************************
Enter you choice(0….11):
请高手帮我编下,不要用太复杂的方法.最简单的就好了.我门才刚开始学C语言.
主要是 { 1 2 } 两题,后面4题有时间的话那就太谢谢了.

主要是1、2题哇???那我就开工了,直接输入的,没经过编译,自己查一下错。
第一题:
#define MAX 0
#define MIN 1
float fun(float a[],float maxmin[])
{int i;
float average,s=0.;
maxmin[MAX]=maxmin[MIN]=a[0];
for(i=0;i<N;i++)
{s+=a[i];
if(a[i]>maxmin[MAX])maxmin[MAX]=a[i];
if(a[i]<=maxmin[MIN])maxmin[MIN]=a[i];
}
average=s/N;
return average;
}//返回的是平均分,主函数定义一个数组maxmin[2]存放最高分和最低分

第二题:
e.....好像n久前做过一次,找找...
哈哈,拿分拿分!!
#include<math.h>
#include<stdio.h>
float avxue(float (*p)[4],int n)
{int i;
float s=0,average;
for(i=0;i<4;i++)
s+=*(*(p+n)+i);
average=s/4;
return(average);
}

float avke(float (*p)[4],int n)
{float s=0,average;
int i;
for(i=0;i<4;i++)
s+=*(*(p+i)+n);
average=s/4;
return(average);
}

notpass(char *name[],float (*p)[4])
{int i,j,k,s,y=0;
float *q;
printf("\n\nThe one who did not pass twice :\n");
for(i=0;i<4;i++)
{q=*(p+i);s=0;
for(j=0;j<4;j++)
if(*(*(p+i)+j)<60)s+=1;
if(s>=2)
{y=1;
printf("%-8s ",name[i]);
for(k=0;k<4;k++)
printf("%4.2f ",*(q+k));
printf("\n");
}
}
if(y==0)printf("none!!");
}

good(char *name[],float (*p)[4])
{int i,j,k,s,x,y=0;
float *q;
printf("\n\nThe one whose average >90 or whose all >85:\n");
for(i=0;i<4;i++)
{q=*(p+i);s=0;x=0;
for(j=0;j<4;j++)
{s+=*(*(p+i)+j);
if(*(*(p+i)+j)>=85)x+=1; }
if((s>=360)||(x==4))
{y=1;
printf("%-8s ",name[i]);
for(k=0;k<4;k++)
printf("%4.2f ",*(q+k));
printf("\n");
}
}
if(y==0)printf("none!!");
}

main()
{float a[4][4]={{88,92,94,72},{99,89,88,100},{68,48,57,71},{86,87,88,97}};
float (*p)[4];
int i,j;
float average[4],average_k[4];
float s=0;
char *kecheng[]={"Math","Chinese","English","C++","average"};
char *name[]={"Smith","Billy","Bill","Tom"};
sqrt(0);
p=a;

for(i=0;i<4;i++)
{average[i]=avxue(p,i);
average_k[i]=avke(p,i);
}
printf("\t");
for(i=0;i<5;i++)
printf("%-8s",kecheng[i]);
printf("\n\n");
for(i=0;i<4;i++)
{printf("%-8s",name[i]);
for(j=0;j<4;j++)
printf("%-8.2f",*(*(p+i)+j));
printf("%-5.2f\n",average[i]);
printf("\n\n");
}
printf("average ");
for(i=0;i<4;i++)
printf("%-8.2f",average_k[i]);

notpass(name,p);

good(name,p);

getch();
printf("\n\nplz change the parameters yourself!and site my answer be the best answer!thx!\npress any key to exit!");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-09-17
我的天。。哈哈哈哈哈
你自己选一道题,我解答给你,只限一题哦
第2个回答  2007-09-17
自己做吧,做完了你也是一个高手了!!!!!!!!!!!
第3个回答  2007-09-17
晕啊,建议你悬赏80分以上(或许有人帮你)!!!
第4个回答  2007-09-17
啊,还以为是一道题呢,这么多呀,还是算了
相似回答