学习记录:Linux C学生信息管理系统(顺序表)

本文记录了一次使用C语言在Linux环境下实现学生信息管理系统的实践过程,重点在于顺序表的操作,包括初始化、插入、删除和销毁。文章提到了代码中的一些改进点,如增加数据合法性检查、优化性别存储、处理学号重复性,以及修复了测试中发现的错误。
摘要由CSDN通过智能技术生成

C高级初步学完,综合学习内容并借此熟悉接下来的数据结构的顺序表内容
这次完成的学生管理系统只是实现基本功能,其中还有很多可以改善的地方,例如对用户输入的数据合法性判断,用位域操作减小性别存储所需的空间,枚举限制性别参数的输入来保证合法性,添加文件读写操作等。
ps:还应添加学号重复性的检查
分为三个部分,student.h,student.c,main.c

student.h

#ifndef _STUDENT_H_
#define _STUDENT_H_

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

#define MAX 30 //最大学生数

typedef struct
{
   
	char name[20];
	int id;
	int gender;
	int age;
	double grade;
}STU;

typedef struct
{
   
	STU *stu;
	int num;
}CLASS;

void menu();
int Init_input();
int Init();//顺序表初始化
int input();//基础输入
int add();//插入
void output();//输出
void find();//id查找
int del();//删除
int change();//修改
void rank();//排序
void all_out();//将所有学生信息输出打印

#endif

student.c

#include "student.h"
//表初始化
int Init(CLASS *L)
{
   
	L->stu = (STU *)malloc(MAX*sizeof(STU));
	if(!L->stu)
		return 1;
	L->num = 0;//空表
	return 0;
}


void output(CLASS L,int n)
{
   
	printf("%d\t\t",L.stu[n].id);
	printf("%s\t",L.stu[n].name);
	printf("%s\t",L.stu[n].gender > 0 ? "男" : "女" );
	printf("%d\t",L.stu[n].age);
	printf("%.1lf\n",L.stu[n].grade);
	
	return;
}

int add(CLASS *L)
{
   
	
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值