本文实例为大家分享了C++基础学生管理系统的实现代码,供大家参考,具体内容如下
适用于c++6.0,codeblocks等常用工具
1. 链表处理部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"linklist.h"
#include"elem.h"
void dispnode(linklist h)
{
node *p;
p=h->next;
while (p)
{
dispelem(p);
p=p->next;
}
}
int inputnode(linklist h,T e)
{
node *p;
node *q;
p=h;
while (p->next&& (p->next->data).id<=e.id)
{
if ((p->next->data).id==e.id)
return 0;
p=p->next;
}
q=(node*) malloc ( sizeof (node));
q->data=e;
q->next=p->next;
p->next=q;
return 1;
}
int delnode(linklist h, int id)
{
node *p;
p=h;
while (p->next&&(p->next->data).id!=id)
p=p->next;
if (p->next)
{
node *t=p->next;
p->next=t->next;
free (t);
return 1;
}
else
return 0;
}
node* searchname(linklist h, char name[])
{
node *p;
p=h-next;
while ( p && strcmp ((p->data).name ,name)!=0)
p=p->next;
return p;
}
node* searchid(linklist h, int id)
{
node *p;
p=h->next;
while ( p->next && (p->next->data).id <= e.id )
p=p->next;
return p;
}
|
2. 数据处理部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"linklist.h"
#include"elem.h"
void dispnode(linklist h)
{
node *p;
p=h->next;
while (p)
{
dispelem(p);
p=p->next;
}
}
int inputnode(linklist h,T e)
{
node *p;
node *q;
p=h;
while (p->next&& (p->next->data).id<=e.id)
{
if ((p->next->data).id==e.id)
return 0;
p=p->next;
}
q=(node*) malloc ( sizeof (node));
q->data=e;
q->next=p->next;
p->next=q;
return 1;
}
int delnode(linklist h, int id)
{
node *p;
p=h;
while (p->next&&(p->next->data).id!=id)
p=p->next;
if (p->next)
{
node *t=p->next;
p->next=t->next;
free (t);
return 1;
}
else
return 0;
}
node* searchname(linklist h, char name[])
{
node *p;
p=h-next;
while ( p && strcmp ((p->data).name ,name)!=0)
p=p->next;
return p;
}
node* searchid(linklist h, int id)
{
node *p;
p=h->next;
while ( p->next && (p->next->data).id <= e.id )
p=p->next;
return p;
}
|
3. 文件处理部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"linklist.h"
#include"elem.h"
void dispnode(linklist h)
{
node *p;
p=h->next;
while (p)
{
dispelem(p);
p=p->next;
}
}
int inputnode(linklist h,T e)
{
node *p;
node *q;
p=h;
while (p->next&& (p->next->data).id<=e.id)
{
if ((p->next->data).id==e.id)
return 0;
p=p->next;
}
q=(node*) malloc ( sizeof (node));
q->data=e;
q->next=p->next;
p->next=q;
return 1;
}
int delnode(linklist h, int id)
{
node *p;
p=h;
while (p->next&&(p->next->data).id!=id)
p=p->next;
if (p->next)
{
node *t=p->next;
p->next=t->next;
free (t);
return 1;
}
else
return 0;
}
node* searchname(linklist h, char name[])
{
node *p;
p=h-next;
while ( p && strcmp ((p->data).name ,name)!=0)
p=p->next;
return p;
}
node* searchid(linklist h, int id)
{
node *p;
p=h->next;
while ( p->next && (p->next->data).id <= e.id )
p=p->next;
return p;
}
|
4. 主菜单自定义部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#include <stdio.h>
#include <stdlib.h>
#include "linklist.h"
#include "elem.h"
#include "fileop.h"
void mainmenu();
void searchlinklist(linlist h)
{
linklist h;
h=(linklist) malloc ( sizeof (node));
h->next=NULL;
loadfile(h);
mainmenu(h);
savefile(h);
printf ( "\n" );
return 0;
}
void mainmenu()
{
node *p;
int id;
T e;
int select;
int count=1;
do
{
printf ( "\n" );
printf ( " ----------------¡¶SSMGS OS¡· ---------------\n" );
printf ( " 1 displaying 2 searching 3 adding 4 deleting\n\n" );
printf ( " 5 changing 6 extiting \n" );
printf ( " --------------------welcome ------------------------\n" );
printf ( "please input your select: " );
scanf ( "%d" , &select);
switch (select)
{
case 1:
dispnode(h);
break ;
case 2:
searchlinlist(h);
break ;
case 3:
inputelem(&e);
if (inputnode(h,e))
printf ( "succeed\n" );
else
printf ( "failed\n" );
break ;
case 4:
printf ( "please input id:" );
scanf ( "%d" ,&id);
break ;
case 5: //功能引用
break ;
case 6: //功能引用
count=0;
break ;
}
} while (count);
}
|
5.头文件集合部分
elem.h部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#ifndef LINKLIST_H_INCLUDED
#define LINKLIST_H_INCLUDED
#include"elem.h"
typedef struct node
{
T data;
struct node *next;
}node;
typedef node* linklist;
void dispnode(linklist h);
int inputnode(linklist h,T e);
int delnode(linklist h, int id);
node* searchname(linklist h, char name[]);
node* searchid(linklist h, int id);
#endif // LINKLIST_H_INCLUDED
fileop.h部分
#ifndef FILEOP_H_INCLUDED
#define FILEOP_H_INCLUDED
#include"linklist.h"
void savefile(linklist h);
void loadfile(linklist h);
#endif // FILEOP_H_INCLUDED
linklist.h部分
#ifndef LINKLIST_H_INCLUDED
#define LINKLIST_H_INCLUDED
#include"elem.h"
typedef struct node
{
T data;
struct node *next;
}node;
typedef node* linklist;
void dispnode(linklist h);
int inputnode(linklist h,T e);
int delnode(linklist h, int id);
node* searchname(linklist h, char name[]);
node* searchid(linklist h, int id);
#endif // LINKLIST_H_INCLUDED
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。