C语言 结构体

XXXY777 2018-06-20 07:54:34
求解答
设学生信息含学号、姓名和成绩3个数据,请按如下要求编程处理某教学班(例如30人)学生的数据。
① 定义表示学生的信息结构体类型;② 用结构体数组处理一个班学生信息的,结构体数组数据从键盘录入;③ 将学生信息按照学号的升序排序后存储在文件student.inf中;④编程序利用上面生成的学生信息文件student.inf实现功能:根据从键盘输入的学号在学生数据中查找,判定该学生是否存在;若存在则输出该学生信息,否则输出“没有该学号学生”的提示信息。

...全文
376 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
XXXY777 2018-06-29
  • 打赏
  • 举报
回复
这是我写的 我不知道怎样才能把那些函数很好的连接起来。。。感觉写的挺乱的。。。
#include<stdio.h>
#include<string.h>
#define N 3
struct student_type
{
char name[10];
int num;
float score;
}stud[N],t;





int main()
{int i,j;
int save();
int find();
for (i=0;i<N;i++)
{printf("学号:");
scanf("%d", &stud[i].num);
printf("姓名:");
scanf("%s", &stud[i].name);
printf("成绩:");
scanf("%f", &stud[i].num);
}
for(j=0;j<N-1;j++)
for(i=0;i<N-j;i++)
if (stud[i].num>stud[i+1].num)
{t=stud[i];
stud[i]=stud[i+1];
stud[i+1]=t;
}
save();
find();
}


int save()
{FILE*fp;
int i,num;
if(fp=fopen("student.inf","wb")==NULL)
{printf("cannot open file\n");
return 0;
}
for(i=0;i<N;i++)
if(fwrite(&stud[i],sizeof(struct student_type),N,fp)!=1)
printf("file write error\n");
fclose(fp);
}


int find()
{FILE*fp;
int i,num;
fp=fopen("student.inf","rb");
printf("请输入学生的学号:");
for (i=0;i<N;i++)
{if(strcmp(num,stud[i].num))
{printf("学号 :%d,姓名:%s,成绩:%f",stud[i].num,stud[i].name,stud[i].score);
}
}
printf("没有该学号学生\n");
}

张天星 2018-06-23
  • 打赏
  • 举报
回复
首先需要定义一个结构体。
然后需要输入的操作方法和排序的方法。
普通的io输出到控制台还不够,你这里还需要读写文件。
先上手写啊,你写不会的,有问题了再问。
总不能全部帮你写出来吧。
赵4老师 2018-06-21
  • 打赏
  • 举报
回复
百度搜相关关键字。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