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

问题描述

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

课题内容:
在一个数据文件中存放若干学生数据记录,每条记录都有如下数据项:学号,姓名,性别,成绩。
编一个程序,采用 顺序存储结构 存储这批数据,并对该数据进行排序。要求:数组前部为男同学,后部为女同学,并且男女同学都按成绩递减排序,分别计算男生合格率、女生合格率、全班的成绩平均分,并把排序后的学生数据记录及计算结果存入另一个数据文件中。
先用一个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 %dn",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 %dn",lp->data[i].xh,lp->data[i].name,lp->data[i].score,lp->data[i].sex);
}
fclose(fp);
}

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

解决方案

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

解决方案二:

楼主您的代码里面错误不少,请仔细检查!

解决方案三:

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

解决方案四:

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

时间: 2024-10-22 07:28:04

数据-学生顺序表的处理。。。看清楚是顺序表!!!的相关文章

数据文件-学生顺序表的处理,看清楚是 顺序表,只求代码和相关注释,明日要上交,急~~~

问题描述 学生顺序表的处理,看清楚是 顺序表,只求代码和相关注释,明日要上交,急~~~ 在一个数据文件中存放若干学生数据记录,每条记录都有如下数据项:学号,姓名,性别,成绩. 编一个程序,采用 顺序存储结构 存储这批数据,并对该数据进行排序.要求:数组前部为男同学,后部为女同学,并且男女同学都按成绩递减排序,分别计算男生合格率.女生合格率.全班的成绩平均分,并把排序后的学生数据记录及计算结果存入另一个数据文件中. 解决方案 这个很多语言很多方法都可以实现 简单点的用html做前台 php从数据库

thinkphp中多表查询中防止数据重复的sql语句(必看)_php技巧

下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. select *, count(distinct name) from table group by name 结果: id name count(distinct name) 1 a 1 2 b 1 3 c 1 最后一 项是多余的,不用管就行了 tp2.0手册   搜索连贯操作 可看到相关的资料 SELECT cat_id, COUNT(*) AS

如何应付表数据过大的查询问题?(如何尽量避免大表关联)

原文:如何应付表数据过大的查询问题?(如何尽量避免大表关联)      一般来说,对于做B/S架构的朋友来说,更有机会遇到高并发的数据库访问情况,因为现在WEB的普及速度就像火箭升空,同时就会因为高访问量带来一系列性能问题,而数据库一直是用户与商人之间交流的重要平台.用户是没有耐心忍受一个查询需要用上10秒以上的,或者更少些,如果经常出现服务器死机或者是报查询超时,我想那将是失败的项目.做了几年的WEB工作,不才,一直没有遇到过大访问量或者是海量数据的情况.这里并不是说没有海量数据的项目就不是好

数据结构中基本运算验证性实践路线建议——以顺序表为例

在数据结构的学习中,掌握基本运算是一个基础性的工作.这种"抽象"级别的成果,适用于各种应用场合,也是训练计算思维的根本依托之一. 在实践性的学习路线中,实践可以分为三个层次:验证性.设计性和综合性.验证性实验是最初步和基本的的,通过验证课堂讲的.书上写的内容,加深对相关知识的理解:设计性实验锻炼的是运用某些基本知识和原理解决问题的能力:而综合性实验则达到综合运用多方面的知识,解决实际问题的目标. 本文以顺序表为例,结合"0207将算法变程序"[视频]部分建议的方法,

聊聊Ajax提交form表单的看法和认识_AJAX相关

ajax (ajax开发) AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 学代码的时间也不短了,但是却很少使用aja

聊聊Ajax提交form表单的看法和认识

ajax (ajax开发) AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 学代码的时间也不短了,但是却很少使用aja

mysql中alter数据表中增加、删除字段与表名修改例子

 alter是非常强大的一个功能我们可以利用alter来修改数据表表名字体名及一些其它的操作了,下面一起来看看mysql中alter数据表中增加.删除字段与表名修改的一个例子.     修改删除mysql数据库中的数据内容: [root@hk ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' #进入mysql mysql> create database gbk default character set gbk collate gbk_chines

JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?

问题描述 JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ? JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?刚写了个程序发现存在这个问题,原以为这种概率不会太高,但还是存在,怎么解决?谢谢 解决方案 其实和进程互斥的原理应该是一样的吧,在某一服务器访问该公共表的时候加锁,并同步更新数据至所有可达服务器,这样别的服务器也有访问请求时,就会等锁解开再进行.加锁的服务器程序应负责在释放资源后解锁. 解决方案二: 情况是这样的,现在

查询-急!急!急,怎么样能最快速的判断大批量数据的剩余次数,具体请看需要,谢谢

问题描述 急!急!急,怎么样能最快速的判断大批量数据的剩余次数,具体请看需要,谢谢 现在项目有需求如下: 数据结构:号码 次数,现在有1万个,如:0000 2次.0001 3次.0002 4次.0003 3次--,每个号码计数只能固定次数,如5次,如何最快速判断这批号码的每个剩余数:1.每个号码的剩余次数等于限制次数-已存总数-重复出现次数,如果超过剩余数,则按剩余数存储:2.现在采用多线程循环查询判断方式,瞬间查询数据库太频繁,有时需要好几分钟,如何优化:3.是否有新的解决方案,判断时间能优化