精华内容
下载资源
问答
  • 阶段 1.1 成绩管理系统实体关系设计 一实验目的和要求 1熟练掌握实体关系设计的方法 2 通过需求分析结果掌握 E-R 图 二实验内容和原理 实体关系设计是在需求分析的一个环节过程 在这一过程中产生 E-R 图该图由实体 ...
  • 学生成绩管理系统可行性分析报告 一引言 1.编写目的 为了提供一个有价值的方向 便于项目团队成员更好地了解项目情况 使项目工作开展的各 个过程有价值 因此以文件化的形式 记录软件开发中将要面临的问题及其解决方案...
  • 学生成绩管理系统测试、调试过程

    千次阅读 2016-10-05 13:39:11
    测试、调试过程 (一)在主界面输入1即可进入添加学生的选项,再按照界面提示输入程序所需的学生人数以及每个学生的各项信息,即可将数据自动保存到record.txt中。   (二)保存完之后会返回一个主菜单界面...

    测试、调试过程

    (一)在主界面输入1即可进入添加学生的选项,再按照界面提示输入程序所需的学生人数以及每个学生的各项信息,即可将数据自动保存到record.txt中。

     

    (二)保存完之后会返回一个主菜单界面(以后的每一次操作成功就会返回一个主菜单)。在主菜单中输入2,进入查询界面,在这里可以查到你所输入的所有学生的信息。

    下面三个选项均为查找选项分别为学号、班级、姓名

     

     

     

     

     

     

    (四)输入6进入修改界面,输入学号,修改一个学生的所有信息。

     

    (五)输入7就能进入删除界面。

     

    (六)在主界面输入8,9,10,11可以对学生的成绩进行总分,语文,数学,英语的排名。

     

    输入0后退出程序。

    展开全文
  • 面向过程学生成绩管理系统

    千次阅读 2016-02-26 15:25:54
    System.out.println("请输入学生的人数:"); int person_num=in.nextInt();//人数 System.out.println("请输入课程的数目:"); int course_num=in.nextInt();//课程数 int personal_totalScore[]=new int[person...
    package demo;
    import java.util.Scanner;
    
    public class TestClass {
    //注释
        @SuppressWarnings("resource")
        public static void main(String[] args) {
            
            Scanner in=new Scanner(System.in);
            System.out.println("请输入学生的人数:");
            int person_num=in.nextInt();//人数
            System.out.println("请输入课程的数目:");
            int course_num=in.nextInt();//课程数
    
            int personal_totalScore[]=new int[person_num];//每个人的总分
            int personal_average[]=new int[person_num]; //每个人的平均分
            
            String str[]=new String[person_num];//
            int course_grade[][]=new int[person_num][course_num];//每个人每类课程的分数
            
            
            String course[]=new String[course_num];//课程名称
            String name[]=new String[person_num];//姓名
            
            
            //定义课程名
            for(int i=0;i<course_num;i++){
                System.out.println("请定义第"+(i+1)+"门课是什么?");
                course[i]=in.next();
            }
            
            //获取每个人的各个课程分数
            for(int i=0;i<person_num;i++){
                System.out.println("请输入第"+(i+1)+"个人的姓名:");
                name[i]=in.next();
                int sum=0;//每个人的总分
                for(int j=0;j<course_num;j++){
                    System.out.println("请输入"+name[i]+"的"+course[j]+"分数:");
                    course_grade[i][j]=in.nextInt();
                    sum+=course_grade[i][j];
                }
                personal_totalScore[i]=sum;//每个人的总分
                personal_average[i]=personal_totalScore[i]/course_num;//每个人的平均分
            }
    
            //每个人的信息整合成字符串
            for(int i=0;i<person_num;i++){
                String st="";
                for(int j=0;j<course_num;j++){
                    st+=course_grade[i][j]+"\t";
                }
                str[i]=name[i]+"\t"+st+personal_totalScore[i]+"\t"+personal_average[i];
            }
            
           //根据每个人的总分排序
           for(int i=0;i<personal_totalScore.length-1;i++){
               for(int j=0;j<personal_totalScore.length-1;j++){
                   if(personal_totalScore[j]<personal_totalScore[j+1]){
                       int ti=personal_totalScore[j];
                       String ts=str[j];
                       personal_totalScore[j]=personal_totalScore[j+1];
                       str[j]=str[j+1];
                       personal_totalScore[j+1]=ti;
                       str[j+1]=ts;
                   }
               }
           }
          //打印成绩表
            System.out.print("姓名\t");
            for(int i=0;i<course.length;i++){
                System.out.print(course[i]+"\t");
            }
            System.out.println("总分\t平均分\t评价");
            for(int j=0;j<str.length;j++){
                System.out.println(str[j]+"\t"+"第"+(j+1)+"名");
            }
        }
    }
    


    展开全文
  • Part1:说明信息 /******************************************************************** ...*内容摘要:简单模拟学生成绩管理过程, 完成对学生成绩信息的建立、增加、删除、查找、修改等功能 *其他内容:

    Part1:说明信息

    /********************************************************************
    *版权所有 (C)2016,Chang Rui
    *
    *文件名称:ytu学生成绩管理系统
    *文件标识:无
    *内容摘要:简单模拟学生成绩管理过程,
                完成对学生成绩信息的建立、增加、删除、查找、修改等功能
    *其他内容:无
    *
    *当前版本:Codeblocks 16.01
    *作者:常锐
    *完成日期:2016. 12. 29
    *********************************************************************/

    Part2:头文件systemuser.h  结构体与各个成员函数定义

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <malloc.h>
    //结构体定义部分---------------------------------------------------------------------------------
    typedef struct User
    {
        int is_build;                       //判断学生成绩单是否建立,0-未建立 1-已建立
        int is_login;                       //判断是否登录,0-未登录 1-已登录
        char num[32];                       //学生学号
        char name[32];                      //学生姓名
        char classnum[32];                  //学生所在班级编号
        double score[4];                    //学生4门课的单科成绩
        double total;                       //学生4门课的总成绩
        double average;                     //学生4门课的平均成绩
        struct User *next;                  //指向后继节点的指针
    } user;
    //各功能函数定义部分------------------------------------------------------------------------------
    void Login(user *&L);                   //管理员登录
    void StuInit(user *&L);                 //初始化学生信息
    void CreateStu(user *&L);               //创建学生成绩单
    void InsertStu(user *&L);               //增加学生信息
    void DeleteStu(user *&L);               //删除学生信息
    void FindStu(user *L);                  //查找学生信息
    void ModifyStu(user *L);                //修改学生信息
    int Stunum(user *L);                    //记录当前学生个数
    int FailStunum(user *L);                //记录当前不及格学生个数
    void Sortstu(user *L);                  //学生成绩排名
    void DispStu(user *L);                  //输出学生成绩信息
    void DispFailstu(user *L);              //输出不及格学生成绩信息
    void Save(user *L);                     //保存操作结果

    Part3:stufun.cpp 各功能函数实现

    #include <stdio.h>
    #include "systemuser.h"
    /*******************************************
    * 功能描述:管理员登录
    * 输入参数:用户名和密码
    * 输出参数:用户名或密码输出有错误时的提示
    ********************************************/
    void Login(user *&L)                     //管理员登录
    {
        char logname[]={"admin"};            //指定管理员登录用户名与密码
        char passwd[]={"ytustu"};
        char l[32],p[32],tmp;                //tmp作为判断输入出错标志,输入#可重新输入信息
        int i=3,j;                           //最多3次机会
        while(i)
        {
            printf("请输入用户名:\n");
            scanf("%s",l);
            printf("请输入密码:\n");
            for(j=0;j<32;j++)                //屏幕上显示密码*
            {
                p[j]=getch();
                if(p[j]=='\r')
                {
                    tmp=p[j-1];
                    break;
                }
                printf("*");
            }
            p[j]='\0';
            printf("\n");
            if(strcmp(logname,l)==0 && strcmp(passwd,p)==0)//用户名和密码均正确表示登录成功
            {
                L->is_login=1;
                break;
            }
            else if(tmp=='#')
                printf("请重新输入用户名与密码\n");
            else
            {
                printf("用户名或密码错误,请重新输入,您还有%d次机会!\n",i-1);
                i--;
            }
        }
    }
    /*******************************************
    * 功能描述:初始化学生信息
    * 输入参数:无
    * 输出参数:无
    ********************************************/
    void StuInit(user *&L)                      //初始化学生信息
    {
        int i;
        L=(user *)malloc(sizeof(user));
        L->is_build=0;                          //初始状态-成绩单尚未建立
        L->is_login=0;                          //初始状态-管理员未登录
        for(i=0;i<32;i++)                       //初始化各学生信息
        {
            L->num[i]='\0';
            L->name[i]='\0';
            L->classnum[i]='\0';
        }
        for(i=0;i<4;i++)
            L->score[i]=0;
        L->total=0;
        L->average=0;
        L->next=NULL;
    }
    /*******************************************
    * 功能描述:保存操作结果
    * 输入参数:无
    * 输出参数:操作提示
    ********************************************/
    void Save(user *L)                           //保存操作结果
    {
        int i;
        user *p=L->next, *q=L->next;
        FILE *fp;                                //文件指针
        if(p==NULL)
        {
            printf("现在没有学生信息,请先输入学生信息\n");
            return;
        }
        fp=fopen("stu.txt","w");                 //在当前目录下打开stu.txt文件并设置只允许“写”操作
        if(!fp)
        {
            printf("文件不存在\n");
            return;
        }
        //将学生信息与不及格学生信息写入文件
        fprintf(fp,"===========================学生成绩信息一览表===========================\n");
        fprintf(fp,"当前学生个数为:%d\n",Stunum(L));
        fprintf(fp,"学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
        while(p!=NULL)
        {
            fprintf(fp,"%s\t%s\t%s\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t",p->num,p->name,p->classnum,p->score[0],p->score[1],p->score[2],p->score[3]);
            fprintf(fp,"%.2lf\t%.2lf\n",p->total,p->average);
            p=p->next;
        }
        fprintf(fp,"\n=======================不及格学生成绩信息一览表=======================\n");
        fprintf(fp,"当前不及格学生个数为:%d\n",FailStunum(L));
        fprintf(fp,"学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
        while(q!=NULL)
        {
            for(i=0;i<4;i++)
            {
                if(q->score[i]<60)
                {
                    fprintf(fp,"%s\t%s\t%s\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t",q->num,q->name,q->classnum,q->score[0],q->score[1],q->score[2],q->score[3]);
                    fprintf(fp,"%.2lf\t%.2lf\n",q->total,q->average);
                    break;
                }
            }
            q=q->next;
        }
        fclose(fp);                              //把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针
        printf("数据已成功导入文件stu.txt!\n");
    }
    /******************************************************************
    * 功能描述:创建学生成绩单
    * 输入参数:学生学号.姓名.班号及4门课的成绩(学号为0时结束输入)
    * 输出参数:操作提示
    *******************************************************************/
    void CreateStu(user *&L)                    //创建学生成绩单
    {
        user *s,*r;
        int i;
        double subscore[4];
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==1)
                printf("学生成绩单已建立完成,无需再次建立!\n");
            else
            {
                L=(user *)malloc(sizeof(user));
                r=L;
                printf("请输入学生学号.姓名.班号及4门课的成绩,以0结束输入:\n");
                while(1)
                {
                    s=(user *)malloc(sizeof(user));
                    scanf("%s",s->num);
                    if(strcmp(s->num,"0")==0)
                    {
                        printf("输入结束,您已退出本操作...\n");
                        break;
                    }
                    scanf("%s %s",s->name,s->classnum);
                    s->total=0;
                    for(i=0;i<4;i++)
                    {
                        scanf("%lf",&(subscore[i]));
                        s->score[i]=subscore[i];
                        if(s->score[i]>=0 && s->score[i]<=100)
                            s->total+=(s->score[i]);
                    }
                    s->average=s->total/4;
                    r->next=s;
                    r=s;
                    printf("学生%s的信息已添加至成绩单,操作成功!\n",s->name);
                }
                r->next=NULL;                    //尾指针域置NULL
                L->is_build=1;                   //成绩单已建立完成,is_build置1
            }
        }
    }
    /******************************************************************
    * 功能描述:增加学生信息
    * 输入参数:学生学号.姓名.班号及4门课的成绩(学号为0时结束输入)
    * 输出参数:操作提示
    *******************************************************************/
    void InsertStu(user *&L)                     //增加学生信息
    {
        user *p=L,*q;
        int i;
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("请输入学生学号.姓名.班号及4门课的成绩,以0结束输入:\n");
                while(1)
                {
                    q=(user *)malloc(sizeof(user));  //能插入,分配节点空间
                    scanf("%s",q->num);
                    if(strcmp(q->num,"0")==0)
                    {
                        printf("输入结束,您已退出本操作...\n");
                        break;
                    }
                    scanf("%s %s",q->name,q->classnum);
                    q->total=0;
                    for(i=0;i<4;i++)
                    {
                        scanf("%lf",&(q->score[i]));
                        if(q->score[i]>=0 && q->score[i]<=100)
                            q->total+=(q->score[i]);
                    }
                    q->average=q->total/4;
                    while(p->next!=NULL)                        //遍历查找第i-1个节点
                        p=p->next;
                    q->next=p->next;
                    p->next=q;                               //更改指针域,完成插入
                    printf("学生%s的信息已添加至成绩单,操作成功!\n",q->name);
                }
            }
        }
    }
    /************************************
    * 功能描述:删除学生信息
    * 输入参数:学生学号.姓名.班号
    * 输出参数:操作提示
    *************************************/
    void DeleteStu(user *&L)                    //删除学生信息
    {
        int i;
        user *p=L,*q=p->next;                   //”伴随指针“共同作用
        char num[32],name[32],cla[32];
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("请输入被删除学生的学号.姓名.班号,以0结束输入:\n");
                while(1)
                {
                    scanf("%s",num);
                    if(strcmp(num,"0")==0)
                    {
                        printf("输入结束,您已退出本操作...\n");
                        break;
                    }
                    scanf("%s %s",name,cla);
                    while(strcmp(q->num,num)!=0 && strcmp(q->name,name)!=0 && strcmp(q->classnum,cla)!=0 && q->next!=NULL)
                    {
                        p=q;
                        q=q->next;
                    }
                    if(strcmp(q->num,num)==0 && strcmp(q->name,name)==0 && strcmp(q->classnum,cla)==0)
                    {
                        p->next=q->next;
    					printf("===========================被删除学生成绩信息一览===========================\n");
                        printf("注:sc1-高数, sc2-程序设计, sc3-数据结构, sc4-计组\n");
                        printf("学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
                        printf("%s\t",q->num);
                        printf("%s\t",q->name);
                        printf("%s\t",q->classnum);
                        for(i=0;i<4;i++)
                            printf("%0.2lf\t",(q->score[i]));
                        printf("%0.2lf\t",q->total);
                        printf("%0.2lf\n",q->average);
    					free(q);
    					printf("该学生信息已被删除,操作成功!\n");
                    }
                    else
                        printf("该学生不存在,操作失败!\n");
                }
            }
        }
    }
    /************************************
    * 功能描述:查找学生信息
    * 输入参数:学生学号.姓名.班号
    * 输出参数:操作提示
    *************************************/
    void FindStu(user *L)                       //查找学生信息
    {
        int i,flag=0;
        user *p=L->next;
        char num[32],name[32],classnum[32];
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("请输入待查询学生的学号.姓名.班号,以0结束输入:\n");
                while(1)
                {
                    scanf("%s",num);
                    if(strcmp(num,"0")==0)
                    {
                        printf("输入结束,您已退出本操作...\n");
                        break;
                    }
                    scanf("%s %s",name,classnum);
                    while(p!=NULL)
                    {
                        if(strcmp(p->num,num)==0 && strcmp(p->name,name)==0 && strcmp(p->classnum,classnum)==0)
                        {
                            flag=1;
                            printf("===========================学生成绩查询结果===========================\n");
                            printf("注:sc1-高数, sc2-程序设计, sc3-数据结构, sc4-计组\n");
                            printf("学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
                            printf("%s\t",p->num);
                            printf("%s\t",p->name);
                            printf("%s\t",p->classnum);
                            for(i=0;i<4;i++)
                                printf("%0.2lf\t",(p->score[i]));
                            printf("%0.2lf\t",p->total);
                            printf("%0.2lf\n",p->average);
                            break;
                        }
                        p=p->next;
                    }
                    if(flag==0)
                        printf("您要查询的学生不存在,操作失败!\n");
                }
            }
        }
    }
    /************************************
    * 功能描述:记录当前学生个数
    * 输入参数:无
    * 输出参数:无
    * 返回值:学生个数length1
    *************************************/
    int Stunum(user *L)
    {
        int length1=0;
        user *p=L->next;                        //length1初始化为0,p指向头节点
        while(p!=NULL)
        {
            length1++;
            p=p->next;
        }
        return length1;
    }
    /************************************
    * 功能描述:记录当前不及格学生个数
    * 输入参数:无
    * 输出参数:无
    * 返回值:不及格学生个数length2
    *************************************/
    int FailStunum(user *L)                     //记录当前不及格学生个数
    {
        int length2=Stunum(L);
        user *p=L->next;                        //length2初始化为0,p指向头节点
        while(p!=NULL)
        {
            if(p->score[0]>=60 && p->score[1]>=60 && p->score[2]>=60 && p->score[3]>=60)
                length2--;
            p=p->next;
        }
        return length2;
    }
    /*****************************************************************************
    * 功能描述:修改学生信息
    * 输入参数:修改前学生学号.姓名.班号和修改后学生学号.姓名.班号和4门课的成绩
    * 输出参数:操作提示
    ******************************************************************************/
    void ModifyStu(user *L)                     //修改学生信息
    {
        int i,flag=0;
        user *p=L->next;
        char num[32],name[32],classnum[32];
        char Modnum[32],Modname[32],Modclassnum[32];
        double Modscore[4];                               //修改后信息
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("请输入待修改学生的学号.姓名.班号,以0结束输入:\n");
                while(1)
                {
                    scanf("%s",num);
                    if(strcmp(num,"0")==0)
                    {
                        printf("输入结束,您已退出本操作...\n");
                        break;
                    }
                    scanf("%s %s",name,classnum);
                    while(p!=NULL)
                    {
                        if(strcmp(p->num,num)==0 && strcmp(p->name,name)==0 && strcmp(p->classnum,classnum)==0)
                        {
                            flag=1;
                            printf("===========================学生信息(修改前)===========================\n");
                            printf("注:sc1-高数, sc2-程序设计, sc3-数据结构, sc4-计组\n");
                            printf("学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
                            printf("%s\t",p->num);
                            printf("%s\t",p->name);
                            printf("%s\t",p->classnum);
                            for(i=0;i<4;i++)
                                printf("%0.2lf\t",(p->score[i]));
                            printf("%0.2lf\t",p->total);
                            printf("%0.2lf\n",p->average);
                            printf("请输入修改后的学生学号.姓名.班号与4门课成绩:\n");
                            scanf("%s %s %s",Modnum,Modname,Modclassnum);
                            strcpy(p->num,Modnum);
                            strcpy(p->name,Modname);
                            strcpy(p->classnum,Modclassnum);
                            p->total=0;
                            for(i=0;i<4;i++)
                            {
                                scanf("%lf",&(Modscore[i]));
                                p->score[i]=Modscore[i];
                                if(p->score[i]>=0 && p->score[i]<=100)
                                    p->total+=(p->score[i]);
                            }
                            p->average=p->total/4;
                            printf("该学生信息修改成功!\n");
                            printf("===========================学生信息(修改后)===========================\n");
                            printf("注:sc1-高数, sc2-程序设计, sc3-数据结构, sc4-计组\n");
                            printf("学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
                            printf("%s\t",p->num);
                            printf("%s\t",p->name);
                            printf("%s\t",p->classnum);
                            for(i=0;i<4;i++)
                                printf("%0.2lf\t",(p->score[i]));
                            printf("%0.2lf\t",p->total);
                            printf("%0.2lf\n",p->average);
                        }
                        p=p->next;
                    }
                    if(flag==0)
                        printf("该学生不存在,操作失败!\n");
                }
            }
        }
    }
    /************************************
    * 功能描述:学生成绩排名
    * 输入参数:学生学号.姓名.班号
    * 输出参数:操作提示
    *************************************/
    void Sortstu(user *L)                       //学生成绩排名
    {
        user *p,*q,*r;
        int method;
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("请选择排序方式:");
                printf("1.按科目1成绩排名 2.按科目2成绩排名 3.按科目3成绩排名 4.按科目4成绩排名 5.按总成绩排名\n");
                scanf("%d",&method);
                switch(method)
                {
                    case 1:
                        p=L->next->next;                                         //p指向第一个节点的后继
                        L->next->next=NULL;                                      //直接插入排序,第一个元素在有序区,从第二元素起依次插入
                        while(p!=NULL)
                        {
                            r=p->next;                                           //r指针暂存p的后继
                            q=L;
                            while(q->next!=NULL && q->next->score[0]>p->score[0])//查找插入位置
                                q=q->next;                                       //将p节点链入链表
                            p->next=q->next;
                            q->next=p;
                            p=r;
                        }
                        break;
                    case 2:
                        p=L->next->next;
                        L->next->next=NULL;
                        while(p!=NULL)
                        {
                            r=p->next;
                            q=L;
                            while(q->next!=NULL&&q->next->score[1]>p->score[1])
                                q=q->next;
                            p->next=q->next;
                            q->next=p;
                            p=r;
                        }
                        break;
                    case 3:
                        p=L->next->next;
                        L->next->next=NULL;
                        while(p!=NULL)
                        {
                            r=p->next;
                            q=L;
                            while(q->next!=NULL&&q->next->score[2]>p->score[2])
                                q=q->next;
                            p->next=q->next;
                            q->next=p;
                            p=r;
                        }
                        break;
                    case 4:
                        p=L->next->next;
                        L->next->next=NULL;
                        while(p!=NULL)
                        {
                            r=p->next;
                            q=L;
                            while(q->next!=NULL&&q->next->score[3]>p->score[3])
                                q=q->next;
                            p->next=q->next;
                            q->next=p;
                            p=r;
                        }
                        break;
                    case 5:
                        p=L->next->next;
                        L->next->next=NULL;
                        while(p!=NULL)
                        {
                            r=p->next;
                            q=L;
                            while(q->next!=NULL&&q->next->total>p->total)
                                q=q->next;
                            p->next=q->next;
                            q->next=p;
                            p=r;
                        }
                        break;
                    default:
                        printf("操作失败,请输入正确的项目编号!\n");
                        break;
                }
                DispStu(L);
            }
        }
    }
    /************************************
    * 功能描述:输出不及格学生信息
    * 输入参数:无
    * 输出参数:所有不及格学生信息
    *************************************/
    void DispFailstu(user *L)                   //输出不及格学生成绩信息
    {
        user *p=L->next;
        int i,flag=0;                           //判断成绩单是否为空的标记
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("===========================不及格学生成绩信息一览表===========================\n");
                printf("当前不及格学生个数为:%d\n",FailStunum(L));
                printf("注:sc1-高数, sc2-程序设计, sc3-数据结构, sc4-计组\n");
                printf("学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
                while(p!=NULL)
                {
                    for(i=0;i<4;i++)
                    {
                        if(p->score[i]>=0 && p->score[i]<60)
                        {
                            flag=1;
                            printf("%s\t",p->num);
                            printf("%s\t",p->name);
                            printf("%s\t",p->classnum);
                            for(i=0;i<4;i++)
                                printf("%0.2lf\t",(p->score[i]));
                            printf("%0.2lf\t",p->total);
                            printf("%0.2lf\n",p->average);
                        }
                    }
                    p=p->next;
                }
                if(flag==0)
                    printf("无不及格学生成绩信息!\n");
                printf("\n");
            }
        }
    }
    /************************************
    * 功能描述:输出学生信息
    * 输入参数:无
    * 输出参数:所有学生信息
    *************************************/
    void DispStu(user *L)                             //输出学生成绩信息
    {
        user *p=L->next;
        int i;
        int flag=0;                                //判断成绩单是否为空的标记
        if(L->is_login==0)
            printf("请您先登录!\n");
        else
        {
            if(L->is_build==0)
                printf("学生成绩单未建立,操作失败!\n");
            else
            {
                printf("==============================学生成绩信息一览表==============================\n");
                printf("当前学生个数为:%d\n",Stunum(L));
                printf("注:sc1-高数, sc2-程序设计, sc3-数据结构, sc4-计组\n");
                printf("学号\t姓名\t班级\tsc1\tsc2\tsc3\tsc4\t总成绩\t平均成绩\n");
                while(p!=NULL)
                {
                    flag=1;
                    printf("%s\t",p->num);
                    printf("%s\t",p->name);
                    printf("%s\t",p->classnum);
                    for(i=0;i<4;i++)
                        printf("%0.2lf\t",(p->score[i]));
                    printf("%0.2lf\t",p->total);
                    printf("%0.2lf\n",p->average);
                    p=p->next;
                }
                if(flag==0)
                    printf("无学生成绩信息!\n");
                printf("\n");
            }
        }
    }
    


    Part 4:main.cpp 主函数实现

    //朱函数实现部分---------------------------------------------------------------------------
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <time.h>
    #include <conio.h>
    #include <windows.h>
    #include "systemuser.h"
    int choice;                           //全局变量,选择项目编号
    int signal=0;                         //判断是否再次登录标记,置0
    user *L;
    void SecMenu();                       //副菜单(声明)
    void MainMenu()                       //主菜单
    {
    	printf("\n\n\n\n\n\n");
    	printf("************************欢迎进入ytu学生成绩管理系统************************\n");
    	printf("\n\n");
    	system("color 8E");
    	printf("请稍后...\n");
    	for(int k=0;k<75;k++)
    	{
    		Sleep(30);
    		printf(">");
    	}
    	system("cls");
    	printf("\n\n\n\n\n\n");
        printf("************************欢迎进入ytu学生成绩管理系统************************\n");
    	printf("\n\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("****************           8. 输出学生成绩信息             ****************\n");
    	printf("****************         9. 输出不及格学生成绩信息         ****************\n");
    	printf("****************             10. 保存操作结果              ****************\n");
    	printf("****************              0. 退出本系统                ****************\n");
    	if(signal==0)
            StuInit(L);
    	while(1)
    	{
    	    scanf("%d",&choice);
    	    if(choice==0)
            {
                printf("您已退出本系统!\n");
                break;
            }
    	    else if(choice==1)
            {
                if(L->is_login==1 && signal==1)
                {
                    printf("您已登录本系统,无需再次登录!\n");
                    Sleep(2000);
                    system("cls");
                    SecMenu();
                }
                else
                {
                    Login(L);
                    if(L->is_login==1 && signal==0)
                    {
                        printf("登录成功!\n");
                        signal=1;                        //再次登录标记置1
                        Sleep(2000);
                        system("cls");
                        SecMenu();
                    }
                    else
                    {
                        printf("错误操作次数过多,您已退出本系统!\n");
                        break;
                    }
                }
            }
            else if(choice==2)
            {
                CreateStu(L);
                Sleep(2000);
                system("cls");
                SecMenu();
            }
            else if(choice==3)
            {
                InsertStu(L);
                Sleep(2000);
                system("cls");
                SecMenu();
            }
            else if(choice==4)
            {
                DeleteStu(L);
                Sleep(2000);
                system("cls");
                SecMenu();
            }
            else if(choice==5)
            {
                ModifyStu(L);
                Sleep(2000);
                system("cls");
                SecMenu();
            }
            else if(choice==6)
            {
                FindStu(L);
                Sleep(2000);
                system("cls");
                SecMenu();
            }
            else if(choice==7)
            {
                Sortstu(L);
                Sleep(5000);
                system("cls");
                SecMenu();
            }
            else if(choice==8)
            {
                DispStu(L);
                Sleep(5000);
                system("cls");
                SecMenu();
            }
            else if(choice==9)
            {
                DispFailstu(L);
                Sleep(5000);
                system("cls");
                SecMenu();
            }
            else if(choice==10)
            {
                Save(L);
                Sleep(2000);
                system("cls");
                SecMenu();
            }
            else
            {
                printf("请输入正确的项目编号!\n");
                Sleep(2000);
                system("cls");
                SecMenu();
            }
    	}
    }
    void SecMenu()
    {
        printf("\n\n\n\n\n\n");
    	printf("************************欢迎进入ytu学生成绩管理系统************************\n");
    	printf("\n\n");
    	system("color 8E");
    	printf("请稍后...\n");
    	for(int k=0;k<75;k++)
    	{
    		Sleep(30);
    		printf(">");
    	}
    	system("cls");
    	printf("\n\n\n\n\n\n");
        printf("************************欢迎进入ytu学生成绩管理系统************************\n");
    	printf("\n\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("****************           8. 输出学生成绩信息             ****************\n");
    	printf("****************         9. 输出不及格学生成绩信息         ****************\n");
    	printf("****************             10. 保存操作结果              ****************\n");
    	printf("****************              0. 退出本系统                ****************\n");
    }
    int main()
    {
        MainMenu();
        return 0;
    }
    

    Part5:运行结果

    (1)动态主界面:

    (2)管理员登录:


    (3)创建学生成绩单:


    (4)增加学生信息:


    (5)删除学生信息:


    (6)修改学生信息:


    (7)学生成绩查询:


    (8)学生成绩排名:


    (9)输出学生成绩信息:


    (10)输出不及格学生成绩信息:


    (11)保存操作结果:



    (12)退出本系统:


            PS:因时间与技术水平有限,设计不当与考虑不周之处在所难免。欢迎大家批评指正、提出建设性意见与建议~

    展开全文
  • /********************************************************...*内容摘要:简单模拟学生成绩管理过程, 完成对学生成绩信息的建立、增加、删除、查找、修改等功能 *其他内容:无 * *当前版本:VC6.0 *作者:车金阳*完
    /********************************************************************
    *版权所有 (C)2016
    *
    *文件名称:学生成绩管理系统
    *文件标识:无
    *内容摘要:简单模拟学生成绩管理过程,
                完成对学生成绩信息的建立、增加、删除、查找、修改等功能
    *其他内容:无
    *
    *当前版本:VC6.0
    *作者:车金阳
    *完成日期:2017.01.01
    *********************************************************************/
    #include"head.h"
    
    void cla::sadd()//添加
    {
        student *q;
        string name1;
        long num1;
        int x1,y1,z1;
        system("cls");
        cout<<"\n **增加的学生信息** \n"<<endl;
        cout<<"请输入学生的(中间用空格间隔) "<<endl;
        cout<<"姓名 学号 离散数学成绩 数据结构成绩 英语成绩:"<<endl;
        cin>>name1>>num1>>x1>>y1>>z1;
        q=new student(name1,num1,x1,y1,z1);
        q->next=0;
        q->AA=x1+y1+z1;
        if(stu)
        {
            student *t;
            t=stu;
            if(t->num==num1)
            {
                cout<<"学号已存在,请重新输入"<<endl;
                return;
            }
            while(t->next)
            {
                if(t->num==num1)
                {
                    cout<<"学号已存在,请重新输入"<<endl;
                    return;
                }
                t=t->next;
            }
            t->next=q;
        }
        else
        {
            stu=q;
        }
        cout<<"输入完毕"<<endl;
    }
    void cla::sremove()//删除
    {
        system("cls");
        int num1;
        cout<<"\n** 删除学生信息 **\n";
        cout<<"请输入想要删除学生的学号:";
        cin>>num1;//查找要删除的结点
        student *p1,*p2;
        p1=stu;
        while(p1)
        {
            if(p1->num==num1)
                break;
            else
            {
                p2=p1;
                p1=p1->next;
            }
        }
    //删除结点
        if(p1!=NULL)//若找到结点,则删除
        {
            p1->play();
            cout<<"确定删除吗?[Y/N]"<<endl;
            char c;
            cin>>c;
            if(toupper(c)!='Y') return;
    
            if(p1==stu) //若要删除的结点是第一个结点
            {
                stu=p1->next;
                delete p1;
            }
            else //若要删除的结点是后续结点
            {
                p2->next=p1->next;
                delete p1;
            }
            cout<<"找到学号为"<<num1<<"的学生,并删除\n";
        }
        else //未找到结点
            cout<<"未找到想要删除的学生!\n";
    }
    void cla::samend()//修改
    {
        system("cls");
        long num1;
        cout<<"\n** 修改学生信息 **\n";
        cout<<"输入要修改学生的学号";
        cin>>num1;
    //查找要修改的结点
        student *p1,*p2;
        p1=stu;
        while(p1)
        {
            if(p1->num==num1)
                break;
            else
            {
                p2=p1;
                p1=p1->next;
            }
        }
        if(p1!=NULL)
        {
            cout<<"学号是"<<num1<<"的学生的信息"<<endl;
            cout<<"姓名 "<<p1->name<<"数学"<<p1->x<<"语文"<<p1->y<<"英语"<<p1->z<<endl;
            cout<<"请输入修改后的信息:姓名 离散数学成绩 数据结构成绩 英语成绩"<<endl;
            cin>>p1->name>>p1->x>>p1->y>>p1->z;
            p1->AA=p1->x+p1->y+p1->z;
            cout<<"修改成功"<<endl;
        }
        else //未找到接点
            cout<<"未找到!\n";
    }
    void cla::ssearch()//查询
    {
        system("cls");
        cout<<"\n** 查询学生信息 **\n"<<endl;
        cout<<"请输入查询方式:"<<endl;
        cout<<"1.按学号查询"<<endl;
        cout<<"2.按姓名查询"<<endl;
        cout<<"3.返回"<<endl;
        char c;
        cin>>c;
        switch (c)
        {
        case '1':
        {
            long num1;
            cout<<"要查询的学号"<<endl;
            cin>>num1;
    //查找要查询的结点
            student *p1,*p2;
            p1=stu;
            while(p1)
            {
                if(p1->num==num1)
                    break;
                else
                {
                    p2=p1;
                    p1=p1->next;
                }
            }
    
            if(p1!=NULL)
            {
                cout<<"学号是"<<num1<<"的学生的信息"<<endl;
                cout<<"姓名:"<<p1->name<<" 离散数学:"<<p1->x<<" 数据结构:"<<p1->y<<" 英语:"<<p1->z<<endl;
                cout<<"查询完毕...";
            }
            else //未找到接点
                cout<<"未找到!\n";
            break;
        }
        case '2':
        {
            string name1;
            cout<<"要查询的学生姓名"<<endl;
            cin>>name1;
    //查找要查询的结点
            student *p1,*p2;
            p1=stu;
            while(p1)
            {
                if(p1->name==name1)
                    break;
                else
                {
                    p2=p1;
                    p1=p1->next;
                }
            }
    
            if(p1!=NULL)
            {
                cout<<name1<<"的学生的信息"<<endl;
                cout<<"学号:"<<p1->num<<" 离散数学:"<<p1->x<<" 数据结构:"<<p1->y<<" 英语:"<<p1->z<<endl;
                cout<<"查询完毕...";
            }
            else //未找到接点
                cout<<"未找到!\n";
            break;
        }
        case '3':
            return;
        }
    
    }
    void cla::pxh() //按学号排序
    {
        student *p1,*p2;
        int n;
        p1=stu;
        n=1;
        while(p1->next)
        {
            n++;
            p1=p1->next;
        }
        cout<<"共有"<<n<<"条信息..."<<endl;
        int i;
        p1=stu;
        for(i=1; i<n; i++)
        {
            p1=stu;
            if (p1->num>p1->next->num) // 如果头结点大于第二个的
            {
                p2=p1->next;
                p1->next=p1->next->next;
                p2->next=p1; //头结点交换
                stu=p2;
            }
            p1=stu;
            while(p1->next->next) //中间的交换
            {
                p2=p1;
                p1=p1->next;
                if(p1->num>p1->next->num)
                {
                    p2->next=p1->next;
                    p1->next=p1->next->next;
                    p2->next->next=p1;
                    p1=p2->next; //交换
                }
            }
        }
    
        p1=stu;
        do
        {
            p1->play();
            p1=p1->next;
        }
        while(p1);
    }
    void cla::pAA()//按总分排序
    {
        student *p1,*p2;
        int n;
        p1=stu;
        n=1;
        while(p1->next)
        {
            n++;
            p1=p1->next;
        }
        cout<<"共有"<<n<<"条信息..."<<endl;
        int i;
        p1=stu;
        for(i=1; i<n; i++)
        {
            p1=stu;
            if (p1->AA>p1->next->AA) // 如果头结点大于第二个的
            {
                p2=p1->next;
                p1->next=p1->next->next;
                p2->next=p1; //头结点交换
                stu=p2;
            }
            p1=stu;
            while(p1->next->next) //中间的交换
            {
                p2=p1;
                p1=p1->next;
                if(p1->AA>p1->next->AA)
                {
                    p2->next=p1->next;
                    p1->next=p1->next->next;
                    p2->next->next=p1;
                    p1=p2->next; //交换
                }
            }
        }
        p1=stu;
        do
        {
            p1->play();
            p1=p1->next;
        }
        while(p1);
    }
    
    void cla::staxis()//排序
    {
    
        system("cls");
        char c;
        cout<<"请选择以何种方式排序:"<<endl;
        cout<<"1……以学号排序"<<endl;
        cout<<"2……以总分排序"<<endl;
        cout<<"3……返回"<<endl;
        cout<<"请选择(1-3)"<<endl;
        cin>>c;
    
        switch (c)
        {
        case '1':
            pxh();
            break;
        case '2':
            pAA();
            break;
        case '3':
            return;
        }
    }
    
    
    #include"head.h"
    
    
    int  main()
    {
    	char c;
    	cla a;
    	do
    	{
    		cout<<"\n 学 生 成 绩 管 理 系 统 \n";
    		cout<<"**************************************\n";
    		cout<<"*            1……增加学生信息       *\n";
    		cout<<"*            2……删除学生信息       *\n";
    		cout<<"*            3……修改学生信息       *\n";
    		cout<<"*            4……查询学生信息       *\n";
    		cout<<"*            5……排序学生信息       *\n";
    		cout<<"*            6……退出               *\n";
    		cout<<"**************************************\n";
    		cout<<"请选择(1-6):";
    		cin>>c;
    		//以下进行条件选择
    		switch(c)
    		{
    		case '1': a.sadd();break;
    		case '2': a.sremove();break;
    		case '3': a.samend();break;
    		case '4': a.ssearch();break;
    		case '5': a.staxis();break;
    		}
    		
    	}
    	while(c!='6');
    	return 0;
    }
    
    #include<iostream>
    #include<iomanip>
    #include<string>
    #include<windows.h>
    using namespace std;
    
    #define max 500
    
    class student
    {
    
    private:
    	
        string name;//姓名
    	long num;//学号
    	int x,y,z;//离散数学,数据结构,英语
    	int AA;//总分
    	student *next;
    	friend class cla;
    public:
    
    	void play(){cout<<name<<"学生的学号是"<<num<<",离散数学:"<<x<<",数据结构:"<<y<<",英语:"<<z<<",总分:"<<AA<<endl;};
    	student(string sname,long snum,int sx,int sy,int sz)
    	{
    		name=sname;
    		num=snum;
    		x=sx;
    		y=sy;
    		z=sz;
    	}
    };
    
    
    class cla
    {
    public:
    	cla()//构造函数
    	{
    		stu=0;
    	}
    	~cla()//析构函数
    	{
    		student *p;
    		p=stu;
    		while(p)
    		{
    			p=p->next;
    			delete stu;
    			stu=p;
    		}
    		stu=0;
    	}
    	void sadd(); //添加
    	void sremove(); //删除
    	void samend(); //修改
    	void ssearch(); //查询
    	void staxis(); //排序 .
    
    	//排序函数
    	void pxh();
    	void pAA();
    private:
    	student *stu; //头接点
    };
    
    

    展开全文
  • 学生成绩管理系统

    2019-12-12 15:40:18
    学生成绩管理系统main.cStudent_Manage_Sys.cStudent_Manage_Sys.h运行过程添加记录显示记录修改记录删除记录查找记录排序记录 main.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <...
  • 项目托管平台 ...模块代码 ...功获取页面的全部内容功能,开发时间:0.5天(小时),实现了页面的内容,实现过程是 def findInfo(findName): i=0 for info in studentList: if findName ==info['name']:...
  • 学生成绩管理系统项目

    千次阅读 2019-01-12 08:26:29
    近期完成了一项简单的对学生成绩管理系统的编写的代码,对过程中出现的一些想法和错误做一个简单的总结: 1.总体思路: 构建一个学生成绩管理系统,我们的希望实现的功能主要有:可以选择语言分为中英文,将对象...
  • C#aps.net开发的网页版学生管理系统,用到了三层架构和存储过程,代码注释很详细,很适合初学者学习使用
  • 项目托管平台地址 ...测试 请求测试 使用postman对后台api进行请求是否返回json数据,在对数据的正确性进行对比 页面展示测试 在不同分辨率的终端平台上进行测试,页面展示是否错乱。 转载于:...
  • 用java写的学生成绩管理系统,数据库用的是SQL Sever,里面包含代码和过程分析,还有界面 用java写的学生成绩管理系统,数据库用的是SQL Sever,里面包含代码和过程分析,还有界面
  • 项目托管平台地址:https://gitee.com/bgk123/XueShengChengJiGuanLi 模块测试:学生成绩的增,删,改,查 测试方法:在页面输入 其他补充说明: 无 转载于:https://www.cnblogs.com/bgk123/p/7732500.html...
  • 学生成绩管理平台,采用web页面的显示模式,使用前后端分离技术。前端(vue.js)用于数据显示,后端服务(Python)进行数据的技术 前端 使用技术 目的 iview 使用组件化布局,方便前端页面的展示 axios ...
  • MFC课程设计 --学生成绩管理系统

    万次阅读 多人点赞 2018-07-26 21:12:55
    MFC课程设计 ,C++课程设计 --学生成绩管理系统 ps:因为课设完成的过程大家都不太一样,以下的代码仅供学习一下在MFC下各个控件的用法,有问题欢迎留言讨论。     实验目的 使用MFC类库编制应用程序:按钮...
  • Python — 学生成绩管理

    千次阅读 2018-12-09 15:51:31
    Python — 学生成绩管理 摘要 本次实验要求使用python语言,读取现有的班级花名册,写入SQlite数据库,逐个显示每一个学生的学号姓名,输入其python、英语等课程的成绩,写入SQLite数据库。全部记录结束后,计算...
  • 本套课程是整个毕业设计项目-基于ASP.NET学生成绩管理系统的完整设计与实现过程,边录制边讲解的课程更有利于学生学习和理解。   基于ASP.NET学生成绩管理系统基于B/S架构,使用Visual Studio ...
  • 项目地址:... 开发模块功能: ... 2.学生成绩查询功能:三天时间,完成根据适当条件,搜索到学生的成绩信息 3.学生成绩录入功能:三天时间,将学生的各科成绩,及时录入到系统后台中...
  • 本论文叙述了我校学成绩管理的现状以及VC++6.0介绍了学生成绩管理系统的实现过程:包括系统分析、 系统调查、 数据流程分析、功能设计、 数据库设计、 系统物理配置方案、 系统实现、 系统测试和调试。本系统主要...
  • C#程序设计任务实训报告 本文描述的是基于Windows环境的学生信息管理系统主 要功能模块包括学生信查询学生信息管理学生成绩录入, 学生信息管理,主要工具Microsoft Visual Studio 2008 设计 窗体, Access建立数据库,...
  • 包含学生成绩管理系统数据库的详细设计过程
  • 学生成绩管理系统,可以运行,有源码!!!适合论文模板 本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、...
  • 【Windows Form 实战】学生成绩管理系统(八) 管理员模块设计3 视图和存储过程
  • 学生成绩管理系统数据库设计--MySQL

    万次阅读 多人点赞 2020-06-18 13:02:04
    MySQL/SQL Server 数据库设计(学生成绩管理系统) 设计大纲 1. 项目背景及需求分析 1.1 项目背景 1.2 需求分析 1.2.1 信息需求 1.2.2 功能需求 1.2.3 安全性与完整性需求 2. 概念结构设计 2.1 抽象出系统实体 2.2 ...
  • 项目托管平台地址:... 功获取页面的全部内容功能,开发时间:0.5天(小时),实现了页面的内容,实现过程是 def findInfo(findName): i=0 for info in studentList: if findName ==info['name']: ...
  • 学生成绩管理系统 一、问题描述 设计一个学生成绩管理程序,实现按班级完成对学生成绩信息的录入和修改,并用文件保存。实现按班级输出学生的成绩单;实现按学号和姓名进行查询,按平均成绩进行排序功能。 二、基本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 850
精华内容 340
关键字:

学生成绩管理过程