C语言程序设计#成绩查询系统

学生成绩管理系统

#include<stdio.h>
#include<stdlib.h>//颜色
#include<conio.h>//清屏
#include<string.h>
#define LEN sizeof(struct student)
#define SDJ stu[s].ID,stu[s].name,stu[s].sex,stu[s].Class,stu[s].major,stu[s].SX,stu[s].YY,stu[s].CYY,stu[s].sum/**/
#define DJ stu[k].ID,stu[k].name,stu[k].sex,stu[k].Class,stu[k].major,stu[k].SX,stu[k].YY,stu[k].CYY,stu[k].sum
#define dj stu[p].ID,stu[p].name,stu[p].sex,stu[p].Class,stu[p].major,stu[p].SX,stu[p].YY,stu[p].CYY,stu[p].sum
using namespace std;
    int DengLu();          /*登录*/
    int PaiXu();           /*排序*/
    int XiuGai();          /*修改*/
    int XianShi();         /*显示*/
    int LuRu();            /*录入*/
    int ShanChu();         /*删除*/
    int GongNeng();        /*功能选择*/
    int ZhuCe();           /*注册*/
    int ChaXun();          /*查询*/
    int m=0;               /*数据条数*/
    char sr[1];            /*存放输入的判断字母的密码*/
    char PASSWORD[10];     /*存放输入的密码*/
