飞道的博客

五分钟学会一篇期末学生学籍管理系统

490人阅读  评论(0)

学生学籍管理系统

不说话!!!直接就

情况是这样的,以前看到热榜上总有些有些大佬老是说什么学妹半夜怎么怎么样,学姐天天缠着他怎么怎么,我都觉得些事情都有些虚假。

注:除了我
直到有一天晚上收到一个消息,故事是这样的,故事有两个主人公代表我和我的聊天对象
我(肥学大师):

在一个安静的夜晚,肥学正在废寝忘食的搞学术。。。。。

X:学长,学长在吗?/甜笑/甜笑
肥学:在啊 怎么了
X:想拜托你点事 /害羞/害羞


是不是以为艳遇,是个漂亮的小学妹???/坏笑

其实真正的它是
聊天对象(代号x):

对没错是个小学弟,可能形象没这么到位,这里用这张头像只是为了突出我的形象,嘻嘻。

肥学:啥事啊?说呗
X:这不是要期末了吗有个综合实验要弄,你能帮帮我吗,学长
肥学:是要写点什么啊,关于什么的
X:就是一个学生学籍管理,可简单了不用太复杂
肥学:(心里想简单你找我)嗯嗯,是挺简单的综合实验也没必要太高大上,建个结构用链表来存储信息就好了或者也可以用数组存,想永久保存可以写入文件,或存到数据库
X:那你能帮帮我吗?
肥学:都已经很清楚了啊还有哪里不懂啊
X:懂了,懂了,那你能帮帮我吗?
肥学:就是我帮你写呗(一脸不情愿)
X:谢谢学长/开心
肥学:最近比较忙,我不保证质量呀
X:功能全就行
。。。。。

看到没这就是学弟的美,是不是比学妹好

哎,既然答应了就开始搞吧没办法

开搞

PS:这个系统其实可以改成期末的很多系统,比如宾馆信息系统,图书管理。。。。只需要把哪些提示的输出信息换一换其实都一样,会一个会百个。

划重点:如果新手想写一个系统没什么思路一定要想一想系统的受众,根据需求写功能,比如这个我们可以弄几个功能

void menu();//菜单 
void Student_register();//登记学生信息
void Student_find();//查找学生信息
void Student_output();// 输出学生籍贯表 
void Student_revise();//修改学生信息 
void Student_delete();//删除学生信息  

没必要先把细节写出来,可以先把整个蓝图弄出来然后在一点一点的实现,这样才有基础嘛

接着我们创建结构体,也就是类:

struct Studen_book//学生类 
{
   
	double num;//学号
	char name[20];//姓名
	char sex;//性别
	int age;//年龄
	char native[80]; //籍贯
	char depart[20]; //系别
	char majoy[20];  //专业
	char clas[20];  //班级
}stu[N]; //用来存放学生的各种信息 

你可以把它想成这个样子

别问为什么这样stu[i].name表示问就是人两条腿走路的原因

