学生信息管理系统---结构体数组存储

学生信息管理系统—结构体数组存储

说明:本程序是在Linux开发,做了一点改动能在windows上正常使用,文件压缩包里有两个版本linux和Windows,关注我便可下载。

下载链接:https://download.csdn.net/download/weixin_46113614/48301594

1.程序中出现的乱码是因为字符集采用的是ANSI编码,在VC++6.0上打开就恢复正常,或者用notepad++打开字符集选择ANSI,也可notepad++上面转换字符集。

2.运行和开发环境 windows10 + VC++6.0
3.后续会出文件存储的版本、以及数据库版本

/*
�������windows10 , VC++6.0

���ڱ���������linuxϵͳ��д�ģ��������һ���޸ĵ�����windows�����У�
����ΪVC++6.0��֧���������� for(int i=0;i < count;i++) ���ѭ�������Ķ����λ���������Ρ�

*/


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

int HomePage(void);
void Add(void);
void Print();
void Delete(void);
void Updata(void);
void Sort(void);
void Query(void);

struct Student
{
    char name[20];
    int num;
    int score;
};

int count = 0; //ѧ����Ϣ��¼��
struct Student stu[100];

int main(void)
{

    while (1)
    {
        int op = HomePage();
        switch (op)
        {
        case 1:
            system("cls");
            Add();
            break;
        case 2:
            system("cls");
            Delete();
            break;
        case 3:
            system("cls");
            Updata();
            break;
        case 4:
            system("cls");
            Query();
            break;
        case 5:
            system("cls");
            Sort();
            break;
        case 6:
            system("cls");
            Print();
            break;
        case 0:
            return 0;

        default:
            printf("���������Ϊ0~6��ѡ��!!");
        }
    }
}


/*
��������: ����ѧ�Ż�ɼ���������
����  : ��
����ֵ : ��
*/
void Sort(void)
{
    struct Student stu_Temp;
    int select;

    printf("\n1 ���ɼ���������\n2 ���ɼ���������\n3 ��ѧ�Ž�������\n4 ��ѧ����������\n");
    printf("��ѡ������ʽ(1--4):");
    loop1:scanf("%d",&select);



    switch (select)
    {
        case 1:
                // ���ɼ���������
			{
					int i;
                    for (i = 1; i < count; i++)
                    {
						int j;
                        for (j = 0; j < count-i; j++)
                        {
                            if (stu[j].score < stu[j+1].score)
                            {
                                stu_Temp = stu[j];
                                stu[j] = stu[j+1];
                                stu[j+1] = stu_Temp;
                                
                            }
                            
                        }
                    }
			}
            break;
        case 2:
                // ���ɼ���������
			{
					int i;
                    for (i = 1; i < count; i++)
                    {
						int j;
                        for (j = 0; j < count-i; j++)
                        {
                            if (stu[j].score > stu[j+1].score)
                            {
                                stu_Temp = stu[j];
                                stu[j] = stu[j+1];
                                stu[j+1] = stu_Temp;
                                
                            }
                            
                        }
                    }
			}
            break;
        case 3:
                // ��ѧ�Ž�������
			{
					int i;
                    for (i = 1; i < count; i++)
                    {
						int j;
                        for (j = 0; j < count-i; j++)
                        {
                            if (stu[j].num < stu[j+1].num)
                            {
                                stu_Temp = stu[j];
                                stu[j] = stu[j+1];
                                stu[j+1] = stu_Temp;
                                
                            }
                            
                        }
                    }
			}
            break;
        case 4:
                // ��ѧ����������
			{
					int i;
                    for (i = 1; i < count; i++)
                    {
						int j;
                        for (j = 0; j < count-i; j++)
                        {
                            if (stu[j].num > stu[j+1].num)
                            {
                                stu_Temp = stu[j];
                                stu[j] = stu[j+1];
                                stu[j+1] = stu_Temp;
                                
                            }
                            
                        }
                    }    
			}
            break;
        default: printf("���벻�Ϸ�!����������!:\n");
            goto loop1;
            break;
    }




}


/*
��������: ��ѯָ��ѧ����Ϣ
����: ��
����ֵ : ��
*/
void Query(void)
{
    int query_Stu_num;
	int i;
    printf("������Ҫ��ѯ��ѧ����ѧ��:\n");
    scanf("%d", &query_Stu_num);

	
    for (i = 0; i < count; i++)
    {
        if (query_Stu_num == stu[i].num)
        {
            printf("%d\t%s\t%d\n", stu[i].num, stu[i].name, stu[i].score);
            return;
        }
    }
}


