数据结构之学生管理系统

#include<iostream>
#include<string.h>
#include<string>
#include<conio.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define LL long long int
#define mem(a) memset(a,0,sizeof(a))
typedef struct node
{
    LL num;//学号
    char name[100];//姓名
    char sex[100];//性别
    int year;//年
    int month;//月
    int day;//日
    char edu[100];//学历
    LL tel;//电话
    struct node *next;
} linklist;
void face(linklist *G);
void menu(linklist *G); //显示菜单
void creat(linklist *G);//创建
void insertt(linklist *G);//插入
void display(linklist *G);//显示
void inqure(linklist *G);//查询
void modify(linklist *G);//修改
void deletee(linklist *G);//删除
void bye();//退出
void face(linklist *G)  //外表(完成)
{
    system("color 5E");
    puts("\t\t\t\t  欢迎进入张晓阳大学学生管理系统");
    puts("\t\t\t**************************************************");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @               学生成绩管理系统                 @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                 制作人:张晓阳  @");
    puts("\t\t        @                                日期:2017-12-13 @");
    puts("\t\t\t**************************************************");
    printf("\n\t\t\t\tPress [ Enter ] key to continue……\n");
    getchar();
    system("cls");
    menu(G);
}
void menu(linklist *G)//显示菜单(完成)
{
    system("cls");
    int flag=1,n;
    while(flag)
    {
        system("color 3e");
        puts("\t\t\t\t     欢迎进入学生学籍管理系统");
        puts("\t\t\t**************************************************");
        puts("\t\t        @                   1.创建                       @");
        puts("\t\t        @                   2.插入                       @");
        puts("\t\t        @                   3.显示                       @");
        puts("\t\t        @                   4.查询                       @");
        puts("\t\t        @                   5.修改                       @");
        puts("\t\t        @                   6.删除                       @");
        puts("\t\t        @                   7.退出                       @");
        puts("\t\t        @                             *********          @");
        puts("\t\t        @                             *  zxy  *          @");
        puts("\t\t        @                             *********          @");
        puts("\t\t\t**************************************************");
        printf("\t\t\t请选择服务种类(1-7) : [ ]\b\b");
        scanf("%d",&n);
        if(n>=1&&n<=7)
        {
            flag=0;
        }
        else
        {
            system("cls");
            printf("\n\t\t\t选择出错,请重新选择。。。\n");
        }
    }
    if(n==1)
    {
        creat(G);
    }
    else if(n==2)
    {
        insertt(G);
    }
    else if(n==3)
    {
        display(G);
    }
    else if(n==4)
    {
        inqure(G);
    }
    else if(n==5)
    {
        modify(G);
    }
    else if(n==6)
    {
        deletee(G);
    }
    else if(n==7)
    {
        bye();
    }
}
void creat(linklist *G)//创建
{
    system("cls");
    system("color 3e");
    linklist *p,*q;
    p=new linklist;
    p=G;
    printf("输入录入学生人数:");
    int n;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
        printf("第%d个学生信息:\n",i);
        q=new linklist;
        printf("学号:");
        scanf("%lld",&q->num);
        //printf("\n");

        printf("姓名:");
        scanf("%s",q->name);
        //printf("\n");

        printf("性别:");
        scanf("%s",q->sex);
        //printf("\n");

        printf("出生年:");
        scanf("%d",&q->year);
        //printf("\n");

        printf("出生月:");
        scanf("%d",&q->month);
        //printf("\n");

        printf("出生日:");
        scanf("%d",&q->day);
        //printf("\n");

        printf("学历:");
        scanf("%s",&q->edu);
        //printf("\n");

        printf("手机号:");
        scanf("%lld",&q->tel);
        //printf("\n");
        q->next=NULL;
        p->next=q;
        p=q;
    }
    getchar();
    printf("\n");
    printf("按回车退出。。。\n");
    getchar();
    menu(G);
}
void insertt(linklist *G)//插入
{
    system("cls");
    system("color 3e");
    printf("在某学号前插入,此学号为:");
    LL aa;
    scanf("%lld",&aa);
    linklist *next;
    next=new linklist;
    next=G->next;
    int flag=0;
    while(next)
    {
        if(next->num==aa)
        {
            printf("找到此学号,请输入插入学生信息\n");
            linklist *q;
            q=new linklist;
            //q=new linklist;
            printf("学号:");
            scanf("%lld",&q->num);
            //printf("\n");

            printf("姓名:");
            scanf("%s",q->name);
            //printf("\n");

            printf("性别:");
            scanf("%s",q->sex);
            //printf("\n");

            printf("出生年:");
            scanf("%d",&q->year);
            //printf("\n");

            printf("出生月:");
            scanf("%d",&q->month);
            //printf("\n");

            printf("出生日:");
            scanf("%d",&q->day);
            //printf("\n");

            printf("学历:");
            scanf("%s",&q->edu);
            //printf("\n");

            printf("手机号:");
            scanf("%lld",&q->tel);
            q->next=next->next;
            next->next=q;
            flag=1;
            break;
        }
        else
        {
            next=next->next;
        }
    }
    if(flag)
    {
        printf("插入成功\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
    else
    {
        printf("插入失败\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
}
void display(linklist *G)//显示
{
    system("cls");
    system("color 3e");
    linklist *q;
    q=new linklist;
    q=G->next;
    int tt=1;
    while(q)
    {
        printf("第%d个学生信息\n",tt++);
        printf("学号:");
        printf("%lld",q->num);
        printf("\n");

        printf("姓名:");
        printf("%s",q->name);
        printf("\n");

        printf("性别:");
        printf("%s",q->sex);
        printf("\n");

        printf("出生年:");
        printf("%d",q->year);
        printf("\n");

        printf("出生月:");
        printf("%d",q->month);
        printf("\n");

        printf("出生日:");
        printf("%d",q->day);
        printf("\n");

        printf("学历:");
        printf("%s",q->edu);
        printf("\n");

        printf("手机号:");
        printf("%lld",q->tel);
        q=q->next;
    }
    getchar();
    printf("\n");
    printf("按回车退出。。。\n");
    getchar();
    menu(G);
}
void inqure(linklist *G)//查询
{
    system("cls");
    system("color 3e");
    printf("输入你要查询的学号:");
    LL aa;
    scanf("%lld",&aa);
    linklist *q;
    q=new linklist;
    q=G->next;
    int flag=0;
    while(q)
    {
        //printf("fsalfd\n");
        if(q->num==aa)
        {
            printf("查到此学号,信息为:\n");
            printf("学号:");
            printf("%lld",q->num);
            printf("\n");

            printf("姓名:");
            printf("%s",q->name);
            printf("\n");

            printf("性别:");
            printf("%s",q->sex);
            printf("\n");

            printf("出生年:");
            printf("%d",q->year);
            printf("\n");

            printf("出生月:");
            printf("%d",q->month);
            printf("\n");

            printf("出生日:");
            printf("%d",q->day);
            printf("\n");

            printf("学历:");
            printf("%s",q->edu);
            printf("\n");

            printf("手机号:");
            printf("%lld",q->tel);
            flag=1;
            break;
        }
        else
        {
            q=q->next;
        }
    }
    printf("\n");
    if(flag)
    {
        printf("查找成功\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
    else

    {
        printf("查找失败\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
}
void modify(linklist *G)//修改
{
    system("cls");
    system("color 3e");
    printf("输入你要修改的学号:");
    LL aa;
    scanf("%lld",&aa);
    linklist *q;
    q=new linklist;
    q=G->next;
    int flag=0;
    while(q)
    {
        //printf("fsalfd\n");
        if(q->num==aa)
        {
            printf("查到此学号:\n");

            printf("姓名修改为:");
            scanf("%s",q->name);
            //printf("\n");

            printf("性别修改为:");
            scanf("%s",q->sex);
            //printf("\n");

            printf("出生年修改为:");
            scanf("%d",&q->year);
            //printf("\n");

            printf("出生月修改为:");
            scanf("%d",&q->month);
            //printf("\n");

            printf("出生日修改为:");
            scanf("%d",&q->day);
            //printf("\n");

            printf("学历修改为:");
            scanf("%s",&q->edu);
            //printf("\n");

            printf("手机号修改为:");
            scanf("%lld",&q->tel);
            flag=1;
            break;
        }
        else
        {
            q=q->next;
        }
    }
    printf("\n");
    if(flag)
    {
        printf("查找成功\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
    else

    {
        printf("查找失败\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
}
void deletee(linklist *G)//删除
{
    system("cls");
    system("color 3e");
    printf("输入你要删除的学号:");
    LL aa;
    scanf("%lld",&aa);
    linklist *first,*next;
    first=new linklist;
    next=new linklist;
    first=G;
    next=G->next;

    int flag=0;
    while(next!=NULL)
    {//printf("hfkjsdfjksd\n");
        if(next->num==aa)
        {
            linklist *q;
            q=new linklist;
            q=next;
            first->next=next->next;
            delete q;
            flag=1;
            break;
        }
        else
        {
            next=next->next;
        }
    }
    if(flag)
    {
        printf("删除成功!\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
    else
    {
        printf("删除失败!\n");
        getchar();
        printf("\n");
        printf("按回车退出。。。\n");
        getchar();
        menu(G);
    }
}
void bye() //退出(完成)
{
     system("cls");
    system("color 0F");
    puts("\t\t\t**************************************************");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                    再见!                      @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t        @                                                @");
    puts("\t\t\t**************************************************");
    exit(0);
}
int main()
{
    linklist G;
    G.next=NULL;
    face(&G);
    return 0;
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注