接下来在来说说这个系统里面唯一有可能让你不理解的地方(其他的不理解也没关系慢慢学嘛,但是一定要学

void Student_delete()//3删除学生信息
详细内容可以看看下面的模块
for (k = t; k < i - 1; k++)
		{
   
			stu[k] = stu[k + 1];//t以后的数据前移覆盖掉t
		}
		i--;


好了差不多就这样吧,这篇文我觉的唯一能让你学到的是当你开始编程的时候不需要一下子就搞的很细,可以先有大的构思,细节上面在实现的时候可以慢慢补充,很多新手开始不知道怎么写就是因为想的太多了,还有什么要是不明白可以私信或留言问问,这样才能进步嘛
给大家分享一张充满力量的图

==满头白发的爷爷都敢尝试徒手抓鳄鱼,还有什么是你不敢尝试的啊。

原文链接:https://blog.csdn.net/jiahuiandxuehui?spm=1001.2101.3001.5343//为了防止有人盗取文章
#include <stdio.h>
#include <stdlib.h>//清屏功能调用
#include <string.h>
#include <conio.h>//getch功能调用
#define N 100//宏定义(N存放一百个学生的信息)
//申明各个函数 
void menu();//菜单 
void Student_register();//登记学生信息
void Student_find();//查找学生信息
void Student_output();// 输出学生籍贯表 
void Student_revise();//修改学生信息 
void Student_delete();//删除学生信息    
struct Studen_book//学生类 
{
   
	double num;//学号
	char name[20];//姓名
	char sex;//性别
	int age;//年龄
	char native[80]; //籍贯
	char depart[20]; //系别
	char majoy[20];  //专业
	char clas[20];  //班级
}stu[N]; //用来存放学生的各种信息 
int i = 0;//全局声明作用于整个程序中(i) 
int main()//启动程序,进入menu函数,执行menu函数,然后return 0返回 
{
   
	menu();
	return 0;
}

void menu()//菜单
{
   
	char sel = 0;
	while (sel != '0')
	{
   
		system("cls");//清屏
		printf("|-----------------------------------------------|\n");
		printf("|        学 生 学 籍 管 理 系 统 主 菜 单       |\n");
		printf("|-----------------------------------------------|\n");
		printf("|      1:登记学生信息                           |\n");
		printf("|      2:修改学生信息                           |\n");
		printf("|      3:删除学生信息                           |\n");
		printf("|      4:查找学生信息                           |\n");
		printf("|      5:输出学生籍贯表                         |\n");
		printf("|      0:退出学籍管理系统                       |\n");
		printf("|-----------------------------------------------|\n");

		printf("请选择功能数字:");//子程序功能调用
		sel = getchar();//用sel存储getchar接收到的字符(从控制到读取字符并显示) 
		switch (sel)
		{
   
		case '1':
			Student_register();
			break;
		case '2':
			Student_revise();
			break;
		case '3':
			Student_delete();
			break;
		case '4':
			Student_find();
			break;
		case '5':
			Student_output();
			break;
		case '0':
			break;
		}
		if (sel == '0')
			printf("\n Thanks for your used!");
	}
}

void Student_register()//1登记学生信息 
{
   
	char choose;
Add:
	system("cls");//清屏

	printf("请输入学生学号:\n");
	scanf("%lf", &stu[i].num);//&stu[i]接收输入的字符

	printf("请输入学生姓名:\n");
	scanf("%s", &stu[i].name);
	getchar();//防止回车被输入到scanf

	printf("请输入学生性别(M(男)或W(女)):\n");
	scanf("%c", &stu[i].sex);

	printf("请输入学生年龄:\n");
	scanf("%d", &stu[i].age);

	printf("请输入学生籍贯:\n");
	scanf("%s", &stu[i].native);

	printf("请输入学生系别:\n");
	scanf("%s", &stu[i].depart);

	printf("请输入学生专业:\n");
	scanf("%s", &stu[i].majoy);

	printf("请输入学生班级:\n");
	scanf("%s", &stu[i].clas);

	i++;//以便于多次记录(?)
	getchar();//回车继续
	printf("是否继续添加('Y'or'N')?");
	choose = getchar();
	if (choose == 'Y')
		goto Add;//ADD和goto语句构成一个循环        
}

void Student_find()//4查找学生信息
{
   
	char choose;
	int t, n;
	double number;
	int s=0;
Find:
	printf("\n请输入要查询的学号:");
	scanf("%lf", &number);
	for (t = 0; t < i; t++) {
   
		if (stu[t].num == number)//输入的值和前面录入的值相同就输出下面的信息 
		{
   
			n = t;
			printf("\n【%d号】学生的信息如下:\n",n+1);
			printf("1—学号:%.0lf\n", stu[n].num);
			printf("2—姓名:%s\n", stu[n].name);
			printf("3—性别:%c\n", stu[n].sex);
			printf("4—年龄:%d\n", stu[n].age);
			printf("5—籍贯:%s\n", stu[n].native);
			printf("6—系别:%s\n", stu[n].depart);
			printf("7—专业:%s\n", stu[n].majoy);
			printf("8—班级:%s\n", stu[n].clas);
			s=1;
		}
		//else
			//printf("没有该学生的信息\n");
	}
	if(s==0)
    printf("无此学生信息");
	getchar();
	printf("是否继续(Y/N)?:");
	choose = getchar();
	getchar();
	if (choose == 'Y')
		goto Find;//为什么是继续查找? 
}

void Student_output()//5输出学生籍贯表
{
   
	char choose;
	double number;
	int t;
	int s = 0;
Native:
	printf("\n输入查询的学号:");
	scanf("%lf", &number);
	for (t = 0; t < i; t++)
		if (stu[t].num == number)
		{
   
			printf("【%d号】学生的信息如下:\n", number);
			printf("姓名:%s\n", stu[t].name);
			printf("学号:%.0lf\n", stu[t].num);
			printf("籍贯:%s\n", stu[t].native);
			printf("专业:%s\n", stu[t].majoy);
			s = 1;
		}
	if (s == 0)
		printf("暂无该学生信息");
	getchar();
	printf("是否继续(Y/N)?:");
	choose = getchar();
	getchar();
	if (choose == 'Y')
		goto Native;
}

void Student_revise()//修改学生信息 
{
   
	int t, n;
	double number;
	char choose;
	int x;
	printf("\n输入学号:");
	scanf("%lf", &number);
	getchar();//回车继续
	for (t = 0; t < i; t++)
	{
   
		if (stu[t].num == number) {
   
			n = t;
			break;
		}
			

	}
	printf("\n学生的信息如下:\n");
	printf("1—学号:%.0lf\n", stu[n].num);
	printf("2—姓名:%s\n", stu[n].name);
	printf("3—性别:%c\n", stu[n].sex);
	printf("4—年龄:%d\n", stu[n].age);
	printf("5—籍贯:%s\n", stu[n].native);
	printf("6—系别:%s\n", stu[n].depart);
	printf("7—专业:%s\n", stu[n].majoy);
	printf("8—班级:%s\n", stu[n].clas);
	printf("0—退出修改\n");
	printf("请输入要修改的选项(0-8):\n");
	x = getchar();//输入x的值 
	switch (x)
	{
   
	case '1':
		printf("请输入新的学号:\n");
		scanf("%.0lf", stu[n].num);
		break;
	case '2':
		printf("请输入新的姓名:\n");
		scanf("%s", &stu[n].name);
		break;
	case '3':
		getchar();//防止回车被输入到scanf
		printf("请输入新的性别:\n");
		scanf("%c", &stu[n].sex);
		break;
	case '4':
		printf("请输入新的年龄:\n");
		scanf("%d", &stu[n].age);
		break;
	case '5':
		printf("请输入新的籍贯:\n");
		scanf("%s", &stu[n].native);
		break;
	case '6':
		printf("请输入新的系别:\n");
		scanf("%s", &stu[n].depart);
		break;
	case '7':
		printf("请输入新的专业:\n");
		scanf("%s", &stu[n].majoy);
		break;
	case '8':
		printf("请输入新的班级:\n");
		scanf("%s", &stu[n].clas);
		break;
	case '0':
		return;
	}
}

void Student_delete()//3删除学生信息
{
   
	int  k = 0, t;
	double number;
	char choose;
	Del:
	system("cls");//清屏
	printf("\n请输入要删除的学号:");
	scanf("%lf", &number);
	getchar();//回车继续
	for (t = 0; t < i; t++)//来查找要删除学生下标t
	{
   
		if (number == stu[t].num)//找到t
		{
   
			k = 1;
			break;
		}
	}
	if (k == 1)
	{
   
		for (k = t; k < i - 1; k++)
		{
   
			stu[k] = stu[k + 1];//t以后的数据前移覆盖掉t
		}
		i--;
		printf("已删除\n\n");//? 
	}
	else
	{
   
		printf("找不到要删除的记录!\n");
		printf("按回车键返回:");
		getchar();//获取一个字符(回车键) 
	}
	printf("是否继续(Y/N)?:");
	//choose=getchar();
	getchar();//获取一个字符(Y/N) 
	if (choose == 'Y')
		goto Del;
}


原文链接:https://blog.csdn.net/jiahuiandxuehui?spm=1001.2101.3001.5343


最近老是发现有人偷偷转载到别的地方署名也是他自己而且内容一点都不改动

先道个歉最近文章质量有点拉胯,因为要考试了在复习时间比较紧,但是大家还是会点赞三连的是不是,嘻嘻嘻
山外青山楼外楼,点赞三连就是牛 😗 /撒娇


转载:https://blog.csdn.net/jiahuiandxuehui/article/details/117486489
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场