基础功能:
使用链表
使用结构体
对学生信息的增删改查
按姓名或者学号进行学生成绩的排序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define M 2
#define N 4
typedef struct score//定义成绩结构体
{
int math;//数学
int c_language;//c语言
int english;//英语
double ave;//平均分
int total_sum;//总分
}SCORE;
typedef struct stu
{
char id[20];//学号
char name [10];//姓名
char sex[20];//性别
char pro[20];//专业
int year;//入学年份
SCORE stu_score;//学生成绩
char stu_lesson[N][50];//学生选课
}STU;
typedef struct list
{
STU data;
struct list *next;
}LIST;//创建链表结构体
LIST *Creat_List(STU s[]);//链表的创建
int Stu_Entry(STU stu[]);//学生信息的录入
int Score_Entry(STU score[]);//学生成绩的录入
void S_score(LIST*head);//利用链表进行成绩的输出
void infor_show(LIST*head);//利用链表对学生信息进行输出
void S_sort(STU s[],int flag);//利用结构体进行排序
SCORE Score_search(char *s,LIST *p,int flag);//成绩的查询
LIST *Delet_Score(char*s,LIST*tr,int flag);//成绩的删除
LIST *Delet_infor(char*st,LIST *ht,int flag);//学生记录的删除
LIST *Re_score(char *sr,SCORE R_score,LIST *h,int flag);//成绩修改
void Show_infor(char *S_s,LIST*h,int flag);//学生信息的查询
int Elect_les(STU lesson[]);//学生选课
LIST* Insert_infor(LIST *in_infor );//学生信息的添加
void main()
{
printf("\t\t\t欢迎进入学生信息管理系统\n");
system("color 9");
int choice;//输入你的选择
char user[23];//输入用户名
char key[20];//输入密码
STU stu[M];//结构体数组
LIST *head;//链表的头结点
head=Creat_List(stu);
printf("请输入用户名:\n");
scanf("%s",user);
printf("请输入密码:\n");
scanf("%s",key);
printf("*******************************\n");
printf("* 1---信息录入 *\n");
printf("* 2---成绩录入 *\n");
printf("* 3---成绩输出 *\n");
printf("* 4---成绩排序 *\n");
printf("* 5---成绩查询 *\n");
printf("* 6---成绩修改 *\n");
printf("* 7---信息添加 *\n");
printf("* 8---信息删除 *\n");
printf("* 9---成绩删除 *\n");
printf("* 10--信息查询 *\n");
printf("* 11--信息输出 *\n");
printf("* 12--学生选课 *\n");
printf("* 13--退出程序 *\n");
printf("*******************************\n");
if(strcmp(user,"admin")==0&&strcmp(key,"123456")==0)
{
printf("请输入你的选择:\n");
while(scanf("%d",&choice)!=EOF)
{
system("cls");
printf("*******************************\n");
printf("* 1---信息录入 *\n");
printf("* 2---成绩录入 *\n");
printf("* 3---成绩输出 *\n");
printf("* 4---成绩排序 *\n");
printf("* 5---成绩查询 *\n");
printf("* 6---成绩删除 *\n");
printf("* 7---信息添加 *\n");
printf("* 8---信息删除 *\n");
printf("* 9---成绩修改 *\n");
printf("* 10--信息查询 *\n");
printf("* 11--信息输出 *\n");
printf("* 12--学生选课 *\n");
printf("* 13--退出程序 *\n");
printf("*******************************\n");
switch(choice)
{
case 1:{
printf("请录入学生的信息:\n");
if(Stu_Entry(stu))
printf("信息录入完成\n");
else
printf("信息录入失败\n");
system("pause");break;
}
case 2:{
printf("请录入每位学生对应的成绩:\n");
if(Score_Entry(stu))
printf("学生成绩录入完成\n");
else
printf("学生成绩录入失败\n");
system("pause");break;
}
case 3:{
printf("成绩的输出为:\n");
S_score(Creat_List(stu));
system("pause");break;
}
case 4:{
int choice;
printf("请输入排序的方式(1-平均分排序 2-总分排序)\n");
scanf("%d",&choice);
printf("成绩排序的结果为:\n");
S_sort(stu,choice);
S_score(Creat_List(stu));
system("pause");break;