学生信息管理系统(C语言,带文件操作)

本文介绍了作者在C语言课程中完成的结课设计——一个学生信息管理系统。该系统包括输入、显示、查询、更新、删除和保存学生信息等功能,采用指针、结构体和链表实现,并通过控制台交互,提供简洁的用户界面。
摘要由CSDN通过智能技术生成

前情提示

这是本人大一的C语言程序设计的结课设计作业,由于这段时间一直在学习Java,C语言很久没学了,所以在CSDN上找了很多代码,经过对比最终发现博客C语言 学生成绩管理系统 控制台 文件操作(未涉及数据库)最符合我的需求,然后对这个程序进行了一些修改,于是我的结课设计就诞生了
在这里插入图片描述

程序简介

本程序设计具有学生信息的输入、显示、查询、更新、删除、保存等功能,利用清屏函数使操作界面简洁美观,易于操作。程序用了指针、结构体、链表等知识点。运用菜单实现交互式管理,用户轻松的按键即可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足需要

流程图

在这里插入图片描述

源程序函数目录

在这里插入图片描述

源代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define max 100		//数组定义统一大小

int g = 0;		//全局变量,为登录时输入密码次数
int student_number = 5;		//全局变量,student_number为学生的人数

struct user      //定义一个结构体,存储用户登录账号和密码,并初始化五个管理员的信息
{
	char username[20];
	char password[20];
}user[5] = {
	{"蒋超", "1450824311"},
	{"李佳树", "2041775273"},
	{"刘英杰", "395636706"},
	{"胡友亮", "924056026"},
	{"黄家杨", "2946644844"}
};

struct student		//定义结构体,包含学生信息,并初始化五个学生的信息 
{
	char name[max];		//姓名
	char num[max];		//学号
	char sex[max];		//性别
	int chinese;		//语文成绩
	int mathematic;		//数学成绩
	int english;		//英语成绩
	int computer;		//计算机成绩
}s[5] = {
	{  "蒋超", "00001", "boy", 80,90,80,90},
	{  "李佳树", "00002", "boy", 60,80,90,50},
	{  "黄家杨", "00003", "girl", 85,65,75,90},
	{  "胡友亮", "00004", "boy", 55,65,75,80},
	{  "刘英杰", "00005", "girl", 90,95,98,99}
};

struct student* p;		//定义一个结构体指针

//主菜单函数声明
void login();				//登入函数
void main_menu();				//主界面函数
void input_record();  		//输入学生成绩处理   1
void show_record();  		//显示学生成绩处理   2   
void search_record();  		//查询学生成绩处理   3
void change_record();  		//更新学生成绩处理   4
void delete_record();  		//删除学生信息   5
void calc_record(); 	 	//计算成绩处理   6
void save_record();  		//保存处理   7
void exit_record();  		//退出   8


//查询子函数声明
void search_by_num();  		//学号查询
void search_by_name();  	//姓名查询
void search_by_sex();  		//性别查询
void search_by_exit();  	//返回上一级


//计算子函数声明
void calc_sum();  			//计算总成绩
void calc_ave();  			//计算平均成绩
void calc_eixt();  			//返回上一级


//自定义函数
void print_table();			//表头
void print_table_sum();		//总成绩表格
void print_table_ave();		//平均分表格
void read();     			//将文件中的数据读入到结构体数组中


int main()    				//*主函数
{
	login();		//首先进行管理员登录
	main_menu();		//登录成功后显示主界面
	return 0;
}


void login()    //登录函数,管理员使用该系统前需进行登录,定义密码只允许输错三次 
{
	int i;
	char id[20], password[20];
	printf("****登录界面****
");
	printf("请输入账号名:");
	scanf("%s", id);
	printf("请输入密码:");
	scanf("%s", password);
	for (i = 0; i < 5; i++)		//遍历五个管理员的信息,如果输入的信息在初始化的信息中存在则登录成功
	{
		if (strcmp(id, user[i].username) == 0 && strcmp(password, user[i].password) == 0)
		{
			printf("登录成功!
");
			system("cls");		//清屏函数
			main_menu();			//登录成功,打印主界面
			br
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值