学生信息管理系统(C语言动态数组实现)第一次写没经验啊|ू・ω・` )

这是一个使用C语言编写的动态数组实现的学生信息管理系统,包括添加、排序、删除、查询、修改和输出学生信息等功能。程序由多个独立的函数组成,如主函数、输出函数、排序函数等。
摘要由CSDN通过智能技术生成

功能介绍
1.添加学生信息;
2.对学生信息进行排序;
3.删除学生信息;
4.查询学生信息;
5.修改学生信息;
6.输出学生信息;
7.清屏;

main函数

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "stu.h"
int n;
int len=sizeof(struct student);
struct student *p=NULL;
//上面三个是全局变量,但在主函数页面定义的全局变量在其他页面使用时
//要进行拓展(用extern),并且全局变量在所有页面的任何函数中都可以
//对其进行修改和重新赋值,且全局变量在各个位置大小都相同。且任何页
//面的的任何函数都不可以再定义与全局变量同名的变量。
//全局变量不要在头文件中定义,要在main.c文件前面定义,但可以在头文
//件中进行拓展。
/*
如果全局变量在main.c进行定义时直接赋值了,在头文件中进行拓展后,
任何页面用到这个全局变量都为之前的赋值。但是在任何页面都可以再次
对全局变量进行赋值,重新赋值后,在任何页面再次运用到此变量时就会
是之后赋的值。除非程序结束后再次运行时才会变为最开始的值。
*/
int main()
{
   
    sayhello();
    int com;
    while(1)
    {
   
        introduce();
        if(scanf("%d",&com)!=1)
        {
   
            printf("*******您输入的指令不正确请重新输入*******\n");
            fflush(stdin);//清除缓存区;如果不清除缓存区,错误信息因为未完成赋值操作会一直停留在缓存区,
            //下一次循环到这里时仍会赋值不成功,如此往复,造成死循环。因此一定要清除缓存区!!!
            continue;//结束本次输入进行下次输入
        }
        else
            switch(com)
            {
   
                case 0:saygoodbye();exit(1);//退出
                case 1:add();break;//添加
                case 2:outputs();break;//排序
                case 3:del1();break;//删除
                case 4:find1();break;//查询
                case 5:change1();break;//修改
                case 6://清屏
                    system("cls");//系统内自带的清屏函数
                    break;
                case 7:outputs();break;//输出
                default:printf("*****************没有该指令,请重新输入*****************\n");
            }

    }
            return 0;
}

头文件 stu.h

#ifndef STU_H_INCLUDED
#define STU_H_INCLUDED

extern int n;
extern int len;//在头文件中进行扩展就不用在没个页面前面都拓展了,只需要在每页的前面调用头文件即可。
extern struct student *p;//因为头文件已经包含了。

struct student
{
   
    int no;
    char name[20];
    char sex[5];
    double score[5];
    double sum;
    double ave;
    int position;
};

//HelloGoodbye.c;
void sayhello();
void saygoodbye();

//introduce.c
void introduce();

//add.c
void input(struct student *q,int m);
void inputs(int m);
void add();

//output.c
void output(struct student *q);
void outputs();

//sort.c
void sort1();

//del.c
int del2(int no);
void del1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值