有戏

 找回密码
 立即注册
简历下载
搜索
热搜: 活动 交友 discuz
查看: 928|回复: 0

学生信息管理系统(结构体)

[复制链接]
万事皆有可能 该用户已被删除
发表于 2015-12-18 15:31:47 | 显示全部楼层 |阅读模式




#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
    int year;
    int month;
    int day;
}Date;

typedef struct
{
    char name[40];
    Date birthday;

    char sno[20];
    char sid[20];
    char address[200];
}Student;

int current = 0;//全局变量

Student stu[50];//全局变量

void insert()
{
    if (current >= 50)
    {
        printf("对不起,由于人数已满,不能再添加新学生信息\n");
        return ;
    }
    printf("请输入学生姓名:");
    scanf("%s", stu[current].name);
    printf("请输入学生出身日期 (yyyy-mm-dd) :   ");
    scanf("%d-%d-%d",&stu[current].birthday.year,&stu[current].birthday.month,&stu[current].birthday.day);
    //其他的录入,同学们可以参考学生名字的录入方法
    current++;
}

void query()
{

    int hasfound = 0;
    int i;
    printf("请输入要查询的学生的姓名:");
    char name[40];
    scanf("%s", name);

    printf("名字               出生日期         学号           身份证      家庭住址   \n");
    printf("--------------------------------------------------------------------------\n");

    for (i=0; i<current; i++)
    {
        if (strcmp(stu.name, name) == 0)
        {

            printf("%12s", stu.name);
            printf("    %4d-%2d-%2d", stu.birthday.year,stu.birthday.month,stu.birthday.day);

            hasfound = 1;
            return;// 0;
        }
    }
    if(hasfound == 0)
        printf("该学生不存在!\n\n");

}

void update()
{

    int hasfound = 0;
    printf("请输入要修改的学生的姓名:");
     char name[40];
     int i;
    scanf("%s", name);

    for (i=0; i<current; i++)
    {
        if (strcmp(stu.name, name) == 0)
        {
            hasfound = 1;
            printf("请输入学生姓名:");
            scanf("%s", stu.name);
            printf("请输入学生出身日期 (yyyy-mm-dd) :   ");
            scanf("%d-%d-%d",&stu.birthday.year,&stu.birthday.month,&stu.birthday.day);

            return;// 0;
        }
    }
    if(hasfound == 0)
        printf("该学生不存在\n");

}
void del()
{

    int hasfound = 0;
    int i;
    printf("请输入要删除的学生的姓名:");
     char name[40];
    scanf("%s", name);

    for (i=0; i<current; i++)
    {
        if (strcmp(stu.name, name) == 0)
        {
            hasfound = 1;
            // if (i<(current-1))
             memmove(&stu, &stu[i+1], (current-1-i)*sizeof(Student));
             current--;
              printf("删除成功\n");
             return ; //0;
        }
    }
    if(hasfound == 0)
        printf("该学生不存在\n");

}
void list()
{

    printf("共有%d个学生信息\n", current);
    int i;
    printf("名字               出生日期         学号           身份证      家庭住址   \n");
    printf("----------------------------------------------------------------------\n");
    for (i=0; i<current; i++)
    {
        printf("%12s", stu.name);
        printf("    %4d-%2d-%2d", stu.birthday.year,stu.birthday.month,stu.birthday.day);
        //add others.....

        printf("\n");
    }

}
int main()
{
    char choice;//定义一个字符类型的变量用来接收用户的菜单选择

    int hasfound = 0;
    char name[40];
    int i;
        //显示程序基本信息
        printf("       学生信息管理系统,版本1.0,版权所有2010-2020\n");
        while(1)
        {
                printf("\n");
                printf("                   程序功能\n");
                printf("                1:录入学生信息\n");
                printf("                2:查询学生信息\n");
                printf("                3:修改学生信息\n");
                printf("                4:删除学生信息\n");
                printf("                5:列出所有学生信息\n");
                printf("                6:保存学生信息\n");
                printf("                7:加载学生信息\n");
                printf("                0:退出程序\n");
                printf("\n");
                printf("        请选择:");
                choice = getch();
                fflush(stdin);
                printf("\n\n");
                switch(choice)
                {
                        case '1':
                                /*此处添加录入学生的处理代码*/
                        insert();
                    break;
                        case '2':
                                 /*此处添加查询学生的处理代码*/

                    query();
                    break;
                        case '3':
                                 /*此处添加修改学生信息的处理代码*/
                update();
                                 break;
                        case '4':
                                 /*此处添加删除学生信息的处理代码*/
                    del();
                    break;

                        case '5':
                                 /*此处添加列出学生信息的处理代码*/
                    list();
                    break;
                        case '6':
                                /*此处添加保存学生信息的处理代码*/        break;
                        case '7':
                                /*此处添加加载学生信息的处理代码*/        break;
                        case '0':
                                return 0;
                        default:
                                printf("非法选择,请重新选择\n");
                }
        }
        return 0;    //程序返回
}











回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|有戏 粤ICP备2020111303号

GMT+8, 2025-12-6 11:33 , Processed in 0.071903 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表