C语言的学生信息管理系统

C语言编写的学生信息管理系统
数据结构如下

学号姓名性别年龄数学计算机总分
intcharcharintfloatfloatfloat

实现功能如下:
(1)添加学生信息
(2)浏览学生信息
(3)查询学生信息
(4)删除学生信息
(5)按总分排序
(6)退出系统
要求执行完某一功能后能返回主菜单,系统实现密码登录,密码保存在TXT文本文件中。

需要在根目录下创建一个pwd.txt的文本文档存放密码,默认为123.

程序运行截图
主菜单
在这里插入图片描述
展示输入所有信息
在这里插入图片描述
排序后
在这里插入图片描述
源代码

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include <string.h>
#define length 20
#define N 5
typedef struct student{
	int student_No;
	char name[length];
	char sex[length];
	int age;
	float math;
	float cmpter;
	float total;
}Stu;
Stu stu[N];
int i;
int login();
void display();
void insert();
void show();
void quqry();
void delet();
void sort();
int login(){
	int pwd,pwd1;
	printf("\n");
	printf("\n");
	printf("                                                  欢迎进入学生管理系统\n");
	printf("                                                     请输入登录密码\n");
	printf("\n");
	scanf("                                            %d",&pwd);
	FILE *fp;
	fp=fopen("pwd.txt","r");
	fscanf(fp,"%d",&pwd1);
	if(pwd==pwd1){
		system("cls");
		printf("密码正确\n");
		Sleep(1000);
		system("cls");
		return 1;
	}
	system("cls");
	printf("密码错误");
	Sleep(1000);
	system("cls");
	return 0;
}
void display(){
	int choice;
	printf("                                                  欢迎进入学生管理系统\n");
	printf("(1)添加学生信息\n");
	printf("(2)浏览学生信息\n");
	printf("(3)查询学生信息\n");
	printf("(4)删除学生信息\n");
	printf("(5)按总分排序\n");
	printf("(6)退出系统\n");
	scanf("%d",&choice);
	switch(choice){
		case 1:{
			system("cls");
			insert();
			break;
		}
		case 2:{
			system("cls");
			show();
			break;
		}
		case 3:{
			system("cls");
			quqry();
			break;
		}
		case 4:{
			system("cls");
			delet();
			break;
		}
		case 5:{
			system("cls");
			sort();
			break;
		}
		case 6:{
			exit(0);
			break;
		}
	}
}
void insert(){
	printf("添加第%d位同学的信息,共%d个\n",i+1,N);
	printf("数据间用tab分隔\n");
	printf("学号\t姓名\t性别\t年龄\t数学\t计算机\n");
	scanf("%d\t%s\t%s\t%d\t%f\t%f",&stu[i].student_No,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].math,&stu[i].cmpter);
	stu[i].total=stu[i].math+stu[i].cmpter;
	i++;
	printf("\n按任意键返回主菜单");
	getch();
	system("cls");
	display();
}
void show(){
	printf("以下是当前所有学生的信息,共%d个\n",i);
	printf("学号\t姓名\t性别\t年龄\t数学\t计算机\t总分\n");
	for(int j=0;j<i;j++){
		printf("%d\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\n",stu[j].student_No,stu[j].name,stu[j].sex,stu[j].age,stu[j].math,stu[j].cmpter,stu[j].total);
	}
	printf("\n按任意键返回主菜单");
	getch();
	system("cls");
	display();
}
void quqry(){
	int choice;
	printf("根据什么查询?\n");
	printf("(1)学号\n"); 
	printf("(2)姓名\n");
	scanf("%d",&choice);
	switch(choice){
		case 1:{
			int sno;
			printf("请输入学号\n");
			scanf("%d",&sno);
			printf("查询结果为:\n");
			for(int j=0;j<i;j++){
				if(sno==stu[j].student_No){
					printf("学号\t姓名\t性别\t年龄\t数学\t计算机\t总分\n");
					printf("%d\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f",stu[j].student_No,stu[j].name,stu[j].sex,stu[j].age,stu[j].math,stu[j].cmpter,stu[j].total);
				}
			}
			break;
		}
		case 2:{
			char name_1[length];
			printf("请输入姓名\n");
			scanf("%s",&name_1);
			printf("查询结果为:\n");
			for(int j=0;j<i;j++){
				if(strcmp(name_1,stu[j].name)==0){
					printf("学号\t姓名\t性别\t年龄\t数学\t计算机\t总分\n");
					printf("%d\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f",stu[j].student_No,stu[j].name,stu[j].sex,stu[j].age,stu[j].math,stu[j].cmpter,stu[j].total);
				}
			}
			break;
		}
	}
	printf("\n按任意键返回主菜单");
	getch();
	system("cls");
	display();
}
void delet(){
	int choice;
	printf("根据什么删除?\n");
	printf("(1)学号\n"); 
	printf("(2)姓名\n");
	scanf("%d",&choice);
	switch(choice){
		case 1:{
			int sno;
			printf("请输入学号\n");
			scanf("%d",&sno);
			for(int j=0;j<i;j++){
				if(sno==stu[j].student_No){
					for(int k=j;k<i;k++){
						stu[k]=stu[k+1];
					}
				}
			}
			break;
		} 
		case 2:{
			char name[length];
			printf("请输入姓名\n");
			scanf("%s",&name);
			for(int j=0;j<i;j++){
				if(strcmp(name,stu[j].name)==0){
					for(int k=j;k<i-1;k++){
						stu[k]=stu[k+1];
					}
				}
			}
			break;
		}
	}
	i--;
	printf("删除成功\n");
	printf("\n按任意键返回主菜单");
	getch();
	system("cls");
	display();
}
void sort(){
	Stu stu_temp;
	for(int j=0;j<i;j++){
		for(int k=j;k<i-1;k++){
			if(stu[k].total<stu[k+1].total){
				stu_temp=stu[k];
				stu[k]=stu[k+1];
				stu[k+1]=stu_temp;
			}
		}
	}
	printf("排序成功\n");
	printf("按任意键返回主菜单");
	getch();
	system("cls");
	display();
}
int main(){
	while(1){
		if(login())
			break;
	}
	display();
	return 0;
}
给别人编的。。。留着也没多大用处要做一个学生信息管理系统1.系统管理员进入(请输入密码)2.一级菜单(1.信息维护,2.信息检索,3.信息统计,4.退出)3.二级菜单(信息维护(1.建立学生成绩文件,2.添加学生记录,3.删除学生记录,4.修改学生记录,5.返回上级菜单)) 信息检索(1.按班级查找2.返回上级菜单)信息统计(1.成绩统计2.返回上级菜单)说明1。用口令(密码)形式严整管理员身份(可输入三次),合法者进入,否则程序结束。2.有关功能说明1)建立学生成绩表(模块A)建立新的学生成绩文件输入若干学生记录,包括姓名,学号,班级,课程编号,成绩。2)添加学生记录(模块B)在已存在的学生成绩文件中添加新记录。3)删除学生记录(模块C)在学生成绩文件中删除有三门课程不及格的学生记录。删除前,逐条显示符合删除条件的学生姓名,成绩,确认后再删除。4)修改学生信息(模块D)输入学生学号,在学生成绩文件中找出该学生记录。在屏幕上逐条显示该学生的各条记录。每显示一条,询问是否修改,如果”Y“输入修改后的数据,将文件原记录删除,保存新的记录。5)按姓名和班级查找(模块E)输入姓名显示相应信息。6)信息统计(模块F)同时按照班级和课程统计每门课程,每个班级的平均成绩,最高分,最低分。在屏幕上先依次显示各门课程,对应的各个班级的统计数据。7)退出信息管理系统,返回操作系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值