| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:编程问题 C语言
只看楼主 加入收藏
范贤伟
Rank: 1
来 自:云南省
等 级:新手上路
帖 子:5
专家分:7
注 册:2012-10-13
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
编程问题 C语言
下图为某班某门课程成绩表设置格式,编一程序,输入该班每位同学的姓名、平时、笔试、操作这几项信息,计算每位同学的平均成绩,将原有数据和平均成绩信息存入文件chengji.txt中,打开文件chengji.txt,把文件内容显示在屏幕上。要求用结构体和文件实现。(测试输入5位同学的信息)
XX课程成绩表
姓名    平时    笔试    操作    平均
张三    81    60    67   
李四    78    66    65   
(涉及知识点:结构体的定义,结构体数组,文件的操作(文件打开fopen(打开方式)、文件指针、文件关闭fclose、文件内容的读写(fgetc和fputc、fscanf和fprintf、fread和fwrite)、文件结束feof),屏幕输出格式的控制)

代码如下:但是chengji.txt文件中是乱码,请问一下各位编程大师,这是怎么回事?O(∩_∩)O谢谢!
#include
#include
#define N 5//定义学生个数
struct student
{
   char name[8];
   int score[3];
   float av;
};

void main()
{
 int i;
 student stud;
 FILE *fp;
 //写入文件
 if((fp=fopen("d:\\chengji.txt","w"))==NULL)
 { printf("can't open this file.\n");
            exit(1);
 }
 printf("请输入学生信息:\n");
 for(i=0;i<5;i++)
 {
  printf("┈┈┈┈┈┈┈");
  printf("\n");     
  printf("姓名:");
  scanf("%s",stud.name);
  printf("平时:");
  scanf("%d",&stud.score[0]);
  printf("笔试:");
  scanf("%d",&stud.score[1]);
  printf("操作:");
  scanf("%d",&stud.score[2]);
  fwrite((student*)&stud,1,sizeof(student),fp);
 }
 fclose(fp);
 //读出文件
 if((fp = fopen("d:\\chengji.txt", "r"))==NULL)
  {  printf("cannot open the file\n");
     exit(1);
 }
 printf("─────────────────────");
printf("\n");
 printf("       某某班学生成绩表   \n");
printf("─────────────────────");
printf("\n");
printf("姓名\t平时\t笔试\t操作\t平均\t\n");
 for(i=0;i<5;i++)
 {printf("─────────────────────");
  printf("\n");
  fread((student*)&stud,1,sizeof(student),fp);
  printf("%s",stud.name);
  printf("\t%d",stud.score[0]);
  printf("\t%d",stud.score[1]);
  printf("\t%d",stud.score[2]);
  printf("\t%f\n",(stud.score[0]+stud.score[1]+stud.score[2])/3.0);
 }
 printf("─────────────────────");
printf("\n");
}
搜索更多相关主题的帖子: 结构体 成绩表 C语言 信息 
2012-10-13 19:34
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:10 
这个问题很多初学者都遇到过,我这儿提示一下,看你自己想的到不?你想一下啊,你数据存到文件中去,那文件中还有整形之类的数吗?答案肯定是字符型的啦!!!你再从中提取时以%d的形式打印,这儿类型就从问题啦
2012-10-14 00:20
chenglovenju
Rank: 2
等 级:论坛游民
帖 子:11
专家分:30
注 册:2012-10-14
收藏
得分:10 
你的文件打开方式为r,但是后面用的读取函数是fread((student*)&stud,1,sizeof(student),fp);这可能会造成错误
2012-10-14 00:23
chenglovenju
Rank: 2
等 级:论坛游民
帖 子:11
专家分:30
注 册:2012-10-14
收藏
得分:0 
回复 2楼 遗矢的老人
亲,我认为上面的是可以的,求指导
2012-10-14 00:24
范贤伟
Rank: 1
来 自:云南省
等 级:新手上路
帖 子:5
专家分:7
注 册:2012-10-13
收藏
得分:0 
回复 2楼 遗矢的老人
谢谢你的指点
2012-10-15 12:01
范贤伟
Rank: 1
来 自:云南省
等 级:新手上路
帖 子:5
专家分:7
注 册:2012-10-13
收藏
得分:0 
回复 2楼 遗矢的老人
谢谢您的提示,但是我还是不能正确编出来,你能不能帮我改一下
2012-10-15 12:06
快速回复:编程问题 C语言
数据加载中...
 
   



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

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