精华内容
下载资源
问答
  • 数组实现学生信息管理系统,有文件实现保存,但还不够完善
  • C/C++ 学生信息管理系统 数组 C/C++ 学生信息管理系统 数组
  • 个人编写的学生信息管理系统,写于大一时期,简单易懂,但是比较繁琐,可以用于大一C语言结课,也可以用于平时自己简化代码做训练。纯手打,来之不易,也是人生第一个偏大点的编程,勿喷
  • 程序设计大作业---学生体测信息管理系统数组文件版) 整个系统包括三个文件,一个是学生信息文件,另一个是体育信息文件,一个是密码文件,其中体育文件是与学生信息文件没有关系的,而学生信息文件需要使用...

    整个系统包括三个文件:学生信息文件、体育信息文件、密码文件、

    main.cpp

    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    #include "paixu.h"
    #include "data.h"
    #include "basic.h"
    #include "file.h"
    #include "password.h"
    #include "menu.h"
    #include "sport.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    
    using namespace std;
    
    
    int main(){
        system("color b2");
        system("cls");
        welcome();
        int j = 0;
        for(int i = 3;i >= 1;i--){
            password();
            if(flag == 1)
                break;
            else{
                if(i - 1 == 0)
                {
                    Sleep(500);
                    break;
                }
                printf("密码错误,您还有%d次机会!\n",i-1);
                Sleep(500);
            }
        }
        if(flag == 1){
            printf("密码正确\n");
            Sleep(500);
            system("cls");
            while(1)
            {
                j++;
                Sleep(500);
                Student stu[500];
                sport spo[500];
                readstu();
                if(j >= 2){
                    printf("按任意键返回");
                    getch();
                    system ("cls");
                }
                printf("请输入您要选择的功能键:\n");
                menu();//功能菜单
                int n = getch();
                switch(n)
                {
                    case '0'://退出
                        printf("谢谢使用!");
                        exit(0);
                    case '1'://增加学生信息
                        stu_add();//增加新的学生
                        savestu();
                        break;
                    case '2'://删除学生信息
                        delete1();//删除学生
                        savestu();
                        break;
                    case '3'://改变学生的信息
                        change();//改变学生信息
                        savestu();
                        break;
                    case '4'://查找某个学生的信息
                        search1();//按学号查找学生并输出该生信息
                        break;
                    case '5':// 对bmi进行排序
                        mysort();
                        break;
                    case '6'://输出所有学生的信息
                        glanceall();
                        break;
                    case '7':
                        menu1();
                        int m = getch();
                        switch(m){
                        case '0':
                            break;
                        case '1':
                            addsport();
                            if(flag2 == 0)
                                stu_addscore();
                            savestu();
                            break;
                        case '2':
                            delsport();
                            savestu();
                            break;
                        case '3':
                            changesport();
                            savestu();
                            break;
                        case '4':
                            glanceallsport();
                            break;
                        default:
                            printf("请输入正确的选择\n");
                            break;
                        }
                }
            }
        }
    }
    

    data.h

    #ifndef _data_h_
    #define _data_h_
    
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    struct Student{
            char name[100];
            char number[20];
            char sex[2];
            int age;
            int weight;
            int height;
            float BMI()
            {
                return (double)weight / pow((double)height / 100, 2);
            }
            int sport_score[100];
    };
    
    struct sport{
        int sport_num;
        char sport_name[20];
    };
    
    
    Student stu[500];
    char nam[100];
    char num[20];
    char sex1[2];
    int age1;
    int wei;
    int hei;
    int count1 = 0;
    char code[20];
    int flag = 0;
    
    sport spo[500];
    int sportnum;
    char sportname[20];
    int sum = 0;
    int flag2 = 0;
    int number5;
    
    #endif
    

    file.h

    #ifndef _file_h_
    #define _file_h_
    
    #include "data.h"
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    void readstu() //运行前把文件内容读取到电脑内存
    {
        FILE *p;
        p = fopen("sport.txt" , "r");
        if(p == NULL)
        {
            printf("无法打开文件\n");
            exit(1);
        }
        int j = 0;
        while(!feof(p))
        {
            fscanf(p , "%d %s ", &spo[j].sport_num, &spo[j].sport_name);
            j++;
        }
        sum = j;
    
        FILE *FP;
        FP = fopen("student.txt" , "r"); //以只读方式打开当前目录下的.txt
        if(FP == NULL)
        {
            printf("无法打开文件\n");
            exit(1);
        }
        int i = 0;
        while(!feof(FP))
        {
            fscanf(FP , "%s %s %s %d %d %d ", &stu[i].number, &stu[i].name, &stu[i].sex, &stu[i].age , &stu[i].height, &stu[i].weight);
            for(int j = 0;j < sum;j++){
                int num;
                fscanf(FP, "%d", &num);
                fscanf(FP, " %d", &stu[i].sport_score[num]);
            }
            i++;
        }
        count1 = i;
        fclose(FP);
        fclose(p);
    }
    
    void savestu()//保存学生信息到文件
    {
        FILE *fp, *p;
        if((fp = fopen("student.txt" , "w")) == NULL ||(p = fopen("sport.txt" , "w")) == NULL)// 以可写的方式打开当前目录下的.txt
        {
            printf("不能打开此文件,请按任意键退出\n");
            exit(1);
        }
        int i = 0;
        while(i < count1)
        {
            fprintf(fp , "%s %s %s %d %d %d", stu[i].number , stu[i].name, stu[i].sex, stu[i].age, stu[i].height, stu[i].weight);
            for(int j = 0;j < sum;j++){
                fprintf(fp, " %d %d", spo[j].sport_num, stu[i].sport_score[spo[j].sport_num]);
            }
            i++;
            if(i < count1)
                fprintf(fp, "\n");
        }
        int j = 0;
        while(j < sum){
            fprintf(p, "%d %s",spo[j].sport_num, spo[j].sport_name);
            j++;
            if(j < sum)
                fprintf(p, "\n");
        }
        fclose(fp);
        fclose(p);
    }
    
    #endif
    

    basic.h

    #ifndef _basic_h_
    #define _basic_h_
    
    #include "data.h"
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    void title_head(char *ch){
        printf("      \n      ======>>>学生健康管理系统>>>======\n\n %s \n\n",ch);
    }
    
    void stu_add(){
        char flag;//用于判断继续还是结束,ESC的ASC||码为27
        title_head("增加学生基本信息");
    	while(flag != 27){
            printf("姓名:");
            scanf("%s", stu[count1].name);
    
            printf("学号:");
            scanf("%s", stu[count1].number);
    
            printf("性别:");
            scanf("%s", stu[count1].sex);
    
            printf("年龄:");
            scanf("%d", &stu[count1].age);
    
            printf("身高:");
            scanf("%d", &stu[count1].height);
    
            printf("体重:");
            scanf("%d", &stu[count1].weight);
    
            for(int j = 1;j <= sum;j++){
                printf("%s成绩:",spo[j].sport_name);
                scanf("%d",&stu[count1].sport_score[spo[j].sport_num]);
            }
            count1++;
            printf("按任意键继续,结束输入请按Esc\n");
            flag = getch();//暂停程序当i接收后继续下一条指令
    	}
    }
    
    
    void delete1(){//删除学生信息
        int i;
        printf("请输入要删除的学生的学号:\n");
        scanf("%s", &num);
        for(i = 0;i < count1;i++)
            if(strcmp(num , stu[i].number) == 0)
                break;
        if(i == count1){
            printf("该学生不存在\n");
            return;
        }
        for(;i < count1;i++){
            strcpy(stu[i].name, stu[i+1].name);
            strcpy(stu[i].number, stu[i+1].number);
            strcpy(stu[i].sex, stu[i+1].sex);
            stu[i].age = stu[i+1].age;
            stu[i].height = stu[i+1].height;
            stu[i].weight = stu[i+1].weight;
        }
        count1--;
        printf("删除成功\n");
    
    }
    
    void search1(){
        int i;
        printf("请输入要查找的学号:\n");
        scanf("%s", &num);
        for(i = 0;i < count1;i++)
            if(strcmp(num , stu[i].number) == 0)
                break;
        if(i == count1){
            printf("未查到该学生学号");
            return;
        }
        printf("查询成功!该学生信息为:\n");
        printf("姓名:%s\n学号:%s\n性别:%s\n年龄:%d\n身高:%d\n体重:%d\nBMI:%f\n",stu[i].name, stu[i].number,stu[i].sex,stu[i].age,stu[i].height,stu[i].weight,stu[i].BMI());
        for(int k = 0;k < sum;k++)
            printf("%s成绩:%d\n", spo[k].sport_name,stu[i].sport_score[spo[k].sport_num]);
    }
    
    //浏览所有信息
    void glanceall(){
        int i = 0;
        if(count1 == 0){
            printf("还没有学生信息,请增加学生信息\n");
            return;
        }
        while(i < count1){
            printf("姓名:%s\n",stu[i].name);
            printf("学号:%s\n",stu[i].number);
            printf("性别:%s\n",stu[i].sex);
            printf("年龄:%d\n",stu[i].age);
            printf("体重:%d\n",stu[i].weight);
            printf("身高:%d\n",stu[i].height);
            printf("BMI指数:%f\n",stu[i].BMI());
            for(int j = 0;j < sum;j++){
                printf("%s成绩:%d\n",spo[j].sport_name, stu[i].sport_score[spo[j].sport_num]);
            }
            printf("\n");
            i++;
        }
    }
    
    void change(){
        int i;
        printf("请输入要修改的学号:\n");
        scanf("%s", &num);
        for(i = 0;i < count1;i++)
            if(strcmp(num , stu[i].number) == 0){
                printf("已查到该学生信息,请输入修改后的学生信息:\n");
                break;
            }
        if(i == count1){
            printf("未查到该学生信息!");
            return;
        }
        printf("姓名:\n");
        scanf("%s", nam);
        strcpy(stu[i].name , nam);
    
        printf("学号:\n");
        scanf("%s", &num);
        strcpy(stu[i].number , num);
    
        printf("性别:\n");
        scanf("%s", sex1);
        strcpy(stu[i].sex , sex1);
    
        printf("年龄:\n");
        scanf("%d", &age1);
        stu[i].age = age1;
    
        printf("身高:\n");
        scanf("%d", &hei);
        stu[i].height = hei;
    
        printf("体重:\n");
        scanf("%d", &wei);
        stu[i].weight = wei;
    
        printf("需要修改成绩请输入 1, 否则输入 0\n");
        int a = getch();
        if(a == '1'){
            printf("请输入需要修改的成绩的编号:\n");
            int k = 0;
            scanf("%d" ,&sportnum);
            printf("请输入修改后的成绩:\n");
            scanf("%d", &k);
            stu[i].sport_score[sportnum] = k;
        }
        printf("修改成功!");
    }
    
    #endif
    

    menu.h

    #ifndef _menu_h_
    #define _menu_h_
    
    #include "data.h"
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    void menu()
    {
        system("color b2");
        printf("                                 ________________________________________________ \n");
        printf("                                |                                                |\n");
        printf("                                |               学生体测信息管理系统             |\n");
        printf("                                |                                                |\n");
        printf("                                |               系统中已存学生人数:%d           |\n", count1);
        printf("                                |               0、退出系统                      |\n");
        printf("                                |               1、增加学生信息                  |\n");
        printf("                                |               2、删除学生信息                  |\n");
        printf("                                |               3、修改学生信息                  |\n");
        printf("                                |               4、查找学生的信息                |\n");
        printf("                                |               5、按指定方式排序                |\n");
        printf("                                |               6、浏览全部学生信息              |\n");
        printf("                                |               7、修改运动项目信息              |\n");
        printf("                                |________________________________________________|\n");
    
    }
    void welcome()
    {
        system("color b1");
        printf("                      ********************* 欢迎登录学生健康状况管理系统 ***********************  \n");
    }
    
    void menu1(){
        system("color b2");
        printf("                                 ________________________________________________ \n");
        printf("                                |                                                |\n");
        printf("                                |                                                |\n");
        printf("                                |               系统中已存项目数目:%d           |\n", sum);
        printf("                                |               0、返回上一层                    |\n");
        printf("                                |               1、增加项目信息                  |\n");
        printf("                                |               2、删除项目信息                  |\n");
        printf("                                |               3、修改项目信息                  |\n");
        printf("                                |               4、浏览全部项目信息              |\n");
        printf("                                |________________________________________________|\n");
    }
    
    #endif
    
    

    paixu.h

    #ifndef _paixu_h_
    #define _paixu_h_
    
    #include "data.h"
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    bool cmp1(Student x , Student y)
    {
        if(x.age != y.age)
            return x.age < y.age;
        if(x.height != y.height)
            return x.height < y.height;
        return x.weight < y.weight;
    }
    bool cmp2(Student x , Student y)
    {
        if(x.height != y.height)
            return x.height < y.height;
        if(x.weight != y.weight)
            return x.weight < y.weight ;
        return x.BMI() < y.BMI();
    }
    bool cmp3(Student x , Student y)
    {
        if(x.weight != y.weight)
            return x.weight < y.weight;
        if(x.height != y.height)
            return x.height < y.height;
        return x.BMI() < y.BMI();
    }
    bool cmp4(Student x , Student y)
    {
        if(x.BMI() != y.BMI())
            return x.BMI() < y.BMI();
        if(x.height != y.height)
            return x.height < y.height;
        return x.weight < y.weight;
    }
    
    void print(){
        for(int i = 0;i < count1 ;i++)
        {
            printf("姓名:%s\n",stu[i].name);
            printf("学号:%s\n",stu[i].number);
            printf("性别:%s\n",stu[i].sex);
            printf("年龄:%d\n",stu[i].age);
            printf("体重:%d\n",stu[i].weight);
            printf("身高:%d\n",stu[i].height);
            printf("BMI指数:%f\n",stu[i].BMI());
            for(int q = 0;q < sum;q++){
                printf("%s成绩:%d\n",spo[q].sport_name,stu[i].sport_score[spo[q].sport_num]);
            }
            printf("\n");
        }
    }
    
    bool cmpsportup(Student &a, Student &b){
        return a.sport_score[number5] < b.sport_score[number5];
    }
    
    bool cmpsportdown(Student &a, Student &b){
        return a.sport_score[number5] > b.sport_score[number5];
    }
    
    void mysortsport(){
        printf("请输入要排序的项目编号:\n");
        scanf("%d", &sportnum);
        number5 = sportnum;
        printf("请输入项目成绩排序任务方式:\n");
        printf("                                |               0、退出                          |\n");
        printf("                                |               1、升序                          |\n");
        printf("                                |               2、降序                          |\n");
        printf("                                |                                                |\n");
        int n = getch();
        switch(n)
        {
            case '0':
                return ;
            case '1':
                sort(stu, stu + count1, cmpsportup);
                print();
                break;
            case '2':
                sort(stu, stu + count1, cmpsportdown);
                print();
                break;
            default:
                printf("请输入正确的选择\n");
                break;
        }
    }
    
    
    void mysort(){
        printf("请输入排序任务方式:\n");
        printf("                                |               0、退出                          |\n");
        printf("                                |               1、年龄                          |\n");
        printf("                                |               2、身高                          |\n");
        printf("                                |               3、体重                          |\n");
        printf("                                |               4、BMI                           |\n");
        printf("                                |               5、指定编号成绩                  |\n");
        printf("                                |                                                |\n");
        int n = getch();
        switch(n)
        {
            case '0':
                return ;
            case '1':
                sort(stu, stu + count1, cmp1);
                print();
                break;
            case '2':
                sort(stu, stu + count1, cmp2);
                print();
                break;
            case '3':
                sort(stu, stu + count1, cmp3);
                print();
                break;
            case '4':
                sort(stu, stu + count1, cmp4);
                print();
                break;
            case '5':
                mysortsport();
                break;
            default:
                printf("请输入正确的选择\n");
                break;
        }
    }
    
    #endif
    

    password.h

    #ifndef _password_h_
    #define _password_h_
    
    #include "data.h"
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    void password() //运行前把密码文件内容读取到电脑内存
    {
        printf("请输入密码:");
        scanf("%s", &code);
        FILE *fp;
        fp = fopen("password.txt" , "rb"); //以只读方式打开当前目录下的.txt
        if(fp == NULL){
            printf("不存在密码文件\n");
            exit(0);                   //终止程序
        }
        char pass[20];
        fscanf(fp , "%s", &pass);
        if(strcmp(pass, code) == 0)
            flag = 1;
        fclose(fp);
    }
    #endif
    

    sport.h

    #ifndef _sport_h_
    #define _sport_h_
    
    #include "data.h"
    #include <iostream>
    #include <algorithm>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    int mark;
    void stu_addscore(){
    	for(int i = 0;i < count1;i++){
            printf("请增加学号为%s学生的%s成绩:",stu[i].number,spo[sum].sport_name);
            scanf("%d", &mark);
            stu[i].sport_score[sum] = mark;
    	}
    }
    
    void addsport()
    {
        char flag;
        title_head("增加体育项目\n");
        while(flag != 27){
            printf("项目编号: \n");
            scanf("%d", &sportnum);
            int i;
            for(i = 0;i < sum;i++)
                if(spo[i].sport_num == sportnum){
                    printf("项目已存在\n");
                    flag2 = 1;
                    return;
                }
            spo[sum].sport_num = sportnum;
            printf("项目名称:\n");
            scanf("%s", &sportname);
            strcpy(spo[sum].sport_name, sportname);
            sum++;
            printf("按任意键继续,结束输入请按Esc\n");
            flag = getch();//暂停程序当i接收后继续下一条指令
        }
    }
    
    void delsport(){
        char flag;
        title_head("删除运动项目\n");
        while(flag != 27){
            printf("请输入要删除的项目编号\n");
            scanf("%d", &sportnum);
            int i;
            for(i = 0;i < sum;i++)
                if(spo[i].sport_num == sportnum)
                    break;
            if(i == sum){
                printf("该项目不存在\n");
                return;
            }
            for(;i < sum;i++){
                spo[i].sport_num = spo[i+1].sport_num;
                strcpy(spo[i].sport_name, spo[i+1].sport_name);
            }
            sum--;
            printf("删除成功\n");
            printf("按任意键继续,结束输入请按Esc\n");
            flag = getch();//暂停程序当i接收后继续下一条指令
        }
    }
    
    void glanceallsport(){
        if(sum == 0){
            printf("还没有项目信息,请增加项目信息\n");
            return;
        }
        int i = 0;
        while(i < sum){
            printf("编号:%d",spo[i].sport_num);
            printf("  项目名称:%s\n",spo[i].sport_name);
            i++;
        }
    }
    
    void changesport(){
        int i, n;
        printf("请输入要修改的项目编号:\n");
        scanf("%d", &sportnum);
        for(i = 0;i < sum;i++)
            if(spo[i].sport_num == sportnum){
                printf("已查到该项目信息,修改项目编号请输入1:\n");
                printf("                  修改项目名称请输入2:\n");
                break;
            }
        if(i == count1){
            printf("未查到该学生信息!");
            return;
        }
        scanf("%d", &n);
        if(n == 1){
            printf("请输入修改后的编号:\n");
            scanf("%d", &sportnum);
            spo[i].sport_num = sportnum;
            printf("修改成功!");
        }
        else if(n == 2){
            printf("请输入修改后的名称:\n");
            scanf("%s", &sportname);
            strcpy(spo[i].sport_name , sportname);
            printf("修改成功!\n");
        }
        else
            printf("不存在此选项\n");
    }
    
    
    #endif
    

    student.txt

    001 老大 男 18 184 88 5 100 3 56
    002 老二 女 19 166 55 5 86 3 95
    003 老三 男 17 177 75 5 84 3 94
    004 老四 男 18 188 99 5 85 3 84
    005 老五 男 19 170 60 5 88 3 88

    sport.txt

    5 长跑
    3 50米

    password.txt

    10086

    展开全文
  • 学生信息管理系统(结构体数组+链表版) 后面还有纯数组
  • C语言学生信息管理系统(结构体数组文件) 这是初学时写的一个程序,比较菜,不喜勿喷。 在一个结构体里定义结构体内所有的信息(如果信息也需要分类则可以再定义一个结构体并在当前结构体内声明,我的这个代码...

    C语言学生信息管理系统(结构体数组,文件)

    	这是初学时写的一个程序,比较菜,不喜勿喷。
    	在一个结构体里定义结构体内所有的信息(如果信息也需要分类则可以再定义一个结构体并在当前结构体内声明,我的这个代码在科目那里就是这么干的),在当前学生结构体最后定义一个数组,数组的容量要不小于学生数目,之后就可以利用ch[1],ch[2].表示学生1,学生2.
    	在获取文件信息时用fscanf进行对文件的扫描,在修改文件时用fpintf对文件进行书写。
    

    班级 学号 姓名 学科1 学科1平时分 实验分 考试分 学科2平时分 实验分 考试分
    以下为文件内容
    101 10101 AAA Math 97 98 94 Chinese 82 73 96 99
    101 10102 BBB Math 92 93 91 Chinese 95 94 97 59
    102 10201 CCC Math 83 72 62 Chinese 93 89 95 94

    在允许代码的时候记得改文件地址,否则无法正常运行(注意C语言的文件地址是\而不是,用Windows+R得到的地址是\的,在代码里在加一个\就没有警告了)。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void sort(int a[],int i)//排序函数
    {
    	printf("%d %d %d\n",a[0],a[1],a[2]);
    	int j,l,temp;
    	for(j=0;j<i-1;j++)
    	{
    		for(l=j+1;l<i;l++)
    		{
    			if(a[j]>a[l])
    			{
    				temp=a[l];
    				a[l]=a[j];
    				a[j]=temp;
    			}
    		}
    	}
    	for(l=0;l<i;l++)
    	{
    		printf("%d\n",a[l]);
    	}
    }
    int main()
    {
        int i,j;
        char b[3][10];
        FILE *fp,*fp1;//文件输入输出指针 
        struct Subject//科目结构体 
        {
        	char classname[40];//学科名 
    	    float normal_s;//平时成绩 
    	    float experiment_s;//实验成绩 
    	    float exam_s;//考试成绩 
    	    
    	}; 
        struct student//学生信息 
    	{
    	    int num;//学号 
    	    char name[30];//名字 
    	    int cla;//班级 
    	    struct Subject subject[2]; //科目 
    	    float general_s;//总评成绩 
    	}Cha[6];
    	//
        int a;
        //界面模块代码
        printf("1.输入学生信息\n");
        printf("2.修改学生信息\n");
        printf("3.删除学生信息\n");
        printf("4.按姓名查询\n");
        printf("5.按班级查询\n");
        printf("6.按学号查询\n");
        printf("7.按课程名称查询\n");
        printf("8.按总分高低排序\n");
        printf("9.单科成绩排序\n");
        printf("10.查询班级优秀率\n");
        printf("11.退出系统\n");
        //选择操作代码
        printf("请输入操作序号:");
        scanf("%d",&a);
        if((a<1)||(a>11))//判断输入数值是否有效
        {
            printf("Error! The number is out of range!");
            exit(0);
        }
        while(a!=11)//输入为11时为退出系统的编号 
        {
        //操作甄别语句代码
        switch(a)
        {
        	
        ///读取数据  
    		case 1:
    		{
                if((fp=fopen("F:\\data.txt","r"))==NULL)//判断是否可以从文件中读取
    	{
    		printf("can not open file\n");
    		return 0;
    	}
    	i = 0;
    	while(!feof(fp))//文件读取不为空时进行 
    	{
            fscanf(fp,"%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f  %f\n",&Cha[i].cla,&Cha[i].num, Cha[i].name,Cha[i].subject[0].classname,&Cha[i].subject[0].normal_s,&Cha[i].subject[0].experiment_s,&Cha[i].subject[0].exam_s,Cha[i].subject[1].classname,&Cha[i].subject[1].normal_s,&Cha[i].subject[1].experiment_s,&Cha[i].subject[1].exam_s,&Cha[i].general_s);
    		printf("%d  %d  %s  %s  %.2f  %.2f  %.2f  %s  %.2f  %.2f  %.2f  %.2f\n",Cha[i].cla,Cha[i].num, Cha[i].name,Cha[i].subject[0].classname,Cha[i].subject[0].normal_s,Cha[i].subject[0].experiment_s,Cha[i].subject[0].exam_s,Cha[i].subject[1].classname,Cha[i].subject[1].normal_s,Cha[i].subject[1].experiment_s,Cha[i].subject[1].exam_s,Cha[i].general_s);
    		i++;
    	}
    	fclose(fp);
        }break;
        ///读取完毕
    	 
    	///修改学生名字 
    	case 2:
    	{
    		if((fp1=fopen("D:\\data.txt","w"))==NULL)//判断是否可以从文件中读取 
    	{
    		printf("can not open file\n");
    		return 0;
    	}
    		printf("请输入想要修改学生的姓名:  ");
    		char name1[20]="\0";
    		scanf("%s",name1);
    		getchar();//吸收回车
    		for(int k=0;k<i;k++)
    	        {
    	        	if(strcmp(name1,Cha[k].name)==0)
    	        	{
    	        		printf("请输入想要修改成什么:  ");
    	        		char namec[20]="\0";
    	        		scanf("%s",namec);
    	        	    getchar();//吸收回车
    	        	    strcpy(Cha[k].name,namec);
    	        	    printf("%s	%s\n",Cha[k].name,namec);
    				}
    				
    			}
    			for(int k=0;k<i;k++) 
    				{
    					fprintf(fp1,"%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s,Cha[k].general_s);
    				}
    				printf("修改成功\n");
    			fclose(fp1);
    	}break; 
    	///修改完毕 
    	
    	///删除学生信息
    	case 3:
    		{
    			if((fp1=fopen("D:\\data.txt","w"))==NULL)//判断是否可以从文件中读取 
    	{
    		printf("can not open file\n");
    		return 0;
    	}
    		printf("请输入想要删除学生的姓名:  ");
    		char name1[20]="\0";
    		scanf("%s",name1);
    		getchar();//吸收回车
    		for(int k=0;k<i;k++)
    	        {
    	        	if(strcmp(name1,Cha[k].name)==0)
    	        	{
    	        	continue; 
    				}
    				else 
    					fprintf(fp1,"%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s,Cha[k].general_s);
    				printf("%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s,Cha[k].general_s);
    			}
    			printf("删除成功\n");
    			fclose(fp1);
    		}break;
    	///删除完毕 
    	 
        ///按照姓名查询 
        case 4 :
        	{
    			char name1[20]="\0";
    	        printf("请输入需要查询的姓名:");
    	        scanf("%s",name1);
    	        getchar();//吸收回车 
    	        printf("%s\n",name1);
    	        for(int k=0;k<i;k++)
    	        {
    	        	if(strcmp(name1,Cha[k].name)==0)
    	        	{
    	        		printf("%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s,Cha[i].general_s);
    				}
    			}
    		}break;
    	///查询完毕
    		
    	///按照班级查询
    		case 5:
        	{
    			int clas;
    	        printf("请输入需要查询的班级:");
    	        scanf("%d",&clas);
    	        getchar();//吸收回车 
    	        printf("%d\n",clas);
    	        for(int k=0;k<i;k++)
    	        {
    	        	if(clas == Cha[k].cla)
    	        	{
    	        		printf("%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s,Cha[i].general_s);
    				}
    			}
    
    		}break; 
    	///查询完毕
    	
    	///按照学号查询
    	case 6:
        	{
    			int number;
    	        printf("请输入需要查询的学号:");
    	        scanf("%d",&number);
    	        getchar();//吸收回车 
    	        printf("%d\n",number);
    	        for(int k=0;k<i;k++)
    	        {
    	        	if(number==Cha[k].num)
    	        	{
    	        		printf("%d  %d  %s  %s  %f  %f  %f  %s  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s,Cha[i].general_s);
    				}
    			}
    		}break; 
    	///查询完毕	
    	
    	///按照课程名查询 
    	case 7 :
        	{
    			char kecheng[20]="\0";
    	        printf("请输入需要查询的课程名:");
    	        scanf("%s",kecheng);
    	        getchar();//吸收回车 
    	        printf("%s\n",kecheng);
    	        for(int k=0;k<i;k++)
    	        {
    	        	if(strcmp(kecheng,Cha[k].subject[0].classname)==0)
    	        	{
    	        		printf("%d  %d  %s  %s  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[0].classname,Cha[k].subject[0].normal_s,Cha[k].subject[0].experiment_s,Cha[k].subject[0].exam_s);
    				}
    				if(strcmp(kecheng,Cha[k].subject[1].classname)==0)
    	        	{
    	        		printf("%d  %d  %s  %s  %f  %f  %f\n",Cha[k].cla,Cha[k].num, Cha[k].name,Cha[k].subject[1].classname,Cha[k].subject[1].normal_s,Cha[k].subject[1].experiment_s,Cha[k].subject[1].exam_s);
    	        	}
    			}
    		}break;
    	///查询完毕
    	
    	///按照总分高低排序 
    	case 8:
    		{
    			int stu_c[i];
    			int k;
    			for(k=0;k<i;k++)
    			{
    				stu_c[k]=Cha[k].general_s;
    			}
    			sort(stu_c,i);//调用排序函数 
    		}break;
    	///排序完毕
    	
    	///按照总分高低排序 
    	case 9:
    		{
    			int stu_c[i];
    			int k;
    			printf("请你输入所要查询的科目:  ");
    			char sub[20];
    			scanf("%s",sub);
    	        getchar();//吸收回车 
    			if(strcmp(sub,Cha[k].subject[0].classname)==0)//数学 
    			{
    				for(k=0;k<i;k++)
    			{
    				stu_c[k]=Cha[k].subject[0].exam_s;
    			}
    			sort(stu_c,i);//调用排序函数 
    			}
    			else if(strcmp(sub,Cha[k].subject[1].classname)==0)//语文 
    			{
    				for(k=0;k<i;k++)
    			{
    				stu_c[k]=Cha[k].subject[1].exam_s;
    			}
    			sort(stu_c,i);//调用排序函数 
    			}
    			else
    			{
    				printf("输入错误\n");
    				exit(0);
    			}
    		}break;
    	///排序完毕
    	
    	///班级优秀率查询 
    	case 10:
    		{
    			int flag1=0;
    			int flag2=0;
    			int flag3=0;
    			int cl;
    	        printf("请输入需要查询的班级:");
    	        scanf("%d",&cl);
    	        getchar();//吸收回车 
    	        printf("%d\n",cl);
    	        for(int k=0;k<i;k++)
    	        {
    	        	if(cl == Cha[k].cla)
    	        	{
    	        		flag1++;
    	        		if(Cha[k].general_s>=90)//优秀 
    					{
    						flag2++;
    					} 
    	        		
    	        		if(Cha[k].general_s<60)//不及格 
    	        		{
    	        			flag3++;
    					}
    	        		
    				}
    			}
    			printf("%d\n",flag1);
    			printf("优秀率为:  ");
    			float t1=0;
    			t1=(float)flag2/flag1;
    			printf("%.2f\n",t1);
    			printf("不及格率为:  ");
    			float t2=0;
    			t2=(float)flag3/flag1;
    			printf("%.2f\n",t2);
    		}break;
    	///查询完毕
    	}
    	printf("请输入操作序号:");
        scanf("%d",&a);
        if((a<1)||(a>11))//判断输入数值是否有效
        {
            printf("Error! The number is out of range!");
            exit(0);
        }
    	}
     
        return 0;
    }
      
    
    
    
    展开全文
  • java实现学生成绩管理系统数组实现)

    千次阅读 多人点赞 2019-01-07 20:49:40
    1、需定义存储学生姓名的数组、存储课程名称的数组、各科成绩的二维数组、存储总分的数组、存储平均分的数组、存储学生信息数组(拼接学生姓名、各科成绩、总分、平均分) 2、对学生信息排序(根据总分排序) 3、...

    需求:
    录入班级学生的各科成绩,计算总分、平均分,并按总分降序排序
    在这里插入图片描述
    思路:
    1、需定义存储学生姓名的数组、存储课程名称的数组、各科成绩的二维数组、存储总分的数组、存储平均分的数组、存储学生信息的数组(拼接学生姓名、各科成绩、总分、平均分)
    2、对学生信息排序(根据总分排序)
    3、循环打印排序后的学生信息
    代码:

    package com.student.test;
    import java.util.Scanner;
    
    public class StudentM {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入学生人数");
            int stuNum=sc.nextInt();
            System.out.println("请输入课程数");
            int couNum=sc.nextInt();
            String[] name=new String[stuNum];  //存储学生姓名
            String[] course=new String[couNum]; //存储课程名称
            int[][] score=new int[stuNum][couNum]; //存储各科成绩
            int[] sum=new int[stuNum];         //存储总分
            int[] avg=new int[stuNum];         //存储平均分
            String[] content=new String[stuNum];  //存储学生信息
            /**
             * 录入课程名称
             */
            for(int i=0;i<couNum;i++){
                System.out.println("请输入第"+(i+1)+"个课程名称");
                course[i]=sc.next();
            }
            /**
             * 录入学生各科成绩,同时计算总分、平均分
             */
             for(int i=0;i<stuNum;i++){
                 System.out.println("请输入第"+(i+1)+"个学生的名字");
                 name[i]=sc.next();
                 content[i]=name[i]+"\t\t";//拼接姓名
                 for(int j=0;j<couNum;j++){
                     System.out.println("请输入"+name[i]+course[j]+"的成绩");
                     score[i][j]=sc.nextInt();
                     sum[i]+=score[i][j];  //计算总分
                     content[i]+=score[i][j]+"\t\t"; //拼接各科成绩
                 }
                 avg[i]=sum[i]/stuNum; //计算平均分
                 content[i]+=sum[i]+"\t\t"+avg[i]+"\t\t"; //拼接总分、平均分
             }
    
            /**
             * 根据总分对学生成绩排序
             */
            for(int i=0;i<stuNum-1;i++){  //冒泡排序
                for(int j=0;j<stuNum-1;j++){
                    if(sum[j]<sum[j+1]){   //比较总分
                        int t=sum[j];      //交换总分
                        sum[j]=sum[j+1];
                        sum[j+1]=t;
                        String temp=content[j];  //交换字符串
                        content[j]=content[j+1];
                        content[j+1]=temp;
                    }
                }
            }
            /**
             * 打印学生成绩
             */
            System.out.print("姓名\t\t");
            for(int i=0;i<couNum;i++){
                System.out.print(course[i]+"\t\t");
            }
            System.out.println("总分\t\t平均分\t\t排名\t\t"); //表头
    
            for(int i=0;i<stuNum;i++){
                System.out.println(content[i]+"第"+(i+1)+"名\t\t");
            }
        }
    }
    
    

    运行结果:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 主要为大家详细介绍了C语言数组实现学生信息管理系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C语言创建简单成绩管理系统 数组实现 头文件及宏定义 #define SIZE 10 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct student { char Name[8]; char ID_number[10];...

    C语言创建简单成绩管理系统

    数组实现

    头文件及宏定义

    #define SIZE 10
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    typedef struct student
    {
    	char Name[8];
    	char ID_number[10];
    	int math;
    	int english;
    	student()
    	{
    		int i;
    		for(i=0;i<8;i++){
    			Name[i]='\0';
    			ID_number[i]='\0';
    		}
    	}
    }Student;
    

    排序函数

    void swap_students(Student &a,Student &b)
    {
    	Student temp;
    	temp=a;
    	a=b;
    	b=temp;
    }
    void bubble_sort(Student *S)
    {
    	int i,j;
    	for(i=0;i<SIZE;i++){
    		for(j=i+1;j<SIZE;j++){
    			if(strcmp(S[i].ID_number,S[j].ID_number)>0){
    				swap_students(S[i],S[j]);
    			}
    		}
    	}
    }
    

    输入函数

    void input_data(Student &S)
    {
    	printf("请输入学生姓名:");
    	scanf("%s",S.Name);
    	printf("请输入学生学号:");
    	scanf("%s",S.ID_number);
    	start_m:printf("请输入高数成绩:");
    	scanf("%d",&S.math);
    	if(S.math<0||S.math>100){
    		printf("请输入0-100的值\n");
    		goto start_m;
    	}
    	start_e:printf("请输入英语成绩:");
    	scanf("%d",&S.english);
    	if(S.english<0||S.english>100){
    		printf("请输入0-100的值\n");
    		goto start_e;
    	}
    }
    void Input_Students(Student *S)
    {
    	int i,num;
    	printf("请输入学生数量:");
    	scanf("%d",&num);
    	for(i=0;i<num;i++){
    		input_data(S[i]);
    	}
    	bubble_sort(S);
    }
    

    删除函数

    void Del_Student(Student *S,char del[])
    {
    	int i,flag=0;
    	for(i=0;i<SIZE;i++){
    		if(strcmp(del,S[i].ID_number)==0){
    			S[i].math=-1;
    			S[i].english=-1;
    			strcpy(S[i].Name,"00000000");
    			strcpy(S[i].ID_number,"0000000000");
    			flag=1;
    		}
    	}
    	if(flag==0){
    		printf("未找到\n");
    	}
    }
    

    查询函数

    void Inquire_Student(Student Stu[],char inq[])
    {
    	int i,flag=0;
    	for(i=0;i<SIZE;i++){
    		if(strcmp(inq,Stu[i].ID_number)==0){
    			printf("姓名:%s 学号:%s 高数:%d 英语:%d",Stu[i].Name,Stu[i].ID_number,Stu[i].math,Stu[i].english);
    			flag=1;
    			break;
    		}
    	}
    	if(flag==0){
    		printf("未找到\n");
    	}
    }
    

    打印函数

    void Print_Students(Student Stu[])
    {
    	int i;
    	for(i=0;i<SIZE;i++){
    		if(Stu[i].english<0||Stu[i].english>100){
    			continue;
    		}
    		printf("姓名:%s 学号:%s 高数:%d 英语:%d\n",Stu[i].Name,Stu[i].ID_number,Stu[i].math,Stu[i].english);
    	}
    }
    

    储存函数

    void Save_Students(Student *S)
    {
    	int i;
    	char str[16]={'\0'};
    	printf("请输入文件名:");
    	scanf("%s",str);
    	char Enter='\n';
    	FILE *fp;
    	if((fp = fopen(str,"w"))==NULL){
    		printf("打开文件出错!\n");
    		return ;
    	}
    	for(i=0;i<SIZE;i++)
    	{
    		if(S[i].english<0||S[i].english>100){
    			continue;
    		}
    		fprintf(fp,"姓名:%s 学号:%s 高数:%d 英语:%d%c",S[i].Name,S[i].ID_number,S[i].math,S[i].english,Enter);
    	}
    	fclose(fp);
    	printf("保存完成\n");
    }
    

    main函数菜单

    int main()
    {
    	int sl;
    	char del[10]={'\0'};
    	char inq[10]={'\0'};
    	Student Stu[SIZE];
    	do
    	{
    		start:printf("菜单\n输入学生成绩...1\n删除学生成绩...2\n查询学生成绩...3\n打印全部学生信息...4\n退出并存入文件...0\n");
    		scanf("%d",&sl);
    		switch(sl){
    		case 0:Save_Students(Stu);exit(0);
    		case 1:Input_Students(Stu);system("pause");system("cls");break;
    		case 2:printf("请输入要删除的学生学号:");scanf("%s",del);Del_Student(Stu,del);system("pause");system("cls");break;
    		case 3:printf("请输入要查询的学生学号:");scanf("%s",inq);Inquire_Student(Stu,inq);system("pause");system("cls");break;
    		case 4:Print_Students(Stu);system("pause");system("cls");break;
    		default:goto start;
    		}
    	}while(1);
    }
    
    展开全文
  • 基于数组学生信息管理系统 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件studentInit.dat中。在头文件student.h中定义学生信息的结构体类型,包括:学号、姓名、专业、班级、3门...
  • 要求:1记录学生班级姓名,性别,职务住址情况,数据输入数据删除排序查。#include /*引用库函数*/ #include #include #include typedef struct /*... /*输出该学生信息*/ printf("\t\t\this(.插入一条学生记录,...
  • java实现学生信息管理系统(对象数组实现)

    千次阅读 多人点赞 2019-01-09 20:17:23
    学生管理类 StudentAdmin.java3.主程序 StudentTest.java四、运行结果1.添加学生功能2.查找学生功能3.根据编号更新学生基本信息功能4.根据学生编号删除学生功能5.根据学生编号录入学生各门成绩6.根据某门成绩进行...
  • 系统主要界面: 1.Display all students' info 2.Sort by average 3.Insert a new info 4.Delete a record ...退出时,将学生信息写入到student的文件当中 操作系统:linux(ubuntu) 包含Makefile
  • C/C++实现,包括源代码,实验报告。源代码有详细注释。实现了文件存取,学生信息的查找,插入,修改,删除,排序等。
  • 学生管理系统数组实现)

    千次阅读 2018-01-23 15:56:54
    这个系统比较low,用的数组和结构体完成的,实现了四种功能,第一个功能可以输入学生信息,第二个功能可以查看学生信息,第三个功能可以查找学生信息, 第四个功能可以排序。 
  • 文件,添加,删除,排序等,课程设计题目,看不太不懂可以问我
  • 简单的学生管理系统,使用C语言编写。 功能 拥有增、删、改、查、打印、文件读写、搜索以及排序功能。 环境 推荐使用VS2015或以上版本(支持C11或以上)的编译器运行代码。 结构 数据结构为结构体数组。 运行效果图...
  • 表单使用密码、单选、复选、列表、文件域等控件学生信息实现分页浏览。这是课上老师要求的课后作业 是没有完善的 因为个人能力有限 但还是可以运行,有积分多的可以下载 谢谢了 就是想下个资源 但是没积分了
  • 学生管理系统数组

    2018-09-08 21:00:11
    纯c语言开发,包含三个文件,头文件,main.c studentMessage.c 。可以存在txt文件,快速排序,希尔排序,输出函数,寻找最高分学生信息,能够输出所有最高分学生信息
  • 本次实践课的第一个任务便是利用所学的知识,基于动态数组和链表知识设计一个学生信息管理系统。与做单独的一道题不同,设计整个系统就对各模块间的相互配合、人机交互内容等方面提出了更大的要求。 万事开头难,...
  • #include #include #include #include #include...//从文件中读取学生信息 switch(ch) { case '1': add();getchar();break;//添加 case '2': dele();getchar();break;//删除 case '3': query();getchar();break;//查询 ...
  • c语言 学生管理系统数组实现)

    千次阅读 2011-10-10 17:13:37
     printf("\t\t\t\t\t学生成绩管理系统\n ");   loop: printf("\n请输入学号!\n");  scanf("%d",&i);  switch(i){  case 200901:  printf("数学\t英语\t语文\t化学\t生物\t物理\n");  for(k=0;k...
  • c++ c 数据结构 课程设计 学生成绩管理系统 数组 c语言课程设计 c++课程设计 数据结构课程设计 菜单驱动 基于数组设计 用C语言实现的学生成绩管理系统 基于数组设计。采用菜单驱动。对于计算机专业及非计算机专业...
  • Java+学生信息管理系统+GUI+文件

    万次阅读 多人点赞 2019-07-05 20:10:03
    系统可实现学生信息的增加,删除,修改,查询,并将学生信息存储在文件中 其中, 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以...
  • 用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统。 (1) 录入每个学生的学号、姓名和各科考试成绩。 (2) 计算每门课程的总分和平均分。 (3) 计算每个学生的总分和平均分。 (4) 按每个...
  • stu_list 学生信息文件(初始为空,从系统录入) 二、代码 /* *** 学生管理系统 *** */ #include <stdio.h> #include <windows.h> #include <time.h> #include <conio.h> #define N 100 ...
  • JOUKKAL 0T NORTHWKSTZRN POLTTECHHICAL UHMRfiTTT ltDfG Dfe COUXGE《c语言应用》实验报告题目学生成绩管理系统(数组版)专业名称 班 级 学 号 学生姓名 指导教师 完成时间TOC \o "1-5" \h \z \o "Current Document...
  • 设计一个学生宿舍管理系统,在录入学生信息时就分配宿舍,可以增删查改学生信息。 参数:人 Person (pid,name,sex)   宿舍 Room(rid,Person[] p,type)  文件结构:    model:  在该层中插入属性,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,483
精华内容 7,393
关键字:

学生信息管理系统文件数组