c语言学生管理系统(上)

大一上c语言学生管理系统*你好!这是你第一次使用c语言做完整的一个小程序,如果你想学习c语言不那么枯燥,可以仔细阅读这篇文章,了解一下c语言的基本语法知识。主要函数功能1.打印功能菜单2.录入学生信息。3.计算所以学生总分和平均分。4.根据学生分数由高到低输出学生信息。5.根据学生学号由小到大输出学生信息。6.输入学生学号查找该学生对应的信息。7.优秀、合…

大家好,又见面了,我是你们的朋友全栈君。


大一上c语言学生管理系统(上)

你好!如果这是你第一次使用 c语言做完整的一个简单小程序,以下内容包括每个功能函数。如果你想学习c语言不那么枯燥, 可以仔细阅读这篇文章,了解一下c语言的基本语法知识。
**

ps:个人主页有完整版代码

**

主要函数功能

1.打印功能菜单。
2. 录入学生信息。
3. 计算所以学生总分和平均分。
4. 根据学生分数由高到低输出学生信息。
5. 根据学生学号由小到大输出学生信息。
6. 输入学生学号查找该学生对应的信息。
7. 优秀、合格,不合格等所占百分比及人数。
8. 输出所有学生信息。
初始界面

学生信息结构体

学生信息 数据类型
姓名 字符串数组
学号 long
分数 int

##这是我们的主函数##
注:主函数的n是学生总人数,是随着录入学生信息函数的修改而变化的。

