基于C语言实现简单学生成绩管理系统

本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下

一、系统主要功能

1、密码登录
2、输入数据
3、查询成绩
4、修改成绩
5、输出所有学生成绩
6、退出系统

二、代码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
struct student
{
    char num[10];
    char name[20];
    int old;
    char add[30];
    char xb[5];
    char mc[5];
    int ds;
    int eng;
    int math;
    int lan;
};
struct student stu[N];
int count=0;
void insert(int i) //输入学生的具体信息
{
    printf("第%d个学生的姓名:",i);
    scanf("%s",stu[i].name);
    printf("第%d个学生的年龄:",i);
    scanf("%d",&stu[i].old);
    printf("第%d个学生的住址:",i);
    scanf("%s",stu[i].add);
    printf("第%d个学生的性别:",i);
    scanf("%s",stu[i].xb);
    printf("第%d个学生的民簇:",i);
    scanf("%s",stu[i].mc);
    printf("第%d个学生的线性代数分数:",i);
    scanf("%d",&stu[i].ds);
    printf("第%d个学生的英语分数:",i);
    scanf("%d",&stu[i].eng);
    printf("第%d个学生的高等数学分数:",i);
    scanf("%d",&stu[i].math);
    printf("第%d个学生的C语言分数:",i);
    scanf("%d",&stu[i].lan);
    count++;
    sprintf(stu[i].num,"%d",count);
}
void input() //输入数据
{
    system("color 3e");
    void menu();
    void insert(int i);
    int i,k,l,u;
    printf("请设定输入的学生人数:");
    scanf("%d",&u);
    while(u<1||u>10)
    {
        printf("超出数据范围请重输:");
        scanf("%d",&u);
    }
    for(i=1;i<u+1;i++)
    {
        printf("\n请输入第%d个学生的信息!\n",i);
        insert(i);
    }
    do
    {
        printf("请按0返回菜单:");
        scanf("%d",&k);
        if (k==0)
        {
            system("cls");
            menu();
        }
        else
            l=0;
    }while(l==0);
}
void search() //查询成绩
{
    system("color 3f");
    void menu();
    void printf_one(int k);
    struct student s;
    int i,k,w0,w1,w2;
    do
    {
        printf("1.姓名  2.学号 \n请选择查找的类别:");
        scanf("%d",&w1);
        if (w1<1||w1>2)
        {
            printf("输入错误!请重输:\n");
            w2 = 1;
        }
        else
            w2 = 0;
    }while(w2 == 1);
    if(w1==1) //按姓名查找
    {
        do
        {
            k=-1;
            do
            {
                printf("请输入您想查找的学生的姓名:");
                scanf("%s",s.name);
                for(i= 1;i<N;i++)
                    if(strcmp(s.name,stu[i].name)==0)
                    {
                        k=i;
                        s=stu[i];
                    }
                if(k==-1) //没有找到
                {
                    int o;
                    printf("\n没有这个学生的信息!\n");
                    printf("\n 1.继续  2.返回菜单 \n请选择进行下一个操作;");
                    scanf("%d",&o);
                    if (o==1)
                    {
                        system("cls");
                        search(); //继续查找
                    }
                    if(o==2)
                    {
                        system("cls");
                        menu(); //返回菜单
                    }
                }
            }while(k==-1);
            system("cls");
            printf_one(k); //查找到以后输出这个学生的信息
            printf("\n 1.继续  2.返回菜单 \n请选择进行下一个操作:");
            scanf("%d",&w0);
        }while(w0==1);
        system("cls");
        menu(); //不再查找时返回菜单
    }
    else //按学号查找
    {
        do
        {
            k=-1;
            do
            {
                printf("请输入您想查找的学生的学号:");
                scanf("%s",s.num);
                for(i=0;i<N;i++)
                    if(strcmp(s.num,stu[i].num)==0) //找到了
                    {
                        k=i;
                        s=stu[i];
                    }
                if(k==-1)    //没有找到
                {
                    int o;
                    printf("\n没有这个学生的信息!\n");
                    printf("\n 1.继续  2.返回菜单 \n请选择进行下一个操作:");
                    scanf("%d",&o);
                    if(o==1)
                    {
                        system("cls");
                        search();
                    }
                    if(o==2)
                    {
                        system("cls");
                        menu(); //返回菜单
                    }
                }
            }while(k==-1);
            system("cls");
            printf_one(k); //找到后输出这个学生的信息
            printf("\n 1.继续  2.返回菜单 \n请选择进行下一个操作:");
            scanf("%d",&w0);
        }while(w0==1);
        system("cls");
        menu(); //不再查找时返回菜单
    }
}
void xiugai() //修改学生信息的函数
{
    system("color 1a");
    void menu();
    void printf_one(int k);
    void xiugai_2();
    struct student s;
    int i,n,k,w0=1,w1,w2=0,o;
    do
    {
        k=-1;
        do
        {
            printf("请输入您想要修改的学生的姓名:");
            scanf("%s",s.name);
            for(i=0;i<N;i++)
            if(strcmp(s.name,stu[i].name)==0) //与其中一个学生匹配
            {
                k=i;
                s=stu[i];
            }
            if(k==-1) //没有找到输入的学生
            {                
                printf("没有这个学生的信息!\n");
                printf("\n 1.继续  2.返回菜单 \n请选择进行下一个操作:");
                scanf("%d",&o);
                if(o==1)
                {
                    system("cls");
                    xiugai();
                }
                if(o==2)
                {
                    system("cls");
                    menu(); //返回菜单
                }
            }
        }while(k==-1);
        system("cls");
        printf("请输入修改后的线性代数分数:");
        scanf("%d",&stu[k].ds);
        printf("请输入修改后的英语分数:");
        scanf("%d",&stu[k].eng);
        printf("请输入修改后的高等数学分数:");
        scanf("%d",&stu[k].math);
        printf("请输入修改后的C语言分数:");
        scanf("%d",&stu[k].lan);
        printf("\n");
        printf("\n该生修改后的信息如下:\n");
        printf_one(k); //输出这个学生的信息
        printf("\n请按0返回菜单:");
        scanf("%d",&o);
        if(o==0)
        {
            system("cls");
            menu(); //返回菜单
        }
    }while(1);
}
void printf_all() //输出所有学生成绩的函数
{
    void menu();
    system("color 9e");
    int i,j,k;
    for (i=1;i<3;i++)
    {
        printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[i].num,stu[i].name,stu[i].xb,stu[i].mc,stu[i].old,stu[i].add,stu[i].ds,stu[i].eng,stu[i].math,stu[i].lan);
    }
    do
    {
        printf("请按0返回菜单:");
        scanf("%d",&j);
        if(j==0)
        {
            system("cls");
            menu();
        }
        else
        {
            k = 0;
        }
    } while (k == 0);
}
void printf_one(int k)  //输出某一个学生的信息的函数
{
    printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[k].num,stu[k].name,stu[k].xb,stu[k].mc,stu[k].old,stu[k].add,stu[k].ds,stu[k].eng,stu[k].math,stu[k].lan);
}
void Exit() //退出系统的函数
{
    system("cls");
    system("color 2e");
    printf("\n祝您生活愉快!\n");
    exit(0);
}
void menu() //菜单函数
{
    system("color 1e");
    printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
    printf("\n");
    int n,m;
    do
    {
        puts("\t\t********************菜单*********************");
        puts("\t\t**************学生学籍管理系统***************");
        puts("\t\t*********************************************");
        puts("\t\t*******        1--输入数据               ****");
        puts("\t\t*******        2--查询成绩               ****");
        puts("\t\t*******        3--修改成绩               ****");
        puts("\t\t*******        4--输出所有学生成绩       ****");
        puts("\t\t*******        5--退出系统               ****");
        puts("\t\t*********************************************");
        printf("\t\t*************请选择服务种类(1~5):");
        scanf("%d",&n);
        if(n<1||n>5)
        {
            system("cls");
            printf("\n\t\t*************选择错误! 请重新选择!\n");
            m=1;
        }
        else
        {
            m = 0;
        }
    }while(m==1);
    switch(n)
    {
        case 1:system("cls");input();break;
        case 2:system("cls");search();break;
        case 3:system("cls");xiugai();break;
        case 4:system("cls");printf_all();break;
        case 5:Exit();break;
    }
}
int main()
{
    int c;
    printf("请输入密码:");
    scanf("%d",&c);
    while(c!=12345)
    {
        printf("密码错误,请重输:");
        scanf("%d",&c);
    }
    system("cls");
    menu();
    return 0;
}

