学生管理系统 C语言 动态链表 结构体 文件操作 设置密码 输入密码回显星号

C语言 学生管理系统代码

实现功能

功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、专业、  性别、年龄、   电话、家庭住址。还可以继续拓展

系统要求实现以下功能:
1、输入功能:录入学生信息(包括学生姓名、学号、专业、  性别、年龄、   电话、家庭住址等);
2、显示功能:完成学生记录的显示。
3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。

编程创建文件,输入学生信息并可将文件内容显示出来)

4.设置登录模块

4.1、在获得管理员权限后才可完成查询功能,即输入学号,可查询该学生的信息

4.2、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。
C语言作业要求:

1、用C语言实现程序设计;
2、利用结构体数组、链表等实现学生信息表达、查询等,充分体现数据结构的知识;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序要有注释。
5、程序中所用到的查找方法需采用数据结构中所学方法实现,要求方法实用效率高。

学生管理系统是具有统计,管理学生各种在校相关信息,方便学校对于学生信息的统一管理的系统。由于需要处理的学生信息日趋加大,为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息,成为管理高校中必不可少的管理工具。

管理员对系统的功能需求:
有关学生信息的输入功能
有关学生信息的显示功能
有关学生信息的查找功能
有关学生信息的修改功能
有关学生信息的修改加密功能
有关界面的人机交互友好化功能
有关学生信息文件的存储和读取功能

 完整版代码学生管理系统.zipC语言链表设置密码_C语言系统如何设置密码-C++文档类资源-CSDN下载
下面是程序展示

1.部分菜单功能展示

    printf("\t\t0.退出系统\n");
	printf("\t\t1.插入信息\n");
	printf("\t\t2.浏览信息\n");
	printf("\t\t3.修改信息\n");
	printf("\t\t4.删除信息\n");
	printf("\t\t5.查找信息\n");

2.学生管理系统的增删查找:

2.1   增:插入学生信息


void insertNodeByHead(struct Node *headNode,struct student data)  //表头法插入
{
	struct Node* newNode=createNode(data);
	newNode->next=headNode->next ;
	headNode->next=newNode;
}

2.2    删:删除学生信息

void deleteNodeByName(struct Node *headNode,char *name)
{
	struct Node *posNode=headNode->next;  //初始化,从链表头结点开始寻找删除的节点
	struct Node *posNodeFront=headNode;
	if(posNode==NULL)
	{
		printf("无法删除链表,为空\n");
	}
	else
	{
		while(strcmp(posNode->data.name,name))
		{
			posNodeFront=posNode;
			posNode=posNodeFront->next ;
			if(posNode==NULL)
				{
					printf("无法找到相关信息,无法删除\n");
					//	break;
					return ;
				}		
		}	
		posNodeFront->next=posNode->next ;
		free(posNode);
	}
}

2.3  查:按照学号查找学生信息

void printNode(struct Node *CurNode)  //查找时单独打印数据
{

	printf("姓名\t学号\t专业\t   性别\t  年龄\t   电话\t\t家庭住址\n");
	printf("%s\t%s\t%s\t   %s\t  %d\t%s\t  %s\t\n",CurNode->data.name,CurNode->data.num,CurNode->data.major ,
			CurNode->data.sex ,CurNode->data.age,CurNode->data.tel,CurNode->data.addr);

}

2.4    找:浏览学生信息

void printList(struct Node *headNode)  //打印,浏览信息
{
	struct Node *pMove=headNode->next ;
	printf("姓名\t学号\t专业\t   性别\t  年龄\t   电话\t\t家庭住址\n");
	while(pMove)
	{
		printf("%s\t%s\t%s\t   %s\t  %d\t%s\t  %s\t\n",pMove->data.name,pMove->data.num,pMove->data.major, 
		pMove->data.sex,pMove->data.age,pMove->data.tel,pMove->data.addr);
		pMove =pMove->next ;
	//printf("\n");
	}

}

3.      文件操作

3.1      读取文件操作

//读文件操作
void readfromFile(char *Filename,struct  Node *HeadNode)
{

	FILE *fp=fopen(Filename,"r");
	if(fp==NULL)
	{
		fp=fopen(Filename,"w");//没有现有文件,就创建文件 以写的方式打开文件
	}
	struct student FileData;
	while(fscanf(fp,"%s\t%s\t%d\t%s\t  %s\t\n",FileData.name,
		FileData.num,&FileData.age,FileData.tel,FileData.addr) !=EOF )  //不到文件结束的时候
		{
			insertNodeByHead(HeadNode,FileData);
			memset(&FileData,0,sizeof (FileData));
		}
	fclose(fp);//关闭文件
}

3.2     保存文件操作

//存储文件操作
void saveinFile(char *Filename,struct  Node *headNode)
{
	FILE *fp=fopen(Filename,"w");//写文件
	struct Node *pMove=headNode->next ;//初始化,从链表头结点开始寻找的节点
	while(pMove)
	{
		fprintf(fp,"%s\t%s\t%d\t%s\t  %s\t\n",pMove->data.name,pMove->data.num,
			pMove->data.age,pMove->data.tel,pMove->data.addr);
		pMove =pMove->next ; //移动指针 不然始终跳不出循环
	}//数据写入到文件
		fclose(fp);

}

4.功能函数

4.1    设置菜单函数

void systemMeum()
{
	//几个菜单,通常情况下就是几个函数
	//菜单--功能
	//隐藏功能:同步文件操作:保存到文件 增删查改
	printf("----------------------------[学生管理系统]------------------------\n");
	printf("\t\t0.退出系统\n");
	printf("\t\t1.插入信息\n");
	printf("\t\t2.浏览信息\n");
	printf("\t\t3.修改信息\n");
	printf("\t\t4.删除信息\n");
	printf("\t\t5.查找信息\n");
	printf("-----------------------------------------------------------------\n");
	printf("请输入0~5:\n"); //程序交互,需要及时提示


}

5.     主函数代码

int main()
{
	//struct  Node *list=createList();
	
	loginSystemJudge();
	readfromFile("student.txt",list);
	while(1)
	{
		systemMeum();
		keyDown();
		system("pause");
		system("cls");//清屏
	}

	system("pause");
	return 0;
}

完整版代码:学生管理系统.zipC语言链表设置密码-C++文档类资源-CSDN下载

展示结果

1.登录失败

2.登录成功

 3.展示查询功能

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love coldplay

你的鼓励,将让我持续更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值