学生信息管理系统---结构体数组存储_课程信息管理数组-程序员宅基地

技术标签: C语言  c语言  编程  

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

说明:本程序是在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;
}



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46113614/article/details/121523671

智能推荐

2020/9/1解决pytho内存满了问题_python训练过程中交换空间满了-程序员宅基地

文章浏览阅读85次。终于找到错误的位置了!!!list.append惹的祸,我把list=[]放在了循环外部,应该放在循环内部!!!应该是每次都进一个,然后删除的,但是没有删除一直在往里面加东西,导致内存爆炸!!!..._python训练过程中交换空间满了

CSS行高等于盒子的高度,能让文字在盒子里面垂直居中的原理_让盒子高度等于文字实际高度-程序员宅基地

文章浏览阅读994次,点赞3次,收藏2次。CSS行高等于盒子的高度,能让文字在盒子里面垂直居中的原理:用pink老师的一张ppt就成让人一下子明白过来。_让盒子高度等于文字实际高度

JVM-03:JVM垃圾收集器面试题_g1垃圾收集器 面试题-程序员宅基地

文章浏览阅读1k次。JVM垃圾收集算法及垃圾收集器_g1垃圾收集器 面试题

vue+axios 分类添加功能 element+导航栏_vue-element-admin ajax添加导航-程序员宅基地

文章浏览阅读641次。vue+element这里我引入了自己写的头部模板目录结构 我的vue版本是2.9路由是在src/router先要引入模板import Login from '@/views/Login/Login'import Category from '@/views/Category/Category'在写路径这里的name可以放在:to这些中..._vue-element-admin ajax添加导航

用python画出四个不同颜色的同心圆_python画四个不同颜色圆代码及成果-程序员宅基地

文章浏览阅读3.9k次。用python画出四个不同颜色的同心圆_python画四个不同颜色圆代码及成果

C++std::is_const,std::is_array_!is_const<const >::value && !is_reference<t>::valu-程序员宅基地

文章浏览阅读415次。#include<iostream>#include<string>template<typename T>auto func(T& a) { std::cout << typeid(a).name() << " "; if (std::is_array<T>::value) { std::cout << "是数组" << std::endl; } else std::cout ._!is_const::value && !is_reference::value

随便推点

20170413面试_andeyeluguo 面试-程序员宅基地

文章浏览阅读717次。今天面试了华捷艾米公司,在上地那。问了我模型的细节事情,我反问他了,结果他说涉及机密不给说,含糊地说是alexnet写的。只看到一台破服务器在那呜呜地响,也不知道是不是真和那哥们说的,有十几台英伟达p40的,并表示在跑集群还是自己写的。我说用mxnet就可以做到,这哥们说我们也用现成的。总体来讲,自我感觉吹牛的成分比较大,不是太靠谱。我大老远跑一趟不容易,结果就几分钟完事。我也是醉了。以后坚决先电_andeyeluguo 面试

[jQuery]判断json是否为空-程序员宅基地

文章浏览阅读4k次。$.isEmptyObject(conditionJson);

虚拟网络调研2(centos, kvm, VMware虚拟化引擎)_我的vm没有虚拟化iommu-程序员宅基地

文章浏览阅读661次。占坑libvirt?_我的vm没有虚拟化iommu

logistic回归_stata速学|logistic回归分析-程序员宅基地

文章浏览阅读1.9w次,点赞5次,收藏44次。NO.07ZEYI06.2020正文共:2010字 28图预计阅读时间:6分钟嘿喽,我是则已。这是stata的第七期学习。前面学习了最小二乘回归分析,非线性回归分析都要求因变量是连续变量,但很多时候因变量是离散的,即1就是1,2就是2,没有1-2之间的取值。这时候需要用到logistic回归分析。划线部分是自己要研究的变量。logistic回归 分析常用来进行logistic回归分析..._stata做logistic回归分析

Android主题与Toolbar样式之间的关系_android palette 调色板,动态改变 toolbar 颜色-程序员宅基地

文章浏览阅读668次。Android主题与Toolbar样式之间的关系标签: android2016-07-02 15:07 3161人阅读 评论(11) 收藏 举报 分类:Android(17) 版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]更新本项目相关源码地址:http://git.osc_android palette 调色板,动态改变 toolbar 颜色

Mac使用homebrew下载的nginx修改了配置文件,无法在浏览器内访问或修改配置文件端口等不生效_mac 配置了 nginx 没有生效-程序员宅基地

文章浏览阅读1.6k次。使用homeBrew下载了nginx,修改端口号却无法访问1. 安装(可以用 brew 安装)sudo brew install nginx2. 查看 nginx 版本nginx -v3. 启动 nginxsudo nginx也可以使用下面的命令启动,但是配置文件nginx.conf修改后用这个命令执行不生效,故不建议使用:sudo brew services start nginx4. 查看 nginx 是否启动成功在浏览器中访问 ,如果出现如下界面,则说明启动成功.5. 关闭._mac 配置了 nginx 没有生效

推荐文章

热门文章

相关标签