int main()
{ 
   
 int n=0;
 while(1)
    { 
   
        void List();                              //输出列表
        void Input(STU stu[],int *n);             //输入学生数据
        void Sumandave(STU stu[],int n);          //和与平均值
        void Hightolow(STU stu[],int n);          //分数由大到小
        void Smalltolarge(STU stu[],int n);       //学号由小到大
        void Search(STU stu[],int n);             //查找某个学生信息
        void Percentage(STU stu[],int n);         //所占人数和百分比
        void Outputinformation(STU stu[],int n);  //输出所以学生信息
        system("cls");        //清屏
        List();               //输出列表
        char c=getch();       //头文件conio,按下某个字符时,函数自动读取,无需按回车.
  switch(c)
        { 
   
        case '1':
            Input(&stu1,&n);
            break;
        case '2':
            Sumandave(&stu1,n);
            break;
        case '3':
            Hightolow(&stu1,n);
            break;
        case '4':
            Smalltolarge(stu1,n);
            break;
        case '5':
            Search(stu1,n);
            break;
        case '6':
            Percentage(&stu1,n);
            break;
        case '7':
            Outputinformation(&stu1,n);
            break;
        case '0':
            exit(0);
            break;                     //exit(0)退出程序
        }
    }

1、打印功能菜单函数

//输出列表
void List()
{ 
   
    printf("*****************************************************************\t\t\t\n");
    printf("*\t\t欢迎使用高校学生成绩管理系统ws版\t\t*\n");
    printf("*\t\t\t 请选择功能\t\t\t\t*\n");
    printf("*****************************************************************\t\t\t\n");
    printf("*\t 1.Input record\t\t\t\t\t*\n");
    printf("*\t 2.Caculate total and average socre of course\t\t*\n");
    printf("*\t 3.Sort in descending older by score\t\t\t*\n");
    printf("*\t 4.Sort in ascending older by number\t\t\t*\n");
    printf("*\t 5.Search by number\t\t\t\t\t*\n");
    printf("*\t 6.Statistic analysis\t\t\t\t\t*\n");
    printf("*\t 7.List record\t\t\t\t\t\t*\n");
    printf("*\t 0.Exit\t\t\t\t\t\t*\n");
    printf("*****************************************************************\t\t\t\n");
}

2、录入学生信息函数

//输入n个学生信息
void Input(STU stu[],int *n)        //取n地址,及时更新人数数量,以便更新数据
{ 
   
    int m;
    static int i=0;
    printf("请输入要录入的学生人数:");
    scanf("%d",&m);
    for(; i<m+*n; i++)
    { 
   
        printf("请输入学生姓名:");
        scanf("%s",stu[i].name);
        printf("请输入学生学号:");
        scanf("%ld",&stu[i].id);
        printf("请输入学生分数:");
        scanf("%d",&stu[i].score);
        printf("***********************\n");
    }
    *n+=m;
    printf("学生信息录入成功!!!\n");
    system("pause");
}

3、计算所以学生总分和平均分函数

//计算总分和平均分
void Sumandave(STU stu[],int n)
{ 
   
    int i,sum=0;
    float ave;
    for(i=0; stu[i].score; i++)
    { 
   
        sum+=stu[i].score;
    }
    ave=(float)sum/n;
    printf("%d名同学的sum:%d\n",i,sum);
    printf("%d名同学的ave:%.2f\n",i,ave);
    system("pause");
}

4、 根据学生分数由高到低输出学生信息函数

//分数由高到低排序
void Hightolow(STU stu[],int n)
{ 
   
    char x[100];
    int i,j;
    long int t;
    for(i=0; i<n-1; i++)
    { 
   
        for(j=i; j<n; j++)
        { 
   
            if(stu[i].score<stu[j].score)
            { 
   
                t=stu[i].score;
                stu[i].score=stu[j].score;
                stu[j].score=t;
                t=stu[i].id;
                stu[i].id=stu[j].id;
                stu[j].id=t;
                strcpy(x,stu[i].name);
                strcpy(stu[i].name,stu[j].name);
                strcpy(stu[j].name,x);
            }
        }
    }
    printf("%d名同学分数由高到低:\n",n);
    printf("姓名:");
    for(int p=0; p<n; p++)
    { 
   
        printf("%10s",stu[p].name);
    }
    printf("\n");
    printf("分数:");
    for(int p=0; p<n; p++)
    { 
   
        printf("%10d",stu[p].score);
    }
    printf("\n");
    printf("学号:");
    for(int p=0; p<n; p++)
    { 
   
        printf("%10ld",stu[p].id);
    }
    printf("\n");
    system("pause");
}

5、 根据学生学号由小到大输出学生信息函数

//学号由小到大排序
void Smalltolarge(STU stu[],int n)
{ 
   
    char x[100];
    int i,j;
    long int t;
    for(i=0; i<n-1; i++)
    { 
   
        for(j=i; j<n; j++)
        { 
   
            if(stu[i].id>stu[j].id)
            { 
   
                t=stu[i].score;
                stu[i].score=stu[j].score;
                stu[j].score=t;
                t=stu[i].id;
                stu[i].id=stu[j].id;
                stu[j].id=t;
                strcpy(x,stu[i].name);
                strcpy(stu[i].name,stu[j].name);
                strcpy(stu[j].name,x);
            }
        }
    }
    printf("%d名同学学号由低到高:\n",n);
    printf("姓名:");
    for(int p=0; p<n; p++)
    { 
   
        printf("%10s",stu[p].name);
    }
    printf("\n");
    printf("分数:");
    for(int p=0; p<n; p++)
    { 
   
        printf("%10d",stu[p].score);
    }
    printf("\n");
    printf("学号:");
    for(int p=0; p<n; p++)
    { 
   
        printf("%10ld",stu[p].id);
    }
    printf("\n");
    system("pause");
}

6、 输入学生学号查找该学生对应的信息函数

//输入学号查找学生输出对应信息
void Search(STU stu[],int n)
{ 
   
    int i;
    long int p;
    printf("请输入要查找的学生学号:");
    scanf("%ld",&p);
    for(i=0; i<n; i++)
    { 
   
        if(p==stu[i].id)
        { 
   
            printf("该学生姓名:%s\n",stu[i].name);
            printf("该学生学号:%d\n",stu[i].id);
            printf("该学生成绩:%d",stu[i].score);
            break;
        }
    }
    if(i==n)
        printf("Not found!\n");
    printf("\n");
    system("\npause");
}

7、 优秀、合格,不合格等所占百分比及人数函数

//每级别人数所占百分比
void Percentage(STU stu[],int n)
{ 
   
    int m;
    static int a[5]= { 
   0},i=0;
    float b[i];
    for(; i<n; i++)           //找各级别所占人数
    { 
   
        m=stu[i].score;
        m/=10;
        switch(m)              //计算各级别人数
        { 
   
        case 10:
        case  9:
            a[4]++;
            break;
        case  8:
            a[3]++;
            break;
        case  7:
            a[2]++;
            break;
        case  6:
            a[1]++;
            break;
        default:
            a[0]++;
            break;
        }
    }
    printf("总人数为:%d人\n",n);                          //各级别人数百分比
    printf("优秀人数为%d人。所占百分比为:%.2f%%\n",a[4],(float)100*a[4]/n);
    printf("良好人数为%d人。所占百分比为:%.2f%%\n",a[3],(float)100*a[3]/n);
    printf("中等人数为%d人。所占百分比为:%.2f%%\n",a[2],(float)100*a[2]/n);
    printf("及格人数为%d人。所占百分比为:%.2f%%\n",a[1],(float)100*a[1]/n);
    printf("不及格人数为%d人。所占百分比为:%.2f%%\n",a[0],(float)100*a[0]/n);  //%%打出%
    system("pause");
}

8、 输出所有学生信息函数

//输出每个学生学号和成绩
void Outputinformation(STU stu[],int n)
{ 
   
    int i;
    for(i=0; i<n; i++)                 //输出n个学号和分数
    { 
   
        printf("\n学生姓名:%s\n学号:%ld\n分数:%d\n****************",stu[i].name,stu[i].id,stu[i].score);
    }
    printf("\n");
    system("pause");
}

**********************************************************************

希望可以对您有所帮助!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127175.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring 笔记_spring实战pdf

    spring 笔记_spring实战pdfSpring实战1:Spring初探

    2022年4月21日
    74
  • windows下载安装adb(极其简单)

    windows下载安装adb(极其简单)单独安装adb,不安装sdk下载adbGoogle很好的心,直接放出ADB的档案供人下载。下档路径如下:Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zipMac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zipLinux版本:https://dl.google.com/andro

    2022年5月16日
    48
  • touchesBegan 触摸事件

    touchesBegan 触摸事件一、概念介绍1、在用户使用App过程中,会产生各种各样的事件,iOS中的事件可以分为3大类型:1)触摸事件2)加速计事件3)远程操控事件响应者对象UIResponder        在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。      UIApplication、UIViewController、UIView都继承…

    2022年7月25日
    9
  • mysql锁表和解锁语句_db2查看是否锁表

    mysql锁表和解锁语句_db2查看是否锁表介绍锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。锁机制共享锁与排他锁共享锁(读锁):其他事务可以读,但不能写。排他锁(写锁):其他事务不能读取,也不能写。粒度锁MySQL不同的存储引擎支持不同的锁机制,所有的存储引擎都以自己的方式显现了锁机制,服务器层完全不了解存储引擎中的

    2022年8月23日
    12
  • java中级面试题及答案_Java中级面试题

    java中级面试题及答案_Java中级面试题一、Java笔试题基础1.Java中的异常有哪几类?分别怎么使用?检出异常,非检出异常。检出异常需要try…catch才能编译通过。非检出异常不用try…catch也能编译通过。RuntimeException是非检出异常,不需要try…catch也能编译通过。IoException,SQLException等等其他所有异常都是检出异常,必须要try…catach才能编译通过。2.常用的集合类有哪些?比如List如何排序?分两种,一种实现Set接口,一种是实现List接口的。Set:Tre

    2022年10月12日
    3
  • LaTeX数学公式-详细教程

    LaTeX数学公式-详细教程LaTeX数学公式,包含前言,注意事项,插入公式,注释,编号,转义字符,换行与对齐,字体,空格,上下标,括号,大括号和行标,分式,开方,对数,省略号,最值,方程组和分段函数,累加和累乘,矢量,积分,极限,导数与偏导,矩阵,表格,希腊字母,运算符,戴帽符号,特殊符号,等等。

    2022年5月23日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号