P354.输入学生信息,创立文件,实现排序,插入

#include<stdio.h> #include<stdlib.h>

struct student {  char name[10];  int num;  float score_1;  float score_2;  float score_3;  float aver; }stu[6],temp;

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

void save_1() {FILE*fp; int i; if((fp=fopen ("stu_sort.dat","wb"))==NULL)                {  printf("cannot open file4\n");  return; } for(i=0;i<5;i++) if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("file write error\n"); fclose(fp); }

void save_2() {FILE*fp; int i; if((fp=fopen ("aver.dat","wb"))==NULL)                {  printf("cannot open file7\n");  return; } for(i=0;i<5;i++) if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("file write error\n"); fclose(fp); }

void print() {int i; FILE*fp; if((fp=fopen("stu.dat","rb"))==NULL) {  printf("cannot open file2\n");  exit(0); } for(i=0;i<5;i++) {  fread(&stu[i],sizeof(struct student),1,fp);  printf("%s\t%d\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].name,stu[i].num,stu[i].score_1,stu[i].score_2,stu[i].score_3,stu[i].aver); } fclose(fp); }

void print_1() {int i; FILE*fp; if((fp=fopen("stu_sort.dat","rb"))==NULL) {  printf("cannot open file5\n");  exit(0); } printf("the aver is\n"); for(i=0;i<5;i++) {  fread(&stu[i],sizeof(struct student),1,fp);  printf("%s\t%d\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].name,stu[i].num,stu[i].score_1,stu[i].score_2,stu[i].score_3,stu[i].aver); } fclose(fp); }

void print_2() {int i; FILE*fp; if((fp=fopen("aver.dat","rb"))==NULL) {  printf("cannot open file8\n");  exit(0); } for(i=0;i<5;i++) {  fread(&stu[i],sizeof(struct student),1,fp);  printf("%s\t%d\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].name,stu[i].num,stu[i].score_1,stu[i].score_2,stu[i].score_3,stu[i].aver); } fclose(fp); }

void aver() {int i,j,k,l,m; FILE*fp; if((fp=fopen("stu.dat","rb"))==NULL) {  printf("cannot open file3\n");  exit(0); } for(i=0;i<5;i++) fread(&stu[i],sizeof(struct student),1,fp); fclose(fp); for(j=0;j<4;j++) {  k=j;  for(l=j+1;l<5;l++)   if(stu[k].aver>stu[l].aver)k=l;   if(k!=j)   {    temp=stu[j];    stu[j]=stu[k];    stu[k]=temp;   } } }

void insert() { int i,j,k; FILE*fp; if((fp=fopen("stu_sort.dat","rb"))==NULL) {  printf("cannot open file6\n");  exit(0); } for(i=0;i<5;i++) fread(&stu[i],sizeof(struct student),1,fp); fclose(fp); printf("please insert data of students num,score_1,score_2,score_3,name\n"); scanf("%d,%f,%f,%f,%s",&stu[5].num,&stu[5].score_1,&stu[5].score_2,&stu[5].score_3,stu[5].name); stu[5].aver=(stu[5].score_1+stu[5].score_2+stu[5].score_3)/3; for(j=0;j<5;j++) {  if(stu[5].aver<stu[j].aver);break; } temp=stu[5]; for(k=5;k>(j+1);k--) {  stu[k]=stu[k-1]; } stu[j+1]=temp; } void main() {  int i;  printf("please enter data of students num,score_1,score_2,score_3,name\n");  for(i=0;i<5;i++)  {   scanf("%d,%f,%f,%f,%s",&stu[i].num,&stu[i].score_1,&stu[i].score_2,&stu[i].score_3,stu[i].name);   stu[i].aver=(stu[i].score_1+stu[i].score_2+stu[i].score_3)/3;  }  save();  print();  aver();  save_1();  print_1();  insert();  save_2();  print_2(); }

时间: 2024-10-12 09:29:06

P354.输入学生信息,创立文件,实现排序,插入的相关文章

20150920学习内容:结构体及题目:定义一个学生的结构体,学号,姓名,身高,输入学生信息,按身高排序输出

结构体:用户自定义数据类型,实际就是变量组,可以一次存多个不同变量 结构体定义在main函数的外面 Struck 结构体名 { // 元素一 // 元素二 } 题目:定义一个学生的结构体,学号,姓名,身高,输入学生信息,按身高排序输出

定义一个学生的结构体,学号,姓名,身高,输入学生信息。按身高排序输出

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace ConsoleApplication1 { class Program { struct student { public int code;//pu修饰符blic public string name;//结构体成员 public int shengao

练习!!输入学生信息

class Program { //定义一个结构体 struct student//student就是我们自己造的新数据类型 { public int code;//public修饰符 public string name;//结构体的成员 public decimal height; } static void Main(string[] args) { ArrayList arr = new ArrayList(); for (int i = 0; i < 3; i++) { student

C#复习,输入学生信息排列成绩

C#复习:在控制台程序中使用结构体.集合,完成下列要求项目要求:一.连续输入5个学生的信息,每个学生都有以下4个内容:1.序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2,以此类推2.学号 - 必填,如:S001,S002... 以此类推3.姓名 - 必填4.成绩 - 大于等于0,小于等于100 以上内容必须按照要求填写,请写好相应的验证,如果没填写正确,则让用户重复填写到正确为止 二.5个学生信息都输入完毕后,按照分数从高到低的顺序将学生信息展示出来显示

C# 定义一个学生的结构体,输入学生信息,学号,姓名,身高,按身高排序输出

class Program { //定义一个结构体 struct student//student就是我们自己造的新数据类型 { public int code;//public修饰符 public string name;//结构体的成员 public decimal height; } static void Main(string[] args) { ArrayList arr = new ArrayList(); for (int i = 0; i < 3; i++) { student

[示例]创建Student类,输入学生信息并存入字典,将3个存有学生信息的字典存入数组,并计算

代码: main: #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { Student *stu1=[[Student alloc]initWithName:@"wang" andGender:@"male" andAge:@28]; Student *stu

【C项目】 文件,结构体,链表,排序, 学生信息管理系统

1.密码登录: 2.通过键盘输入学生信息,包括学生学号.姓名.成绩: 3.将输入的信息保存到指定文件中: 4.从文件中读取学生信息: 5.显示全部学生信息: 6.按学生总分进行降序排序: 7.删除学生信息: 8.查找学生信息,可以通过学号查找,也可以通过姓名查找: 9.统计学生信息,统计出最高分和学生人数: 10.退出系统: 源代码: [email protected]:~$ cat main.c  #include<stdio.h> #include<stdlib.h> #inc

学术休假-学生信息管理系统v1.0

这是第一个学术休假的项目,主体部分在回家时的火车上完成的,隔了几天继续加工,今天终于完成,这是学生管理系统的beta版本,后续还将继续完善. 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一学生信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)学生信息录入功能(学生信息用文件保存)---输入 (3)学生信息浏览功能---输出 (4)查询.排序功能 按学号查询 按姓名查询 (5)学生信息的删除与修改(可选项) /* *Copyright (c)

使用python实现一个简单的学生信息管理系统

最近公司搬办公室,杂七杂八的事情比较多,又碰上业务要上线了...很多事情堆到一起来做,导致最近没什么时间学习,写博客.前两天胜利日放假,把以前用java写的学生信息管理系统用python重新写了一遍,以便于帮助python的学习. 好了,废话不多说,首先进行需求分析,下面是我根据需求画的系统结构图: 纯手工制图.....画的不好敬请谅解.从上图来看,整个系统分为main,add,delete,change,select,sort,io,print共八个模块,实现了对学生信息的增删改查排的功能,将