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 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献