IE盒子

搜索
查看: 91|回复: 1

C语言大作业学生管理系统

[复制链接]

2

主题

10

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2023-1-12 10:19:20 | 显示全部楼层 |阅读模式
C语言作为很多大学生大一的一门必修课,对于很多对电脑不是很熟悉的同学来说上手是比较困难的,在c语言课程中会有一个大作业。以下为大家提供一种思路。
#include<stdio.h>
#include<stdlib.h>
#define N 50

struct Student                //定义一个学生
{
    int num;                  //学号
    char name[20];          //姓名
    char sex[6];         //性别
    int year;                   //年龄
    int math;                  //数学成绩
    int chinese;      //语文成绩
    int english;//英语成绩
    int programme;//编程成绩
    int history;//历史成绩
    int zong;//总分
    double average;//平均分
} Stu[999];

int n=0;
int sum;

void Exit()
{
    system("cls");
    printf("\n\n\n\n");
    printf("\t\t\t****************************************************************\n");
    printf("\t\t\t||                                                            ||\n");
    printf("\t\t\t||                      感谢使用本程序!                      ||\n");
    printf("\t\t\t||                                                            ||\n");
    printf("\t\t\t||                                                            ||\n");
    printf("\t\t\t||                                                            ||\n");
    printf("\t\t\t****************************************************************\n");
}

void Menu()
{

    printf("                      *************************欢迎使用学生成绩管理系统************************\n");
    printf( "                                                                         \n");
    printf("                                                  请选择要进行的操作\n                                             \n");
    printf("                                                   1 : 输入学生信息\n");
    printf("                                                   2 : 显示所有学生信息\n");
    printf("                                                   3 : 排序学生信息\n");
    printf("                                                   4 : 查找学生信息\n");
    printf("                                                   5 : 删除学生信息\n");
    printf("                                                   6 : 修改学生信息\n");
    printf("                                                   7 : 退出\n");
    printf("                      *************************************************************************\n");
    printf("\n");
    printf("请输入你的选项: \n");
    scanf("%d",&sum);

}

int InputStudent()  //输入学生信息
{
    int d;
    int i=0;
    void WriteFile()
    {
        int i=0;
        FILE *fp;
        fp=fopen("Student.txt","w");//打开文件
        for(i=0;i<n; i++)
        {
            printf("\n请输入第%d个学生的信息:\n",i+1);

            printf("学号: ");
            fprintf(fp,"%d",&Stu.num);

            printf("姓名: ");
            fprintf(fp,"%d",&Stu.name);

            printf("性别: ");
            fprintf(fp,"%d",&Stu.sex);

            printf("年龄: ");
            fprintf(fp,"%d",&Stu.year);

            printf("数学成绩: ");
            fprintf(fp,"%d",&Stu.math);

            printf("语文成绩: ");
            fprintf(fp,"%d",&Stu.chinese);

            printf("英语成绩: ");
            fprintf(fp,"%d",&Stu.english);

            printf("编程成绩: ");
            fprintf(fp,"%d",&Stu.programme);
            printf("历史成绩: ");
            fprintf(fp,"%d",&Stu.history);
            i++;
            n++;

            printf("是否继续输入?(输入任意数.继续   输入2.退出)\n");
   fprintf(fp,"%d",&d);
            if(d==2)
            {
                system("cls");
                return main();
            }
        }
        fclose(fp);
    }

while(1)
{
    system("cls");
    printf("                              ========================学生成绩输入========================\n\n");
    WriteFile();

}}

void PrintStudent()                //显示学生信息
{

    int i;
    system("cls");
    printf("                              ========================学生成绩显示========================\n\n\n");
    printf("\n学号\t姓名\t性别\t数学成绩\t语文成绩\t英语成绩\t编程成绩\t历史成绩\t总成绩\t平均分\n\n\n");

    for(i=1; i<=n; i++)
    {
        Stu.zong=Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history;
        Stu.average=(Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history)/5.0;
        printf("%d\t%s\t%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%.2f\n", Stu.num, Stu.name,Stu.sex, Stu.math,Stu.chinese,Stu.english,Stu.programme,Stu.history,Stu.zong,Stu.average);
    }
    return main();
}

