学生信息管理系统-C语言实现

  • 格式:doc
  • 大小:37.50 KB
  • 文档页数:13

#include〈stdio.h>

#include〈stdlib.h〉

#include

int input(struct studcode **);//输入学生信息的函数

void instruct(void); //打印提示信息

void picture();//制表函数

void output(struct studcode *);//输出函数

void search(struct studcode *);//查找信息函数

int increase(struct studcode *);//增加学生信息的函数

void dele(struct studcode **);//删除学生记录的函数

void printall(struct studcode *);//输出全部学生信息的函数

void average(struct studcode *headp,struct analysis **head );//统计各科目平均分

int sort(struct analysis **head);//排序函数(升序排列)

void date_load(struct studcode **headp);//程序开始载入信息

void date_save(struct studcode *headp);//程序结束保存数据

struct analysis

char name_ex[20];//实验名称

int number; //统计到课人数

float aver;//平均分

struct analysis *next;

};

struct student

char name_tea[20];//教师名字

char name_stu[20];//学生名字

char clas[20];//班级

char name_ex[20];//实验名称

float match;//分数

};

struct studcode

struct student date; struct studcode *next;//建立链表的指针

};

int main()

{

char choose;

struct studcode *head=NULL;

struct analysis *head1=NULL;

//date_load(&head);

instruct();

printf("\n请选择功能:”);

choose=getchar();

while(choose!=’0')//输入0结束程序

switch(choose)

case ’1':

input(&head);//建立链表

getchar();

getchar();

break;

case ’2’:

search(head);//查找信息

getchar();

getchar();

break;

case ’3':

dele(&head);//删除信息

getchar();

getchar();

break;

case '4’:

increase(head);//增加信息

getchar();

getchar();

break;

case ’5’:

printall(head);//输出全部信息

getchar();

getchar();

break;

case '6':

average( head,&head1 );//统计各科平均分并升序输出

getchar();

getchar();

break;

default: printf(”\n 选择错误,重选 \n");

}

instruct();

printf(”\n请选择功能:”);

choose=getchar();

system("cls”);

date_save(head);

printf("谢谢使用本系统\n");

return 0;

void instruct(void)

system(”cls");

printf(”\n\t\t\t 试验管理系统 \t\t\t\t ”);

printf("\n\t\t\t 1 建立学生信息链表\t\t\t\t ");

printf(”\n\t\t\t 2 搜索学生相关信息\t\t\t\t ”);

printf(”\n\t\t\t 3 删除某个学生信息\t\t\t\t ");

printf(”\n\t\t\t 4 增加某个学生信息\t\t\t\t ”);

printf("\n\t\t\t 5 输出链表全部信息\t\t\t\t ”);

printf(”\n\t\t\t 6 统计各科目平均分\t\t\t\t ”);

printf("\n\t\t\t 0 退出程序 \t\t\t\t ");

int input(struct studcode **headp)

{

struct studcode *p ,*tail;

char a[4];

system(”cls");

date_load(headp);

if(*headp!=NULL)

printf("链表信息载入成功");

return 1;

else

{

printf(”目前没有数据保存请从终端输入数据");

printf("\n\t\t\t 成绩输入功能 \t\t\t\t ”);

p=(struct studcode *)malloc(sizeof(struct studcode ));

if(p==NULL)

{

printf(”error");

exit(—1);

}

printf(”\n请按提示输入相关信息");

printf(”\n教师姓名:");

scanf("%s",p—>_tea);

printf(”学生姓名:"); scanf("%s”,p->_stu);

printf("学生班级:”);

scanf(”%s",p—〉date。clas);

printf("实验名称:”);

scanf(”%s",p—〉_ex);

printf(”评分:");

scanf(”%f",&p—>date.match);

p-〉next=*headp;

*headp=p;

tail=p;

printf("是否继续输入 输入NO退回主菜单 其他任意字符继续当前操作 \\\\”);

scanf(”%s”,a);

while(strcmp(a,"NO”)!=0)

{

system(”cls");

printf("\n\t\t\t 成绩输入功能 \t\t\t\t ”);

p=(struct studcode *)malloc(sizeof(struct studcode));

if(p==NULL)

{

printf("error");

exit(-1);

printf(”\n教师姓名:");

scanf(”%s",p->date。name_tea);

printf("学生姓名:");

scanf(”%s",p->_stu);

printf("学生班级:");

scanf("%s”,p—〉date.clas);

printf(”实验名称:”);

scanf("%s",p-〉date。name_ex);

printf(”评分:");

scanf("%f",&p->date。match);

p-〉next=NULL;

tail—>next=p;

tail=p;

printf("是否继续输入 输入NO退回主菜单 其他任意字符继续当前操作 \\\\”);

scanf(”%s",a);

return 1;

void search(struct studcode *headp)