学生信息管理系统—结构体数组存储
说明:本程序是在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;
}