三、效果演示

输入登入密码:

输入数据:

查询成绩:

修改成绩:

输出所有学生成绩:

退出系统:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言学生成绩管理系统源代码

    大学C语言实训课,C语言学生成绩管理系统,供大家参考,具体内容如下 #include<stdio.h> #include<string.h> #include<math.h> struct student { int num; char name[20]; float pingshi; float shiyan; float kaoshi; double zongping; }stu[4]; void main() { void a(); void b(); void

  • C语言实现学生成绩管理系统

    设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能. 功能要求 1.每一条记录包括一个学生的学号.姓名.3门课成绩.平均成绩. 2.输入功能:可以一次完成若干条记录的输入. 3.显示功能:完成全部学生记录的显示. 4.查找功能:完成按姓名查找学生记录,并显示. 5.排序功能:按学生平均成绩进行排序. 6.插入功能:按平均成绩高低插入一条学生记录 7.删除功能:如果输入错误,可以删除学生记录: 8.退出. 代码: #i

  • C语言学生成绩管理系统课程设计

    学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

  • 学生成绩管理系统C语言代码实现

    C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct person //定义结构体 { char num[10]; //学号 char name[20]; //姓名 float cyuyan; //C语言成绩 float en; //物理学成绩 float ji; //原子物理成绩

  • C语言利用结构体数组实现学生成绩管理系统

    要求: 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).定义结构体类型描述学生信息,每个学生信息包括:学号.姓名.多门课的成绩.总成绩和平均成绩.用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统. (1) 录入每个学生的学号.姓名和各科考试成绩. (2) 计算每门课程的总分和平均分. (3) 计算每个学生的总分和平均分. (4) 按每个学生的总分由高到低排出名次表. (5) 按学号由小到大排出成绩表. (6) 按姓名的字典顺序排出成

  • C语言编写学生成绩管理系统

    用C语言编写学生成绩管理系统代码,供大家参考,具体内容如下 C语言实现学生成绩管理系统实战教学 https://www.jb51.net/article/154767.htm (1)给出所选课程设计题目以及本题目具体所要完成的功能要求说明. 1.课程设计题目:学生成绩管理系统 2.完成的功能要求: (1).主要实现的功能: 1---学生输入 2---学生插入 3---学生查询(按学号) 4---学生删除 5---学生输出 6---计算每名学生的平均分并输出 7---计算每科的平均分并输出 8--

  • C语言实现简单学生成绩管理系统

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 C语言小项目 实现一个学生成绩管理系统 系统功能: 1.实现所有学生成绩的录入(利用结构体数组),当输入字符为end时候,结束成绩的录入:  2.实现所有学生信息的输出  3.输入指定学生姓名,并能输出这名学生的信息  4.将学生成绩按照语文和数学成绩排序 思路: 1. 首先,先把这个小项目的框架打好.考虑要写几个文件,每一个文件里面实现怎样的功能.考虑到这个小项目的代码量以及程序的易读性,我决定将写三个文件.一

  • 使用C语言实现学生成绩管理系统

    最近正在学习C语言,搞了一个学生成绩管理系统的小程序,代码粗陋,大佬勿喷. 先上图: 整个程序采用链表来管理学生成绩,保存学生成绩用的是 文件处理函数,使用 fopen(FilePath, "wb") 将学生信息在内存中的数据直接写入文件,相应的打开程序后读取时使用 fopen(FilePath, "rb") 将数据直接再次还原到内存中去. 选项6 是手动保存链表数据及配置数据. 选项7 配置每次修改链表中的数据是否需要自动保存. 选项1 进入后,直接按照提示输入

  • C语言结构体版学生成绩管理系统

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 结构体版的学生成绩管理系统 主要功能有 按1 输入学生信息 按2 输出学生信息 按3 查询学生信息 按4 修改学生信息 按5 删除学生信息 按6 插入学生信息 按7 排序总成绩信息 学生信息主要有姓名,班级,学号,C语言成绩,高数成绩,大学英语成绩,控制台界面输出格式有点不美观. #include<stdio.h> #include<string.h> struct student { char n

  • C语言实现学生成绩管理系统实战教学

    趁着放假无事,开始用C语言开发一些小的项目,巩固基础知识的同时学习新的知识. 学生成绩管理系统实现的功能有:成绩录入.学生成绩查询.删除.修改.通过文件保存等. 开发这样一个系统需要具备的知识:线性表(链表).文件操作.排序(如果需要成绩排序). 开发环境为VS2015:在Linux下没有conio.h的头文件,需要修改与getch()函数相关的代码. #include <stdio.h> #include <stdlib.h> #include <string.h>

随机推荐