Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use single linked list to realize Student Information Management system in C language

Shulou Source: shulou.com Published: 2022-06-02 12:05:21 10月02日 Update

This article mainly introduces how the C language uses a single linked list to realize the student information management system, which has a certain reference value. Interested friends can refer to it. I hope you will gain a lot after reading this article. Let the editor take you to know it.

The running result is shown in the figure:

1. Running interface

two。 Enter student information

3. Sort by total score

The code is as follows:

# define ERROR 0#define OK 1#define OVERFLOW-1 LNode,*LinkList;// typedef int ElemType;typedef int Status;#include#include#include#include#includetypedef struct {char name [20]; char snumber [20]; char sex [10]; int math; int chinese; int english;} student;typedef struct LNode {student data; struct LNode * next;} LNode,*LinkList;// single linked list initialization Status InitList (LinkList & L) {L = new LNode; L-> next = NULL; return OK } / / create a single linked list void CreateList (LinkList & L next=NULL n) {LinkList r; LinkList p; L = new LNode; L-> next=NULL; r = L; int i; for (I = 0 data.math,&p- > data.sex,&p- > data.chinese,&p- > data.math,&p- > data.english); / / scanf ("% d%d%d", & p-> data.chinese,&p- > data.math,&p- > data.english); p-> next=NULL R-> next=p; r = p;}} / Total score Statistics int GradeSum (LinkList L) {int sum; sum = (L-> data.chinese) + (L-> data.english) + (L-> data.math); return sum;} / / Statistics of all student information void BianLi (LinkList L) {LinkList p; p = L-> next; printf ("name\ t student number\ t language\ t mathematics\ t English\ n") While (p) {printf ("% s\ t% s\ t% s\ t", p-> data.name,p- > data.snumber,p- > data.sex); printf ("% d\ t% d", p-> data.chinese,p- > data.math,p- > data.english,GradeSum (p)); p = p-> next; printf ("\ n");}} / / sort by total score void OrderSum (LinkList & L) {LinkList pfocus Qtail; tail = NULL While ((L-> next- > next)! = tail) {p = L; Q = L-> next; while (Q-> next! = tail) {if (GradeSum (Q))

< GradeSum(q->

Next) {p-> next = Q-> next; Q-> next = Q-> next- > next; p-> next- > next = Q; Q = p-> next;} Q = Q-> next; p = p-> next;} tail = Q;} printf ("sorting is complete! \ n ");} / / sort according to the language void OrderChinese (LinkList & L) {LinkList pdhoreqposttail; tail = NULL; while ((L-> next- > next)! = tail) {p = L; Q = L-> next; while (Q-> next! = tail) {if ((Q-> data.chinese))

< (q->

Next- > data.chinese) {p-> next = Q-> next; Q-> next = Q-> next- > next; p-> next- > next = Q; Q = p-> next;} Q = Q-> next; p = p-> next;} tail = Q;} printf ("sort complete! \ n ");} / / sort by English void OrderEnglish (LinkList & L) {LinkList p next Q if; tail = NULL; while ((L-> next- > next)! = tail) {p = L; Q = L-> next; while (Q-> next! = tail) {if ((Q-> data.english)

< (q->

Next- > data.english) {p-> next = Q-> next; Q-> next = Q-> next- > next; p-> next- > next = Q; Q = p-> next;} Q = Q-> next; p = p-> next;} tail = Q;} printf ("sort complete! \ n ");} / / sort according to mathematics void OrderMath (LinkList & L) {LinkList p next Q if; tail = NULL; while ((L-> next- > next)! = tail) {p = L; Q = L-> next; while (Q-> next! = tail) {if ((Q-> data.math))

< (q->

Next- > data.math) {p-> next = Q-> next; Q-> next = Q-> next- > next; p-> next- > next = Q; Q = p-> next;} Q = Q-> next; p = p-> next;} tail = Q;} printf ("sort complete! \ n ");} / Delete the student information Status ListDelete (LinkList & L _ next; int I) {LinkList p; LinkList q; int j; p = L _ Tincj = 0; while ((p-> next) & & (jnext; + + j;} if (! (p-> next) | | (j > iMet 1) return ERROR; q = p-> next; p-> next = Q-> next; delete q; return OK;} void DeleteStudent (LinkList & L) {int i; printf (" Please enter the serial number of the student to be deleted\ n ") Scanf ("% d", & I); ListDelete (Lmemi); printf ("deleted! \ n ");} / / insert student information Status ListInsert (LinkList & L int igradchar name [], char snumber [], char sex [], int chinese,int math,int english) {LinkList p = L; LinkList s; int j = 0; while (p & (jnext; + + j;} if (! p | j > imur1) return ERROR; s = new LNode; strcpy (s-> data.name,name); strcpy (s-> data.snumber,snumber); strcpy (s-> data.sex,sex); s-> data.chinese = chinese S-> data.math = math; s-> data.english = english; s-> next = p-> next; p-> next = s; return OK;} void InsertStudent (LinkList & L) {int n; char name [20], snumber [20], sex [10]; int chinese,math,english; printf ("Please enter position N:"); scanf ("% d", & n) Printf ("Please enter the student's name, student number, gender, Chinese score, math score, English score and total score in turn\ n"); scanf ("% s%s%s%d%d%d", & name,&snumber,&sex,&chinese,&math,&english); ListInsert (LMagne namephatemsnumberchinese English);} void menu () {printf ("\ t\ t\ t = =\ n\ n") Printf ("\ t\ t\ t student information management system\ n\ n"); printf ("\ t\ t\ t =\ n\ n"); printf ("\ t\ t\ t = system function menu =\ n") Printf ("\ t\ t\ t"-"\ n") Printf ("\ t\ t\ t"); printf ("\ t\ t =\ n"); printf ("\ t\ t" 0. Enter student information. Statistics on students\ n "); printf ("\ t\ t\ t =\ n "); printf ("\ t\ t "2. Sorted according to the total score. Sorted by Chinese scores, printf ("\ t\ t = =\ n"); printf ("\ t\ t 4. Rank 5 according to math scores. Sorted by English scores\ n "); printf ("\ t\ t\ t =\ n "); printf ("\ t\ t 6. " Delete student information 7. Insert student information "\ n"); printf ("\ t\ t\ t =\ n"); printf ("\ t\ t" 8. Exit system\ n "); printf ("\ t\ t\ t = =\ n "); printf ("\ t\ t--\ n "); printf ("\ n\ n\ n ");} void luRu (LinkList & L) {int n Printf ("Please enter the number of students N:"); scanf ("% d", & n); printf ("Please enter the student's name, student number, gender, Chinese score, math score, English score, total score\ n"); CreateList (LMagne); printf ("Student information has been entered!" Void main (int args,char argv []) {LinkList p; InitList (p); int i; do {menu (); scanf ("% d", & I); getchar (); switch (I) {case 0:luRu (p); break; case 1:BianLi (p); break; case 2:OrderSum (p); BianLi (p); break; case 3:OrderChinese (p); BianLi (p); break; case 4:OrderMath (p); BianLi (p); break Case 5:OrderEnglish (p); BianLi (p); break; case 6: DeleteStudent (p); break; case 7:InsertStudent (p); break; case 8:exit (0);}} while (I! =-1) } Thank you for reading this article carefully. I hope the article "how to use single linked list to implement student information management system in C language" shared by the editor will be helpful to everyone. At the same time, I also hope that you will support and pay attention to the industry information channel. More related knowledge is waiting for you to learn!

Tags: Students ranking information grades total score system math Chinese English input articles management system management name student number gender statistics language operation code Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Microsoft macOS Shulou Technology MySQL Apple