学生信息管理系统(双向链表)(C语言)

学校要求写学生信息管理系统,写完顺便水一篇博客

数据结构是双向链表,Ptial指针永远指向尾节点,head指针永远指向头节点(有一个链表头)

在这里插入图片描述

要注意的地方:学生成绩我是用了一个,其他我没有用,有文件保存和文件读取,但是保存值针对第一次保存,再次保存的话会出现BUG,保存的txt,第一个信息是学生的数量。排序是选择排序是从大到小排序(可以直接跑,但是诸位要修改许多才能实现直接的功能,希望能帮到各位)

学校任务要求
1、目的和要求:
(1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。
(2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。
口令程序段的功能要求:
1)提示用户输入一个口令。
2)用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。
3)可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出系统。
(3)显示数据时,一页显示不下,可分页显示。
数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩2、成绩3、平均成绩、总成绩。
2、主要内容:
具有以下功能:
(1)添加、删除任意个记录。
(2)修改任意个记录。
(3)显示、保存记录。
(4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排序法将平均成绩和总成绩排序后生成两个新文件(从大到小),存盘并显示这两个文件的全部记录。
(5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。

登录密码是:qwerty

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

typedef struct student
{
   
	int Student_number;
	char Student_name[10];
	int Student_grade;
	char Student_major[10];
	int Student_score_1;
	int Student_score_2;
	int Student_score_3;
	int Student_average_score;
	int Student_Sum_average;
	struct student* pre;
	struct student* next;
}Student;
typedef struct student_message
{
   
	int Student_Num;
	Student* p;
	Student* head;
}Student_Message;

void save_file(Student_Message* Stu);
void show_student(Student_Message* Stu);
void add_student(Student_Message* Stu);
Student* search_student(Student_Message* Stu);
int delete_student(Student_Message* Stu);
int change_student(Student_Message* Stu);
void Search_Student(Student_Message* Stu);
void clean_student();
void land();
void keydowm(Student_Message* Stu);
void sort(Student_Message*Stu);
void readstudent(Student_Message*Stu);

void save_file(Student_Message*Stu)
{
   
	Student* temp = Stu->head;
	FILE* fp= NULL;
	fp = fopen("学生信息.txt", "w+");
	if (fp == NULL)
		return;
	//fprintf(fp, "学生学号   学生年级     学生年级   学生专业    学生成绩\n");
	fprintf(fp, "%d ", Stu->Student_Num);
	while (temp->next)
	{
   
		fprintf(fp, "%d\t%d\t%s\t%s\t%d\t", temp->Student_number, temp->Student_grade,
			temp->Student_name, temp->Student_major, temp->Student_score_1);
		temp = temp
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值