• 通讯录管理系统(大一上)


    //清屏 屏幕居中 功能板块 姓氏 
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<windows.h>
    #define N 10
    int T=0,a=0,q=1,m;//t为删除的人数 ,a为序号 
    int flag=0;
    struct Person{
    char number[20];//学号 
    char name[20];//姓名 
    char mail[20];//电子邮件 
    char address[20];//地址 
    char tel[15];//联系电话 
    }student[N];
    int main()
    {
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    void first(void);
    void input(int );
    void show(int );
    void del(int );
    void search(int );
    void update(int );
    void add(int );
    void screen(int );
    int i;
    if(q==1)
    {
    q=q-1;
    first();
    }
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY |COMMON_LVB_GRID_HORIZONTAL| FOREGROUND_RED|FOREGROUND_BLUE);
    printf(" ****************************************************************** ");
    printf(" *********************欢迎使用通讯录管理系统*********************** ");
    printf(" *******Welcome to use the student status management system******** ");
    printf(" ****************************************************************** ");
    do
    {
    SetConsoleTextAttribute(handle, COMMON_LVB_GRID_HORIZONTAL|FOREGROUND_BLUE);
    printf(" *******************主菜单********************* ");
    printf(" ********************************************** ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("0. 输入通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("1. 显示通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("2. 删除通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("3. 查找通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** "); 
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("4. 修改通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("5. 添加通信录:"); 
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("6. 筛选通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("7. 退出通信录: ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    SetConsoleTextAttribute(handle,COMMON_LVB_UNDERSCORE| FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf("请输入选项0-7 ");
    SetConsoleTextAttribute(handle, COMMON_LVB_UNDERSCORE|FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ****** ");
    SetConsoleTextAttribute(handle, COMMON_LVB_UNDERSCORE|FOREGROUND_INTENSITY | FOREGROUND_BLUE);
    printf(" *********************************************** ");
    SetConsoleTextAttribute(handle,FOREGROUND_GREEN| FOREGROUND_RED );
    scanf("%d",&i);//接受用户选择
    switch(i)
    {
    case 0: input(a);a++;
    break;
    case 1: show(a);
    break;
    case 2: del(a);
    break;
    case 3: search(a);
    break;
    case 4: update(a);
    break;
    case 5: add(a);a++;
    break;
    case 6: screen(a);
    break; 
    case 7: {
    printf("感谢使用!!!");exit (0);}

    default :printf("错误选择!请重选 ");break;
    }
    }
    while(i!=7);
    return 0;
    }

    //0.编写一个函数录入学生学号、姓名、个人邮箱、地址、联系电话。
    void input(int a)
    {
    int i;
    printf("输入学号: ");
    scanf("%s",student[a].number);//录入学号查询 
    for(i=0;i<a-T;i++)
    {
    if(strcmp(student[i].number,student[a].number)==0)
    {
    printf("此学号以存在通信录中,请勿重复输入! ");
    main();
    }
    }
    printf("输入姓名: ");
    scanf("%s",student[a].name);
    printf("输入个人邮箱: ");
    scanf("%s",student[a].mail);
    printf("输入地址: ");
    scanf("%s",student[a].address);
    printf("输入联系电话: ");
    scanf("%s",student[a].tel);
    printf("录入成功!!! ");
    printf("系统3秒后返回主菜单...... ");
    sleep(3);
    system("cls");
    }

    //1.编写一个函数显示所有人员的信息。
    void show(int a)
    {
    system("cls");
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    int i;
    if(a-T == 0)
    {SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
    printf(" 通信录中无显示对象 ");
    printf("10秒后将自动跳转回主菜单...... ");
    sleep(5);
    system("cls");
    main();
    }
    else
    {
    SetConsoleTextAttribute(handle, FOREGROUND_RED| FOREGROUND_GREEN);
    printf(" 学号 姓名 个人邮箱 地址 联系电话 ");
    SetConsoleTextAttribute(handle,FOREGROUND_GREEN);
    for(i=0;i<a-T;i++)
    printf("%13s %13s %13s %26s %13s ",student[i].number,student[i].name,student[i].mail,student[i].address,student[i].tel);
    }
    }

    //2. 编写一个函数通过输入姓名或学号查找到要删除的人员信息,然后可以进行删除,
    //回显当前通讯录信息。
    void del(int a)
    {
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    int i,j,o,u;
    char s[20],x[20],c[20];
    if(a-T==0)
    {
    printf("通信录无人,无法操作! ");
    printf("系统10秒后默认返回主菜单...... ");
    sleep(5);
    system("cls");
    main();
    }
    else
    {
    printf("按*选择一键删除全部,按任意键删除选定学生: ");
    scanf("%s",s);
    if(strcmp(s,"*") == 0 )
    {
    printf("按*继续一键删除全部,按任意键返回主菜单:a ");
    scanf("%s",c);
    if(strcmp(c,"*") == 0 )
    {
    for(u=0,o=a;u<a-T,o<2*(a-T);u++,o++)
    {
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
    strcpy(student[u].name,student[o].name);
    strcpy(student[u].number,student[o].number);
    strcpy(student[u].mail,student[o].mail);
    strcpy(student[u].address,student[o].address);
    strcpy(student[u].tel,student[o].tel);
    }
    T=a;
    SetConsoleTextAttribute(handle,FOREGROUND_GREEN);
    printf("操作成功!!! ");
    sleep(2);
    }
    else
    main(); 
    }
    else
    {
    char x[20];
    printf("请输入要删除学生的姓名或学号: ");
    scanf("%s",x);
    for(i=0;i<a;i++)
    {
    if((strcmp(x,student[i].name)==0)||(strcmp(x,student[i].number)==0))
    {
    for(j=i;j<a-T;j++)
    {
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
    strcpy(student[j].name,student[j+1].name);
    strcpy(student[j].number,student[j+1].number);
    strcpy(student[j].mail,student[j+1].mail);
    strcpy(student[j].address,student[j+1].address);
    strcpy(student[j].tel,student[j+1].tel);
    }
    T++;
    break;
    }
    }
    system("cls");
    printf("操作成功!!! ");
    }
    }
    }

    //3. 编写一个函数通过输入姓名或学号查找学生信息。
    void search(int a)
    {
    int i;
    char x[20],s[20],b[20];
    if(a-T== 0 )
    {
    printf("通讯录无人,无法查询 ");
    printf("10秒后系统默认返回主菜单 ");
    sleep(3);
    system("cls");
    main();

    else
    {
    printf("请输入要查询的姓名或学号: ");
    scanf("%s",x);
    for(i=0;i<a-T;i++)
    {
    if((strcmp(x,student[i].name)==0)||(strcmp(x,student[i].number)==0))
    {
    printf("学号:%s ",student[i].number);
    printf("姓名:%s ",student[i].name);
    printf("个人邮箱:%s ",student[i].mail);
    printf("地址:%s ",student[i].address);
    printf("联系电话:%s ",student[i].tel);
    printf("按*键返回主菜单,按任意键继续进行查询: ");
    scanf("%s",s);
    if((strcmp(s,"*")==0))
    {system("cls");break;}
    else
    search(a);
    }
    else if(i == a-T-i)
    {
    printf("没有查询到此联系人!! ");
    printf("按任意键重新查询输入,输入*返回主菜单: ");
    scanf("%s",b);
    if(strcmp(b,"*") == 0)
    {
    system("cls");
    main();
    }
    else 
    search (a);
    }
    }
    }
    }
    //4. 编写一个函数通过输入姓名或学号查找到要修改的人员信息,然后依次进行信息
    //修改。
    void update(int a)
    {
    int i,j;
    char x[20],s[20];
    printf("请输入要修改学生的姓名或学号: ");
    if(a== 0 )
    {
    printf("通信录无人,无法操作!!! ");
    printf("系统将在1秒后自动返回主菜单...... ");
    sleep(5);
    system("cls");
    main();
    }
    else
    {
    scanf("%s",x);
    for(i=0;i<a-T;i++)
    {
    if((strcmp(x,student[i].name)==0)||(strcmp(x,student[i].number)==0))
    {
    for(j=i;j<a-T;j++)
    {
    printf("请输入要修改人员的信息: ");
    printf("请输入名字: ");
    scanf("%s",student[j].name);
    printf("请输入邮箱: ");
    scanf("%s",student[j].mail);
    printf("请输入地址: ");
    scanf("%s",student[j].address);
    printf("请输入电话: "); 
    scanf("%s",student[j].tel);
    break;
    }
    printf("修改成功! ");
    printf("继续修改按任意键,返回主菜单输入*: ");
    scanf("%s",s);
    if(strcmp(s,"*") == 0)
    {
    system("cls");
    main();
    }
    else
    {
    system("cls");
    update(a);
    }
    }
    else
    {
    printf("该列表无此人 ");
    printf("请重新输入: ");
    update (a);
    }
    main();
    }
    }
    }

    //5. 编写一个函数添加人员信息。
    void add(int a) 
    {
    int z,i;
    char s[20];
    printf("请输入要添加的人员信息: "); 
    if(a-T==0)
    {
    printf("现无联系人,请添加首位人员信息 ");
    printf("添加的学号为: ");
    scanf("%s",student[0].number);
    printf("添加的姓名为: ");
    scanf("%s",student[0].name);
    printf("添加的地址为: ");
    scanf("%s",student[0].address);
    printf("添加的邮箱为: ");
    scanf("%s",student[0].mail);
    printf("添加的电话为: ");
    scanf("%s",student[0].tel);
    printf("按任意键继续输入,输入*返回主菜单 ");
    scanf("%s",s);
    if(strcmp(s,"*") == 0)
    {
    printf("10秒后将返回主菜单...... ");
    sleep(3);
    system("cls");
    }
    else//
    add(a);
    }
    else 
    {
    printf("序数为0到%d,将该人员序数插至: ",a);
    scanf("%d",&z);
    for(i=a-1;i>=z;i--)
    {
    strcpy(student[i+1].address,student[i].address);
    strcpy(student[i+1].mail,student[i].mail);
    strcpy(student[i+1].name,student[i].name);
    strcpy(student[i+1].number,student[i].number);
    strcpy(student[i+1].tel,student[i].tel);
    }
    printf("添加的学号为: ");
    scanf("%s",student[z].number);
    printf("添加的姓名为: ");
    scanf("%s",student[z].name);
    printf("添加的地址为: ");
    scanf("%s",student[z].address);
    printf("添加的邮箱为: ");
    scanf("%s",student[z].mail);
    printf("添加的电话为: ");
    scanf("%s",student[z].tel);
    }
    system("cls");
    }

    //筛选来自同一个地方或姓名的人
    void screen(int a)
    {
    void screena(int a);
    void screenb(int a);
    int n,i;
    char s[20];
    if(a==0)
    {
    printf("通信录中无信息,无法筛选! ");
    printf("系统3秒后将自动返回主菜单...... ");
    sleep(3);
    system("cls");
    main();
    }
    else
    {
    printf("请选择根据地区还是姓名筛查 ");
    printf("地区筛查为0,姓名筛查1 ");
    scanf("%d",&n);
    if(n==0)
    screena (a);
    else
    screenb (a);
    }
    }
    void screena(int a)//地区筛选 
    {
    int n=0,i,flag=0;
    char s[20],x[20];
    printf("请输入查询的地址: ");
    scanf("%s",s);
    for(i=0;i<a-T;i++)
    {
    if(strcmp(s,student[i].address) == 0)
    {
    printf("学号:%s ",student[i].number);
    printf("姓名:%s ",student[i].name);
    printf("个人邮箱:%s ",student[i].mail);
    printf("地址:%s ",student[i].address);
    printf("联系电话:%s ",student[i].tel);
    printf(" ");
    flag=1;n++;continue;
    }
    }
    if(flag==1)
    {
    printf("在此地址下一共有%d人 ",n);
    main();
    }
    else
    {
    printf("此地址无人 ");
    printf("请按任意键重新输入地址或按*键返回回主菜单: ");
    scanf("%s",x);
    if(strcmp(x,"*") == 0)
    {
    sleep(1);system("cls");
    main();
    }
    else
    screena (a);
    }
    }

    void screenb(int a)//姓名筛选 
    {
    char s[20];
    printf("您无此操作权限,请联系管理员...... ");
    printf("请选择操作:任意键返回上一步操作,输入*键返回主菜单 ");
    scanf("%s",s);
    if(strcmp(s,"*")==0)
    {
    printf("3秒后返回主菜单...... ");
    sleep(3);
    system("cls");
    main();
    }
    else
    {
    printf(" ");
    screen (a);
    }
    }

    void first(void)
    {
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    int n=0;
    printf(" ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ********************************************************************************** ");
    printf(" ********************************************************************************** ");
    printf(" ** ** ");
    printf(" ** ** ");
    printf(" **");
    SetConsoleTextAttribute(handle,FOREGROUND_RED|FOREGROUND_GREEN);
    printf(" 欢迎使用通信录管理系统 ");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf("** ");
    printf(" ** ");
    SetConsoleTextAttribute(handle,FOREGROUND_RED|FOREGROUND_GREEN);
    printf(" Welcome to use the student status management system");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ** ");
    printf(" ** ** ");
    printf(" ** ");
    SetConsoleTextAttribute(handle,FOREGROUND_RED|FOREGROUND_GREEN);
    printf("制作者:XXX XXX XX XXX XXX XXX XXX XXX");
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf(" ** ");
    printf(" ** ** ");
    printf(" ** ** ");
    printf(" ********************************************************************************** ");
    printf(" ********************************************************************************** ");
    sleep(5);
    system("cls");
    }

  • 相关阅读:
    【NOIP2017】蚯蚓
    【CF407B】Long Path
    【NOIP2017】奶酪
    【NOIP2018】赛道修建(正解)
    【NOIP2018】旅行
    【SDOI2010】地精部落
    【NOIP2017】逛公园
    百度云网盘进行注销操作
    百度超级会员租借.我租给你。
    如何在dos中运行java中的jar包
  • 原文地址:https://www.cnblogs.com/zjwoo/p/12718470.html
Copyright © 2020-2023  润新知