zoukankan      html  css  js  c++  java
  • C语言练手自己编写学生成绩管理系统

    #include<stdio.h>
    #include<stdlib.h>
    /*定义学生结构体*/
    struct Student
    {
        char ID[20];
        char Name[20];
        float Mark1;
        float Mark2;
        float Mark3;
        float Avarage;
    };
    
    /*声明学生数组及学生数量*/
    struct Student students[1000];
    int num=0;
    
    /*计算平均成绩*/
    float Avg(struct Student stu)
    {
        return (stu.Mark1+stu.Mark2+stu.Mark3)/3;    
    }
    /*根据学号寻找数组下标*/
    int GetIndexByStudentId(char id[])
    {
        int i;
        for(i=0;i<num;i++)
        {
            if(strcmp(students[i].ID,id)==0)
            {
                return i;
            }
        }
        return -1;
    }
    /*根据姓名寻找数组下标*/
    int GetIndexByStudentName(char name[])
    {
        int i;
        for(i=0;i<num;i++)
        {
            if(strcmp(students[i].Name,name)==0)
            {
                return i;
            }
        }
        return -1;
    }
    
    /*SHowStudent*/
    int ShowStudentInfo()
    {
        int i;
        IO_ReadInfo();
        
        printf("%10s%10s%10s%10s%10s%10s
    ","学号","姓名","成绩1","成绩2","成绩3","平均分");
        printf("-----------------------------------------------------------
    ");
        
        for(i=0;i<=num;i++)
        {
            students[i].Avarage=Avg(students[i]);
            printf("%10s%10s%10.2f%10.2f%10.2f%10.2f
    ",students[i].ID,students[i].Name,students[i].Mark1,students[i].Mark2,
            students[i].Mark3,students[i].Avarage);
        }
        return 0;
    }
    int ShowStudentInfo1()
    {
        int i;
        IO_ReadInfo();
        
        printf("%10s%10s%10s%10s%10s%10s
    ","学号","姓名","成绩1","成绩2","成绩3","平均分");
        printf("-----------------------------------------------------------
    ");
        
        for(i=0;i<=num;i++)
        {
            students[i].Avarage=Avg(students[i]);
            printf("%10s%10s%10.2f%10.2f%10.2f%10.2f
    ",students[i].ID,students[i].Name,students[i].Mark1,students[i].Mark2,
            students[i].Mark3,students[i].Avarage);
        }
        system("pause");
        printMenu();
        printf("%d
    ",userChoice());
    }
    /*增加学生记录*/
    int addStudent()
    {
        while(1)
        {
            printf("请输入学号:");
            scanf("%s",&students[num].ID);
            printf("请输入姓名:");
            scanf("%s",&students[num].Name);
            printf("请输入成绩1:");
            scanf("%f",&students[num].Mark1);
            printf("请输入成绩2:");
            scanf("%f",&students[num].Mark2);
            printf("请输入成绩3:");
            scanf("%f",&students[num].Mark3);
            ShowStudentInfo();
            IO_WriteInfo();
            num++;
            getchar();
            printf("是否继续?y/n");
            if(getchar()=='n')
            {
                
                printMenu();
                printf("%d
    ",userChoice());
                break;
            }
        }
        return 0;
    }
    /*将信息写入文件*/
    int IO_WriteInfo()
    {
        int i;
        FILE *fp;
        fp=fopen("C:\12.txt","wb");
        fwrite(&num,sizeof(int),1,fp);
        for(i=0;i<=num;i++)
        {
            fwrite(&students[i],sizeof(struct Student),1,fp);
        }
        fclose(fp);
    }
    /*将文件信息读出*/
    int IO_ReadInfo()
    {
        int i;
        FILE *fp;
        fp=fopen("C:\12.txt","wb");
        fread(&num,sizeof(int),1,fp);
        for(i=0;i<=num;i++)
        {
            fread(&students[i],sizeof(struct Student),1,fp);
        }
        fclose(fp);
    }
    int main()
    {
        printMenu();
    
        printf("%d
    ",userChoice());
        
        system("pause");
        
    }
    //菜单打印
    int printMenu()
    {
        printf("欢迎使用学生成绩管理系统!
    ");
        printf("1.增加学生记录
    ");
        printf("2.修改学生记录
    ");
        printf("3.删除学生记录
    ");
        printf("4.查询学生记录
    ");
        printf("5.退出
    ");
        return 0;
    }
    //接收用户输入选择
    int userChoice()
    {
        int choice;
        printf("请输入选择《1-5》:");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:
            addStudent();
        case 2:
            return 2;
        case 3:
            return 3;
        case 4:
            ShowStudentInfo1();
        case 5:
            exit(0);
        }
    }

    废话不多写,一步一步来。

    第一步,要确定自己的需求,打印出需求。

    int main()
    {
        printf("欢迎使用学生成绩管理系统!
    ");
        printf("1.增加学生记录
    ");
        printf("2.修改学生记录
    ");
        printf("3.删除学生记录
    ");
        printf("4.查询学生记录
    ");
        printf("5.退出
    ");
        system("pause");
    }

    第二步,将菜单打印写一个函数。

    int main()
    {
        printMenu();
        system("pause");
    }
    //菜单打印
    int printMenu()
    {
        printf("欢迎使用学生成绩管理系统!
    ");
        printf("1.增加学生记录
    ");
        printf("2.修改学生记录
    ");
        printf("3.删除学生记录
    ");
        printf("4.查询学生记录
    ");
        printf("5.退出
    ");
        return 0;
    }

    第三步,接收用户输入的选择,并测试

    int main()
    {
        printMenu();
        printf("%d
    ",userChoice());
        system("pause");
        
    }
    //菜单打印
    int printMenu()
    {
        printf("欢迎使用学生成绩管理系统!
    ");
        printf("1.增加学生记录
    ");
        printf("2.修改学生记录
    ");
        printf("3.删除学生记录
    ");
        printf("4.查询学生记录
    ");
        printf("5.退出
    ");
        return 0;
    }
    //接收用户输入选择
    int userChoice()
    {
        int choice;
        printf("请输入选择《1-6》:");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:
            return 1;
        case 2:
            return 2;
        case 3:
            return 3;
        case 4:
            return 4;
        case 5:
            return 5;
    
        }
    }

    第4步,定义结构体变量Student并插入学生信息打印测试。

    #include<stdio.h>
    
    /*定义学生结构体*/
    struct Student
    {
        char ID[20];
        char Name[20];
        float Mark1;
        float Mark2;
        float Mark3;
        float Avarage;
    };
    
    /*声明学生数组及学生数量*/
    struct Student students[1000];
    int num=0;
    /*增加学生记录*/
    int addStudent()
    {
    
        printf("请输入学号:");
        scanf("%s",&students[num].ID);
        printf("请输入姓名:");
        scanf("%s",&students[num].Name);
        printf("请输入成绩1:");
        scanf("%f",&students[num].Mark1);
        printf("请输入成绩2:");
        scanf("%f",&students[num].Mark2);
        printf("请输入成绩3:");
        scanf("%f",&students[num].Mark3);
        printf("学号:%s,姓名:%s,成绩1:%0.2f,成绩2:%0.2f,成绩3:%0.2f",
            students[num].ID,students[num].Name,students[num].Mark1,students[num].Mark2,students[num].Mark3);
        num++;
        return 0;
    }
    
    int main()
    {
        printMenu();
        printf("%d
    ",userChoice());
        system("pause");
        
    }
    //菜单打印
    int printMenu()
    {
        printf("欢迎使用学生成绩管理系统!
    ");
        printf("1.增加学生记录
    ");
        printf("2.修改学生记录
    ");
        printf("3.删除学生记录
    ");
        printf("4.查询学生记录
    ");
        printf("5.退出
    ");
        return 0;
    }
    //接收用户输入选择
    int userChoice()
    {
        int choice;
        printf("请输入选择《1-5》:");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:
            addStudent();
        case 2:
            return 2;
        case 3:
            return 3;
        case 4:
            return 4;
        case 5:
            return 5;
        }
    }

     第五步计算平均成绩,将数据读写到文件。

  • 相关阅读:
    最短路径(Dijkstra算法)
    图的优先级搜索
    图的遍历(搜索)

    树(二叉树)
    TF-池化函数 tf.nn.max_pool 的介绍
    TF-卷积函数 tf.nn.conv2d 介绍
    TF-图像的深度和通道的概念(转)
    MongoDB-MongoDB重装系统后恢复
    MYSQL-重做系统恢复MYSQL过程
  • 原文地址:https://www.cnblogs.com/tangt/p/3810331.html
Copyright © 2011-2022 走看看