C++基础学生管理系统
本文实例为大家分享了C++基础学生管理系统的实现代码,供大家参考,具体内容如下
适用于c++6.0,codeblocks等常用工具
1. 链表处理部分
#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. 数据处理部分
#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. 文件处理部分
#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. 主菜单自定义部分
#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部分
#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
以上就是本文的全部内容,希望对大家学习C++语言有所帮助。
赞 (0)
