第一次发文章,求大佬看下问题,case 1输入后txt文件不能正常导入

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define MAX 200
struct student
{
    char no[200];  // 学号
    char name[200]; // 姓名
    float score[4];      // 分数
    float math;
    float eng;
	float phy;
	
};
float ave;
struct data
{
    int count;   // 当前学生数组中学生的个数
    struct student stu[MAX]; // 学生数组
}dd;
// 显示主菜单
void menu()
{
    system("cls");//清屏 
    printf("\n\n\n");
    printf("\t\t\t  *******************************\n");
    printf("\t\t\t                              \n");
    printf("\t\t\t     学生成绩管理系统       \n");
    printf("\t\t\t                             \n");
    printf("\t\t\t    [1]   从文件中输入学生数据      \n");
    printf("\t\t\t    [2]   查找个人成绩(学号)         \n");
    printf("\t\t\t    [3]   输出所有成绩记录        \n");
    printf("\t\t\t    [4]   结果存入文件     \n");
    printf("\t\t\t    [0]   退出                 \n");
    printf("\t\t\t                             \n");
}
 
// 等待用户按回车后回到主菜单
void to_menu()
{
    char c1,c2;
    printf("\n\n\n按回车键返回主菜单...");
    scanf("%c%c",&c1,&c2);//第一个字符吸收上次的确认回车键 
    menu();
}

// 将数据从文件读到结构体数组中
void read_data()
{
    FILE *fp;
    int i,k;
     
    k=0;
    if((fp=fopen("C:\\Users\\zdx\\Desktop\\2\\data.txt","rb"))==NULL) // 如果文件不存在
    {
        printf("cannnot open file\n");
		exit(0);
    }
   for(i=0;i<MAX;i++)
    {
        fread(&dd.stu[i],sizeof(struct student),1,fp);
        fclose(fp);
    }
}

//计算个人平均成绩
void averagy_date()
{  
    int i;
    double total;
    double ave;
	for(i=0;i<dd.count;i++)
    {
		total=dd.stu[i].math+dd.stu[i].phy+dd.stu[i].eng;
		ave=total/3;
    }
}
// 查询学生成绩(学号)
void query_data()
{
    int i,k;
    char no[10];
    printf("\n请输入要查询学生的学号:");
    scanf("%s",no);
    k=-1;
    for(i=0;i<dd.count;i++)
    {
        if(strcmp(dd.stu[i].no,no)==0)
        {
            printf("\n\n学号\t姓名\t数学\t英语\t物理\t平均分");
            printf("\n-----------------------------------------------------------------\n");
            k=i;
            printf("%s\t%s\t%-7.1f\t%-7.1f\t%-7.1f\t-7.1f\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].math,dd.stu[i].eng,dd.stu[i].phy,ave);
            break;  //  学号应该是唯一的,找到了一个就代表以后的没有了。
        }
    }
    if(k==-1)
    {
        printf("\n\n没有找到该学生(学号-%s)!",no);
    }
}

//输出所有成绩记录
void view_data()
{
    int i;
    printf("学号\t姓名\t数学\t英语\t物理\t平均分");
    printf("\n-------------------------------------------------------------------\n");
    for(i=0;i<dd.count;i++)
        printf("%s\t%s\t%-7.1f\t%-7.1f\t%-7.1f\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].math,dd.stu[i].eng,dd.stu[i].phy,ave);
    printf("\n-------------------------------------------------------------------\n");
}

// 将数据从结构体数组保存到文件中
void save_data()
{
    FILE *fp;//文件指针 
    int i;
    fp=fopen("C:\\Users\\zdx\\Desktop\\2\\data.txt","wb");//文件存储位置:当前文件夹 
    fwrite(&dd.count,sizeof(int),1,fp);
    for(i=0;i<dd.count;i++)
        fwrite(&dd.stu[i],sizeof(struct student),1,fp);
    fclose(fp);
}

// 主函数
void main()
{
    int fun;
    dd.count = 0;
    read_data();
    menu();
    while(1)
    {
        printf("请输入功能号[0-4]:");
        scanf("%d",&fun);
        switch(fun)
        {
            case 1: read_data();break;        // 从文件中读取学生数据 
            case 2: query_data();break;      // 查找个人成绩(学号)
            case 3: view_data();break;    // 输出所有成绩记录
            case 4: query_data();break;   // 结果存入文件
            case 0: break;                   // 退出
        }
        if(fun==0) break;  
        to_menu();
    }
 
    return;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值