功能介绍
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