栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学生信息管理系统(C语言版+详解+源代码)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学生信息管理系统(C语言版+详解+源代码)

我二二学生信息管理系统(C语言版+详解+源代码)相信受这篇的都是为了期末项目而发愁吧,那么这篇文章最适合你了。

我送给大家保姆级的教程。

      一、相信有部分同学不知道用什么软件运行吧(知道的可以直接看二哦),我用的软件是Devc++ 给大家发个链接,期末项目进程不迷路。

Dev c++官方下载: https://sourceforge.net/projects/orwelldevcpp/
百度云   DevC++
链接链接:https://pan.baidu.com/s/1FxmCcTNZeKOEqcwkWwQi1Q 
提取码:qno0

1) 首先加载安装程序(只需要十几秒)

                                   
2) 一路  ok  next   install  Finish 就安装好了。

先选english 之后再改简体中文(部分用户此时不能用中文)

 同意 Dev C++ 的各项条款

 选择要安装的组件    我是选择“Full”,全部安装。

 选择安装路径

 等待安装

 安装完成

3)选择简体中文

选择    Tools      Environment Option...   (这里截图窗口会关闭就用手机拍的哈)

 往上翻会看到简体中文。

 

二、 不多说直接上干货。

 代码展示

#include 
#include 
#include 
#include 
typedef struct Student
{
	char id[14];
	char name[10];
	char sex[3];
	int age;
	char phone[12];
}Student;

void menu(void);
//功能:在stu的count个元素,查找ss
//返回值:查找成功,返回ss在stu中的位置号;否则,返回 -1 
int searchID(Student stu[] , int count , Student ss); 
int searchNAME(Student stu[] , int count , Student ss); 
//正常插入,返回学生数;否则,返回-1
int add(Student stu[] , int count ,Student ss);
//若输入的学号存在,正常修改,返回学生数,否则,修改失败,返回 -1 
int modify(Student stu[],int count,Student ss);
//若输入的学号存在,删除,返回学生数,否则,删除失败,返回 -1 
int Delete(Student stu[],int count,Student ss);
void writeFile(Student stu[] , int count );
int readFile(Student stu[]);
int main()
{
	Student stu[50],ss;
	int  count = 0, i;
	int select, tag = 1 ;
    count = readFile(stu);
	while(tag)
	{
		menu();
		scanf("%d",&select);
		switch(select)
		{
			case 1://增加
				printf("请输入待增加的学生n学号t姓名t性别t年龄t联系方式n");
				scanf("%s%s%s%d%s", ss.id , ss.name , ss.sex , &ss.age ,ss.phone);
				i = add(stu,count,ss);
				if(i != -1)
				{
					printf("插入成功n");
					count  = i;
				}
				else
					printf("插入失败n");
				break;
			case 2://按学号查找
				printf("请输入学号:");
				scanf("%s", ss.id);
				i = searchID(stu , count ,ss);
				if(i != -1 )
					printf("%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone);
				else
					printf("%s 不存在!n",ss.id);
				break;
			case 3://按姓名查找 
				printf("请输入姓名:");
				scanf("%s", ss.name);
				i = searchNAME(stu , count ,ss);
				if(i != -1 )
					printf("%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone);
				else
					printf("%s 不存在!n",ss.name);
				break;
			case 4://修改 
				printf("请输入待修改的学生n学号t姓名t性别t年龄t联系方式n");
				scanf("%s%s%s%d%s", ss.id , ss.name , ss.sex , &ss.age ,ss.phone);
				i = modify(stu , count ,ss);
				if(i == -1)
					printf("%s 不存在,修改失败!n",ss.id);
					else
					printf("修改成功n"); 
				break;
			case 5://删除 
				printf("请输入待删除的学生学号:");
				scanf("%s", ss.id);
				i = Delete(stu , count ,ss);
					if(i != -1 )
				{
					printf("删除成功n");
					count = i; 
				}
				else
					printf("%s 不存在,删除失败n",ss.id);
				break;
			case 6://显示 
				printf("学号t姓名t性别t年龄t联系方式n");
				for(i = 0 ; i < count ; i++ )
					printf("%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone);
				break;
			case 0:
				system("cls") ;
				printf("欢迎再次使用学生信息管理系统......n");
				tag = 0 ;
				writeFile(stu ,count );
				break;
			default:
				printf("选择错误,只能选择(0-6)");
		}
		printf("按任意键继续......n");
		getch();
		system("cls");
	}
	getch();
	return 0;
}

void menu(void)
{
	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");
	printf("请选择(0-6):");
}
//功能:在stu的count个元素,查找ss
//返回值:查找成功,返回ss在stu中的位置号;否则,返回 -1 
int searchID(Student stu[] , int count , Student ss)
{
	int i ;
	for(i = 0 ; i < count ; i++)
		if(strcmp(stu[i].id , ss.id) == 0) return i ;
	return -1;
}
int searchNAME(Student stu[] , int count , Student ss)
{
	int i ;
	for(i = 0 ; i < count ; i++)
		if(strcmp(stu[i].name , ss.name) == 0) return i ;
	return -1;
}

int add(Student stu[] , int count ,Student ss)
{
	int pos ;
	pos = searchID(stu , count ,ss);
	if(pos == -1)
	{
		stu[count] = ss;
		return count + 1;
	}
	return -1;
}
//若输入的学号存在,正常修改,返回学生数,否则,修改失败,返回 -1 
int modify(Student stu[],int count,Student ss)
{
	int pos ;
	pos = searchID(stu , count ,ss);
	if(pos == -1)
	return -1;
	else
	{
		stu[pos] =ss;
		return count;	
	}
} 

//若输入的学号存在,删除,返回学生数,否则,删除失败,返回 -1 
int Delete(Student stu[],int count,Student ss)
{
	int pos , i;
		pos = searchID(stu , count ,ss);
		if(pos == -1)
		    return -1;
		else
		{
			for(i = pos + 1 ; i < count ; i++ )
			    stu[i - 1 ] = stu[i] ;
			return count - 1;	
		}
} 
void writeFile(Student stu[],int count )
{
	FILE *fp ;
	int i;
	fp = fopen ("student.dat" , "w");
	for(i = 0 ; i < count ;i++)
	  fprintf(fp,"%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone);
	fclose(fp);
}
int readFile(Student stu[])
{
	FILE *fp ;
	int i;
	fp = fopen ("student.dat" , "r");
	if(fp == NULL) return 0;
	for(i = 0 ; !feof(fp) ; i++)
	  fscanf(fp , "%s%s%s%d%sn" ,stu[i].id , stu[i].name , stu[i].sex, &stu[i].age,stu[i].phone);
    fclose(fp);
    return i;
}

运行结果

 有不懂的或想要问的可以评论,共同解决烦恼哦!

都看到这里快收藏起别找不到喽!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935153.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号