吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2823|回复: 1
收起左侧

[会员申请] 申请会员zmj9279

[复制链接]
吾爱游客  发表于 2021-9-16 09:40
QQ邮箱:927959929@qq.com
这是我上个学期做的成绩管理系统,管理系统需求量还是挺大的,下面是成管理系统的源代码,欢迎大家使用
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void menu();
void input();
void add();
void del();
void display();
void find();
void sort();
void quit();
void save_total();
struct student
{
        int stu_ID;
        char name[20];
        int c_language;
        int English;
        int circuit;
        int total_score;
        int average;
}stu[100];
int total=0;
void main()
{
        char ch,c;
        FILE* fp;
        if((fp=fopen("ftotal.txt","r"))==NULL)
                fp=fopen("ftotal.txt","w");
        else
                fscanf(fp,"%d",&total);
        fclose(fp);
        menu();
        do
        {
                fflush(stdin);
                if((ch=getchar())!='\n');
                {
                        switch(ch)
                        {
                        case '1':input();break;
                        case '2':add();break;
                        case '3':del();break;
                        case '4':display();break;
                        case '5':find();break;
                        case '6':sort();break;
                        case '7':quit();break;
                        default:printf("\n输入错误!按任意键继续:\n");//???
                        }
                c=getch();
                system("cls");
                menu();
                }
        }while(1);
}
void menu()
{
        printf("                   *********************************菜单******************\n\n");
        printf("                             1.  输        入       成       绩\n\n");
        printf("                             2.  添        加       成       绩\n\n");
        printf("                             3.  删        除       成       绩\n\n");
        printf("                             4.  查        看       成       绩\n\n");
        printf("                             5.  查        找       成       绩\n\n");
        printf("                             6.  排        序       查       看\n\n");
        printf("                             7.统计各阶段人数、不及格及各占比例\n\n");
        printf("                             8.  退                                           出\n\n");
        printf("                   *******************************************************\n\n");
        printf("                   请输入数字选择菜单:");
}
void input()
{
        char z,tem[20];
        int num,i;
        FILE* fp;
        system("cls");
        printf("选择此功能将覆盖掉以前保存的成绩,确认继续(y/n):");
        fflush(stdin);
        scanf("%c",&z);
        if(z=='n')
                printf("按任意键回到主菜单:");
        else if(z=='y')
        {
                fp=fopen("学生信息.txt","w");
                if(fp==NULL)
                {
                        printf("文件打开失败!");
                        exit(0);
                }
                system("cls");
                printf("请输入您要写入的学生个数:");
                scanf("%d",&num);
                for(i=0;i<num;i++)
                {
                        printf("请依次输入学号、姓名、C语言成绩、英语成绩、计算机电路成绩:\n");
                        fflush(stdin);
                        printf("学号:");
                        scanf("%d",&stu.stu_ID);fflush(stdin);
                        printf("姓名:");
                        gets(tem);
                        strcpy(stu.name,tem);
                        printf("C语言:");
                        scanf("%d",&stu.c_language);getchar();
                        printf("英语:");
                        scanf("%d",&stu.English);getchar();
                        printf("计算机电路:");
                        scanf("%d",&stu.circuit);
                        putchar('\n');
                        stu.total_score=stu.c_language+stu.English+stu.circuit;
                        stu.average=stu.total_score/3;
                        fprintf(fp,"%d\t%s\t%d\t%d\t",stu.stu_ID,stu.name,stu.c_language,stu.English);
                        fprintf(fp,"%d\t%d\t%d\n",stu.circuit,stu.total_score,stu.average);
                }
                fclose(fp);
                total=num;
                save_total(total);
                printf("输入成功!按任意键回到主菜单:");
        }       
        else
                printf("输入错误!按任意键回到主菜单:");
       
}
void add()
{
        char tem[20];
        int num,i;
        FILE* fp;
        fp=fopen("学生信息.txt","a");
        if(fp==NULL)
        {
                printf("文件打开失败!");
                exit(0);
        }
        system("cls");
        printf("请输入您要添加的学生个数:");
        scanf("%d",&num);
        for(i=0;i<num;i++)
        {
                printf("请依次输入学号、姓名、C语言成绩、英语成绩、电路成绩:\n");
                fflush(stdin);
                printf("学号:");
                scanf("%d",&stu.stu_ID);fflush(stdin);
                printf("姓名:");
                gets(tem);
                strcpy(stu.name,tem);
                printf("C语言:");
                scanf("%d",&stu.c_language);getchar();
                printf("英语:");
                scanf("%d",&stu.English);getchar();
                printf("电路:");
                scanf("%d",&stu.circuit);
                putchar('\n');
                stu.total_score=stu.c_language+stu.English+stu.circuit;
                stu.average=stu.total_score/3;
                fprintf(fp,"%d\t%s\t%d\t%d\t",stu.stu_ID,stu.name,stu.c_language,stu.English);
                fprintf(fp,"%d\t%d\t%d\n",stu.circuit,stu.total_score,stu.average);
        }               
        fclose(fp);
        total+=num;
        save_total(total);
        printf("添加成功!按任意键回到主菜单:");
}
void del()
{
        int i,m,stu_ID,flag=0,num;
        char name[20];
        FILE* fp;
        fp=fopen("学生信息.txt","r+");
        if(fp==NULL)
        {
                printf("文件打开失败!");
                exit(0);
        }
        for(i=0;i<total;i++)
        {
                fscanf(fp,"%d\t%s\t%d\t%d\t",&stu.stu_ID,stu.name,&stu.c_language,&stu.English);
                fscanf(fp,"%d\t%d\t%d\n",&stu.circuit,&stu.total_score,&stu.average);
        }
        fclose(fp);
        system("cls");
        printf("您想以学号删除还是以姓名删除?\n");
        printf("1、以学号\n2、以姓名\n");
        printf("请输入数字选择:");
        scanf("%d",&m);
        switch(m)
        {
        case 1:
                printf("请输入学号:");
                scanf("%d",&stu_ID);
                for(i=0;i<total;i++)
                {
                        if(stu_ID==stu.stu_ID)
                        {
                                flag=1;
                                num=i;
                                break;
                        }
                }
                if(flag!=1)
                {
                        printf("无此学号!");
                }
                else
                {
                        if(num==(total-1))
                                total--;
                        else
                        {
                                for(i=num;i<(total-1);i++)
                                stu=stu[i+1];
                                total--;
                        }
                }
                save_total(total);
                fp=fopen("学生信息.txt","w");
                if(fp==NULL)
                {
                        printf("文件打开失败!");
                        exit(0);
                }
                for(i=0;i<total;i++)
                {
                        fprintf(fp,"%d\t%s\t%d\t%d\t",stu.stu_ID,stu.name,stu.c_language,stu.English);
                        fprintf(fp,"%d\t%d\t%d\n",stu.circuit,stu.total_score,stu.average);
                }
                fclose(fp);
                printf("删除成功!按任意键回到主菜单:");
                break;
        case 2:
                printf("请输入姓名:");
                fflush(stdin);
                gets(name);
                for(i=0;i<total;i++)
                {
                        if(strcmp(name,stu.name)==0)
                        {
                                flag=1;
                                num=i;
                                break;
                        }
                }
                if(flag!=1)
                {
                        printf("查无此人!");
                }
                else
                {
                        if(num==(total-1))
                                total--;
                        else
                        {
                                for(i=num;i<(total-1);i++)
                                stu=stu[i+1];
                                total--;
                        }
                }
                save_total(total);
                save_total(total);
                fp=fopen("学生信息.txt","w");
                if(fp==NULL)
                {
                        printf("文件打开失败!");
                        exit(0);
                }
                for(i=0;i<total;i++)
                {
                        fprintf(fp,"%d\t%s\t%d\t%d\t",stu.stu_ID,stu.name,stu.c_language,stu.English);
                        fprintf(fp,"%d\t%d\t%d\n",stu.circuit,stu.total_score,stu.average);
                }
                fclose(fp);
                printf("删除成功!按任意键回到主菜单:");
                break;
        default:
                printf("输入错误!按任意键回到主菜单:");
        }
}
void display()
{
        int i,j;
        FILE* fp;
        fp=fopen("学生信息.txt","r");//!!!
        if(fp==NULL)
        {
                printf("文件打开失败!");
                exit(0);
        }
        for(i=0;i<total;i++)
        {
                fscanf(fp,"%d\t%s\t%d\t%d\t",&stu.stu_ID,stu.name,&stu.c_language,&stu.English);
                fscanf(fp,"%d\t%d\t%d\t%d\n",&stu.circuit,&stu.total_score,&stu.average);
        }
        fclose(fp);
        system("cls");
        printf("***********************************成绩单***************************************\n\n");
        printf("学号      姓名          C语言     英语      电路      总分      平均分\n");
        for(j=0;j<total;j++)
        {
                printf("%-10d%-15s%-10d%-10d",stu[j].stu_ID,stu[j].name,stu[j].c_language,stu[j].English);
                printf("%-10d%-10d%-10d\n",stu[j].circuit,stu[j].total_score,stu[j].average);
        }
        printf("按任意键回到主菜单:");
}
void find()
{
        int i,m,stu_ID,flag=0,num;
        char name[20];
        FILE* fp;
        fp=fopen("学生信息.txt","r");
        if(fp==NULL)
        {
                printf("文件打开失败!");
                exit(0);
        }
        for(i=0;i<total;i++)
        {
                fscanf(fp,"%d\t%s\t%d\t%d\t",&stu.stu_ID,stu.name,&stu.c_language,&stu.English);
                fscanf(fp,"%d\t%d\t%d\n",&stu.circuit,&stu.total_score,&stu.average);
        }
        fclose(fp);
        system("cls");
        printf("查找方式:\n1、按学号查找\n2、按姓名查找\n");
        printf("请输入数字选择:");
        scanf("%d",&m);
        switch(m)
        {
        case 1:
                printf("请输入学号:");
                scanf("%d",&stu_ID);
                for(i=0;i<total;i++)
                {
                        if(stu_ID==stu.stu_ID)
                        {
                                flag=1;
                                num=i;
                                break;
                        }
                }
                if(flag!=1)
                {
                        printf("无此学号!按任意键回到主菜单:");
                }
                else
                {
                        printf("\n学号      姓名          C语言     英语      电路      总分      平均分\n");
                        printf("%-10d%-15s%-10d%-10d",stu.stu_ID,stu.name,stu.c_language,stu.English);
                        printf("%-10d%-10d%-10d\n",stu.circuit,stu.total_score,stu.average);
                        printf("查找成功!按任意键回到主菜单:");
                }
                break;       
        case 2:
                printf("请输入姓名:");
                fflush(stdin);
                gets(name);
                for(i=0;i<total;i++)
                {
                        if(strcmp(name,stu.name)==0)
                        {
                                flag=1;
                                num=i;
                                break;
                        }
                }
                if(flag!=1)
                {
                        printf("查无此人!按任意键回到主菜单:");
                }
                else
                {
                        printf("\n学号      姓名          C语言     英语      电路      总分      平均分\n");
                        printf("%-10d%-15s%-10d%-10d",stu.stu_ID,stu.name,stu.c_language,stu.English);
                        printf("%-10d%-10d%-10d\n",stu.circuit,stu.total_score,stu.average);
                        printf("查找成功!按任意键回到主菜单:");
                }
                break;
        default:
                printf("输入错误!按任意键回到主菜单:");
        }
        fclose(fp);
}
void sort()
{
        struct student stu1;
        int i,j,k,temp[100];
        char ch;
        FILE* fp;
        fp=fopen("学生信息.txt","r");
        if(fp==NULL)
        {
                printf("文件打开失败!");
                exit(0);
        }
        for(i=0;i<total;i++)
        {
                fscanf(fp,"%d\t%s\t%d\t%d\t",&stu.stu_ID,stu.name,&stu.c_language,&stu.English);
                fscanf(fp,"%d\t%d\t%d\n",&stu.circuit,&stu.total_score,&stu.average);
        }
        fclose(fp);

        system("cls");
        printf("以何方式排序?\n1、学号\n2、总分\n请输入数字选择:");
        fflush(stdin);
        scanf("%c",&ch);
        switch(ch)
        {
        case '1':
                system("cls");
                printf("按学号排序如下:\n");
                for(i=1;i<total;i++)
                {
                        for(k=0;k<total-i;k++)
                        {
                                if(stu[k].stu_ID>stu[k+1].stu_ID)
                                {
                                        stu1=stu[k];
                                        stu[k]=stu[k+1];
                                        stu[k+1]=stu1;
                                }
                        }
                }
                printf("\n学号      姓名          C语言     英语      电路      总分      平均分\n");
                for(j=0;j<total;j++)
                {
                        printf("%-10d%-15s%-10d%-10d",stu[j].stu_ID,stu[j].name,stu[j].c_language,stu[j].English);
                        printf("%-10d%-10d%-10d\n",stu[j].circuit,stu[j].total_score,stu[j].average);
                }
                printf("按任意键回到主菜单:");
                break;
        case '2':
                system("cls");
                printf("按总分排序如下:\n");
                for(i=1;i<total;i++)
                {
                        for(k=0;k<total-i;k++)
                        {
                                if(stu[k].total_score<stu[k+1].total_score)
                                {
                                        stu1=stu[k];
                                        stu[k]=stu[k+1];
                                        stu[k+1]=stu1;
                                }
                        }
                }
                printf("\n学号      姓名          C语言     英语       电路      总分      平均分\n");
                for(j=0;j<total;j++)
                {
                        printf("%-10d%-15s%-10d%-10d",stu[j].stu_ID,stu[j].name,stu[j].c_language,stu[j].English);
                        printf("%-10d%-10d%-10d\n",stu[j].circuit,stu[j].total_score,stu[j].average);
                }
                printf("按任意键回到主菜单:");
                break;
        default:
                printf("输入错误!按任意键回到主菜单:\n");
                break;
        }
}
void quit()
{
        system("cls");
        exit(0);
}
void save_total(int total)
{
        FILE* fp;
        fp=fopen("ftotal.txt","w");
        if(fp==NULL)
        {
                printf("文件打开失败!");
                exit(0);
        }
        fprintf(fp,"%d",total);
        fclose(fp);
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2021-9-16 12:09
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-14 14:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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