void SortStudent()                //学生信息排序
{
    struct Student k;        //另一个结构体,互换
    int j;
    int i;
    system("cls");
    printf("\n                                       ============按成绩从大到小排序===========\n");//按成绩从大到小排序
    printf("\n学号\t姓名\t性别\t数学成绩\t语文成绩\t英语成绩\t编程成绩\t历史成绩\t总成绩\t平均分\n\n\n");
    for(i=0; i<n; i++)
    {
        Stu.zong=Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history;
        Stu.average=(Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history)/5.0;
    }
    for(j=0; j<n-1; j++)
        for(i=1; i<n; i++)
        {
            if(Stu[j].zong<Stu.zong)
            {
                k=Stu;
                Stu=Stu[j];
                Stu[j]=k;
            }
        }
    for(i=0; i<n; i++)
    {
        printf("%d\t%s\t%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%.2f\n", Stu.num, Stu.name,Stu.sex, Stu.math,Stu.chinese,Stu.english,Stu.programme,Stu.history,Stu.zong,Stu.average);
    }
    printf("\n");
    return main();
}
void FindStudent()                //查找学生信息
{
    int xuehao;
    int i,q;
    system("cls");
    printf("\n                                       ============按学号进行查找===========\n");
    printf("请输入要查找的学号: ");
    scanf("%d",&xuehao);

    for(i=1; i<=n; i++)
    {
        if(xuehao==Stu.num)
        {
            Stu.zong=Stu.chinese+Stu.english+Stu.math+Stu.programme+Stu.history;
            Stu.average=Stu.zong/5.0;
            printf("学生的学号为:%d\n",Stu.num);
            printf("学生的姓名为:%s\n",Stu.name);
            printf("学生的性别为:%s\n",Stu.sex);
            printf("数学成绩为:%d\n",Stu.math);
            printf("语文成绩为:%d\n",Stu.chinese);
            printf("英语成绩为:%d\n",Stu.english);
            printf("编程成绩为:%d\n",Stu.programme);
            printf("历史成绩为:%d\n",Stu.history);
            printf("学生的总成绩为:%d\n",Stu.zong);
            printf("学生的平均分为:%.2f\n\n",Stu.average);

        }
    }

    return main();

}

void DeleteStudent()        //删除学生信息
{
    int nums;
    int i,j,d;
    system("cls");
    printf("\n                                       ============按学号进行删除信息===========\n");
    printf("输入想要删除人的学号: ");
    scanf("%d",&nums);

    for(i=1; i<=n; i++)
    {
        if(nums==Stu.num)
        {
            printf("学号\t姓名\t性别\t数学\t语文\t英语\t编程\t历史\n");
            printf("%d\t%s\t%s\t%d\t%d\t%d\t\n",Stu.num,Stu.name,Stu.sex,Stu.math,Stu.chinese,Stu.english,Stu.programme,Stu.history);

            printf("确认删除!(1.YES 2.NO)\n");
            scanf("%d",&d);
            if(d==1)
            {
                for(j=i; j<=n; j++)
                {
                    Stu[j].num=Stu[j+1].num;
                    strcpy(Stu[j].name,Stu[j+1].name);
                    strcpy(Stu[j].sex,Stu[j+1].sex);
                    Stu[j].math=Stu[j+1].math;
                    Stu[j].chinese=Stu[j+1].chinese;
                    Stu[j].english=Stu[j+1].english;
                    Stu[j].programme=Stu[j+1].programme;
                    Stu[j].history=Stu[j+1].history;
                }
                n--;
                printf("删除成功!\n");
                return main();
            }
if(d==2)
            {
                return main();
            }
        }
    }
}

void ModifyStudent()        //修改学生信息
{

    int i;
    int w;
    int nums;
    system("cls");
    printf("\n                                       ============按学号进行修改===========\n");
    printf("请输入修改的学号:\n\n");
    scanf("%d",&nums);
    for(i=1; i<=n; i++)
    {
        if(Stu.num==nums)
        {
            printf("请重新输入该生信息: \n\n");
            printf("学号: \n");
            scanf("%d",&Stu.num);
            printf("姓名: \n");
            scanf("%s",&Stu.name);
            printf("性别: \n");
            scanf("%s",&Stu.sex);
            printf("数学成绩: \n");
            scanf("%d",&Stu.math);
            printf("语文成绩: \n");
            scanf("%d",&Stu.chinese);
            printf("英语成绩: \n");
            scanf("%d",&Stu.english);
            printf("编程成绩: \n");
            scanf("%d",&Stu.programme);
            printf("历史成绩: \n");
            scanf("%d",&Stu.history);

            printf("修改成功!\n\n");
}
    }
    return main();
}

//***********************主函数
int main()
{

    Menu();

    switch (sum)
    {

    case 1:  //输入学生信息

        InputStudent(Stu,N);
        break;
    case 2:  //显示学生信息
        PrintStudent(Stu,N);
        break;
    case 3:  //排序
        SortStudent(Stu,N);
        break;
    case 4:  //查找
        FindStudent(Stu,N);
        break;
    case 5:  //删除
        DeleteStudent(Stu,N);
        break;
    case 6:  //修改
        ModifyStudent(Stu,N);
        break;
    case 7:  //退出
        Exit(Stu,N);
        break;
    }
    return 0;

}
回复

使用道具 举报

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2025-5-26 04:28:51 | 显示全部楼层
好,很好,非常好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表