精华内容
下载资源
问答
  • 学生成绩查询系统

    2021-04-05 18:34:58
    如果手工输入的请保持姓名、学籍号这两个关键词不变。模板可参考系统自带的数据。 程序优点: 1.程序主体内容由本人自行编码,部分功能程序也修改了部分变量。 2.修复了网上同类程序可到数据源文件进而下载的漏洞...
  • *^_^*今天记录的项目是学生成绩查询系统,这个项目是这么回事:介绍了在Internet/WWW环境下构建学生成绩查询系统的设计思路与方法 ,阐述了在学生成绩查询系统中的JSP技术和WEB数据库技术的运用 ,描述了学生成绩查询...

    每天记录学习,每天会有好心情。*^_^*

    今天记录的项目是学生成绩查询系统,这个项目是这么回事:介绍了在Internet/WWW环境下构建学生成绩查询系统的设计思路与方法 ,阐述了在学生成绩查询系统中的JSP技术和WEB数据库技术的运用 ,描述了学生成绩查询系统的功能及各功能的具体实现。

    做这个项目的时候,我们需要用到SSM(MYECLIPSE)框架,开发工具选用最拿手的MYECLIPSE。

    学生成绩查询系统项目是一个 后台项目。

    开发系统时,需求分析是必不可少的一个环节。学生成绩查询系统拥有的登录角色包括了管理员、学生。

    每个账号设置身份、账号、密码是必不可少的,管理员、学生中都包含这些登录角色该有的字段。

    总结得出该系统所有数据为:管理员(admin)、学生(xuesheng)、成绩(chengji)

    管理员表

    字段名 | 类型 | 属性 |描述

    id| INT(11) | PRIMARY KEY |管理员id

    username| VARCHAR(255) | |账号

    password| VARCHAR(255) | | 密码

    学生表

    字段名 | 类型 | 属性 |描述

    id| INT(11) | PRIMARY KEY |学生id

    mingzi| VARCHAR(255) | |名字

    username| VARCHAR(255) | |账号

    password| VARCHAR(255) | |密码

    banji| VARCHAR(255) | |班级

    nianling| VARCHAR(255) | |年龄

    xingbie| VARCHAR(255) | | 性别

    成绩表

    字段名 | 类型 | 属性 |描述

    id| INT(11) | PRIMARY KEY |成绩id

    xuesheng| VARCHAR(255) | |学生

    xueshengid| VARCHAR(255) | |学生id

    chengji| VARCHAR(255) | |成绩

    kemu| VARCHAR(255) | | 科目

    SET FOREIGN_KEY_CHECKS=0;------------------------------

    ------------------------------

    --Table structure for ggxueshengchengji

    ------------------------------

    DROP TABLE IF EXISTS`t_admin`;CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY(`id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';------------------------------

    DROP TABLE IF EXISTS`t_xuesheng`;CREATE TABLE `t_xuesheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '学生id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`banji` VARCHAR(255) DEFAULT NULL COMMENT '班级',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',`xingbie` VARCHAR(255) DEFAULT NULL COMMENT '性别',PRIMARY KEY(`id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='学生';------------------------------

    DROP TABLE IF EXISTS`t_chengji`;CREATE TABLE `t_chengji` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '成绩id',`xuesheng` VARCHAR(255) DEFAULT NULL COMMENT '学生',`xueshengid` INT(11) DEFAULT NULL COMMENT '学生id',`chengji` VARCHAR(255) DEFAULT NULL COMMENT '成绩',`kemu` VARCHAR(255) DEFAULT NULL COMMENT '科目',PRIMARY KEY(`id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='成绩';

    添加成绩模块:

    通过添加成绩模块,可以完成成绩的添加操作。在页面中跳转到添加成绩页面,输入成绩的所有信息,点击添加操作,可以将成绩数据以post提交到chengjiController中。成绩所包含的字段信息包括学生,学生id,成绩,科目。在chengjiController中通过定义chengji接受所有的成绩参数。使用chengjidao的insert方法将chengji实体插入到数据库中。完成数据的添加操作,在chengjiMapper中匹配对应的chengjixml完成插入sql语句的执行操作。该部分核心代码如下:

    通过chengjidao的insert方法将页面传输的成绩添加到数据库中 chengjidao.insert(chengji);

    将添加成绩成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加成绩成功");

    返回成绩管理界面

    return "forward:/tianjiachengji.action";

    查询成绩模块:

    在浏览器中进入成绩查询页面时,此时浏览器的地址栏为chengjiguanli.action,该地址将响应chengjiController类中的chengjiguanli,在该方法中,通过selectByexample方法获取所有的成绩信息,并将该信息保存到request中,在页面进行循环展示。该部分核心代码如下:

    生成成绩样例类,通过example定义查询条件 ChengjiExample example = new ChengjiExample();

    通过chengjidao的selectByExample方法查询出所有的成绩信息 List chengjiall = chengjidao.selectByExample(example);

    将成绩信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("chengjiall", chengjiall);

    返回成绩管理界面

    return "forward:/chengjiguanli.action";

    修改成绩模块:

    点击修改按钮,可以跳转到成绩修改页面。在成绩修改页面中,将初始化该成绩的所有信息,并将信息一一对应填充到对应编辑栏中。编辑完成绩信息后,页面通过post方法将数据封装为一个成绩实体,传入到chengjiController中。在xiugaichengji中进行接收,接收完毕后,调用chengjiMapper中的updateByPrimaryKeySelective方法进行修改。该部分代码如下:

    通过chengjidao的修改方法根据id修改对应的成绩 chengjidao.updateByPrimaryKeySelective(chengji);

    将修改成绩成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改成绩信息成功");

    返回成绩管理界面

    return "forward:/chengjiguanli.action";

    删除成绩模块:

    在页面中通过a标签,shanchuchengji?id=将id传入到后台中,通过shanchuchengji接收成绩id。使用deleteByid的方法

    删除该成绩,完成删除操作。定义删除成功提示信息,删除成绩成功,并保存到request中,该部分代码如下:

    通过chengjidao的删除方法根据id删除对应的成绩 chengjidao.deleteByPrimaryKey(id);

    将删除成绩成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除成绩成功");

    返回成绩管理界面

    return "forward:/chengjiguanli.action";

    展开全文
  • 才子学生成绩管理系统现推出永久免费版本,无任何时间、功能限制,欢迎广大学校交流使用!如贵校感觉程序好用,请帮助共同宣传推广,谢谢! 1、学籍管理 2、成绩管理 3、作业管理(美术培训学校专用) 4、学生素质...
  • c++课设学生成绩学籍管理系统

    千次阅读 多人点赞 2017-12-17 14:02:57
    编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。 并假设编号为整数,且从1往后连续编码;姓名为字符串,性别为字符。如: 1 LiPing m 18 89 98 94 请采用binary文件形式,并使用随机读写处理方式,...

    题目要求(手打,累):设计一个类CStudent,类中包含一个学生的基本数据如下:

    编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。

    并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。如:

    1 LiPing m 18 89 98 94

    请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存储与读写处理(即是说,总按具体连续编码的编号num为"序"来对文件中各对象进行随机读写处理)。并设计该类的成员函数,而且对输出运算符"<<"进行重载,使该运算符能够完成将一个学生的信息输出到屏幕上。要求成员函数完成以下功能:

    (1) 从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。

    (2) 按编号对学生信息进行检索并将检索结果显示在屏幕上。

    (3) 按姓名对学生信息进行检索并将检索结果显示在屏幕上。

    (4) 计算某编号学生的总成绩与平均成绩。

    (5) 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。

    思考:可进一步对上述程序进行扩充,如,添加学生的基本数据(籍贯,专业,班级,其他各门成绩,奖罚记录等),并添加所需要的其他相关处理函数(如可通过咨询教学办公室管理人员后确立),进而将其编织成为一个简单而且实用的小型学籍与成绩管理软件。

    以下为代码:

     

    #include <iostream>
    #include <fstream>
    #include <cstdlib>
    #include <cstring>
    #include <iomanip>
    using namespace std;
    #define NUM 10000
    
    
    void Menu();    //菜单功能
    class CStudent
    {
        private:
            int num;    //编号
            string name;   //姓名
            char gender;    //性别
            int age;    //年龄
            double math;   //数学成绩
            double physics;    //物理成绩
            double computer;   //计算机成绩
            double english;    //外语成绩
            string major;   //专业
            string RP;  //奖罚记录
            double sum; //总成绩
            double ave; //平均成绩
        public:
            void Insert(CStudent & S);  //插入,添加
            void Dlete();  //删除
            void Numseek(); //按编号查找
            void Nameseek();    //按姓名查找
            void Grade();   //计算某个学生的平均成绩和总成绩
            void Sort(CStudent & S);    //对学生的总成绩进行排序
            void Inquire(double n, char ch); //根据输入的成绩和性别排查超过输入成绩且性别一样的同学
            void Save();    //保存数据到文件
            void Read();    //读取数据
            void Sum(){sum = math + physics + computer + english;}   //计算总成绩
            void Ave(){ave = (math + physics + computer + english) / 4;}
            void operator <<(CStudent & S)
            {
                cout << setw(5) << S.num << setw(5) << S.name << setw(5) << S.gender << setw(5) << S.age << setw(5) << S.math << setw(5) << S.physics << setw(7) << S.computer
                     << setw(5)<< S.english << setw(5) << S.major << setw(9) << S.RP << endl;
            }
    };
    static int j;
    CStudent C[NUM];
    int main()
    {
        fstream File("学生学籍与成绩管理系统.txt");
        cout << "\n\t\t^^^检查文件是否存在中^^^" << endl << endl << endl;
        if(!File)
        {
            cout << "\t\t文件不存在,请创建名为学生学籍与成绩管理系统的文档!" << endl;
            exit(1);
        }
        cout << "\t\t该文件存在,是否进入管理系统" << endl << endl << endl;
        cout << "\t\t是请按1,不是请按0" <<endl << endl << endl;
        bool n;
        cin >> n;
        if(!n)
        {
            cout << "\t\t谢谢使用!" << endl;
            File.close();
            exit(1);
        }
        File.close();
        CStudent S;
        char ch;
        while(1)
        {
            Menu();
            cin >> ch;
            switch(ch)
            {
                case '1':{S.Insert(S); break;}
                case '2':{S.Dlete(); break;}
                case '3':{S.Numseek(); break;}
                case '4':{S.Nameseek(); break;}
                case '5':{S.Grade(); break;}
                case '6':{S.Sort(S); break;}
                case '7':{double n; char ch; cout << "请输入要查询多少分以上的成绩\n"; cin >> n; cout << "请输入性别\n";
                          cin >> ch; S.Inquire(n, ch); break;}
                case '8':{S.Read(); break;}
                case '0':{exit(0);}
            }
        }
        return 0;
    }
    //---------------------------------------------------------------------------------------------------菜单功能
    void Menu()
    {
        system("cls");
        cout << "\n\t\t\t欢迎进入学生学籍与成绩管理系统" << endl << endl;
        cout << "\t\t\t按1添加数据" << endl << endl;
        cout << "\t\t\t按2删除数据" << endl << endl;
        cout << "\t\t\t按3根据编号查找学生信息" << endl << endl;
        cout << "\t\t\t按4根据姓名查找学生信息" << endl << endl;
        cout << "\t\t\t按5输入学生编号计算他的平均成绩和总成绩" << endl << endl;
        cout << "\t\t\t按6排序" << endl << endl;
        cout << "\t\t\t按7输入成绩和性别查询学生" << endl << endl;
        cout << "\t\t\t按8读取数据" << endl << endl;
        cout << "\t\t\t按0退出程序" << endl << endl;
    }
    //---------------------------------------------------------------------------------------------------插入添加
    void CStudent::Insert(CStudent & S)
    {
        while(1)
        {
            bool judge = true;
            cout << "\n\n请输入编号(1~10000):";
            cin >> S.num;
            cout << "\n请输入姓名:";
            cin >> S.name;
            for(int i = 0; i <= j; i++)
            {
                if(C[i].num == S.num || (C[i].name).compare(S.name) == 0)  //判断了编号重复和姓名重复的情况
                {
                    cout << "输入编号或姓名重复,退出添加系统" << endl;
                    system("pause");
                    judge = false;
                }
            }
            if(judge == false)
                break;
            while(1)
            {
                cout << "\n请输入性别(男:m,女:n):";
                cin >> S.gender;
                if(S.gender == 'm' || S.gender == 'n')
                    break;
                else
                    cout << "格式输入错误" << endl;
            }
            cout << "\n请输入年龄:";
            cin >> S.age;
            cout << "\n请输入数学成绩:";
            cin >> S.math;
            cout << "\n请输入物理成绩:";
            cin >> S.physics;
            cout << "\n请输入计算机成绩:";
            cin >> S.computer;
            cout << "\n请输入外语成绩:";
            cin >> S.english;
            cout << "\n请输入专业:";
            cin >> S.major;
            cout << "\n请输入奖罚记录:";
            cin >> S.RP;
            cout << "\n是否保存数据(按1保存,按0不保存):";
            char ch;
            cin >> ch;
            if(ch == '1')
            {
                C[j] = S;
                j++;
                Save();
            }
            else
            {
                cout << "数据没保存" << endl << endl;
            }
            cout << "\n是否继续添加(按1继续,按0退出添加程序)?" << endl;
            cin >> ch;
            if(ch == '0')
            break;
        }
    }
    //---------------------------------------------------------------------------------------------------删除
    void CStudent::Dlete()
    {
        while(1)
        {
            int num;
            cout << "请输入你要删除的学生的编号:";
            cin >> num;
            for(int i = 0; i < j; i++)
            {
                if(C[num-1].num == C[i].num)
                    for(int k = i; k < j; k++)
                        C[k] = C[k+1];
            }
            char ch;
            cout << "\n是否删除数据(按1删除,按0不删除):";
            cin >> ch;
            if(ch == '1')
            {
                j--;
                Save();
            }
            else
            {
                cout << "数据没删除" << endl << endl;
            }
            cout << "\n是否继续删除(按1继续,按0退出删除程序)?" << endl;
            cin >> ch;
            if(ch == '0')
                break;
        }
    }
    //---------------------------------------------------------------------------------------------------按编号查找
    void CStudent::Numseek()
    {
        while(1)
        {
            bool judge = false;
            int num;
            cout << "请输入要查找的学生的编号:";
            cin >> num;
            for(int i = 0; i < j; i++)
                if(num == C[i].num)
                {
                    cout << setw(5) << "编号" << setw(5) << "姓名" << setw(5) << "性别" << setw(5) << "年龄" << setw(5) << "数学" << setw(5) << "物理" << setw(7) << "计算机"
                         << setw(5) << "英语" << setw(5) << "专业" << setw(9) << "奖罚记录" << endl;
                    C[i] << C[i];
                    judge = true;
                }
            if(judge == false)
                cout << "你输入的学生编号不存在" << endl;
            char ch;
            cout << "是否继续查找(按1继续,按0退出查找程序)?" << endl;
            cin >> ch;
            if(ch == '0')
                break;
        }
    }
    //---------------------------------------------------------------------------------------------------按姓名查找
    void CStudent::Nameseek()
    {
        while(1)
        {
            bool judge = false;
            string name;
            cout << "请输入要查找的学生的姓名:";
            cin >> name;
            for(int i = 0; i < j; i++)
                if(name.compare(C[i].name) == 0)
                {
                    cout << setw(5) << "编号" << setw(5) << "姓名" << setw(5) << "性别" << setw(5) << "年龄" << setw(5) << "数学" << setw(5) << "物理" << setw(7) << "计算机"
                         << setw(5) << "英语" << setw(5) << "专业" << setw(9) << "奖罚记录" << endl;
                    C[i] << C[i];
                    judge = true;
                }
            if(judge == false)
                cout << "你输入的学生姓名不存在" << endl;
            char ch;
            cout << "是否继续查找(按1继续,按0退出查找程序)?" << endl;
            cin >> ch;
            if(ch == '0')
                break;
        }
    }
    //--------------------------------------------------------------------------------------------------计算学生的总成绩和平均成绩
    void CStudent::Grade()
    {
        for(int i = 0; i < j; i++)
        {
            C[i].Sum();
            C[i].Ave();
        }
        cout << "请输入学生的编号:";
        int num;
        cin >> num;
        for(int i = 0; i < j; i++)
            if(C[i].num == num)
            {
                cout << setw(5) << "编号" << setw(5) << "姓名" << setw(5) << "性别" << setw(5) << "年龄" << setw(5) << "数学" << setw(5) << "物理" << setw(7) << "计算机"
                     << setw(5)<< "英语" << setw(5) << "专业" << setw(9) << "奖罚记录" << setw(9) << "平均成绩" << setw(7) << "总成绩" << endl;
                cout << setw(5) << C[i].num << setw(5) << C[i].name << setw(5) << C[i].gender << setw(5) << C[i].age << setw(5) << C[i].math << setw(5) << C[i].physics << setw(7) << C[i].computer
                     << setw(5) << C[i].english << setw(5) << C[i].major << setw(9) << C[i].RP << setw(9) << C[i].ave << setw(7) << C[i].sum << endl;
            }
        system("pause");
    }
    //--------------------------------------------------------------------------------------------------对学生的总成绩进行排序
    void CStudent::Sort(CStudent & S)
    {
        for(int i = 0; i < j; i++)
            C[i].Sum();
        for(int i = 0; i < j; i++)
            for(int k = i+1; k < j; k++)
                if(C[k].sum > C[i].sum)
                {
                    S = C[k];
                    C[k] = C[i];
                    C[i] = S;
                }
        cout << setw(5) << "编号" << setw(5) << "姓名" << setw(5) << "性别" << setw(5) << "年龄" << setw(5) << "数学" << setw(5) << "物理" << setw(7) << "计算机"
             << setw(5)<< "英语" << setw(5) << "专业" << setw(9) << "奖罚记录" << setw(7) << "总成绩" << endl;
        for(int i = 0; i < j; i++)
            cout << setw(5) << C[i].num << setw(5) << C[i].name << setw(5) << C[i].gender << setw(5) << C[i].age << setw(5) << C[i].math << setw(5) << C[i].physics << setw(7) << C[i].computer
                 << setw(5) << C[i].english << setw(5) << C[i].major << setw(9) << C[i].RP << setw(7) << C[i].sum << endl;
        system("pause");
    }
    //---------------------------------------------------------------------------------------------------//根据输入的成绩和性别排查超过输入成绩且性别一样的同学
    void CStudent::Inquire(double n, char ch)
    {
        for(int i = 0; i < j; i++)
            C[i].Sum();
        bool judge = false;
        for(int i = 0; i < j; i++)
        {
            if(C[i].sum >= n && C[i].gender == ch)
            {
                cout << setw(5) << "编号" << setw(5) << "姓名" << setw(5) << "性别" << setw(5) << "年龄" << setw(5) << "数学" << setw(5) << "物理" << setw(7) << "计算机"
                     << setw(5) << "英语" << setw(5) << "专业" << setw(9) << "奖罚记录" << endl;
                C[i] << C[i];
                judge = true;
            }
        }
        if(judge == false)
            cout << "没有相匹配的学生" << endl;
        system("pause");
    }
    //---------------------------------------------------------------------------------------------------读取数据
    void CStudent::Read()
    {
        cout << endl << endl;
        ifstream File2("学生学籍与成绩管理系统.txt");
        static char st[81];
        while(!File2.eof())
        {
            File2.getline(st, 80);
            cout << st << endl;
        }
        File2.close();
        system("pause");
    }
    //----------------------------------------------------------------------------------------------------保存数据到文件
    void CStudent::Save()
    {
        ofstream File1("学生学籍与成绩管理系统.txt", ios::binary);  //以二进制添加的方式输入数据
        File1 << setw(5) << "编号" << setw(5) << "姓名" << setw(5) << "性别" << setw(5) << "年龄" << setw(5) << "数学" << setw(5) << "物理" << setw(7) << "计算机"
              << setw(5) << "英语" << setw(5) << "专业" << setw(9) << "奖罚记录" << endl;
        for(int i = 0; i < j; i++)
            File1 << setw(5) << C[i].num << setw(5) << C[i].name << setw(5) << C[i].gender << setw(5) << C[i].age << setw(5) << C[i].math << setw(5) << C[i].physics << setw(7) << C[i].computer
                  << setw(5) << C[i].english << setw(5) << C[i].major << setw(9) << C[i].RP << endl;
        cout << "\n\n数据已保存到文件中" << endl << endl;
        File1.close();
    }
    

     

    写的可能很乱,毕竟初学,希望大家可以多多支持!

    展开全文
  • (2)学生基本信息录入:录入信息包括学号、姓名、性别、宿舍、电话号码等。 (3)学生成绩基本信息录入:学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩。 (4)计算综合成绩:若本课程无实验...

    系统设计说明

    (1)系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能通过界面菜单命令实现各种功能(包括系统退出功能),可以设计欢迎词。
    (2)学生基本信息录入:录入信息包括学号、姓名、性别、宿舍号、电话号码等。
    (3)学生成绩基本信息录入:学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩。
    (4)计算综合成绩:若本课程无实验(如实验成绩为-1),综合成绩=平时成绩*30% +卷面成绩*70%;若本课程有实验(如实验成绩不为-1),综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%。
    (5)计算实得学分:采用等级学分制。综合成绩在90~100分之间,实得学分=学分*100%;综合成绩在80~90分之间,实得学分=学分*80%;综合成绩在70~80分之间,实得学分=学分*75%;综合成绩在60~70分之间,实得学分=学分*60%;综合成绩在60分以下,实得学分=学分*0%;
    (6)学生基本情况的查询并输出:输入一个学生的学号或姓名,可查询出此学生的基本信息并显示输出;输入一个宿舍号码,可查询出本宿舍所有学生的基本信息并显示输出。
    (7)学生成绩信息的查询并输出:输入一个学生的学号或姓名,可查询出此学生的所有课程情况。(如输出:学号,姓名,课程编号,课程姓名,综合成绩,实得学分等,并统计学生共修课程数目以及实得总学分值。)
    (8)排序(分别按综合成绩和实得学分),输出按照综合成绩(或实得学分)升序或降序排序后的学生信息以及对应的课程成绩信息(或实得学分信息)。
    (9)成绩修改:查找后修改成绩,修改后按照综合成绩重新排序,并输出学生信息和对应课程成绩和综合成绩。
    (10)成绩追加:增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出综合成绩和实得学分,增补以后重新排序,并输出新增学生信息和对应课程成绩和综合成绩。
    附加功能:
    (11)删除学生信息:删除不需要的学生对应的记录(包括姓名、学号、课程、成绩等)。
    (12)成绩(学分)分段:将学生成绩(学分)分段。
    (13)文件存储:把学生信息和对应的课程成绩信息存入到文件中。
    (14)文件输出:输出文件中的内容。
    (15)文件导入:从文件中导入数据到学籍管理系统中,然后进行管理。

    阅读顺序:从上到下
    语言:C语言

    信息说明

    3
    111 张三 女 101 138123456
    222 李四 男 101 138234567
    333 王五 女 101 138345678
    
    111
    2
    1 语文 
    91 92 93 94
    2 数学
    92 93 94 95
    222
    2
    2 数学
    84 85 86 99
    3 英语
    97 94 84 85
    333
    2
    1 语文
    84 95 97 89
    3 英语
    84 59 87 91
      
    追加:
    2
    444 赵六 男 101 456789
    2 
    1 语文
    84 95 62 84
    3 英语
    78 89 46 59
    555 胡七 女 101 567891
    2
    2 数学
    98 95 95 95 
    3 英语
    85 92 70 91 
    
    

    头文件和结构体引入

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<time.h>
    #include<conio.h>
    
    struct Course
    {
    	char cname[20];	//课程名字 
    	int cnum;	//课程编号 
    	float scores[3];	//平时成绩、实验成绩、卷面成绩 
    	float sum;	//单课程综合成绩 
    	float realmark;	//实得学分 
    	float mark;	//学分 
    }course;
    struct Stu
    {
    	char num[14]; 	//学生的学号
    	char name[14];	//学生的姓名
    	char sex[10];	//学生的性别 
    	char cls[10]; 	//学生所在班级
    	char dor[14];	//学生宿舍号
    	char phone[20];	//学生电话号码 
    	int coursesum;	//学生所修课程总数 
    	float realmarksum;	// 总学分值
    	float avemark; //平均学分值 
    	float sum;	//总 综合成绩
    	float ave; //平均综合成绩 
    	char rankm;//学生学分分段
    	char ranks; //学生成绩分段
    	struct Course course[10];
    }stu[100];			//存储学生信息的全局结构体数组 
    int stu_num = 0;		//存储学生人数
    int count;
    

    输入学生信息

    void InputInformation()//输入学生信息 
    {
    	int i,j;; 
    	printf("提示:信息之间以空格隔开。敲击回车键完成录入。\n\n");
    	printf("请输入您要录入的学生个数:");
    	scanf("%d",&stu_num);
    	putchar(10);
    	
    	for(i=0;i<stu_num;i++)
    	{
    		printf("请输入第%d位学生信息:\n",i+1);
    		printf("请输入学生的学号、姓名、性别、宿舍号、电话号码:\n");
    		scanf("%s %s %s %s %s",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].dor,&stu[i].phone);
    		putchar(10);
    	}
    	printf("【=*=---------学生信息录入完毕---------=*=】\n");
    	system("pause");
    }
    void InputScores()//输入学生成绩
    {
    	int i,j;
    	char inputnum[14];
    	int index;
    	int FindIndex_num(char str[]);
    	printf("提示:\n1.信息之间以空格隔开。\n2.若该科目没有实验成绩,请输入-1。\n\n");
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		for(i=0;i<stu_num;i++)
    		{
    			printf("请输入需要录入的学生学号:");
    			scanf("%s",&inputnum);
    			index=FindIndex_num(inputnum);
    			if(index!=-1)
    			{
    				printf("请输入该生共修课程数目:");
    				scanf("%d",&stu[index].coursesum);
    				for(j=0;j<stu[index].coursesum;j++)
    				{
    				printf("请第%d门输入课程编号和课程名字:",j+1);
    				scanf("%d %s",&stu[index].course[j].cnum,&stu[index].course[j].cname);
    				label:
    				printf("请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    				scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    				for(int k=0;k<4;k++)
    				{
    					if(stu[index].course[j].scores[k]>100||stu[index].course[j].scores[k]<0)
    					{
    						printf("--您输入的学生第%d科成绩有误,请重新输入--\n",k+1);
    						goto label;
    					}
    						
    					if(stu[index].course[j].mark>100||stu[index].course[j].mark<0) 
    					{
    						printf("--您输入的学生学分有误,请重新输入--\n");
    						goto label;
    					}
    				}
    				}
    			}
    			else 
    			{
    				printf("--学生不存在,请重新输入--\n");
    				system("pause");
    				InputScores();
    			}
    			printf("\n"); 
    			
    		} 
    		void ScoreLevelCal(int stu_sum) ;
    		void MarkLevelCal(int stu_sum) ;
    		ScoreLevelCal(stu_num);
    		MarkLevelCal(stu_num);
    		printf("【=*=---------学生成绩信息录入完毕---------=*=】\n");
    		system("pause");
    	} 
    }
    

    计算模块

    计算学生综合成绩

    void Calsum(int stu_sum)	//计算学生综合成绩 
    {
    	int i,j;
    	//若本课程有实验
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		
    		for(i=0;i<stu_sum;i++)
    		{
    			stu[i].sum=0; //学生总分初始化为 0 
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				
    				if(stu[i].course[j].scores[1]==-1)
    					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.3+stu[i].course[j].scores[2]*0.7;
    				else
    					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.15+stu[i].course[j].scores[1]*0.15+stu[i].course[j].scores[2]*0.7;
    				stu[i].sum+=stu[i].course[j].sum;
    				stu[i].ave=stu[i].sum/(float)stu[i].coursesum; //学生平均成绩 
    			}
    		}
    			
    		void ScoreLevelCal(int stu_sum) ;
    		void MarkLevelCal(int stu_sum) ;
    		ScoreLevelCal(stu_num);
    		MarkLevelCal(stu_num);
    		printf("【=*=---------学生综合成绩计算完毕---------=*=】\n");
    		system("pause");
    	}
    	
    } 
    

    计算学生实得学分

    void Calmark(int stu_sum)	//计算学生实得学分
    {
    	int i,j;
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		for(i=0;i<stu_sum;i++)
    		{
    			stu[i].realmarksum=0;
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				if(stu[i].course[j].sum>=90&&stu[i].course[j].sum<100)
    					stu[i].course[j].realmark=stu[i].course[j].mark;
    				if(stu[i].course[j].sum>=80&&stu[i].course[j].sum<90)
    					stu[i].course[j].realmark=stu[i].course[j].mark*0.8;
    				if(stu[i].course[j].sum>=70&&stu[i].course[j].sum<80)
    					stu[i].course[j].realmark=stu[i].course[j].mark*0.7;
    				if(stu[i].course[j].sum>=60&&stu[i].course[j].sum<70)
    					stu[i].course[j].realmark=stu[i].course[j].mark*0.6;
    				if(stu[i].course[j].sum>=0&&stu[i].course[j].sum<60)
    					stu[i].course[j].realmark=0.0;
    				stu[i].realmarksum+=stu[i].course[j].realmark;//实得总学分值 
    			}
    			stu[i].avemark=stu[i].realmarksum/stu[i].coursesum;//实得平均学分 
    		}
    		printf("【=*=---------学生实得学分计算完毕---------=*=】\n");
    		system("pause");
    	}
     } 
    

    查找学生信息

    根据学号查找

    int FindIndex_num(char str[])//根据学号寻找学生信息 
    {
    	int i,j;
    	int index=-1;
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].num)==0) 
    			index=i;
    	}
    	return index;
    }
    

    根据姓名查找

    int FindIndex_name(char str[])//根据姓名寻找学生信息 
    {
    	int i,j;
    	int index=-1;
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].name)==0) 
    			index=i;
    	}
    	return index;
    }
    void FindIndex_dor(char str[])//根据宿舍号码寻找学生信息
    {
    	int i;
    	
    	printf("\n【=*=------------您所查询的宿舍信息如下------------=*=】\n\n");
    	printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].dor)==0)
    		{
    			printf("%10s %10s %10s %10s %10s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dor,stu[i].phone);	
    		}
    	} 
    }
    

    判断学生是否存在

    int FindIndex_dor0(char str[])//根据宿舍号码判断学生是否存在 
    {
    	int i;
    	int index=-1;
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].dor)==0)
    		{
    			index=i;	
    		}
    	} 
    	return index;
    }
    

    学生情况的输出

    学生基本情况输出

    void OutputInformation(int stu_sum)//学生基本情况的输出 {	int i;	printf("学生的基本情况输出如下:\n");	printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");	for(i=0;i<stu_num;i++)		printf("%10s %10s %10s %10s %10s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dor,stu[i].phone); 	printf("【=*=-----------学生基本信息情况输出完毕----------=*=】\n");	system("pause");}
    

    学生成绩情况输出

    void OutputScores(int stu_sum)	//学生成绩情况输出 
    {
    	int i,j;
    	//printf("学生的成绩信息输出如下:\n");
    	
    	for(i=0;i<stu_num;i++)
    	{
    		printf("学号为%s   姓名为%s 的同学课程信息如下:\n",stu[i].num,stu[i].name);
    		for(j=0;j<stu[i].coursesum;j++)
    		{
    			printf("课程编号:%d\t课程名称:%s\n",stu[i].course[j].cnum,stu[i].course[j].cname);
    			printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[i].course[j].scores[0],stu[i].course[j].scores[1],stu[i].course[j].scores[2],stu[i].course[j].realmark,stu[i].course[j].sum);
    		}
    		printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f\n",stu[i].coursesum,stu[i].realmarksum,stu[i].sum);
    		
    		putchar(10);
    	}
    	printf("\n【=*=-----------学生成绩信息输出完毕-----------=*=】\n");
    	system("pause");
     } 
    

    输出单个学生信息

    void OutputScores_One(int index)//输出一个学生的成绩 
    {
    	int j;
    	printf("学号:%s \t姓名:%s \n",stu[index].num,stu[index].name);
    	for(j=0;j<stu[index].coursesum;j++)
    	{
    		printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    		printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    	}
    	printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f",stu[index].coursesum,stu[index].realmarksum,stu[index].sum);
    	putchar(10);
    	
    }
    

    学生情况查询

    学生基本情况查询

    void InformationSearch()//学生基本情况查询
    {
    	int i,j;
    	int choice;
    	int index;
    	char str[14];
    	
    	printf("请选择查询方式:\n学号查找请输入1  姓名查找请输入2  查找宿舍信息请输入3:") ;
    	scanf("%d",&choice);
    	
    	if(choice==1)
    	{
    		printf("请输入学生的学号:");
    		scanf("%s",&str);
    		index=FindIndex_num(str);
    		if(index!=-1) 
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    			printf("%10s %10s %10s %10s %10s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone);
    			printf("\n【=*=----------学生基本信息输出完毕----------=*=】\n\n");	
    			system("pause");
    		}
    		else 
    		{
    			printf("\n【=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			InformationSearch();
    		}
    	}
    	if(choice==2)
    	{
    		printf("请输入学生的姓名:");
    		scanf("%s",&str);
    		index=FindIndex_name(str);
    		if(index!=-1) 
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    			printf("%10s %10s %10s %10s %10s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone);
    			printf("\n【=*=----------学生基本信息输出完毕----------=*=】\n\n");
    			system("pause");
    		}
    		else 
    		{
    			printf("【\n=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			InformationSearch();
    		}
    		
    	}
    	if(choice==3)
    	{
    		printf("请输入宿舍号码:");
    		scanf("%s",&str);
    		index=FindIndex_dor0(str);
    		if(index==-1)	
    		{
    			printf("【\n=*=----------您所查找的宿舍不存在,请重新输入----------=*=】\n\n");
    			InformationSearch();
    			
    		}
    		else 
    		{
    			FindIndex_dor(str);
    			printf("\n【=*=----------学生基本信息输出完毕----------=*=】\n\n");
    			system("pause");
    		}
    		
    	 } 
    	if(choice!=1&&choice!=2&&choice!=3)
    	{
    		printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    		system("pause");
    		InformationSearch();
    	}
     } 
    

    学生成绩情况查询

    void ScoresSearch()//学生成绩情况查询
    {
    	int i,j;
    	int choice;
    	int index;
    	char str[14];
    	printf("请选择查询方式:\n学号查找请输入1  姓名查找请输入2 :") ;
    	scanf("%d",&choice);
    	
    	if(choice==1)
    	{
    		printf("请输入学生的学号:");
    		scanf("%s",&str);
    		index=FindIndex_num(str);
    		if(index!=-1) 
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("学号为%s    姓名为 %s 的同学课程信息如下:\n",stu[index].num,stu[index].name);
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    				printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    			} 
    			printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f",stu[index].coursesum,stu[index].realmarksum,stu[index].sum);
    			printf("\n\n【=*=----------学生成绩信息输出完毕----------=*=】\n");
    			system("pause");
    		}
    		else 
    		{
    			printf("\n\n【=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			ScoresSearch();
    		}	
    	}
    	if(choice==2)
    	{
    		printf("请输入学生的姓名:");
    		scanf("%s",&str);
    		index=FindIndex_name(str);
    		if(index!=-1)
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("学号为%s    姓名为 %s 的同学课程信息如下:\n",stu[index].num,stu[index].name);
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    				printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    			} 
    			printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f",stu[index].coursesum,stu[index].realmarksum,stu[index].sum);
    			printf("\n\n【=*=----------学生成绩信息输出完毕----------=*=】\n");
    			system("pause");
    		}
    		else 
    		{
    			printf("\n\n【=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			ScoresSearch();
    		}
    	}
    	if(choice!=1&&choice!=2)
    	{
    		printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    		system("pause");
    		ScoresSearch();
    	}
    	
    }
    

    成绩排序

    void SortSum_up(int stu_sum) //综合成绩升序排序 {	int i,j,k;	struct Stu temp;	struct Course t;		for (i=0;i<stu_num;i++)			for (j=i+1;j<stu_num;j++)				if (stu[i].sum > stu[j].sum)				{					temp=stu[i];	      			stu[i]=stu[j];	      			stu[j]=temp;//排序总综合成绩				}		for (i=0;i<stu_num;i++)			for (j=0;j<stu[i].coursesum;j++)				for (k=j+1;k<stu[i].coursesum;k++)				if (stu[i].course[j].sum > stu[i].course[k].sum)				{					t=stu[i].course[j];	      			stu[i].course[j]=stu[i].course[k];	      			stu[i].course[k]=t;//排序课程综合成绩				}}void SortSum_down(int stu_sum) //综合成绩降序排序 {	int i,j,k;	struct Stu temp;	struct Course t;		for (i=0;i<stu_num;i++)			for (j=i+1;j<stu_num;j++)				if (stu[i].sum < stu[j].sum)				{					temp=stu[i];	      			stu[i]=stu[j];	      			stu[j]=temp;//排序总综合成绩				}		for (i=0;i<stu_num;i++)			for (j=0;j<stu[i].coursesum;j++)				for (k=j+1;k<stu[i].coursesum;k++)				if (stu[i].course[j].sum < stu[i].course[k].sum)				{					t=stu[i].course[j];	      			stu[i].course[j]=stu[i].course[k];	      			stu[i].course[k]=t;				}}void SortRealMark_up() //实得总学分升序排序{	int i,j,k;	struct Stu temp;	struct Course t;		for (i=0;i<stu_num;i++)			for (j=i+1;j<stu_num;j++)				if (stu[i].realmarksum < stu[j].realmarksum)				{					temp=stu[i];	      			stu[i]=stu[j];	      			stu[j]=temp;//排序总综合成绩				}		for (i=0;i<stu_num;i++)			for (j=0;j<stu[i].coursesum;j++)				for (k=j+1;k<stu[i].coursesum;k++)				if (stu[i].course[j].realmark < stu[i].course[k].realmark)				{					t=stu[i].course[j];	      			stu[i].course[j]=stu[i].course[k];	      			stu[i].course[k]=t;//排序课程综合成绩				}}void SortRealMark_down() //实得总学分降序排序{	int i,j,k;	struct Stu temp;	struct Course t;		for (i=0;i<stu_num;i++)			for (j=i+1;j<stu_num;j++)				if (stu[i].realmarksum > stu[j].realmarksum)				{					temp=stu[i];	      			stu[i]=stu[j];	      			stu[j]=temp;//排序总综合成绩				}		for (i=0;i<stu_num;i++)			for (j=0;j<stu[i].coursesum;j++)				for (k=j+1;k<stu[i].coursesum;k++)				if (stu[i].course[j].realmark > stu[i].course[k].realmark)				{					t=stu[i].course[j];	      			stu[i].course[j]=stu[i].course[k];	      			stu[i].course[k]=t;//排序课程综合成绩				}}void Sort()//成绩排序 {	int i,j,k;	int choice;		if(stu_num==0)	{		printf("【=*=---------请先录入学生基本信息---------=*=】\n");		system("pause");		return ; 	}	else 	{		printf("请选择排序方式:\n按综合成绩升序请输入1  按综合成绩升序请输入2 按实得总学分值升序请输入3  按实得总学分值降序请输入4:") ;		scanf("%d",&choice);				if(choice==1||choice==2||choice==3||choice==4)		{			if(choice==1)			SortSum_up(stu_num); 					if(choice==2)				SortSum_down(stu_num); 					if(choice==3)				SortRealMark_up();							if(choice==4)				SortRealMark_down();							printf("\n【=*=----------学生成绩排序完毕  学生成绩表如下----------=*=】\n\n");			OutputScores(stu_num);		}		else 		{			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");			Sort();		}	} } 
    

    成绩修改

    void Edit()//成绩修改
    {
    	int i,j;
    	int choice;
    	int index;
    	char str[14];
    	char strc[14];
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		printf("请选择修改方式:\n学号修改请输入1  姓名修改请输入2 :") ;
    		scanf("%d",&choice);
    		if(choice==1||choice==2)
    		{	
    			if(choice==1) //学号修改 
    			{
    				printf("请输入学生的学号:");
    				scanf("%s",&str);
    				index=FindIndex_num(str);
    				if(index!=-1)
    				{
    					printf("\n您希望修改的学生信息如下:\n");
    					OutputScores_One(index);
    					printf("\n请选择修改方式: 修改全部成绩请输入3  修改一科成绩请输入4:  ");
    					scanf("%d",&choice);
    					if(choice==3||choice==4)
    					{
    						if(choice==3) //学号修改-修改全部成绩 
    						{
    							printf("\n请输入该生共修课程数目:");
    							scanf("%d",&stu[index].coursesum);
    							for(j=0;j<stu[index].coursesum;j++)
    							{
    								printf("\n请输入课程编号和课程名字:");
    								scanf("%d %s",&stu[index].course[j].cnum,&stu[index].course[j].cname);
    								printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    								scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    								Calsum(stu_num);
    								Calmark(stu_num);
    							}
    						}
    						if(choice==4) //学号修改 修改单科成绩 
    						{
    							int num; 
    							printf("请输入课程名称: ");
    							scanf("%s",&strc);
    							
    							for(j=0;j<stu[index].coursesum;j++)
    							{	
    								if(strcmp(str,stu[index].course[j].cname)==0)
    								{
    									printf("您所寻找的学生课程情况如下:\n");
    									printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    									printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    									printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    									scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    									Calsum(stu_num);
    									Calmark(stu_num);
    								} 
    								//break;
    							}	
    					 	} 
    					}
    					else 
    					{
    						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    						system("pause");
    						Edit();
    					}
    				}
    				
    				 printf("【=*=----------学生信息修改完毕----------=*=】\n");
    				 system("pause");
    			}
    			if(choice==2) //姓名修改 
    			{
    				printf("请输入学生的姓名:");
    				scanf("%s",&str);
    				index=FindIndex_name(str);
    				if(index!=-1)
    				{  
    					printf("\n您希望修改的学生信息如下:\n");
    					OutputScores_One(index);
    					printf("\n请选择修改方式:修改全部成绩请输入5  修改一科成绩请输入6: ");
    					scanf("%d",&choice);
    					if(choice==5||choice==6)
    					{
    						if(choice==5) //姓名修改-修改全部成绩 
    						{
    							printf("请输入该生共修课程数目:");
    							scanf("%d",&stu[index].coursesum);
    							for(j=0;j<stu[index].coursesum;j++)
    							{
    								printf("\n请输入课程编号和课程名字:");
    								scanf("%d %s",&stu[index].course[j].cnum,&stu[index].course[j].cname);
    								printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    								scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    								Calsum(stu_num);
    								Calmark(stu_num);
    							} 
    						}
    						if(choice==6) //姓名修改-修改单科成绩 
    						{
    							int num; 
    							printf("请输入课程名称: ");
    							scanf("%s",&strc);
    							
    							for(j=0;j<stu[index].coursesum;j++)
    							{
    								if(strcmp(strc,stu[index].course[j].cname)==0)
    								{
    									printf("您所寻找的学生课程情况如下:\n");
    									printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    									printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    									printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    									scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    									Calsum(stu_num);
    									Calmark(stu_num); 
    								} 
    								//break;
    							}
    					 	}
    					} 
    					else 
    					{
    						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    						system("pause");
    						Edit();
    					}
    				}
    			}
    			printf("\n\n【=*=----------学生信息修改完毕----------=*=】\n");
    			printf("\n\n【=*=----------修改后该生成绩如下----------=*=】\n\n");
    			OutputScores_One(index);
    			//else printf("您输入选项有误,请重新输入。\n"); //返回菜单
    			printf("\n\n【=*=----------修改后所有学生综合成绩降序排列如下----------=*=】\n");  
    			SortSum_down(stu_num);//成绩修改后按照综合成绩降序排序 
    			OutputScores(stu_num);
    		}
    		else
    		{
    			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    			Edit();
    		}
    	}
    	
     } 
    

    成绩追加

    void Add() // 成绩追加{	int ad;	int i,j;		if(stu_num==0)	{		printf("【=*=---------请先录入学生基本信息---------=*=】\n");		system("pause");		return ; 	}	else	{		printf("请输入您要追加的学生人数: ");		scanf("%d",&ad);		for(i=stu_num;i<stu_num+ad;i++)		{			printf("\n请输入第%d位学生信息:\n",i+1);			printf("请输入学生的学号、姓名、性别、宿舍号、电话号码:");			scanf("%s %s %s %s %s",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].dor,&stu[i].phone);			printf("第%d位学生信息录入完毕,请录入学生成绩信息:\n",i+1);						printf("请输入该生共修课程数目:");			scanf("%d",&stu[i].coursesum);			for(j=0;j<stu[i].coursesum;j++)			{			printf("请输入课程编号和课程名字:");			scanf("%d %s",&stu[i].course[j].cnum,&stu[i].course[j].cname);			printf("请输入学生的平时成绩、实验成绩、卷面成绩、学分:");			scanf("%f %f %f %f",&stu[i].course[j].scores[0],&stu[i].course[j].scores[1],&stu[i].course[j].scores[2],&stu[i].course[j].mark);						if(stu[i].course[j].scores[1]==-1)					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.3+stu[i].course[j].scores[2]*0.7;			else					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.15+stu[i].course[j].scores[1]*0.15+stu[i].course[j].scores[2]*0.7;				stu[i].sum+=stu[i].course[j].sum;				stu[i].ave=stu[i].sum/(float)stu[i].coursesum; //学生平均成绩 			}			void CalmarkOne(int i);			CalmarkOne(i); 		}		printf("\n【=*=---------补录学生信息录入完毕---------=*=】\n\n");				//stu_num=stu_num+ad;		void MarkLevelCal(int stu_sum);		void ScoreLevelCal(int stu_sum);		ScoreLevelCal(stu_num+ad);		MarkLevelCal(stu_num+ad);				printf("【=*=-----------新增学生信息情况如下-----------=*=】\n\n");		for(i=stu_num;i<stu_num+ad;i++)		{			printf("学号:%s   姓名:%s\n",stu[i].num,stu[i].name);			for(j=0;j<stu[i].coursesum;j++)			{				printf("课程编号:%d\t课程名称:%s\n",stu[i].course[j].cnum,stu[i].course[j].cname);				printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[i].course[j].scores[0],stu[i].course[j].scores[1],stu[i].course[j].scores[2],stu[i].course[j].realmark,stu[i].course[j].sum);			}			printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f\n",stu[i].coursesum,stu[i].realmarksum,stu[i].sum);			putchar(10);		}		stu_num+=ad;				SortSum_down(stu_num);//成绩修改后按照综合成绩降序排序 		printf("\n\n【=*=----------增添信息后,所有学生综合成绩降序排序如下----------=*=】\n\n");		OutputScores(stu_num);	}	 } 
    

    信息删除

    void Delete() //删除学生信息{	int choice;	char str[20];	int index;	int i;	char ch;		if(stu_num==0)	{		printf("【=*=---------请先录入学生基本信息---------=*=】\n");		system("pause");		return ; 	}	else	{		printf("请选择删除方式: 通过学号删除请输入1,通过姓名删除请选择2:");		scanf("%d",&choice);		if(choice==1||choice==2)		{			if(choice==1)			{				printf("请输入学生学号:");				scanf("%s",&str);				index=FindIndex_num(str);				if(index!=-1)				{					printf("学生信息如下:\n");					printf("%8s %8s %8s %8s %8s\n","学号","姓名","性别","宿舍号","电话号码");					printf("%8s %8s %8s %8s %8s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone); 					getchar();					printf("输入Y或y删除学生信息,如果信息输入有误请输入N或n: ");					ch=getchar();					if(ch=='Y'||ch=='y')					{						for(i=index;i<stu_num;i++)						{							stu[i]=stu[i+1];						}						printf("\n学生信息删除成功!\n"); 						stu_num-=1;						SortSum_down(stu_num);//删除成绩后成绩重新排序 						printf("\n【=*=--------删除后所有学生按综合成绩降序排列如下----------=*=】\n\n");						OutputScores(stu_num);//查看删除后的所有学生成绩 						putchar(10); 					}					else if(ch=='N'||ch=='n')						Delete(); 					else 					{						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");						Delete();					}				}				else				{					printf("\n【=*=------学生不存在,请重新输入-------=*=】\n\n");					Delete();				}			}			if(choice==2)			{				printf("请输入学生姓名:");				scanf("%s",&str);				index=FindIndex_name(str);				if(index!=-1)				{					printf("学生信息如下:\n");					printf("%8s %8s %8s %8s %8s\n","学号","姓名","性别","宿舍号","电话号码");					printf("%8s %8s %8s %8s %8s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone); 					getchar();					printf("输入Y或y删除学生信息,如果信息输入有误请输入N或n: ");					ch=getchar();					if(ch=='Y'||ch=='y')					{						for(i=index;i<stu_num;i++)						{							stu[i]=stu[i+1];						}						printf("\n学生信息删除成功!\n"); 						stu_num-=1;						SortSum_down(stu_num);//删除成绩后成绩重新排序 						printf("\n【=*=--------删除后所有学生按综合成绩降序排列如下----------=*=】\n\n");						OutputScores(stu_num);//查看删除后的所有学生成绩 						putchar(10);					}					else if(ch=='N'||ch=='n')						Delete(); 					else 					{						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");						Delete();					}				 } 				else				{					printf("\n【=*=------学生不存在,请重新输入------=*=】\n\n");					Delete();				}			}					}		else 		{			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");			system("pause");			Delete();		}		}	 } 
    

    学生分段

    void ScoreLevelCal(int stu_sum) //计算成绩分段 
    {
    	int i,j;
    	 for(i=0;i<stu_sum;i++)
    	 {
    	 	if(stu[i].ave>=90.0&&stu[i].ave<=100.0)		stu[i].ranks='A';
    	 	else if(stu[i].ave>=80.0&&stu[i].ave<90.0)		stu[i].ranks='B';
    	 	else if(stu[i].ave>=70.0&&stu[i].ave<80.0)		stu[i].ranks='C';
    	 	else if(stu[i].ave>=60.0&&stu[i].ave<70.0)		stu[i].ranks='D';
    	 	else stu[i].ranks='E';
    	 }
    	 
    }
    void MarkLevelCal(int stu_sum) //计算学分分段 
    {
    	int i,j;
    	 for(i=0;i<stu_sum;i++)
    	 {
    	 	if(stu[i].avemark>=90.0&&stu[i].avemark<=100.0)		stu[i].rankm='A';
    	 	else if(stu[i].avemark>=80.0&&stu[i].avemark<90.0)		stu[i].rankm='B';
    	 	else if(stu[i].avemark>=70.0&&stu[i].avemark<80.0)		stu[i].rankm='C';
    	 	else if(stu[i].avemark>=60.0&&stu[i].avemark<70.0)		stu[i].rankm='D';
    	 	else stu[i].rankm='E';
    	 }
    	 
    }
    void MarkLevel(int stu_sum)//学分分段
    {
    	MarkLevelCal(stu_num);
    	int i,j;
    	int flag=0;
    	
    	printf("%10s%15s%15s\n\n","学号","姓名","平均学分");
    	printf("--------------*****A*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='A')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****B*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='B')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****C*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='C')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****D*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='D')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****E*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='E')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	
    	printf("\n【=*=----------学生成绩信息分段完毕----------=*=】\n");
    	system("pause");
     } 
    void ScoreLevel(int stu_sum)//分数分段
    { 
    	ScoreLevelCal(stu_num);
    	int i,j;
    	int flag;
    	char ch;
    	printf("%10s%15s%15s\n\n","学号","姓名","平均综合分数");
    	
    	printf("--------------*****A*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='A')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****B*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='B')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****C*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='C')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****D*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='D')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****E*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='E')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    
    	printf("\n【=*=----------学生成绩信息分段完毕----------=*=】\n");
    	system("pause");
     } 
    void Level() //成绩分段 
    {
    	int choice;
    	
    	ScoreLevelCal(stu_num);
    	MarkLevelCal(stu_num);
    	 if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		printf("请选择分段方式:输入1按学分分段,输入2按综合成绩分段:");
    		scanf("%d",&choice);
    		if(choice==1)	{MarkLevel(stu_num);} 
    		else if(choice==2)	{ScoreLevel(stu_num);} 
    		
    		else
    		{
    			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    			Level();
    		}
    	}
    
     } 
    

    成绩分段

    信息分段

    计算综合成绩

    void CalsumOne(int i)	//计算一个学生综合成绩 
    {
    	int j;
    	//若本课程有实验
    		for(j=0;j<stu[i].coursesum;j++)
    		{
    			if(stu[i].course[j].scores[1]==-1)
    				stu[i].course[j].sum = stu[i].course[j].scores[0]*0.3+stu[i].course[j].scores[2]*0.7;
    			else
    				stu[i].course[j].sum = stu[i].course[j].scores[0]*0.15+stu[i].course[j].scores[1]*0.15+stu[i].course[j].scores[2]*0.7;
    			stu[i].sum+=stu[i].course[j].sum;
    			stu[i].ave=stu[i].sum/(float)stu[i].coursesum; //学生平均成绩 
    		}
    	system("pause");
    } 
    void CalmarkOne(int i)
    {
    	int j;
    	for(j=0;j<stu[i].coursesum;j++)
    		{
    			if(stu[i].course[j].sum>=90&&stu[i].course[j].sum<100)
    				stu[i].course[j].realmark=stu[i].course[j].mark;
    			if(stu[i].course[j].sum>=80&&stu[i].course[j].sum<90)
    				stu[i].course[j].realmark=stu[i].course[j].mark*0.8;
    			if(stu[i].course[j].sum>=70&&stu[i].course[j].sum<80)
    				stu[i].course[j].realmark=stu[i].course[j].mark*0.7;
    			if(stu[i].course[j].sum>=60&&stu[i].course[j].sum<70)
    				stu[i].course[j].realmark=stu[i].course[j].mark*0.6;
    			if(stu[i].course[j].sum>=0&&stu[i].course[j].sum<60)
    				stu[i].course[j].realmark=0.0;
    			stu[i].realmarksum+=stu[i].course[j].realmark;//实得总学分值 
    		}
    		stu[i].avemark=stu[i].realmarksum/stu[i].coursesum;//实得平均学分
    }
    

    文件输出

    void Read() //文件输出 
    {
    	FILE *fp;
    	int i,j;
    	char filename[30];
    	printf("请输入文件名称:");
    	scanf("%s",&filename); 
    	
    	if((fp=fopen(filename,"rb"))==NULL)
    	{ //fopen 指定读写方式为二进制写方式 
    	//未指定文件路径,从源文件所在目录创建 
    		printf("文件打开失败\n");
    		exit(0);
    	}
    	fp=fopen(filename,"rb");
    	
    	for(i=0; fread(&stu[i], sizeof(struct Stu), 1, fp)!=0; i++)
    	{
    		stu_num++;
    	}
    	
    	printf("\n【=*=-----------文件中信息如下----------=*=】\n\n");
    	for(i=0;i<stu_num;i++)
    	{
    		fread( &stu[i] , sizeof(Stu) ,1, fp );
    		printf("学号:%s 姓名:%s 性别:%s 宿舍号:%s 电话号码:%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dor,stu[i].phone); 
    		for(j=0;j<stu[i].coursesum;j++) 
    		{
    			printf("课程编号:%d\t课程名称:%s\n",stu[i].course[j].cnum,stu[i].course[j].cname);
    			printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[i].course[j].scores[0],stu[i].course[j].scores[1],stu[i].course[j].scores[2],stu[i].course[j].realmark,stu[i].course[j].sum);
    		}
    		printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f\n\n",stu[i].coursesum,stu[i].realmarksum,stu[i].sum);
    	}
    
    	fclose(fp);
    	system("pause");
    }
    

    文件储存

    void Storage()//文件储存 
    {
    	char filename[30];
    	printf("请输入文件名称:");
    	scanf("%s",&filename); 
    	
    	FILE *fp;
    	int  i;
    	if((fp=fopen(filename,"w"))==NULL)
    	{
    		printf("文件打开错误!\n");
    		return;
    	}
    	for(i=0; i<stu_num; i++)
    	{
    		fwrite(&stu[i], sizeof(struct Stu), 1, fp);
    	}
    	fclose(fp);
    	printf("\n【=*=----------文件储存成功----------=*=】\n") ;
    	system("pause");
    }
    

    文件导入

    void Into()//文件导入 
    {
    	char filename[30];
    	printf("请输入文件名称:");
    	scanf("%s",&filename); 
    	
    	int i;
    	FILE *fp;
    	if((fp=fopen(filename,"r"))==NULL)
    	{
    		printf("文件不能打开!\n");
    		return;
    	}
    	for(i=0; fread(&stu[i], sizeof(struct Stu), 1, fp)!=0; i++)
    	{
    		stu_num++;
    	}
    	fclose(fp);
    	printf("\n【=*=----------文件导入成功----------=*=】\n") ;
    	system("pause");
    }
    

    主界面

    void Page()
    {
    		int choice;
    	   time_t rawtime;
           struct tm * timeinfo;
           time ( &rawtime );
           timeinfo = localtime ( &rawtime );
           system("cls");           /*运行前清屏*/           
           printf("\n");
           printf("\t===============学生*=*=*=*=*=*=*信息*=*=*=*=*=*=*管理=*=*=*=*=*=*=*系统===============\n\n");
    	   printf ( "\t\t\t      当前系统时间:%4d年%02d月%02d日 %02d:%02d:%02d\n",1900+timeinfo->tm_year, 
    		   1+timeinfo->tm_mon,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
           printf("\t*==*==*==*==*==*------------------------------------------------------*==*==*==*==*==*\n");
           printf("\n\t |***| (1)学生信息录入\t\t|***| (2)学生成绩录入\t\t|***| (3)综合成绩计算\n\n");
    	   printf("\t |===| (4)实得学分计算\t\t|===| (5)基本信息查询\t\t|===| (6)成绩信息查询\n\n");
    	   printf("\t |=*=| (7)学生成绩排序\t\t|=*=| (8)学生成绩修改\t\t|=*=| (9)学生成绩追加\n\n");
    	   printf("\t |===| (10)删除学生信息\t\t|===| (11)学生成绩分段   \t|===| (12)相关文件储存\n\n");
    	   printf("\t |=*=| (13)相关文件输出\t\t|=*=| (14)相关文件导入   \t|=*=| (0)退出系统\n\n");
    	   putchar(10);
    	   printf("\t*==*==*==*==*==*------------------------------------------------------*==*==*==*==*==*\n");
           printf("\t请选择操作序号(0-14):"); 
           scanf("%d",&choice);
           
           switch(choice)
    	{
    		case 1:system("cls");InputInformation();Page(); 
    		case 2:system("cls");InputScores();Page();
    		case 3:system("cls");Calsum(stu_num);Page();
    		case 4:system("cls");Calmark(stu_num);Page();
    		case 5:system("cls");InformationSearch();Page();
    		case 6:system("cls");ScoresSearch();Page();
    		case 7:system("cls");Sort();Page();
    		case 8:system("cls");Edit();Page();
    		case 9:system("cls");Add(); Page();
    		case 10:system("cls");Delete(); Page();
    		case 11:system("cls");Level(); Page();
    		case 12:system("cls");Storage();Page;
    		case 13:system("cls");Read();Page();
    		case 14:system("cls");Into();Page();
    		case 0: printf("\n\t【=*=----------您已成功退出系统----------=*=】\n");exit(0);
    		default: printf("\t--您所输入的操作有误,请重新输入--\n\n");system("pause"); Page();
    	}
    }
    

    主函数

    int main()
    {
    	Page();
    	
    	return 0;
    } 
    

    完整代码实现

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<time.h>
    #include<conio.h>
    
    struct Course
    {
    	char cname[20];	//课程名字 
    	int cnum;	//课程编号 
    	float scores[3];	//平时成绩、实验成绩、卷面成绩 
    	float sum;	//单课程综合成绩 
    	float realmark;	//实得学分 
    	float mark;	//学分 
    }course;
    struct Stu
    {
    	char num[14]; 	//学生的学号
    	char name[14];	//学生的姓名
    	char sex[10];	//学生的性别 
    	char cls[10]; 	//学生所在班级
    	char dor[14];	//学生宿舍号
    	char phone[20];	//学生电话号码 
    	int coursesum;	//学生所修课程总数 
    	float realmarksum;	// 总学分值
    	float avemark; //平均学分值 
    	float sum;	//总 综合成绩
    	float ave; //平均综合成绩 
    	char rankm;//学生学分分段
    	char ranks; //学生成绩分段
    	struct Course course[10];
    }stu[100];			//存储学生信息的全局结构体数组 
    int stu_num = 0;		//存储学生人数
    int count;
    
    void InputInformation()//输入学生信息 
    {
    	int i,j;; 
    	printf("提示:信息之间以空格隔开。敲击回车键完成录入。\n\n");
    	printf("请输入您要录入的学生个数:");
    	scanf("%d",&stu_num);
    	putchar(10);
    	
    	for(i=0;i<stu_num;i++)
    	{
    		printf("请输入第%d位学生信息:\n",i+1);
    		printf("请输入学生的学号、姓名、性别、宿舍号、电话号码:\n");
    		scanf("%s %s %s %s %s",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].dor,&stu[i].phone);
    		putchar(10);
    	}
    	printf("【=*=---------学生信息录入完毕---------=*=】\n");
    	system("pause");
    }
    void InputScores()//输入学生成绩
    {
    	int i,j;
    	char inputnum[14];
    	int index;
    	int FindIndex_num(char str[]);
    	printf("提示:\n1.信息之间以空格隔开。\n2.若该科目没有实验成绩,请输入-1。\n\n");
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		for(i=0;i<stu_num;i++)
    		{
    			printf("请输入需要录入的学生学号:");
    			scanf("%s",&inputnum);
    			index=FindIndex_num(inputnum);
    			if(index!=-1)
    			{
    				printf("请输入该生共修课程数目:");
    				scanf("%d",&stu[index].coursesum);
    				for(j=0;j<stu[index].coursesum;j++)
    				{
    				printf("请第%d门输入课程编号和课程名字:",j+1);
    				scanf("%d %s",&stu[index].course[j].cnum,&stu[index].course[j].cname);
    				label:
    				printf("请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    				scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    				for(int k=0;k<4;k++)
    				{
    					if(stu[index].course[j].scores[k]>100||stu[index].course[j].scores[k]<0)
    					{
    						printf("--您输入的学生第%d科成绩有误,请重新输入--\n",k+1);
    						goto label;
    					}
    						
    					if(stu[index].course[j].mark>100||stu[index].course[j].mark<0) 
    					{
    						printf("--您输入的学生学分有误,请重新输入--\n");
    						goto label;
    					}
    				}
    				}
    			}
    			else 
    			{
    				printf("--学生不存在,请重新输入--\n");
    				system("pause");
    				InputScores();
    			}
    			printf("\n"); 
    			
    		} 
    		void ScoreLevelCal(int stu_sum) ;
    		void MarkLevelCal(int stu_sum) ;
    		ScoreLevelCal(stu_num);
    		MarkLevelCal(stu_num);
    		printf("【=*=---------学生成绩信息录入完毕---------=*=】\n");
    		system("pause");
    	} 
    	
    }
    void Calsum(int stu_sum)	//计算学生综合成绩 
    {
    	int i,j;
    	//若本课程有实验
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		
    		for(i=0;i<stu_sum;i++)
    		{
    			stu[i].sum=0; //学生总分初始化为 0 
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				
    				if(stu[i].course[j].scores[1]==-1)
    					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.3+stu[i].course[j].scores[2]*0.7;
    				else
    					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.15+stu[i].course[j].scores[1]*0.15+stu[i].course[j].scores[2]*0.7;
    				stu[i].sum+=stu[i].course[j].sum;
    				stu[i].ave=stu[i].sum/(float)stu[i].coursesum; //学生平均成绩 
    			}
    		}
    			
    		void ScoreLevelCal(int stu_sum) ;
    		void MarkLevelCal(int stu_sum) ;
    		ScoreLevelCal(stu_num);
    		MarkLevelCal(stu_num);
    		printf("【=*=---------学生综合成绩计算完毕---------=*=】\n");
    		system("pause");
    	}
    	
    } 
    void Calmark(int stu_sum)	//计算学生实得学分
    {
    	int i,j;
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		for(i=0;i<stu_sum;i++)
    		{
    			stu[i].realmarksum=0;
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				if(stu[i].course[j].sum>=90&&stu[i].course[j].sum<100)
    					stu[i].course[j].realmark=stu[i].course[j].mark;
    				if(stu[i].course[j].sum>=80&&stu[i].course[j].sum<90)
    					stu[i].course[j].realmark=stu[i].course[j].mark*0.8;
    				if(stu[i].course[j].sum>=70&&stu[i].course[j].sum<80)
    					stu[i].course[j].realmark=stu[i].course[j].mark*0.7;
    				if(stu[i].course[j].sum>=60&&stu[i].course[j].sum<70)
    					stu[i].course[j].realmark=stu[i].course[j].mark*0.6;
    				if(stu[i].course[j].sum>=0&&stu[i].course[j].sum<60)
    					stu[i].course[j].realmark=0.0;
    				stu[i].realmarksum+=stu[i].course[j].realmark;//实得总学分值 
    			}
    			stu[i].avemark=stu[i].realmarksum/stu[i].coursesum;//实得平均学分 
    		}
    		printf("【=*=---------学生实得学分计算完毕---------=*=】\n");
    		system("pause");
    	}
    	 
     } 
    int FindIndex_num(char str[])//根据学号寻找学生信息 
    {
    	int i,j;
    	int index=-1;
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].num)==0) 
    			index=i;
    	}
    	return index;
    }
    int FindIndex_name(char str[])//根据姓名寻找学生信息 
    {
    	int i,j;
    	int index=-1;
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].name)==0) 
    			index=i;
    	}
    	return index;
    }
    void FindIndex_dor(char str[])//根据宿舍号码寻找学生信息
    {
    	int i;
    	
    	printf("\n【=*=------------您所查询的宿舍信息如下------------=*=】\n\n");
    	printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].dor)==0)
    		{
    			printf("%10s %10s %10s %10s %10s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dor,stu[i].phone);	
    		}
    	} 
    }
    int FindIndex_dor0(char str[])//根据宿舍号码判断学生是否存在 
    {
    	int i;
    	int index=-1;
    	
    	for(i=0;i<stu_num;i++)
    	{
    		if(strcmp(str,stu[i].dor)==0)
    		{
    			index=i;	
    		}
    	} 
    	return index;
    }
    void OutputInformation(int stu_sum)//学生基本情况的输出 
    {
    	int i;
    	printf("学生的基本情况输出如下:\n");
    	printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    	for(i=0;i<stu_num;i++)
    		printf("%10s %10s %10s %10s %10s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dor,stu[i].phone); 
    	printf("【=*=-----------学生基本信息情况输出完毕----------=*=】\n");
    	system("pause");
    }
    void OutputScores(int stu_sum)	//学生成绩情况输出 
    {
    	int i,j;
    	//printf("学生的成绩信息输出如下:\n");
    	
    	for(i=0;i<stu_num;i++)
    	{
    		printf("学号为%s   姓名为%s 的同学课程信息如下:\n",stu[i].num,stu[i].name);
    		for(j=0;j<stu[i].coursesum;j++)
    		{
    			printf("课程编号:%d\t课程名称:%s\n",stu[i].course[j].cnum,stu[i].course[j].cname);
    			printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[i].course[j].scores[0],stu[i].course[j].scores[1],stu[i].course[j].scores[2],stu[i].course[j].realmark,stu[i].course[j].sum);
    		}
    		printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f\n",stu[i].coursesum,stu[i].realmarksum,stu[i].sum);
    		
    		putchar(10);
    	}
    	printf("\n【=*=-----------学生成绩信息输出完毕-----------=*=】\n");
    	system("pause");
     } 
    void OutputScores_One(int index)//输出一个学生的成绩 
    {
    	int j;
    	printf("学号:%s \t姓名:%s \n",stu[index].num,stu[index].name);
    	for(j=0;j<stu[index].coursesum;j++)
    	{
    		printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    		printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    	}
    	printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f",stu[index].coursesum,stu[index].realmarksum,stu[index].sum);
    	putchar(10);
    	
    }
    void InformationSearch()//学生基本情况查询
    {
    	int i,j;
    	int choice;
    	int index;
    	char str[14];
    	
    	printf("请选择查询方式:\n学号查找请输入1  姓名查找请输入2  查找宿舍信息请输入3:") ;
    	scanf("%d",&choice);
    	
    	if(choice==1)
    	{
    		printf("请输入学生的学号:");
    		scanf("%s",&str);
    		index=FindIndex_num(str);
    		if(index!=-1) 
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    			printf("%10s %10s %10s %10s %10s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone);
    			printf("\n【=*=----------学生基本信息输出完毕----------=*=】\n\n");	
    			system("pause");
    		}
    		else 
    		{
    			printf("\n【=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			InformationSearch();
    		}
    	}
    	if(choice==2)
    	{
    		printf("请输入学生的姓名:");
    		scanf("%s",&str);
    		index=FindIndex_name(str);
    		if(index!=-1) 
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("%10s %10s %10s %10s %10s\n","学号","姓名","性别","宿舍号","电话号码");
    			printf("%10s %10s %10s %10s %10s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone);
    			printf("\n【=*=----------学生基本信息输出完毕----------=*=】\n\n");
    			system("pause");
    		}
    		else 
    		{
    			printf("【\n=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			InformationSearch();
    		}
    		
    	}
    	if(choice==3)
    	{
    		printf("请输入宿舍号码:");
    		scanf("%s",&str);
    		index=FindIndex_dor0(str);
    		if(index==-1)	
    		{
    			printf("【\n=*=----------您所查找的宿舍不存在,请重新输入----------=*=】\n\n");
    			InformationSearch();
    			
    		}
    		else 
    		{
    			FindIndex_dor(str);
    			printf("\n【=*=----------学生基本信息输出完毕----------=*=】\n\n");
    			system("pause");
    		}
    		
    	 } 
    	if(choice!=1&&choice!=2&&choice!=3)
    	{
    		printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    		system("pause");
    		InformationSearch();
    	}
     } 
    void ScoresSearch()//学生成绩情况查询
    {
    	int i,j;
    	int choice;
    	int index;
    	char str[14];
    	printf("请选择查询方式:\n学号查找请输入1  姓名查找请输入2 :") ;
    	scanf("%d",&choice);
    	
    	if(choice==1)
    	{
    		printf("请输入学生的学号:");
    		scanf("%s",&str);
    		index=FindIndex_num(str);
    		if(index!=-1) 
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("学号为%s    姓名为 %s 的同学课程信息如下:\n",stu[index].num,stu[index].name);
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    				printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    			} 
    			printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f",stu[index].coursesum,stu[index].realmarksum,stu[index].sum);
    			printf("\n\n【=*=----------学生成绩信息输出完毕----------=*=】\n");
    			system("pause");
    		}
    		else 
    		{
    			printf("\n\n【=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			ScoresSearch();
    		}	
    	}
    	if(choice==2)
    	{
    		printf("请输入学生的姓名:");
    		scanf("%s",&str);
    		index=FindIndex_name(str);
    		if(index!=-1)
    		{
    			printf("\n【=*=----------您所寻找学生信息如下----------=*=】\n\n");
    			printf("学号为%s    姓名为 %s 的同学课程信息如下:\n",stu[index].num,stu[index].name);
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    				printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    			} 
    			printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f",stu[index].coursesum,stu[index].realmarksum,stu[index].sum);
    			printf("\n\n【=*=----------学生成绩信息输出完毕----------=*=】\n");
    			system("pause");
    		}
    		else 
    		{
    			printf("\n\n【=*=----------您所查找的学生不存在,请重新输入----------=*=】\n\n");
    			ScoresSearch();
    		}
    	}
    	if(choice!=1&&choice!=2)
    	{
    		printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    		system("pause");
    		ScoresSearch();
    	}
    	
    }
    void SortSum_up(int stu_sum) //综合成绩升序排序 
    {
    	int i,j,k;
    	struct Stu temp;
    	struct Course t;
    	
    	for (i=0;i<stu_num;i++)
    			for (j=i+1;j<stu_num;j++)
    				if (stu[i].sum > stu[j].sum)
    				{
    					temp=stu[i];
    	      			stu[i]=stu[j];
    	      			stu[j]=temp;//排序总综合成绩
    				}
    		for (i=0;i<stu_num;i++)
    			for (j=0;j<stu[i].coursesum;j++)
    				for (k=j+1;k<stu[i].coursesum;k++)
    				if (stu[i].course[j].sum > stu[i].course[k].sum)
    				{
    					t=stu[i].course[j];
    	      			stu[i].course[j]=stu[i].course[k];
    	      			stu[i].course[k]=t;//排序课程综合成绩
    				}
    }
    void SortSum_down(int stu_sum) //综合成绩降序排序 
    {
    	int i,j,k;
    	struct Stu temp;
    	struct Course t;
    	
    	for (i=0;i<stu_num;i++)
    			for (j=i+1;j<stu_num;j++)
    				if (stu[i].sum < stu[j].sum)
    				{
    					temp=stu[i];
    	      			stu[i]=stu[j];
    	      			stu[j]=temp;//排序总综合成绩
    				}
    		for (i=0;i<stu_num;i++)
    			for (j=0;j<stu[i].coursesum;j++)
    				for (k=j+1;k<stu[i].coursesum;k++)
    				if (stu[i].course[j].sum < stu[i].course[k].sum)
    				{
    					t=stu[i].course[j];
    	      			stu[i].course[j]=stu[i].course[k];
    	      			stu[i].course[k]=t;
    				}
    }
    void SortRealMark_up() //实得总学分升序排序
    {
    	int i,j,k;
    	struct Stu temp;
    	struct Course t;
    	
    	for (i=0;i<stu_num;i++)
    			for (j=i+1;j<stu_num;j++)
    				if (stu[i].realmarksum < stu[j].realmarksum)
    				{
    					temp=stu[i];
    	      			stu[i]=stu[j];
    	      			stu[j]=temp;//排序总综合成绩
    				}
    		for (i=0;i<stu_num;i++)
    			for (j=0;j<stu[i].coursesum;j++)
    				for (k=j+1;k<stu[i].coursesum;k++)
    				if (stu[i].course[j].realmark < stu[i].course[k].realmark)
    				{
    					t=stu[i].course[j];
    	      			stu[i].course[j]=stu[i].course[k];
    	      			stu[i].course[k]=t;//排序课程综合成绩
    				}
    }
    void SortRealMark_down() //实得总学分降序排序
    {
    	int i,j,k;
    	struct Stu temp;
    	struct Course t;
    	
    	for (i=0;i<stu_num;i++)
    			for (j=i+1;j<stu_num;j++)
    				if (stu[i].realmarksum > stu[j].realmarksum)
    				{
    					temp=stu[i];
    	      			stu[i]=stu[j];
    	      			stu[j]=temp;//排序总综合成绩
    				}
    		for (i=0;i<stu_num;i++)
    			for (j=0;j<stu[i].coursesum;j++)
    				for (k=j+1;k<stu[i].coursesum;k++)
    				if (stu[i].course[j].realmark > stu[i].course[k].realmark)
    				{
    					t=stu[i].course[j];
    	      			stu[i].course[j]=stu[i].course[k];
    	      			stu[i].course[k]=t;//排序课程综合成绩
    				}
    }
    void Sort()//成绩排序 
    {
    	int i,j,k;
    	int choice;
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else 
    	{
    		printf("请选择排序方式:\n按综合成绩升序请输入1  按综合成绩升序请输入2 按实得总学分值升序请输入3  按实得总学分值降序请输入4:") ;
    		scanf("%d",&choice);
    		
    		if(choice==1||choice==2||choice==3||choice==4)
    		{
    			if(choice==1)
    			SortSum_up(stu_num); 
    		
    			if(choice==2)
    				SortSum_down(stu_num); 
    		
    			if(choice==3)
    				SortRealMark_up();
    				
    			if(choice==4)
    				SortRealMark_down();
    				
    			printf("\n【=*=----------学生成绩排序完毕  学生成绩表如下----------=*=】\n\n");
    			OutputScores(stu_num);
    		}
    		else 
    		{
    			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    			Sort();
    		}
    	}
    	
    	
     } 
    void Edit()//成绩修改
    {
    	int i,j;
    	int choice;
    	int index;
    	char str[14];
    	char strc[14];
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		printf("请选择修改方式:\n学号修改请输入1  姓名修改请输入2 :") ;
    		scanf("%d",&choice);
    		if(choice==1||choice==2)
    		{	
    			if(choice==1) //学号修改 
    			{
    				printf("请输入学生的学号:");
    				scanf("%s",&str);
    				index=FindIndex_num(str);
    				if(index!=-1)
    				{
    					printf("\n您希望修改的学生信息如下:\n");
    					OutputScores_One(index);
    					printf("\n请选择修改方式: 修改全部成绩请输入3  修改一科成绩请输入4:  ");
    					scanf("%d",&choice);
    					if(choice==3||choice==4)
    					{
    						if(choice==3) //学号修改-修改全部成绩 
    						{
    							printf("\n请输入该生共修课程数目:");
    							scanf("%d",&stu[index].coursesum);
    							for(j=0;j<stu[index].coursesum;j++)
    							{
    								printf("\n请输入课程编号和课程名字:");
    								scanf("%d %s",&stu[index].course[j].cnum,&stu[index].course[j].cname);
    								printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    								scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    								Calsum(stu_num);
    								Calmark(stu_num);
    							}
    						}
    						if(choice==4) //学号修改 修改单科成绩 
    						{
    							int num; 
    							printf("请输入课程名称: ");
    							scanf("%s",&strc);
    							
    							for(j=0;j<stu[index].coursesum;j++)
    							{	
    								if(strcmp(str,stu[index].course[j].cname)==0)
    								{
    									printf("您所寻找的学生课程情况如下:\n");
    									printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    									printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    									printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    									scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    									Calsum(stu_num);
    									Calmark(stu_num);
    								} 
    								//break;
    							}	
    					 	} 
    					}
    					else 
    					{
    						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    						system("pause");
    						Edit();
    					}
    				}
    				
    				 printf("【=*=----------学生信息修改完毕----------=*=】\n");
    				 system("pause");
    			}
    			if(choice==2) //姓名修改 
    			{
    				printf("请输入学生的姓名:");
    				scanf("%s",&str);
    				index=FindIndex_name(str);
    				if(index!=-1)
    				{  
    					printf("\n您希望修改的学生信息如下:\n");
    					OutputScores_One(index);
    					printf("\n请选择修改方式:修改全部成绩请输入5  修改一科成绩请输入6: ");
    					scanf("%d",&choice);
    					if(choice==5||choice==6)
    					{
    						if(choice==5) //姓名修改-修改全部成绩 
    						{
    							printf("请输入该生共修课程数目:");
    							scanf("%d",&stu[index].coursesum);
    							for(j=0;j<stu[index].coursesum;j++)
    							{
    								printf("\n请输入课程编号和课程名字:");
    								scanf("%d %s",&stu[index].course[j].cnum,&stu[index].course[j].cname);
    								printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    								scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    								Calsum(stu_num);
    								Calmark(stu_num);
    							} 
    						}
    						if(choice==6) //姓名修改-修改单科成绩 
    						{
    							int num; 
    							printf("请输入课程名称: ");
    							scanf("%s",&strc);
    							
    							for(j=0;j<stu[index].coursesum;j++)
    							{
    								if(strcmp(strc,stu[index].course[j].cname)==0)
    								{
    									printf("您所寻找的学生课程情况如下:\n");
    									printf("课程编号:%d\t课程名称:%s\n",stu[index].course[j].cnum,stu[index].course[j].cname);
    									printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[index].course[j].scores[0],stu[index].course[j].scores[1],stu[index].course[j].scores[2],stu[index].course[j].realmark,stu[index].course[j].sum);
    									printf("\n请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    									scanf("%f %f %f %f",&stu[index].course[j].scores[0],&stu[index].course[j].scores[1],&stu[index].course[j].scores[2],&stu[index].course[j].mark);
    									Calsum(stu_num);
    									Calmark(stu_num); 
    								} 
    								//break;
    							}
    					 	}
    					} 
    					else 
    					{
    						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    						system("pause");
    						Edit();
    					}
    				}
    			}
    			printf("\n\n【=*=----------学生信息修改完毕----------=*=】\n");
    			printf("\n\n【=*=----------修改后该生成绩如下----------=*=】\n\n");
    			OutputScores_One(index);
    			//else printf("您输入选项有误,请重新输入。\n"); //返回菜单
    			printf("\n\n【=*=----------修改后所有学生综合成绩降序排列如下----------=*=】\n");  
    			SortSum_down(stu_num);//成绩修改后按照综合成绩降序排序 
    			OutputScores(stu_num);
    		}
    		else
    		{
    			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    			Edit();
    		}
    	}
    	
     } 
    void Add() // 成绩追加
    {
    	int ad;
    	int i,j;
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		printf("请输入您要追加的学生人数: ");
    		scanf("%d",&ad);
    		for(i=stu_num;i<stu_num+ad;i++)
    		{
    			printf("\n请输入第%d位学生信息:\n",i+1);
    			printf("请输入学生的学号、姓名、性别、宿舍号、电话号码:");
    			scanf("%s %s %s %s %s",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].dor,&stu[i].phone);
    			printf("第%d位学生信息录入完毕,请录入学生成绩信息:\n",i+1);
    			
    			printf("请输入该生共修课程数目:");
    			scanf("%d",&stu[i].coursesum);
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    			printf("请输入课程编号和课程名字:");
    			scanf("%d %s",&stu[i].course[j].cnum,&stu[i].course[j].cname);
    			printf("请输入学生的平时成绩、实验成绩、卷面成绩、学分:");
    			scanf("%f %f %f %f",&stu[i].course[j].scores[0],&stu[i].course[j].scores[1],&stu[i].course[j].scores[2],&stu[i].course[j].mark);
    			
    			if(stu[i].course[j].scores[1]==-1)
    					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.3+stu[i].course[j].scores[2]*0.7;
    			else
    					stu[i].course[j].sum = stu[i].course[j].scores[0]*0.15+stu[i].course[j].scores[1]*0.15+stu[i].course[j].scores[2]*0.7;
    				stu[i].sum+=stu[i].course[j].sum;
    				stu[i].ave=stu[i].sum/(float)stu[i].coursesum; //学生平均成绩 
    			}
    			void CalmarkOne(int i);
    			CalmarkOne(i); 
    		}
    		printf("\n【=*=---------补录学生信息录入完毕---------=*=】\n\n");
    		
    		//stu_num=stu_num+ad;
    		void MarkLevelCal(int stu_sum);
    		void ScoreLevelCal(int stu_sum);
    		ScoreLevelCal(stu_num+ad);
    		MarkLevelCal(stu_num+ad);
    		
    		printf("【=*=-----------新增学生信息情况如下-----------=*=】\n\n");
    		for(i=stu_num;i<stu_num+ad;i++)
    		{
    			printf("学号:%s   姓名:%s\n",stu[i].num,stu[i].name);
    			for(j=0;j<stu[i].coursesum;j++)
    			{
    				printf("课程编号:%d\t课程名称:%s\n",stu[i].course[j].cnum,stu[i].course[j].cname);
    				printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[i].course[j].scores[0],stu[i].course[j].scores[1],stu[i].course[j].scores[2],stu[i].course[j].realmark,stu[i].course[j].sum);
    			}
    			printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f\n",stu[i].coursesum,stu[i].realmarksum,stu[i].sum);
    			putchar(10);
    		}
    		stu_num+=ad;
    		
    		SortSum_down(stu_num);//成绩修改后按照综合成绩降序排序 
    		printf("\n\n【=*=----------增添信息后,所有学生综合成绩降序排序如下----------=*=】\n\n");
    		OutputScores(stu_num);
    	}
    	
     } 
    void Delete() //删除学生信息
    {
    	int choice;
    	char str[20];
    	int index;
    	int i;
    	char ch;
    	
    	if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		printf("请选择删除方式: 通过学号删除请输入1,通过姓名删除请选择2:");
    		scanf("%d",&choice);
    		if(choice==1||choice==2)
    		{
    			if(choice==1)
    			{
    				printf("请输入学生学号:");
    				scanf("%s",&str);
    				index=FindIndex_num(str);
    				if(index!=-1)
    				{
    					printf("学生信息如下:\n");
    					printf("%8s %8s %8s %8s %8s\n","学号","姓名","性别","宿舍号","电话号码");
    					printf("%8s %8s %8s %8s %8s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone); 
    					getchar();
    					printf("输入Y或y删除学生信息,如果信息输入有误请输入N或n: ");
    					ch=getchar();
    					if(ch=='Y'||ch=='y')
    					{
    						for(i=index;i<stu_num;i++)
    						{
    							stu[i]=stu[i+1];
    						}
    						printf("\n学生信息删除成功!\n"); 
    						stu_num-=1;
    						SortSum_down(stu_num);//删除成绩后成绩重新排序 
    						printf("\n【=*=--------删除后所有学生按综合成绩降序排列如下----------=*=】\n\n");
    						OutputScores(stu_num);//查看删除后的所有学生成绩 
    						putchar(10); 
    					}
    					else if(ch=='N'||ch=='n')
    						Delete(); 
    					else 
    					{
    						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    						Delete();
    					}
    				}
    				else
    				{
    					printf("\n【=*=------学生不存在,请重新输入-------=*=】\n\n");
    					Delete();
    				}
    			}
    			if(choice==2)
    			{
    				printf("请输入学生姓名:");
    				scanf("%s",&str);
    				index=FindIndex_name(str);
    				if(index!=-1)
    				{
    					printf("学生信息如下:\n");
    					printf("%8s %8s %8s %8s %8s\n","学号","姓名","性别","宿舍号","电话号码");
    					printf("%8s %8s %8s %8s %8s\n",stu[index].num,stu[index].name,stu[index].sex,stu[index].dor,stu[index].phone); 
    					getchar();
    					printf("输入Y或y删除学生信息,如果信息输入有误请输入N或n: ");
    					ch=getchar();
    					if(ch=='Y'||ch=='y')
    					{
    						for(i=index;i<stu_num;i++)
    						{
    							stu[i]=stu[i+1];
    						}
    						printf("\n学生信息删除成功!\n"); 
    						stu_num-=1;
    						SortSum_down(stu_num);//删除成绩后成绩重新排序 
    						printf("\n【=*=--------删除后所有学生按综合成绩降序排列如下----------=*=】\n\n");
    						OutputScores(stu_num);//查看删除后的所有学生成绩 
    						putchar(10);
    					}
    					else if(ch=='N'||ch=='n')
    						Delete(); 
    					else 
    					{
    						printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    						Delete();
    					}
    				 } 
    				else
    				{
    					printf("\n【=*=------学生不存在,请重新输入------=*=】\n\n");
    					Delete();
    				}
    			}
    			
    		}
    		else 
    		{
    			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    			system("pause");
    			Delete();
    		}
    	
    	}
    	 } 
    void ScoreLevelCal(int stu_sum) //计算成绩分段 
    {
    	int i,j;
    	 for(i=0;i<stu_sum;i++)
    	 {
    	 	if(stu[i].ave>=90.0&&stu[i].ave<=100.0)		stu[i].ranks='A';
    	 	else if(stu[i].ave>=80.0&&stu[i].ave<90.0)		stu[i].ranks='B';
    	 	else if(stu[i].ave>=70.0&&stu[i].ave<80.0)		stu[i].ranks='C';
    	 	else if(stu[i].ave>=60.0&&stu[i].ave<70.0)		stu[i].ranks='D';
    	 	else stu[i].ranks='E';
    	 }
    	 
    }
    void MarkLevelCal(int stu_sum) //计算学分分段 
    {
    	int i,j;
    	 for(i=0;i<stu_sum;i++)
    	 {
    	 	if(stu[i].avemark>=90.0&&stu[i].avemark<=100.0)		stu[i].rankm='A';
    	 	else if(stu[i].avemark>=80.0&&stu[i].avemark<90.0)		stu[i].rankm='B';
    	 	else if(stu[i].avemark>=70.0&&stu[i].avemark<80.0)		stu[i].rankm='C';
    	 	else if(stu[i].avemark>=60.0&&stu[i].avemark<70.0)		stu[i].rankm='D';
    	 	else stu[i].rankm='E';
    	 }
    	 
    }
    void MarkLevel(int stu_sum)//学分分段
    {
    	MarkLevelCal(stu_num);
    	int i,j;
    	int flag=0;
    	
    	printf("%10s%15s%15s\n\n","学号","姓名","平均学分");
    	printf("--------------*****A*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='A')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****B*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='B')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****C*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='C')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****D*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='D')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****E*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].rankm=='E')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].avemark);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	
    	printf("\n【=*=----------学生成绩信息分段完毕----------=*=】\n");
    	system("pause");
     } 
    void ScoreLevel(int stu_sum)//分数分段
    { 
    	ScoreLevelCal(stu_num);
    	int i,j;
    	int flag;
    	char ch;
    	printf("%10s%15s%15s\n\n","学号","姓名","平均综合分数");
    	
    	printf("--------------*****A*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='A')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****B*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='B')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****C*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='C')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****D*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='D')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    	flag=0;
    	
    	printf("\n--------------*****E*****--------------\n") ;
    	for(i=0;i<stu_num;i++)
    	{
    		if(stu[i].ranks=='E')
    		{
    			printf("%10s%15s%15.2f\n",stu[i].num,stu[i].name,stu[i].ave);
    			flag=1;
    		}
    	}
    	if(flag==0)
    		printf("\t---该分段无学生---\n");
    
    	printf("\n【=*=----------学生成绩信息分段完毕----------=*=】\n");
    	system("pause");
     } 
    void Level() //成绩分段 
    {
    	int choice;
    	
    	ScoreLevelCal(stu_num);
    	MarkLevelCal(stu_num);
    	 if(stu_num==0)
    	{
    		printf("【=*=---------请先录入学生基本信息---------=*=】\n");
    		system("pause");
    		return ; 
    	}
    	else
    	{
    		printf("请选择分段方式:输入1按学分分段,输入2按综合成绩分段:");
    		scanf("%d",&choice);
    		if(choice==1)	{MarkLevel(stu_num);} 
    		else if(choice==2)	{ScoreLevel(stu_num);} 
    		
    		else
    		{
    			printf("\n【=*=----------您所输入的操作有误,请重新输入----------=*=】\n\n");
    			Level();
    		}
    	}
    
     } 
    void CalsumOne(int i)	//计算一个学生综合成绩 
    {
    	int j;
    	//若本课程有实验
    		for(j=0;j<stu[i].coursesum;j++)
    		{
    			if(stu[i].course[j].scores[1]==-1)
    				stu[i].course[j].sum = stu[i].course[j].scores[0]*0.3+stu[i].course[j].scores[2]*0.7;
    			else
    				stu[i].course[j].sum = stu[i].course[j].scores[0]*0.15+stu[i].course[j].scores[1]*0.15+stu[i].course[j].scores[2]*0.7;
    			stu[i].sum+=stu[i].course[j].sum;
    			stu[i].ave=stu[i].sum/(float)stu[i].coursesum; //学生平均成绩 
    		}
    	system("pause");
    } 
    void CalmarkOne(int i)
    {
    	int j;
    	for(j=0;j<stu[i].coursesum;j++)
    		{
    			if(stu[i].course[j].sum>=90&&stu[i].course[j].sum<100)
    				stu[i].course[j].realmark=stu[i].course[j].mark;
    			if(stu[i].course[j].sum>=80&&stu[i].course[j].sum<90)
    				stu[i].course[j].realmark=stu[i].course[j].mark*0.8;
    			if(stu[i].course[j].sum>=70&&stu[i].course[j].sum<80)
    				stu[i].course[j].realmark=stu[i].course[j].mark*0.7;
    			if(stu[i].course[j].sum>=60&&stu[i].course[j].sum<70)
    				stu[i].course[j].realmark=stu[i].course[j].mark*0.6;
    			if(stu[i].course[j].sum>=0&&stu[i].course[j].sum<60)
    				stu[i].course[j].realmark=0.0;
    			stu[i].realmarksum+=stu[i].course[j].realmark;//实得总学分值 
    		}
    		stu[i].avemark=stu[i].realmarksum/stu[i].coursesum;//实得平均学分
    }
    
    void Read() //文件输出 
    {
    	FILE *fp;
    	int i,j;
    	char filename[30];
    	printf("请输入文件名称:");
    	scanf("%s",&filename); 
    	
    	if((fp=fopen(filename,"rb"))==NULL)
    	{ //fopen 指定读写方式为二进制写方式 
    	//未指定文件路径,从源文件所在目录创建 
    		printf("文件打开失败\n");
    		exit(0);
    	}
    	fp=fopen(filename,"rb");
    	
    	for(i=0; fread(&stu[i], sizeof(struct Stu), 1, fp)!=0; i++)
    	{
    		stu_num++;
    	}
    	
    	printf("\n【=*=-----------文件中信息如下----------=*=】\n\n");
    	for(i=0;i<stu_num;i++)
    	{
    		fread( &stu[i] , sizeof(Stu) ,1, fp );
    		printf("学号:%s 姓名:%s 性别:%s 宿舍号:%s 电话号码:%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dor,stu[i].phone); 
    		for(j=0;j<stu[i].coursesum;j++) 
    		{
    			printf("课程编号:%d\t课程名称:%s\n",stu[i].course[j].cnum,stu[i].course[j].cname);
    			printf("平时成绩:%.2f\t实验成绩:%.2f\t卷面成绩:%.2f\t实得学分:%.2f\t课程综合成绩:%.2f\t\n",stu[i].course[j].scores[0],stu[i].course[j].scores[1],stu[i].course[j].scores[2],stu[i].course[j].realmark,stu[i].course[j].sum);
    		}
    		printf("学生共修课程数目为:%d,实得总学分值为:%.2f, 综合成绩为:%.2f\n\n",stu[i].coursesum,stu[i].realmarksum,stu[i].sum);
    	}
    
    	fclose(fp);
    	system("pause");
    }
    void Storage()//文件储存 
    {
    	char filename[30];
    	printf("请输入文件名称:");
    	scanf("%s",&filename); 
    	
    	FILE *fp;
    	int  i;
    	if((fp=fopen(filename,"w"))==NULL)
    	{
    		printf("文件打开错误!\n");
    		return;
    	}
    	for(i=0; i<stu_num; i++)
    	{
    		fwrite(&stu[i], sizeof(struct Stu), 1, fp);
    	}
    	fclose(fp);
    	printf("\n【=*=----------文件储存成功----------=*=】\n") ;
    	system("pause");
    }
    void Into()//文件导入 
    {
    	char filename[30];
    	printf("请输入文件名称:");
    	scanf("%s",&filename); 
    	
    	int i;
    	FILE *fp;
    	if((fp=fopen(filename,"r"))==NULL)
    	{
    		printf("文件不能打开!\n");
    		return;
    	}
    	for(i=0; fread(&stu[i], sizeof(struct Stu), 1, fp)!=0; i++)
    	{
    		stu_num++;
    	}
    	fclose(fp);
    	printf("\n【=*=----------文件导入成功----------=*=】\n") ;
    	system("pause");
    }
    void Page()
    {
    		int choice;
    	   time_t rawtime;
           struct tm * timeinfo;
           time ( &rawtime );
           timeinfo = localtime ( &rawtime );
           system("cls");           /*运行前清屏*/           
           printf("\n");
           printf("\t===============学生*=*=*=*=*=*=*信息*=*=*=*=*=*=*管理=*=*=*=*=*=*=*系统===============\n\n");
    	   printf ( "\t\t\t      当前系统时间:%4d年%02d月%02d日 %02d:%02d:%02d\n",1900+timeinfo->tm_year, 
    		   1+timeinfo->tm_mon,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
           printf("\t*==*==*==*==*==*------------------------------------------------------*==*==*==*==*==*\n");
           printf("\n\t |***| (1)学生信息录入\t\t|***| (2)学生成绩录入\t\t|***| (3)综合成绩计算\n\n");
    	   printf("\t |===| (4)实得学分计算\t\t|===| (5)基本信息查询\t\t|===| (6)成绩信息查询\n\n");
    	   printf("\t |=*=| (7)学生成绩排序\t\t|=*=| (8)学生成绩修改\t\t|=*=| (9)学生成绩追加\n\n");
    	   printf("\t |===| (10)删除学生信息\t\t|===| (11)学生成绩分段   \t|===| (12)相关文件储存\n\n");
    	   printf("\t |=*=| (13)相关文件输出\t\t|=*=| (14)相关文件导入   \t|=*=| (0)退出系统\n\n");
    	   putchar(10);
    	   printf("\t*==*==*==*==*==*------------------------------------------------------*==*==*==*==*==*\n");
           printf("\t请选择操作序号(0-14):"); 
           scanf("%d",&choice);
           
           switch(choice)
    	{
    		case 1:system("cls");InputInformation();Page(); 
    		case 2:system("cls");InputScores();Page();
    		case 3:system("cls");Calsum(stu_num);Page();
    		case 4:system("cls");Calmark(stu_num);Page();
    		case 5:system("cls");InformationSearch();Page();
    		case 6:system("cls");ScoresSearch();Page();
    		case 7:system("cls");Sort();Page();
    		case 8:system("cls");Edit();Page();
    		case 9:system("cls");Add(); Page();
    		case 10:system("cls");Delete(); Page();
    		case 11:system("cls");Level(); Page();
    		case 12:system("cls");Storage();Page;
    		case 13:system("cls");Read();Page();
    		case 14:system("cls");Into();Page();
    		case 0: printf("\n\t【=*=----------您已成功退出系统----------=*=】\n");exit(0);
    		default: printf("\t--您所输入的操作有误,请重新输入--\n\n");system("pause"); Page();
    	}
    }
    int main()
    {
    	Page();
    
    	return 0;
     } 
    
    
    
    展开全文
  • 关于数据:数据第一行请保持姓名、学籍号这两个关键词不变。其余的都可以变化。4.本次程序在以下方面做了调整: (1)程序首次添加验证码,防止多次重复刷新增加服务器安全。 (2)程序首次采用PC、移动客户端分别...
  • 智睿学籍信息管理系统是学校和教育行政机关互联重要的日常工作,是基本教育管理制度。随着信息技术的发展,基础教育改革和发展提出了学籍管理信息化的要求,建立信息化的学籍信息管理系统,是提高教育管理水平的基础...
  • 按照课号查询每个课的学生成绩统计,同时也可以按学号查看学生的成绩情况,方便做教学总结。 教师模块:修改自己的信息;查看自己所教的课程及选择该课程的学生并且给该课的学生录入平时成绩,考试成绩系统...
  • 存档资料 成绩:华东交通大学课 程 设 计 报 告 书所属课程名称 数据库技术及应用 (A)课程设计题 目 学生学籍管理系统数据库设计与查询分 院专业班级学 学生姓名指导教师2013年 12 月 30 日1华东交通大...

    存档资料 成绩:

    华东交通大学

    课 程 设 计 报 告 书

    所属课程名称 数据库技术及应用 (A)课程设计

    题 目 学生学籍管理系统数据库设计与查询

    分 院

    专业班级

    学 号

    学生姓名

    指导教师

    2013年 12 月 30 日

    1

    华东交通大学理工学院

    课 程 设 计任 务 书

    专 业 班 级 姓名

    一、课程设计题目 学生学籍管理系统数据库设计与查询

    二、课程设计工作:自 2013 年 12 月 30 日起至 2013

    年 12 月 31 日止。

    三、课程设计的内容要求:

    1、 通过SQL创建基本表格,修改基本表结构 。

    2、 对上面创建好的表格添加基本元组。(在添加元组的时

    候要满足我们创建的约束条件)。

    3、 通过SELECT语句对我们创建的表格进行相关的查询。

    4、 对表格创建索引。

    5、 对表格创建视图等等。

    例如创建基本表格的语法格式如下:

    CREATE TABLE ( [列级完整

    性约束条件] [, [列级完整性约束条

    件]]…[,])

    华东交通大学理工学院课程设计报告

    目 录

    第1章 课 程 设 计 任 务

    2

    第2章程 序 设 计 目

    4

    第3章程 序 实 现 思

    5

    第4章程 序 正

    11

    第5章课 程 设 计 心

    16

    第6章 参考文

    17

    3 17

    第 页 共 页

    华东交通大学理工学院课程设计报告

    第2章 程序设计目

    该项 目开发的软件为学校学生信息管理系统软

    件,是鉴于 目前学校学生人数剧增,学生信息呈爆炸

    性增长的前提下,学校对学生信息管理的自动化与准

    确化的要求日益强烈的背景下构思出来的,该软件设

    计完成后可用于所有教育单位(包括学校,学院等等)

    的学生信息的管理.

    目前社会上信息管理系统发展飞快,各个企事业

    单位都引入了信息管理软件来管理 自己日益增长的

    各种信息,学生管理系统也是有了很大的发展,商业

    化的学生信息管理软件也不少.但本系统完全独立开

    发,力求使系统功能简洁明了,但功能齐全且易于操

    作。学生信息管理系统是一个教育单位不可缺少的部

    分。一个功能齐全、简单易用的信息管理系统不但能

    有效地减轻学校相关工作人员的工作负担,它的内容

    对于学校的决策者和管理者来说都至关重要。

    展开全文
  • c语言学生学籍管理系统c语言学生学籍管理系统程序代码如下#include "stdio.h"#include "conio.h"#include "string.h"#include "stdlib.h"#define PF printf#define SF scanfstaticintn,i;structaddress_book{char ...
  • 如果手工输入的请保持姓名、学籍号这两个关键词不变。模板可参考系统自带的数据。 学生成绩查询系统 v3.0程序优点 1.程序主体内容由本人自行编码,部分功能程序也修改了部分变量。 2.修复了网上同类程序可到...
  • 相信很多人对于会考成绩(学业水平考试成绩查询系统)并不是非常的了解,因此小编在这里为您详解的讲解一下相关信息!...5、在里面就可以查询成绩了。会考成绩C代表成绩为合格,分数段在总分的60%~70%(含60%)...
  • 163成绩管理查询系统可以提供8种权限用户:校长室(可查询所有学生成绩信息),班主任(可录入、查询所任班级的所有学生成绩信息),任课老师(可录入、查询所任班级课程的所有学生成绩信息),学生、学生家长(可...
  • 周口教育局2021项城中招成绩查询系统入口周口教育局官网(http://jtj.zhoukou.gov.cn)是2021项城中考官方网站,周口市教育体育局网站jtj.zhoukou.gov.cn提供2021项城中考成绩查询、项城中考报名、志愿填报、招生计划...
  • 学籍管理系统任务书

    2021-04-23 21:12:07
    学籍管理”要求实现对学生的入学个人信息注册、考试成绩等方面的管理,要求本系统能够帮助使用者快速地增删改学生信息,并对学生学籍设置各种状态,另外还有学生成绩记录查询功能。本系统的发开设计要求按软件...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼使用下面的数据设计一个简单的学籍管理系统。学生基本信息文件(A.TXT)极其内容:学号 姓名 性别 宿舍号码 电话号码01 张成成 男 501 8773211102 李成华 女 101 ...
  • 学籍系统常见问题

    2021-08-14 04:31:08
    此问题必须要先在信息设置处---评价指标设置,设置评价指标才能在模板体现学号和评价指标等内容2:不能录入2012-2013 第一学期的考试成绩(设定当前为2012-2013 第二学期的情况)解决办法:1. 首先进入学籍管理系统--...
  • java学籍管理系统源代码package zuoye;//主类import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class ManagerWindow extends JFrame ...
  • JAVA学生学籍管理系统

    2021-03-06 02:31:54
    *^_^*今天记录的项目是基于JAVA的学生学籍管理系统,基于JAVA的学生学籍管理系统项目是这么回事:电子学籍系统可对学生学籍注册、档案管理、学籍异动、升级、毕业、成长记录实现全程信息化管理。采用当前非常流行的B...
  • 系统包括了学校教务必须使用的大部分功能,包括: 教务管理系统, 教师评价系统成绩管理系统,证书查询系统,在线报名系统,自定表单系统,门户管理子系统,考试安排系统,在线考试系统,自动排课系统,公寓管理...
  • 如果为了让学生及时了解到被录取的情况,而且不公开所有考生的信息的情况下,成绩查询就显得非常重要,看了网上不少的成绩查询系统,感觉都很麻烦,用起来也不好用。特进行简单的编写,编写出一个非常简单实用的查询...
  • # Schoolrollmanager学生学籍管理系统,两个权限,管理员,老师功能说明 1.简化了数据库的使用者,即没有根据用户名自动切换布局的功能,目标使用者即为管理员 2.提供了txt导入学生信息,成绩,课程信息的功能 3....
  • 《学生成绩管理系统源代码》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码(25页珍藏版)》请在人人文库网上搜索。1、一、课程设计(论文)题目学生成绩管理系统二、本次课程设计(论文)应达到的目的通过...
  • 学生成绩查询

    2011-11-15 11:25:32
    学生成绩查询系统,好东东,我也是从网上当的,看看,想玩的,现去玩玩

空空如也

空空如也

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

学籍号查成绩系统