学生信息管理系统-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)