/*
��������: �޸�ѧ����Ϣ
����: ��
����ֵ: ��
*/
void Updata(void)
{
    int num_updata, changeFlag = 1, i,flag=0;
    printf("�������ѧ����ѧ��:\n");
    scanf("%d", &num_updata);

    for (i = 0; i < count; i++)
    {
        if (num_updata == stu[i].num)
        {
            printf("\033[31m%d\t%s\t%d\n\033[0m", stu[i].num, stu[i].name, stu[i].score);
			flag = 1; //���ڸ�ѧ����¼
        }
    }
    i--;
	if(!flag)
	{
		printf("��ѧ���ļ�¼�����ڣ�����\n");
		return; //�˳�������
	}

    while (1)
    {
        printf("��ѡ��Ҫ�޸ĵ���Ϣ��(0--ֹͣ�޸�, 1--ѧ��,2--����,3--�ɼ� ,Ĭ��Ϊ3):\n");
    loop:
        scanf("%d", &changeFlag);

        switch (changeFlag)
        {
        case 1:
            printf("�������޸ĵ�ѧ��:\n");
            scanf("%d", &stu[i].num);
            printf("\033[31m%d\033[0m\t%s\t%d\n", stu[i].num, stu[i].name, stu[i].score);
            break;
        case 2:
            printf("�������޸ĵ�����:\n");
            scanf("%s", stu[i].name);
            printf("%d\t\033[31m%s\033[0m\t%d\n", stu[i].num, stu[i].name, stu[i].score);
            break;
        case 3:
            printf("�������޸ĵijɼ�:\n");
            scanf("%d", &stu[i].score);
            printf("%d\t%s\t\033[31m%d\033[0m\n", stu[i].num, stu[i].name, stu[i].score);
            break;
        case 0:
            return;

        default:
            printf("���벻�Ϸ�! ����������!:\n");
            goto loop;
            break;
        }
    }
}


/*
�������� : ɾ��ѧ����Ϣ
����: ��
����ֵ: ��
*/
void Delete(void)
{
    int num_dele,i;
    printf("������ѧ��:\n");
    scanf("%d", &num_dele);

    for (i = 0; i < count; i++)
    {
        if (num_dele == stu[i].num)
        {
			int j;
            for (j = i; j < count; j++)
            {
                stu[j] = stu[j+1];
            }
        }
    }

    count--;
    if (count <= 0)
    {
        count = 0;
    }

    Print();
}


/*
��������: ����ѧ����Ϣ
����: ��
����ֵ: ��
*/
void Print()
{
	int i;
    printf("ѧ��\t����\t�ɼ�\n");
    for (i = 0; i < count; i++)
    {
        printf("%d\t%s\t%d\n", stu[i].num, stu[i].name, stu[i].score);
    }
}


/*
��������: ����ѧ����Ϣ
����: ��
����ֵ: ��
*/
void Add(void)
{
    int numb, i;
    printf("������ѧ��:\n");
    scanf("%d", &numb);

    for (i = 0; i < count; i++)
    {
        if (stu[i].num == numb)
        {
            system("clear");
            printf("����Ϣ�Ѵ���!\n");
            return;
        }
    }

    stu[i].num = numb;
    printf("����������:\n");
    scanf("%s", stu[i].name);
    printf("������ɼ�:\n");
    scanf("%d", &stu[i].score);
    count++;
}


/*
��������: ��ʾѧ����Ϣ����ϵͳ��ҳ���ѡ��
����:��
����ֵ: ���ع���ѡ������
*/
int HomePage(void)
{
    int op;

    printf("************ѧ����Ϣ����ϵͳ*************\n");
    printf("*******    1.����ѧ����Ϣ    **********\n");
    printf("*******    2.ɾ��ѧ����Ϣ    **********\n");
    printf("*******    3.�޸�ѧ����Ϣ    **********\n");
    printf("*******    4.��ѯѧ����Ϣ    **********\n");
    printf("*******    5.����ѧ����Ϣ    **********\n");
    printf("*******    6.����ѧ����Ϣ    **********\n");
    printf("*******    0.�˳�ϵͳ       **********\n");

    printf("\n\n������ѡ��:\n");
    scanf("%d", &op);

    return op;
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值