| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2557 人关注过本帖
标题:求教。如何调用编好的函数。如何使用prj文件
取消只看楼主 加入收藏
nike197800
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-12-27
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
求教。如何调用编好的函数。如何使用prj文件
咔咔。今天又来问问题了。昨天问了一次。问题解决了不少。可还是完成不了整个程序
问题是这样的;
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),每个班级4人。学生的信息用结构体描述,包括学号(NO)、姓名、数学(MT)、英语(EN)、物理(PH)、总分(grade).

(1)编写分配一块内存的程序init。
(2)编写完成读进4个学生的信息的函数readin,函数能将这些值存进由函数init申请的存储块中。
(3)编写计算这些学生的总分的函数product。
(4)编写一个sort函数,用来将存储块中的4个学生记录组成的数据读入一数组a中,然后将a中的数据按从总分从小到大的顺序排列。
(5)再用init分配一块内存,将数组a的内容存到这块内存中去,然后把数组a的数据存储到一个名为myData.txt的文本文件中去。
(6)在主程序中调用他们,输出第一次申请的内存块中的内容和数组排序后的内容,按反序输出第2次申请的内存块中的内容。

各个文件及设计思想如下,
ex.h
 包含程序需要的头文件,声明各个函数
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
const int SIZE=4;
struct student {
 int NO;  char name[20];
 float course[3];
 float grade;
}
struct student *init(int);
void reading(struct student *);
void product(struct student *);
void sort(struct student *, struct student a[],int);
2.init.c
申请4个存储struct student数据的空间,然后返回存储块的地址,因此返回类型是指针。
3.readin.c
 将从键盘输入的数据存储到内存块中,无需返回值。
4.product.c
总分的计算是首先取出存储块的最后一个元素,然后依次用它前面的元素和它相加。
5.sort.c
使用选择法进行排序。
6.ex.c
7.建立一个“项目文件”,只包括组成程序的文件,文件名为
ex.prj。
程序编译成功后,输入4个学生的数据进行测试
第一至六题。我是这样写的:
1.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct student)
int SIZE=4;
struct student
{int NO;
 char name[20];
 float course[3];
 float grade;
};
struct student *init(int);
void reading(struct student *);
void product(struct student *);
void sort(struct student *, struct student a[],int);
2.
struct student *init(int SIZE)
{struct student *stu;
 stu=(struct student *)calloc(SIZE,36);
 return(stu);
}   
3.
void reading(struct student *stu)
{int i;
 for(i=0;i<4;i++,stu++)
   scanf("%d%s%d%d%d",stu->NO,stu->name,stu->course[0],stu->course[1],stu->course[2]);
}
4.
void product(struct student *stu)
{int i;
 for(i=0;i<4;i++,stu++)
    stu->grade=stu->course[0]+stu->course[1]+stu->course[2];
}
5.
void sort(struct student *stu,struct student a[],int n)
{int i,j;
 struct student b;
 a=stu;
 for(j=0;j<3;j++)
    for(i=0;i<3-j;i++)
       if(a[i].grade>a[i+1].grade)
     {b=a[i];
      a[i]=a[i+1];
      a[i+1]=b;
     }
}
6.
void output(struct student a[])
{struct student * stu2;
 FILE *fp;
 int i;
 stu2=init(SIZE);
 stu2=a;
 if((fp=fopen("myData.txt","wb"))==NULL)
   {printf("cannot open file\N");
    return;
   }

 for(i=0;i<SIZE;i++)
    if(fwrite(&a[i],36,1,fp)!=1)
      printf("file write error\n");
 fclose(fp);
}  
就这些了。。不知道有没有写错。如果我要完成那个程序。是不是只要再编一个函数。把上面的函数都调用完就可以运行了?
题目要求创建那个prj文件。要怎么搞的。要把上面的6个函数添加进去。还要添加什么吗?我添加了上面了6个函数。
但是出现了错误。说我没有定义什么的。晕死。究竟要怎么做才能搞好。。求各位有经验的师兄赐教一下了
搜索更多相关主题的帖子: 文件 函数 prj 
2009-12-28 18:23
nike197800
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-12-27
收藏
得分:0 
回复 2楼 风之上位
如果纯粹是添加项目文件。我会。问题是添加了错误很多。咔咔。
现在就是想大家帮忙找找问题。。看哪里写错了。或者有哪里格式不对
2009-12-28 20:39
快速回复:求教。如何调用编好的函数。如何使用prj文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025778 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved