C++基礎(chǔ)學(xué)生管理系統(tǒng)
本文實例為大家分享了C++基礎(chǔ)學(xué)生管理系統(tǒng)的實現(xiàn)代碼,供大家參考,具體內(nèi)容如下
適用于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. 數(shù)據(jù)處理部分
#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
推薦幾篇文章:
關(guān)于管理系統(tǒng)的更多內(nèi)容請點擊《管理系統(tǒng)專題》進(jìn)行學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++11新特性“=default”,“=delete”的使用
=default、=delete 是C++11的新特性,分別為:顯式缺省(告知編譯器生成函數(shù)默認(rèn)的缺省版本)和顯式刪除(告知編譯器不生成函數(shù)默認(rèn)的缺省版本),本文就來介紹一下如何使用2021-05-05
數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實現(xiàn)介紹
大家好,本篇文章主要講的是數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實現(xiàn)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12
QT中QTableWidget加載大量數(shù)據(jù)不卡頓的解決
本文主要介紹了QT中QTableWidget加載大量數(shù)據(jù)不卡頓的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

