数据结构课程设计

  1. /*********************************************************** 
  2. *版权所有 (c)2017,yuchen 
  3. *文件名称:school guiade create 
  4. *文件标识:无 
  5. *内容:该代码是用于管理学生成绩。
  6. *作者:常路 
  7. *完成日期:2017年12月21日 
  8. *修改记录:无 
  9. **********************************************************/  

  1. find.cpp

  2. #include<stdio.h>
    #include<windows.h>//清屏
    #include<iostream>
    #include<malloc.h>
    #include<string.h>
    #include"student.h"
    using namespace std;
    //*******************************************************
    功能描述:调用输出函数,将输入的学生成绩信息一一遍历输出
    输入参数:1
    输出参数:学生姓名、学号、科目、成绩
    *******************************************************/
    void StuFindErg(Student *L)
    {
            Student *p=(Student *)malloc(sizeof(Student));
            p=L->next;
            int i=1;
            while(p!=NULL)
            {
                cout<<"第"<<i<<"位学生的信息:"<<endl;
                cout<<"学生姓名:";
                cout<<p->name;
                cout<<"学生学号:";
                cout<<p->num;
                cout<<"考试科目:";
                cout<<p->subject;
                cout<<"科目成绩";
                cout<<p->score<<endl;
                p=p->next;
                i++;
            }
    }
    /*************************************************
    功能描述:通过学生学号,调用输出函数,输出该生信息
    输入函数:学号
    输出函数:学生姓名、学号、科目、成绩
    *************************************************/
    void StuFindNum(Student *L)//按学号查找
    {
            int num;
            cout<<"请输入要查找的学生的学号:";
            cin>>num;
            Student *p=(Student *)malloc(sizeof(Student));
            p=L->next;
            int i=1;
            while(p!=NULL)
            {
                if(num==p->num)
                {
            cout<<"学生姓名:";
            cout<<p->name;
            cout<<"学生学号:";
            cout<<p->num;
            cout<<"考试科目:";
            cout<<p->subject;
            cout<<"科目成绩";
                   break;
                   }
                   else
                    {
                        p=p->next;
                    }


            }
             if(i==1)
             cout<<"没有该学生的信息,请检查输入是否正确!";
    }



  1. In_Out.cpp
  2. #include<stdio.h>
    #include<iostream>
    #include<malloc.h>
    #include<string.h>
    #include"student.h"
    #include<stdlib.h>
    using namespace std;
    /************************************
    功能描述:输出学生成绩信息
    输入函数:无
    输出函数:学生姓名、学号、科目、成绩
    ************************************/
    void StuOut(Student *L)
    {
        Student *p=L->next;
        while(p!=NULL)
        {
            cout<<"学生姓名:";
            cout<<p->name;
            cout<<"学生学号:";
            cout<<p->num;
            cout<<"考试科目:";
            cout<<p->subject;
            cout<<"科目成绩";
            cout<<p->score<<endl;
            p=p->next;
        }
    }
    /*******************************************************
    功能描述:将学生成绩等信息由键盘输入,并判断是否重复输入
    输入参数:学生姓名、学号、科目、成绩
    输出参数:无
    *******************************************************/
    int StuIm(Student *L,Student *p)
    {
        Student *Opinion=(Student *)malloc(sizeof(Student));   //用来判断输入节点中学生学号是否有重复
        Opinion=L->next;
        cout<<"学生姓名:";
        cin>>p->name;
        cout<<"学生学号:";
        cin>>p->num;
        cout<<"考试科目:";
        cin>>p->subject;
        if(Opinion!=NULL)
        {
            if(Opinion->num==p->num&&!strcmp(Opinion->subject,p->subject))
            {
                cout<<"该学生该科目已有成绩!";
                return 1;
            }
            Opinion=Opinion->next;
        }
        cout<<"学生成绩:";
        cin>>p->score;


        return 0;
    }
    /*******************************************
    功能描述:通过选择,由键盘输入学生成绩等信息
    输入参数:1、学生成绩等信息
    输出参数:无
    *******************************************/
    void StuInHand(Student *L)//手动输入函数,由输入函数调用
    {
          if(L->next==NULL)
          {
               Student *point=(Student *)malloc(sizeof(Student));
               point->next=NULL;
               int s=1;
               while(s==1)
               {
                   Student *p=(Student *)malloc(sizeof(Student));
                   p->next=NULL;
                   StuIm(L,p);
                   if(L->next==NULL)
                   {
                       L->next=p;
                       point=p;
                   }
                   else
                   {
                       point->next=p;
                       point=p;
                   }
                   cout<<"是否继续: 1 是,2 否    ";
                   cin>>s;
               }
          }
          else
             {
                 cout<<"退出后再进行下一步操作!";
                 system("cls");
             }
    }

        
  1. main.cpp
  2. #include<stdio.h>
    #include<iostream>
    #include<malloc.h>
    #include<string.h>
    #include"student.h"
    #include<stdlib.h>
    #include<windows.h>      //百度查询,清屏头文件
    using namespace std;
    /*********************************************
    功能描述:main函数中调用主界面,并显示用户界面
    输入参数:数字(0-6)
    输出参数:各操作
    *********************************************/


    int main()
    {
         system("color 1F");
        Welcome();


        return 0;
    }
    void Welcome()
    {
        int num;
        Student *L;
        L=(Student *)malloc(sizeof(Student));
        L->next=NULL;
        while(num!=6)
        {
            system("cls");
            cout<<"                      欢迎使用学生成绩管理系统                "<<endl;
            cout<<"                     * * * * * * * * * * * * **               "<<endl;
            cout<<"                     *请输入你要使用的业务代码*               "<<endl;
            cout<<"           * * * * * * * * * * * * * * * * * ** * * * * *     "<<endl;
            cout<<"           *          1 输入学生成绩信息                *     "<<endl;
            cout<<"           *          2 查找学生成绩信息                *     "<<endl;
            cout<<"           *          3 修改学生成绩信息                *     "<<endl;
            cout<<"           *          4 删除学生成绩信息                *     "<<endl;
            cout<<"           *          5 储存学生成绩信息                *     "<<endl;
            cout<<"           * * * * * * * * * * * * * * * * * ** * * * * *     "<<endl;
            cin>>num;
            switch(num)
            {
                case 1:
                    StuIn(L);  //输入学生信息
                    break;
                case 2:
                    StuSelect(L); //查找学生信息
                    break;
                case 3:
                    StuAlter(L);  //修改学生信息
                    break;
                case 4:
                    StuDelect(L); //删除学生信息
                    break;
                case 5:
                    StuSave(L);   //保存学生信息
                    break;
                default:
                    cout<<"输入正确地业务序号(⊙o⊙)"<<endl;
                    break;


        }
    }




    save.cpp

  3. }#include<stdio.h>
    #include<windows.h>
    #include<iostream>
    #include<malloc.h>
    #include<string.h>
    #include"student.h"
    using namespace std;
    /***********************************************
    功能描述:调用输入函数,由文件输入学生成绩等信息
    输入参数:文件路径
    输出参数:无
    *****************************/
    void StuSave(Student *L)
    {
            FILE *fp;
            char filename[10];
            cout<<"请输入存储的文件名(例如:C:\text.txt):";
            cin>>filename;
            Student *p=(Student *)malloc(sizeof(Student));
            p=L->next;
            if((fp=fopen(filename,"w"))==NULL)
             {
                 cout<<"找不到该文件!"<<endl;
                 return;
             }
            cout<<"存储成功!"<<endl;
            while(p!=NULL)
            {
                 fwrite(p,sizeof(Student),1,fp);
                 p=p->next;
             }
        fclose(fp);
    }
  4.  

  1. studnent.cpp

  1. #include<stdio.h>
    #include<windows.h>
    #include<iostream>
    #include<malloc.h>
    #include<string.h>
    #include"student.h"
    using namespace std;
    void StuInHand(Student *L);    //手动输入,由输入函数调用
    void StuIn(Student *);         //输入函数,由主函数调用
    /*************************************
    功能描述:调用函数,输入学生成绩等信息
    输入参数:1、2、3
    输出参数:无
    *************************************/
    void StuIn(Student *L)         //输入函数,由主函数调用
    {
        int num;
        system("cls");
        while(num!=2)
        {
        cout<<"              *******************请选择输入方式******************"<<endl;
        cout<<"              **    1   输入                        2 退出     **"<<endl;
        cout<<"              ***************************************************"<<endl;
        cin>>num;
            switch(num)
            {
            case 1:
                 StuInHand(L);     //调用手动输入函数
                 break;
            case 2:
                 system("cls");       //清屏,重新回到Wlcome
                 Welcome;             //退出输入界面,返回Welcome
                 break;
            default:
                 cout<<"输入正确的业务代码!";
                 break;
            }
        }
    }
    /*****************************************
    功能描述:调用查找函数,输出学生成绩等信息
    输入参数:1、2、3
    输出参数:学生成绩等信息
    *****************************************/
    void StuSelect(Student *L)
    {
        int s=1;                          //判断函数是否继续进行
        int num;
        while(s!=2)
        {
            cout<<"              ***********************查找系统********************"<<endl;
            cout<<"              ***  1  显示全部学生信息  2 学号查找    3 退出 ****"<<endl;
            cout<<"              ***************************************************"<<endl;
            cin>>num;
            switch(num)
            {
                case 1:
                    StuFindErg(L);
                    break;
                case 2:
                    StuFindNum(L);
                    break;
                default:
                    s=2;
                    break;
            }
        }
    }
    /*********************************
    功能描述:按学号修改学生成绩等信息
    输入函数:学生学号
    输出函数:无
    *********************************/


    void StuAlter(Student *L)
    {
            int num;
            cout<<"输入想要查找学生的学生号:";
            cin>>num;
            char Sub[10];
            cout<<"输入想要查找科目:";
            cin>>Sub;
            Student *p=(Student *)malloc(sizeof(Student));
            p=L->next;
            int i=1;
            while(p!=NULL)
            {
                if(num==p->num&&!strcmp(Sub,p->subject))
                {
                   printf("输入修改成绩:\n");
                   scanf("%d",&p->score);
                   printf("修改成功!\n");
                   Sleep(1000);
                   i++;
                }
                   p=p->next;


            }
    }
    /**************************************
    功能描述:根据输入的学生学号删除该生
    输入参数:学生学号
    输出参数:无
    **************************************/
    void StuDelect(Student *L)
    {
        int num;
        char sub[10];
        cout<<"输入想要删除学生的学生号:";
        cin>>num;
        cout<<"输入想要删除科目:";
        cin>>sub;
        Student *p=(Student *)malloc(sizeof(Student));
        p->next=L->next;
        int i=1;
        while(p->next!=NULL)
        {
            if(num==p->next->num&&!strcmp(sub,p->next->subject))
            {
                StuOut(p->next);
                cout<<"是否删除:1 是,2 否     ";
                cin>>i;
                if(num==L->next->num&&!strcmp(sub,L->next->subject))
                {
                    L->next=L->next->next;
                }
                else
                {
                    p->next=p->next->next;
                }
                i=2;
                cout<<"删除成功!"<<endl;
                break;
            }
            p=p->next;
        }
        if(i==1)
        cout<<"没有该学生信息!"<<endl;
    }



  1. student.h

  2. #ifndef TEST_H
    #define TEST_H
    struct Student
    {
       char name[10];     //姓名
       char subject[10];  //科目
       int num;           //学号
       int score;         //分数
       Student *next;
    };
    void Welcome();                   //欢迎界面函数,由main函数调用
    void StuSave(Student *);          //存储函数,由欢迎界面函数调用
    void StuSelect(Student *);        //查找函数,由欢迎界面函数调用
    void StuAlter(Student *);         //修改函数,由欢迎界面函数调用
    void StuDelect(Student *);        //删除函数,由欢迎界面函数调用
    void StuFindErg(Student *L);      //遍历函数,由查找函数调用
    void StuFindNum(Student *L);      //按学号查找函数,由查找函数调用
    void StuOut(Student *L);          //输出函数
    int  StuIm(Student *L,Student *p);//输入函数
    void StuIn(Student *);            //输入函数,由欢迎界面函数调用
    #endif



                     



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值