C++基础学生管理系统

本文实例为大家分享了C++基础学生管理系统的实现代码,供大家参考,具体内容如下

适用于c++6.0,codeblocks等常用工具

1. 链表处理部分    

#include
#include
#include
 
#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
#include
#include
 
#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
#include
#include
 
#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 
#include 
 
 
#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++语言有所帮助。

你可能感兴趣的:(C++基础学生管理系统)