纯C语言学生管理系统(学生期末作业)

**

纯C语言学生管理系统(学生期末作业)

**

分为7大功能:增、删、查、改、预览、存储、导出

代码都加有注释,利于不懂的,理解

添加功能

//添加学生
void input ()
{
	int i;
	int j,ge;
	DaoChu();
	printf("你要存储几个学生的信息:");
	scanf("%d",&ge);
	for(i=count;i

删除功能如下:

void move ()
{

	int i,f;
	int j,n;
	char move[10];
	struct data *p=NULL;//定义
	int k=0;
	DaoChu();
	system("CLS");
	printf("删除全部输入all、单个one:\n");
	scanf("%s",move);
	if(strcmp(move,"all")==0)
	{
		for (f=0;f

查找功能

/// 查找学生,按学号查找
void find()
{

	int xuehao;
	int i,k=0;
	DaoChu();
	if (count==0)
	{
		printf("没有任何数据\n");
		return;
	}
	printf("请输入你要查找学生的学号:");
	scanf("%d",&xuehao);
	printf("学号\t姓名\t  手机号  \t英语\t数学\t语文\t总分\n");
	printf("---------------------------------------------------------\n");

	for(i=0;i

修改功能

//修改函数
/*  工作原理
这个函数是先把数据导出,然后再判断输入的学号是否一样,找到一样的就修改
然后再储存进去!
*/
void revise()
{
	int m=0;
	int xuehao,xx,j,i;
	FILE *fp;
	int f=0;
	DaoChu();//调用导出数据函数 
	printf("请输入你要修改的学号:");
	scanf("%d",&xuehao);
	for(xx=0;xx

浏览功能

void list_all()
{
	int j;
	DaoChu();
	system("CLS");
	printf("    学号      姓名     手机号     英语  数学  语文    总分  \n");
	printf("------------------------------------------------------------\n");
	for(j=0;j

导入本地

//存到文件
void CunChu()
{
	int i;
	FILE *rs;//定义一个文件指针rs
	if((rs=fopen("student.txt","w"))==NULL)//如果指定文件不存在则无法打开,就新建
	{
		printf("not open");
		exit(0);//退出
	}
	for(i=0;i

导出文件

void DaoChu()
{
	struct data t;//定义一个结构体类型 t
	int i=0;
	FILE* fp = fopen("student.txt", "r");//fp指针指向所打开的文件
	count=0;
	if(fp==NULL)//如果打开的文件不存在就执行以下
	{
		perror("读取文件打开失败!\n");
		return;
	}
	memset(data,0x0,sizeof(data));//它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)

	while(1)//能打开文件就执行以下读取数据
	{
		fread(&t,sizeof(t),1,fp);//如果有文件的话,就依此读取文件&t表示首地址 t表示数据块长度
		if(ferror(fp))//如果出错就读取失败ferror
		{
			fclose(fp);
			perror("读文件过程失败!\n");
			return;
		}
		if(feof(fp))//这判断如果到达文件尾部就应该停止
		{
			break;
		}
		data[i]=t;//把t的数据赋给i
		i++;//然后i以下加上
	}

	fclose(fp);//读取完后关闭文件流,否则会造成句柄泄露
	count=i;//然后把i的个数赋给全局变量
	printf("导出文件成功!\n");

}

菜单

//菜单功能
void mune()
{
	char cmdline[128];
	while(1)
	{

		printf("\n\n\t\t\t欢迎来到我的学生管理系统!\n");	   
		printf("\t\t\t\t添加:add \n\t\t\t\t查找:find \n\t\t\t\t删除:move \n\t\t\t\t浏览:list\n\t\t\t\t修改:revise\n\t\t\t\t存储:input \n\t\t\t\t导出:output  \n\t\t\t\t退出:exit \n");
		printf ("请输入你的指令:");
		scanf("%s",cmdline);
		//菜单处理
		if (strcmp(cmdline,"revise")==0)
		{
			revise();
			continue;
		}
		//菜单处理
		if (strcmp(cmdline,"exit")==0)
		{
			printf("退出系统\n");
			break;
		}
		//菜单处理
		if (strcmp(cmdline,"add")==0)
		{
			input();
			continue;
		}
		//菜单处理
		if (strcmp(cmdline,"find")==0)
		{
			find();
			continue;
		}
		//菜单处理
		if (strcmp(cmdline,"move")==0)
		{
			move();
			continue;
		}
		//菜单处理
		if (strcmp(cmdline,"list")==0)
		{
			list_all();
			continue;
		}
		//菜单处理
		if (strcmp(cmdline,"input")==0)
		{
			CunChu();
			continue;
		}

		if (strcmp(cmdline,"output")==0)
		{
			DaoChu();
			continue;
		}

		printf("输入指令有误,请重新输入!\n");
	}
}

int main ()
{
mune();//直接调用菜单函数
return 0;
}

项目源码如下:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "windows.h"


#define N 1000
/*学生信息管理系统

/*定义一个学生信息类的结构体
*/
 typedef struct data
{
	unsigned int id;
	char name[16];
	char phone[16];
	int  score[4];// 这表示成绩 语数英 和总分

}STUDENT;
STUDENT data [N];//数据源;录入的信息先存到这里
int count =0;//记录个数;
void CunChu();//声明 后面调用
void DaoChu();
//添加学生
void input ()
{
	int i;
	int j,ge;
	DaoChu();
	printf("你要存储几个学生的信息:");
	scanf("%d",&ge);
	for(i=count;i

作者水平有限:码bug挺多的~欢迎大家参照修改!
c语言作业,伸手党福利

如下侵权请联系作者!
qq:2116365116 非诚勿扰

你可能感兴趣的:(编程)