学生信息管理系统链式存储的实现
主函数头文件
main.h
#ifndef MAIN_H
#define MAIN_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include “creat_head.h”
#include “menu.h”
#include “add.h”
#include “print.h”
#include “rank.h”
#include “find.h”
#include “insert.h”
#include “delet.h”
#include “change.h”
#endif
主函数
#include “main.h”
int main()
{
int choose;
plink head = NULL;
head = creat_head();
if (head == NULL)
{
printf(“创建头节点失败\n”);
return -1;
}
printf(“创建头节点成功\n”);
while (1)
{
menu();
scanf_s("%d", &choose);
switch (choose)
{
case Add:keep_add(head);
break;
case Find:find(head);
break;
case Delete:delet(head);
break;
case Insert:keep_insert(head);
break;
case Change:change(head);
break;
case Rank:rank(head);
break;
case Print:print(head);
break;
case Exit: return 0;
default:
printf(“错误输入,请重新输入\n”);
}
}
return 0;
}
添加信息功能的头文件
add.h
#ifndef ADD_H
#define ADD_H
#include “NODE.h”
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void add(plink h); //学生管理系统的链表实现
#endif
添加信息函数
#include “add.h”
void add(plink h)//尾插法
{
int num;
plink tmp = h->next;
plink ne = NULL;
printf(“请输入学号\n”);
scanf_s("%d", &num);
while (tmp != NULL)
{
if (tmp->stu.id == num)
{
printf(“学号已存在\n”);
return;
}
tmp = tmp->next;
}
ne = (plink)malloc(sizeof(link));
ne->stu.id = num;
printf(“请输入姓名\n”);
scanf_s("%s", ne->stu.name,20);
printf(“请输入成绩\n”);
scanf_s("%f", &ne->stu.score);
ne->next = NULL;
tmp = h;
while (tmp->next != NULL)
tmp = tmp->next;
tmp->next = ne;
}
修改功能函数的头文件
#ifndef CHANGE_H_
#define CHANGE_H_
#include “NODE.h”
void change(plink head);
#endif
修改函数
#include “change.h”
#include <stdio.h>
#include <stdlib.h>
void change(plink head)
{
int num;
plink tmp = head->next;
printf(“请输入修改的学号\n”);
scanf_s("%d", &num);
while (tmp != NULL)
{
if (tmp->stu.id == num)
{
printf("请输入姓名\n");
scanf_s("%s", tmp->stu.name, 20);
printf("请输入成绩\n");
scanf_s("%f", &tmp->stu.score);
printf("修改成功\n");
return;
}
tmp = tmp->next;
}
printf("学生信息不存在\n");
}