wang2679958237 2015-06-21 11:58 采纳率: 15.8%
浏览 2404
已结题

学生顺序表的处理。。。看清楚是顺序表!!!

课题内容:
在一个数据文件中存放若干学生数据记录,每条记录都有如下数据项:学号,姓名,性别,成绩。
编一个程序,采用 顺序存储结构 存储这批数据,并对该数据进行排序。要求:数组前部为男同学,后部为女同学,并且男女同学都按成绩递减排序,分别计算男生合格率、女生合格率、全班的成绩平均分,并把排序后的学生数据记录及计算结果存入另一个数据文件中。
先用一个Seqlist.cpp定义学生成绩信息顺序表的类型和基本运算函数
#include
#include
#define MAX 50
typedef struct{
int xh; /*学号*/
char name[20]; /*姓名*/
int sex; /*性别,0为男生,1为女生*/
float score; /*成绩*/
}datatype;
typedef struct{
datatype data[MAX];/*存放顺序表元素的数组*/
int last; /*表示data中实际存放元素个数*/
}Seqlist;

void initList(Seqlist lp);/置一个空表*/
void createList(Seqlist lp);/建一个学生顺序表*/
void sort_score(Seqlist lp);/按成绩排降序*/
void Error(char s);/自定义错误处理函数*/
void pntList(Seqlist lp);/输出学生顺序表*/
void save(Seqlist lp,char strname[]);/保存学生顺序表到指定文件*/

/*置一个空表*/
void initList(Seqlist lp)
{

lp->last=0;
}
/
建一个学生顺序表*/
void createList(Seqlist lp)
{ FILE *fp;
int xh,sex;
char name;
float score;
if((fp=fopen("records.txt","r"))==NULL)
{

Error("can not open file !");
}
while(!feof(fp))
{

fscanf(fp,"%d%f%s%d",&xh,name,&score,&sex);
lp->data[lp->last].xh=xh;
lp->data[lp->last].score=score;
lp->data[lp->last].sex=sex;
lp->last++;
}
fclose(fp);
}
/
按成绩排降序*/
void sort_score(Seqlist lp)
{
int i,j,k;
datatype t;
for(i=1;ilast;i++)
{
k=i;
for(j=i+1;j<=lp->last;j++)
if(lp->data[j].score>lp->data[k].score) k=j;
if(k!=i)
{
t=lp->data[k];
lp->data[k]=lp->data[i];
lp->data[i]=t;
}
}
}
/
自定义错误处理函数*/
void Error(char s)
{
printf("\n %s", s);
exit(1); /
返回OS,该函数定义在stdlib.h中*/
}
/*输出学生顺序表*/
void pntList(Seqlist lp)
{ int i;
for(i=0;ilast;i++)
printf("%2d: %s %5.2f %d\n",lp->data[i].xh,lp->data[i].name,lp->data[i].score,lp->data[i].sex);
}
/
保存学生顺序表到指定文件*/
void save(Seqlist *lp,char strname[])
{

FILE *fp;
int i;
if((fp=fopen(strname,"w"))==NULL)
{

Error("can not open file !");
}
for(i=0;ilast ;i++)
{

fprintf(fp,"%2d %s %5.2f %d\n",lp->data[i].xh,lp->data[i].name,lp->data[i].score,lp->data[i].sex);
}
fclose(fp);
}

接下去的主函数要调用Seqlist.cpp,请问接下去的主函数怎么写(给出相关函数,手写有50C币)

  • 写回答

4条回答 默认 最新

  • wang2679958237 2015-06-21 12:05
    关注

    include 后面分别是stdio.h和stdlib.h

    评论

报告相同问题?

悬赏问题

  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名