/******************学生结构体*****************/
    typedef struct student
    {
        char name[20] ;      /*姓名*/
        char sex[20];        /*性别*/
        char Class[20];      /*班级*/
        char ID[20];         /*学号*/
        char major[20];      /*专业*/
        double SX,YY,CYY,sum;/*数学,英语,c语言,总分*/

} typel;
typel stu[100];
/********************主函数*****************/
int main()
{
    printf("************************************************************************************************************************\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                             欢迎使用成绩查询系统!                                                   *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                 1. 【登录】                                                                                          *\n");
    printf("*                 2. 【注册】                                                                                          *\n");
    printf("*                 3. 【退出系统】                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("************************************************************************************************************************\n");
    system("color 2F");             /*绿色背景*/
    int a;
    printf("请选择服务,并输入对应数字\n");
    scanf("%d",&a);
    if(a!=1&&a!=2&&a!=3)
    {
        printf("输入数字不合法,再给你一次机会,请重新输入\n");
        scanf("%d",&a);

}
    switch(a)
    {
    case 1:
        system("cls");
        printf("欢迎进入【登录】页面\n");
        DengLu();
        break;
    case 2:
        system("cls");
        printf("欢迎进入【注册】页面\n");
        ZhuCe();
        break;
    case 3:
        system("cls");
        printf("谢谢惠顾,O(∩_∩)O拜拜~\n");
        break;

}

return 0;

}
/********************注册*********************/
int ZhuCe()
{
    FILE *PN;                                          /*定义文件指针*/
    if((PN=fopen("PassWord.txt","ab+"))==NULL)         /*打开存放密码的文件*/
    {
        printf("创建密码文件失败!\n");
    }
    if((fread(&PASSWORD,sizeof(PASSWORD),1,PN))==1)    /*判断文件中是否已存有密码*/
    {
        fclose(PN);
        printf("注册已完成,不可重复注册。\n【重新注册】请删去密码文件中内容。\n");
        printf("按<Enter>键返回主页面………………");
        getch();                                 /*停顿一下*/
        system("cls");
        main();
    }
    else
    {
        char Name[10];                           /*用户名*/
        char Password1[10];
        char Password2[10];
        printf("请设置初始用户名:");
        scanf("%s",Name);
        printf("\n请设置密码【6位数字】:");      /*输入一次密码*/
        scanf("%s",Password1);
        printf("\n请确认密码【6位数字】:");      /*再次确认*/
        scanf("%s",Password2);
        if((strcmp(Password1,Password2))==0)     /*比较两次输入是否相同密码*/
        {
            printf("确认密码成功!\n");
            if((fwrite(&Password1,sizeof(Password1),1,PN))==1)   /*把输入的密码存到文件中去*/
            {
                printf("恭喜,注册成功!\n");
                printf("按<Enter>键返回主页面………………");
                fclose(PN);                      /*关闭文件防止信息丢失*/
                getch();
                system("cls");                   /*清屏*/
                main();
            }
            else
            {
                printf("密码无法保存,注册失败!\n");
                system("color 40");
                printf("按<Enter>键返回主页面………………");
                fclose(PN);
                getch();
                system("cls");
                main();
            }

}

else
        {
            printf("两次密码输入不同,注册失败!\n");
            system("color 40");
            printf("按<Enter>键返回主页面………………\n");
            fclose(PN);
            getch();
            system("cls");
            main();

}
    }
    fclose(PN);
    return 0;
}

/*********************登录********************/
int DengLu()
{
    FILE *PN;
    char password[10],name[10];
    PN=fopen("PassWord.txt","a+");
    if(PN==NULL)
    {
        printf("打开密码文件失败!\n");
        system("color 40");                          /*红色背景以示警告*/
        printf("按<Enter>键返回主页面………………\n");
        fclose(PN);
        getch();
        system("cls");
        main();
    }
    printf(">>欢迎您的登陆<<\n");
    printf("请输入用户名:");
    scanf("%s",name);
    printf("\n请输入密码:");
    scanf("%s",password);
    fscanf(PN,"%s",PASSWORD);                       /*从文件中读一个密码赋给PASSWORD*/
    if((strcmp(password,PASSWORD))==0)              /*验证密码*/
    {
        printf("密码正确,登录成功!\n");
        printf("¥五毛钱 的特效送给你\n");
        fclose(PN);
        GongNeng();
        return 0;
    }
    else
    {
        printf("无此用户!!!\n");
        printf("再见!\n");
        system("color 40");                         /*红色背景以示警告*/
        printf("按<Enter>键返回主页面………………\n");
        fclose(PN);
        getch();
        system("cls");
        main();
    }
    fclose(PN);
    return 0;

}
/********************功能选择******************/
int GongNeng()
{
    printf("************************************************************************************************************************\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                           尊敬的VIP用户,请选择服务                                                  *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                 1. 【成绩录入】                    4. 【修改成绩】                                                   *\n");
    printf("*                 2. 【删除成绩】                    5. 【查看排名】                                                   *\n");
    printf("*                 3. 【成绩查询】                    6. 【退出系统】                                                   *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("*                                                                                                                      *\n");
    printf("************************************************************************************************************************\n");
    system("color 2F");
    int b;
    printf("请选择服务,并输入对应数字\n");
    long time;
 /*******************************************************************************¥五毛钱 的特效******************************************************************************/
    for (;;)
    {
        system("color a");                      /*第一个16进制数字代表字体颜色(下同)*/
        for (time = 0; time<99999999; time++);  /*循环以控制该颜色存在时间*/
        system("color b");
        for (time = 0; time<99999999; time++);
        system("color c");
        for (time = 0; time<99999999; time++);
        system("color d");
        for (time = 0; time<99999999; time++);
        system("color e");
        for (time = 0; time<99999999; time++);
        system("color f");
        for (time = 0; time<99999999; time++);
        system("color 0");
        for (time = 0; time<99999999; time++);
        system("color 1");
        for (time = 0; time<99999999; time++);
        system("color 2");
        for (time = 0; time<99999999; time++);
        system("color 3");
        for (time = 0; time<99999999; time++);
        system("color 4");
        for (time = 0; time<99999999; time++);
        system("color 5");
        for (time = 0; time<99999999; time++);
        system("color 6");
        for (time = 0; time<99999999; time++);
        system("color 7");
        for (time = 0; time<99999999; time++);
        system("color 8");
        for (time = 0; time<99999999; time++);
        system("color 9");
        break;
    }
/******************************************************************************************************************************************************************************/
    system("color 2F");    /*恢复主题绿色*/
    scanf("%d",&b);
    getchar();
    switch(b)              /*选择功能*/
    {
    case 1:
        system("cls");
        LuRu();
        break;
    case 2:
        system("cls");
        ShanChu();
        break;
    case 3:
        system("cls");
        ChaXun();
        break;
    case 4:
        system("cls");
        XiuGai();
        break;
    case 5:
        system("cls");
        PaiXu();
        break;
    case 6:
        system("cls");
        return 0;
        break;

}
    return 0;
}
/***************************成绩录入****************************/
int LuRu()
{
    m=0;
    FILE *fp;
    if((fp=fopen("student.txt","ab+"))==NULL)  /*以读写方式打开文件*/
    {
        printf("文件打开出错!!!\n");
    }
    while(!feof(fp))                           /*文件未指到末尾返回0,以此为判断条件【计数】*/
    {
        if(fread(&stu[m],LEN,1,fp)==1)
        {
            m++;
        }

}
    if(m==0)
    {
        printf("暂无数据\n");
    }
    else
    {
        system("cls");
        printf(">>当前共有%d条数据\n",m);     /*输出当前数据条数*/
        fclose(fp);
    }
    if((fp=fopen("student.txt","ab+"))==NULL)
    {
        printf("文件打开出错!!!");
        getch();
    }
    printf("请确认是【Y】否【N】录入学生信息:");
    scanf("%s",sr);
    while(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)/*录入学生信息*/
    {
        printf("请输入姓名:");
        scanf("%s",stu[m].name);
        printf("请输入性别:");
        scanf("%s",stu[m].sex);
        printf("请输入班级:");
        scanf("%s",stu[m].Class);
        printf("请输入学号:");
        scanf("%s",stu[m].ID);
        printf("请输入专业:");
        scanf("%s",stu[m].major);
        printf("请输入数学成绩:");
        scanf("%lf",&stu[m].SX);
        printf("请输入英语成绩:");
        scanf("%lf",&stu[m].YY);
        printf("请输入C语言成绩:");
        scanf("%lf",&stu[m].CYY);
        stu[m].sum=stu[m].SX+stu[m].YY+stu[m].CYY;
        if(fwrite(&stu[m],LEN,1,fp)!=1)      /*将新录入的信息写入指定的磁盘文件*/
        {

printf("对不起,不能保存!");

getch();

}

else

{

printf("%s 保存成功!\n",stu[m].name);
            printf("还继续输吗?(Y/N):");    /*询问是否继续*/
            scanf("%s",sr);
            if(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)/*为存下一个数据开空间*/
            {
                m++;
            }

}
    }
    /*if(strcmp(sr,"Y")!=0&&strcmp(sr,"y")!=0)
    {
        GongNeng();
       // return 0;
    }*/
    fclose(fp);                               /*关闭文件防止信息丢失*/
    printf("恭喜,录入学生成绩成功!\n");
    XianShi();getch();
    if(strcmp(sr,"Y")!=0&&strcmp(sr,"y")!=0)
    {
        system("cls");
        GongNeng();
       // return 0;
    }

}
/******************成绩的删除*****************/
int ShanChu()
{
    FILE *fp;
    int i,j;
    char id[20];
    printf(">>删除成绩<<\n");
    if((fp=fopen("student.txt","ab+"))==NULL)
    {
        printf("打开学生成绩文件失败!\n");
        getch();
    }
    m=0;                                     /*重新计数,确保能够独立运行。*/
    while(!feof(fp))                         /*文件指针未达到末尾返回0*/

{
        if(fread(&stu[m],LEN,1,fp)==1)       /*判断读取一个单位字节是否成功*/
        {
            m=m+1;
        }
                                             /*统计当前记录条数*/

}
    fclose(fp);
    XianShi();
    if(m==0)
    {
        printf("没有成绩可删,请先录入成绩!");
        getch();
    }
    printf("请输入要删除学生的学号:");
    scanf("%s",&id);
    for(i=0; i<m; i++)                      /*检索学号*/
    {
        if(strcmp(id,stu[i].ID)==0)
        {
            break;
        }
    }
    if(i==m)                                 /*检索结束未找到信息*/
    {
        printf("未找到该学生【%s】成绩\n",id);
        getch();
        return 0;
    }
    printf("已找到%s的成绩,是否删除:\n",stu[i].name);
    scanf("%s",sr);
    if(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)
    {
        for(j=i; j<(m-1); j++)
        {
            stu[j]=stu[j+1];//把该学生后的数据向前移动1位
        }
        m=m-1;//数据组总数减一
        printf("删除成功!\n");
    }
    else
    {
        return 0;
    }
    if((fp=fopen("student.txt","wb"))==NULL)
    {
        printf("无法打开文件,保存信息失败!");
        getch();
    }
    int u;
    for(u=0; u<m; u++)               /*把改动的文件重新录入文件*/
    {
        fwrite(&stu[u],LEN,1,fp);
    }
    if(u==m)
    {
        printf("恭喜,保存成功!\n");
        XianShi();
        getch();
    }
    return 0;
}
/******************显示成绩*****************/
int XianShi()
{
    printf("【学号】       【姓名】   【性别】   【班级】    【专业】        【数学】    【英语】    【思政】  【总分】\n");

for(int k=0; k<m; k++)
    {
        printf(" %s           %s       %s     %s      %s     %.1lf      %.1lf    %.1lf       %.1lf\n",DJ);
    }
}
/******************成绩查询*****************/
int ChaXun()
{
    FILE *fp;
    int p;
    char iid[20];
    printf(">>成绩查询<<\n");
    if((fp=fopen("student.txt","ab+"))==NULL)
    {
        printf("打开学生成绩文件失败!\n");
        getch();
    }
    m=0;//重新计数,
    while(!feof(fp))//文件指针未达到末尾返回0

{
        if(fread(&stu[m],LEN,1,fp)==1)//判断读取一个单位字节是否成功
        {
            m=m+1;
        }
        /*统计当前记录条数*/

}
    fclose(fp);
    if(m==0)
    {
        printf("没有成绩可查,请先录入成绩!");
        getch();
    }
    printf("请输入要查询学生的学号:");
    scanf("%s",&iid);
    for(p=0; p<m; p++)
    {
        if(strcmp(iid,stu[p].ID)==0)
        {
            break;
        }
    }
    if(p==m)
    {
        printf("【%s】成绩不存在\n",iid);
        getch();
        return 0;
    }
    printf(">>查询成功!\n");
    printf("【学号】       【姓名】   【性别】   【班级】    【专业】        【数学】    【英语】    【思政】    【总分】\n");
    printf(" %s           %s       %s     %s      %s     %.1lf      %.1lf    %.1lf       %.1lf\n",dj);
    return 0;
}
/*******************成绩修改******************/
int XiuGai()
{
    FILE *fp;
    int q;
    char iiid[20];
    printf(">>修改成绩<<\n");
    if((fp=fopen("student.txt","ab+"))==NULL)
    {
        printf("打开学生成绩文件失败!\n");
        getch();
    }
    m=0;//重新计数,确保能够独立运行。
    while(!feof(fp))//文件指针未达到末尾返回0

{
        if(fread(&stu[m],LEN,1,fp)==1)//判断读取一个单位字节是否成功
        {
            m=m+1;
        }
        /*统计当前记录条数*/

}
    fclose(fp);
    XianShi();
    if(m==0)
    {
        printf("没有成绩可修改,请先录入成绩!");
        getch();
        return 0;
    }
    printf("请输入要修改学生的学号:");
    scanf("%s",&iiid);
    for(q=0; q<m; q++)
    {
        if(strcmp(iiid,stu[q].ID)==0)
        {
            break;
        }
    }
    if(q==m)
    {
        printf("未找到该学生【%s】成绩\n",iiid);
        getch();
        return 0;
    }
    printf("已找到%s的成绩,是否修改:\n",stu[q].name);
    scanf("%s",sr);
    if(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)
    {
        printf("请输入姓名:");
        scanf("%s",stu[q].name);
        printf("请输入性别:");
        scanf("%s",stu[q].sex);
        printf("请输入班级:");
        scanf("%s",stu[q].Class);
        printf("请输入学号:");
        scanf("%s",stu[q].ID);
        printf("请输入专业:");
        scanf("%s",stu[q].major);
        printf("请输入数学成绩:");
        scanf("%lf",&stu[q].SX);
        printf("请输入英语成绩:");
        scanf("%lf",&stu[q].YY);
        printf("请输入C语言成绩:");
        scanf("%lf",&stu[q].CYY);
        stu[q].sum=stu[q].SX+stu[q].YY+stu[q].CYY;
        printf("修改成功!\n");

}
    else
    {
        return 0;
    }
    if((fp=fopen("student.txt","wb"))==NULL)
    {
        printf("无法打开文件,保存信息失败!");
        getch();
        return 0;
    }
    int o;
    for(o=0;o<m;o++)
    {
        fwrite(&stu[o],LEN,1,fp);        /*把改动的文件重新录入文件*/
    }
    if(o==m)
    {
        printf("恭喜,保存成功!");
    }

return 0;
}
/********************成绩排序******************/
int PaiXu()
{
    FILE *fp;
    printf(">>成绩排序<<\n");
    if((fp=fopen("student.txt","ab+"))==NULL)
    {
        printf("打开学生成绩文件失败!\n");
        getch();
    }
    m=0;//重新计数,不依赖输入函数。
    while(!feof(fp))//文件指针未达到末尾返回0

{
        if(fread(&stu[m],LEN,1,fp)==1)//判断读取一个单位字节是否成功
        {
            m=m+1;
        }
        /*统计当前记录条数*/

}
    fclose(fp);
    if(m==0)
    {
        printf("没有成绩可排序,请先录入成绩!");
        getch();
    }
    typel t;
    for(int w=0;w<m;w++)          /*FOR循环排序*/
    {
        for(int c=w;c<m;c++)
        {
          if(stu[w].sum<stu[c].sum)
          {
              t=stu[w];
              stu[w]=stu[c];
              stu[c]=t;
          }
        }
    }
    printf("【学号】       【姓名】   【性别】   【班级】    【专业】        【数学】    【英语】    【思政】  【总分】\n");
    for (int s=0; s<m; s++)
    {
        printf(" %s           %s       %s     %s      %s     %.1lf      %.1lf    %.1lf       %.1lf\n",SDJ);
    }

getch();
    return 0;
}

原文地址:https://www.cnblogs.com/hugboy/p/12063649.html

时间: 2024-11-10 09:12:42

C语言程序设计#成绩查询系统的相关文章

C语言 &#183; 成绩查询系统

抱歉,昨天忘了往博客上更新,今天补上. 成绩查询系统 分值: 21 数学老师小y 想写一个成绩查询系统,包含如下指令: insert [name] [score],向系统中插入一条信息,表示名字为name的学生的数学成绩为score. find [name],表示查找名字为name的学生的数学成绩. 注意有些同学可能会为了刷分多次选课,查询的时候给出最大成绩即可.学生的名字是由小写字母组成.成绩是一个 0-100 的整数. 老师找到你,想你帮他完成这个系统. 输入格式 输入若干行,每行都是ins

团队-及格成绩查询系统-代码设计规范

逆流而上 及格成绩查询系统 代码规范 一.前言: 本编程规范适用于编写HTML/CSS代码,本规范并不是一个一成不变的必须严格遵守的条文,特殊情况下应灵活应对,做到变通. 二.HTML编码: HTML是一种标记语言,HTML没有任何真正的编程语言中的循环或是流程控制语句.然而,HTML代码的格式和风格是非常重要的,因为要经常对HTML代码进行维护和修改,因此HTML代码必须有很清晰的逻辑结构和布局,增强可读性,而使其易懂和易于维护.HTML代码本身是不区分大小写的,但是为了更好的统一代码布局,本

成绩查询系统--发布篇--centOS7 tomcat开机启动 + mysql数据库配置

前情介绍 成绩查询系统投入使用,部署在一台linux服务器上,是centOS7系统的.之前在本机的虚拟机中装过centOS7,还写了一篇博客.这次呢,系统是已经装好了的,我不需要再装一次了,然后jdk环境之前就弄好了,mysql也已经装好了(但是实际上从未投入过使用),还有jboss服务器也装好了,不过我的项目用的是tomcat,所以我只要装一个tomcat就好了. Tomcat安装 首先,从tomcat官网上下载,tomcat的linux版本,我下载的是tomcat7,版本是:apache-t

团队-及格成绩查询系统-团队信息

团队名称: 逆流而上 队长: 学号:2015035107040 姓名:李一轩 队员: 学号:2015035107019 姓名:程吉 学号:2015035107221 姓名:刘泽宇 学号:2015035107212 姓名:周建伟 学号:2015035107063 姓名:苑旺 学号:2015035107038 姓名:李瑞鹏 团队编程项目作业名称:及格成绩查询系统 选择该团队编程项目原因:由于象棋游戏没有什么更好的想法,组员们也认为有可以参考的文献而不尽心尽力,决定更改团队项目进行敏捷开发,以短时间研

团队-及格成绩查询系统-项目总结

小组名称:逆流而上 组长:李一轩 组员:程吉.李瑞鹏.苑旺.周建伟.刘泽宇 项目名称:及格成绩查询系统 项目过程: 我们通过与同学们的沟通得知他们部分同学现需求一个可以查询自己期末考多少分可以及格的程序:经过组内成员开会决定,制作一个可以供大家查询的网页,因为我们组都是学习网页端的,在网页部分有一些强项可以去使用. 尽管我们的UI界面可能会很low,但是可以实现我们想要实现的功能: 对于其他的课程跳转就不在此进行展示了,日后的学习和休息时间,继续对网页进行完善,我们进步的空间还有很大,比如:响应

团队-及格成绩查询系统-设计文档

项目名称:象棋游戏 项目参加人员:李一轩.程吉.刘泽宇.苑旺.李瑞鹏.周建伟 项目所需环境及工具:HBuilder.Google浏览器 页面设计:在网页中使用,可以转换到其他科目的成绩查询: 功能设计:可以查询及格成绩和最终成绩,并可以推广到其他专业和年级进行使用: 在程序结束阶段,将对程序进行性能调试和2/5/10原则调试,对其进行最终检测和维护: 预计流程:进入网页->输入成绩(并不用全部都填写)->点击"查询xxx成绩"->输出:

暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统

本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,django框架(Python的web开发框架),apache服务器,linux(centos 7为例)基本操作.因此适合有以上基础的同学学习. 声明:本博文只是为了纯粹的技术交流,敏感信息本文会有所过滤,大家见谅(由于任何缘故导致长江大学教务处网站出现问题,都与本人无关). 实现思路:在没有教务处数据接口的前提下(学生的信息安全),那也只有自己写爬

团队-及格成绩查询系统-最终程序

托管平台地址:https://gitee.com/proM/JiGeChengJiChaXunXiTong/tree/master 小组名称:逆流而上 小组成员合照:没有皂片- - 程序运行方法:HTML页面 程序运行示例及运行结果:

成绩登记与查询系统App

前段时间一个好友问我能否用AppInventor给她做一个登记学生成绩的App,当然学生也可以用此App查询成绩.研究了一下,用AppInventor大致可以实现她的想法. 功能分析:App分为教师界面和学生界面,教师界面添加学生基本信息,包括姓名.学号.语数英三科成绩,并保存:学生界面通过输入学生姓名和学号,可以查询自己的各科成绩. Step1:界面设计: 说明: SplashView中两个按钮,按钮分别显示"教师"和"学生",主要用来选择角色,当点击"