学生管理系统实训

简介: 学生管理系统实训
#include<stdio.h>
#include<Windows.h>
#include<conio.h>
#define StudentNumber 30             //Maximum number of students
#define SubjectNumber 6              //Maximum number of subjects
#define NameLength 20                //Maximum number of name_length
typedef struct student{
    long int num;
    char name[NameLength];
    float score[SubjectNumber];
    float sum;
}STU;
STU s[StudentNumber];
int itemSelected=-1;
int n;                               //StudentNumber
int m;                               //SubjectNumber
void inputScore();                   //Enter basic information
void SortByGrade();
void printScore();
int Menu(){
    system("cls");
    printf("\n ==============Student achievement management system===============\n");
    printf("\t 1.Enter your student id number, name and grade for each subject\n");
    printf("\t 2.A league table is arranged according to each student's total score from highest to lowest\n");
    printf("\t 3.Output information about each student\n");
    printf("\t 0.Quit\n");
    printf("======================================================================\n");
    printf("Please select options:");
    scanf( "%d",&itemSelected);
    system("cls");
    return itemSelected;
}
void chose(int a){
    switch(a){
        case 1: inputScore(); break;
        case 2: SortByGrade();break;
        case 3: printScore();break;
        case 0: printf("About to exit program");
            exit(0);
        default: printf("Input error!");break;
    }
}
int main()
{
    char a;
    printf("Please enter the total number of students(n<%d):\n",StudentNumber);
    scanf("%d",&n);
    getchar();
    printf("Please enter the total number of subjects(m<%d):\n",SubjectNumber);
    scanf("%d",&m);
    getchar();
    system("cls");
    while(1){
        itemSelected=Menu();
        chose(itemSelected);
    }
}
void inputScore(){
    printf("\n===============================================\n");
    printf("Please input student ID, name and subject information (enter 0 to stop information input) \n");
    int i,j;
    for(i=0;i<n;i++){
        printf("Student id (8):");
        scanf("%ld",&s[i].num);
        if(s[i].num==0) break;
        getchar();
        printf("Name:");
        gets(s[i].name);
        printf("Please enter your scores for each subject:");
        s[i].sum=0;
        for(j =0;j<m;j++){
            scanf("%f",&s[i].score[j]);
            s[i].sum +=s[i].score[j];
        }
        system("cls");
    }
}
void SortByGrade(){                                       //Sorted from highest to lowest overall score
    STU temp;
    int i,j,k;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {      if(s[j].sum<s[j+1].sum){
                temp=s[j];
                s[j]=s[j+1];
                s[j+1]=temp;
            }
        }
    }
    printf("\n============Sorted from highest to lowest overall score===========\n");
    for(j=0;j<n;j++){
        printf("The overall score ranking %d is:",j+1);
        for(k=0;k<NameLength;k++){
            printf("%c",s[j].name[k]);
        }
        printf("\nThe student's total score is:%.2f\n",s[j].sum);
    }
    getch();
}
void printScore(){
    printf("==============Below is the student information==============\n");
    int j,k,c;
    for(j=0;j<n;j++){
        printf("The student's student id is:%ld\n",s[j].num);
        printf("The student's name is:");
        for(k=0;k<NameLength;k++){
            printf("%c",s[j].name[k]);
        }
        printf("\nA student's scores for each subject is:\n");
        for(c=0;c<m;c++){
            printf("The %d subject score is:%.2f\n",c+1,s[j].score[c]);
        }
        printf("The student's total score is:%.2f",s[j].sum);
        printf("\n");
    }
    getch();
}
相关文章
|
前端开发 JavaScript Java
面试官:什么是防抖和节流?如何实现?应用场景?
面试官:什么是防抖和节流?如何实现?应用场景?
280 0
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
609 8
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
网络协议 算法 安全
HCIP-Datacom H12-821 题库 (1)
HCIP-Datacom H12-821 题库 (1)
163 0
HCIP-Datacom H12-821 题库 (1)
|
12月前
|
Java Linux iOS开发
如何设置 Java 的环境变量
设置Java环境变量是使用Java开发工具和运行Java程序的前提。主要步骤包括:安装JDK,配置系统环境变量中的JAVA_HOME、PATH和CLASSPATH,确保命令行可直接调用javac和java命令。
495 6
ly~
|
12月前
|
存储 安全 生物认证
如何防止密码重用?
本文介绍了防止密码重用的综合措施,包括用户教育与意识提升、技术手段支持和系统设计与策略引导。通过定期的安全培训、安全提示与宣传,增强用户的安全意识;推荐使用密码管理器和账户关联检测技术,帮助用户管理复杂密码;实施多因素身份验证和密码强度检查,确保系统的安全性。
ly~
356 5
|
前端开发 JavaScript API
React进阶高级指南(一)
React进阶高级指南(一)
116 1
|
安全 Shell 网络安全
DC-2靶机上了解和练习WordPress框架
本文介绍了在一个名为DC2的虚拟环境中进行渗透测试的过程。首先通过扫描发现SSH和Web端口,并进行全端口扫描以寻找隐藏端口。接着通过信息收集、漏洞利用(如SQL注入、文件上传漏洞等)、反弹Shell及提权等步骤逐步攻陷目标系统。文章详细描述了使用Cewl生成字典、Dirsearch扫描目录、Wpscan枚举WordPress用户等技巧,并最终通过SSH登录和Git命令实现了提权,获取多个flag。
201 3
|
机器学习/深度学习 人工智能 搜索推荐
某A保险公司的 数据图表和数据分析
某A保险公司的 数据图表和数据分析
149 0
某A保险公司的 数据图表和数据分析
|
人工智能 算法 测试技术
2023年第15届蓝桥杯模拟赛第二期(c语言)
2023年第15届蓝桥杯模拟赛第二期(c语言)
472 0