⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linklist.cpp

📁 嵌入式SQL数据库学生成绩管理系统! MFC界面制作!
💻 CPP
字号:
#include <iostream.h>
#include<iomanip.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct  {          //通讯录结点类型
	char ID[9];           
    char MZ[9];
	char XB[3];
	char NL[3];
	char ZY[20];
    char JG[20];
}DataType;
typedef struct node {     
	DataType data;             
    struct node *next;    
}ListNode;
typedef ListNode *LinkList;
LinkList first;
ListNode *p;              //函数说明
int system();
//node *get_next(){return next;}
LinkList create(void);
void Insert(LinkList first,ListNode *p);
ListNode *Find(LinkList first);
void remove(LinkList first);
void Print(LinkList first); 


LinkList create(void)
{
	LinkList first=(ListNode *)malloc(sizeof(ListNode));//申请头结点
	ListNode *link;
	//int flag=0;                   //结束标志置0
	link=first;               
	//while(flag!=1)
/*	{ 	
    
	     // cout<<"0.继续输入信息"<<endl;
         // cout<<"1.返回菜单选择"<<endl;
         // cout<<"请选择:";
	  	 // cin>>flag;
		 // if(!flag)
		 // {
			    p=(ListNode *)malloc(sizeof(ListNode));
			    cout<<"请输入学生学号: ";cin>>p->data.ID;cout<<endl;
                cout<<"请输入学生名字: ";cin>>p->data.MZ;cout<<endl;
                cout<<"请输入学生性别: ";cin>>p->data.XB;cout<<endl;
                cout<<"请输入学生年龄: ";cin>>p->data.NL;cout<<endl;
                cout<<"请输入学生专业: ";cin>>p->data.ZY;cout<<endl;
                cout<<"请输入学生籍贯: ";cin>>p->data.JG;cout<<endl;
			//cin>>p->data.ID>>p->data.MZ>>p->data.XB>>p->data.NL>>p->data.ZY>>p->data.JG;
			*/ // link->next=p;          
			  //link=p;
		//  }

	//}  
	link->next=NULL;
	return first;
}

void Insert(LinkList first,ListNode *p)
{ 
   /* listnode *p=first;
	int k=0;
	while(p!=NULL && k<i-1) {p=p->link}  */
   
    ListNode *p1,*p2;
	p1=first;
	p2=p1->next;
    while(p2!=NULL && strcmp(p2->data.ID,p->data.ID)<0)
	{
		p1=p2;
		p2=p2->next;   //指向下一个节点
	}
	p1->next=p;        //插入P所指接点
	p->next=p2;     
	//合表
}

	

ListNode *Find(LinkList first)
{
    ListNode *p=first->next;
	char ID[9];
    cout<<"输入想要查找/删除学生的学号: ";
	cin>>ID;
	while(p!=NULL && strcmp(p->data.ID,ID)<0)
		p=p->next;
	if(p==NULL || strcmp(p->data.ID,ID)>0)
	{
			p=NULL;
            cout<<"查无此人!"<<endl;
	}	
	return p;
} 
void remove(LinkList first)
{
	ListNode *p,*q;
    int flag;
	p=Find(first);
	if(p==NULL) 
	{ cout<<"空位置!无法删除!"<<endl;
	  return;
	}
	
	cout<<"1.确认删除!"<<endl;
	cout<<"0.取消删除!"<<endl;
	cout<<"确认删除?"<<endl;
	cin>>flag;
	if(flag==1)
	{
		q=first;
	    while(q!=NULL && q->next!=p)
		q=q->next;
		q->next=p->next;	
	    cout<<p->data.MZ<<"同学的信息被删除成功!"<<endl;
		free(p);
	}
	else
		cout<<"取消删除!"<<endl;	
}
void Print(LinkList first)
  {
	ListNode *p;
	p=first->next;
	if(p!=NULL)
		cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"性别";
		cout<<setw(10)<<"年龄"<<setw(15)<<"专业"<<setw(10)<<"籍贯"<<endl;
	while(p!=NULL)
	{
		
		cout<<setw(10)<<p->data.ID<<setw(10)<<p->data.MZ<<setw(10)<<p->data.XB;
		cout<<setw(10)<<p->data.NL<<setw(15)<<p->data.ZY<<setw(10)<<p->data.JG<<endl;
//		cout<<"学号:  "<<p->data.ID<<" 姓名:  "<<p->data.MZ<<" 性别:  "
//		<<p->data.XB<<" 年龄:  "<<p->data.NL<<"   专业: "<<p->data.ZY
//		<<"   籍贯: "<<p->data.JG<<endl;
		p=p->next;
	}
}                                               

void main()
{   
  for( ; ; )
 {  
	  int mm=system();
	  //cout<<"t="<<mm;

    switch (mm)
	 {
	  case 1:
   	           // p=(ListNode *)malloc(sizeof(ListNode));
			  //	cout<<"p="<<p;
		      //  cout<<"  输入学生信息"<<endl;
	          //  cout<<"请输入学生学号: ";cin>>p->data.ID;cout<<endl;
              //  cout<<"请输入学生名字: ";cin>>p->data.MZ;cout<<endl;
              //  cout<<"请输入学生性别: ";cin>>p->data.XB;cout<<endl;
              //  cout<<"请输入学生年龄: ";cin>>p->data.NL;cout<<endl;
              //  cout<<"请输入学生专业: ";cin>>p->data.ZY;cout<<endl;
              //  cout<<"请输入学生籍贯: ";cin>>p->data.JG;cout<<endl; 
	  first=create();
	  cout<<"链表建立成功!"<<endl;
	  break;
	  
          case 2:
	            cout<<"插入学生信息"<<endl;
		        p=(ListNode *)malloc(sizeof(ListNode));//申请新结点
			//	cout<<"p=??"<<p;
		       
				cout<<"请输入学生学号: ";cin>>p->data.ID;cout<<endl;
                cout<<"请输入学生名字: ";cin>>p->data.MZ;cout<<endl;
                cout<<"请输入学生性别: ";cin>>p->data.XB;cout<<endl;
                cout<<"请输入学生年龄: ";cin>>p->data.NL;cout<<endl;
                cout<<"请输入学生专业: ";cin>>p->data.ZY;cout<<endl;
                cout<<"请输入学生籍贯: ";cin>>p->data.JG;cout<<endl; 
				Insert(first,p);
				break;
	   
           case 3:
	        cout<<"查询学生信息"<<endl;
		    p=Find(first);
		    if(p!=NULL) 
            {
				cout<<"学号: "<<p->data.ID<<"姓名: "<<p->data.MZ<<"性别:  "<<p->data.XB
				<<"年龄: "<<p->data.NL<<"专业: "<<p->data.ZY<<"籍贯: "<<p->data.JG<<endl;
			}
			else
	            cout<<"查无此人!"<<endl;
			break;
	    case 4:
		  cout<<"删除学生信息"<<endl;
		  remove(first);         
		  break;
		
            case 5:
                   cout<<"输出学生信息"<<endl;
                   Print(first);
		   break;
	
            case 0:
	          cout<<"退出!"<<endl;
                  return;
	   }
     }
}

int system()
{ 
	int t;
	    cout<<setw(20)<<' '<<"※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
	    cout<<setw(20)<<' '<<"※≮学≯ ≮生≯ ≮信≯ ≮息≯ ≮管≯ ≮理≯ ※"<<endl;
		cout<<setw(20)<<' '<<"※≡☆≡ Student  Information  System ≡☆≡※"<<endl;
		cout<<setw(20)<<' '<<"※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
        cout<<setw(20)<<' '<<"※         ①--〖 ⊕请先建立链表 ⊕〗       ※"<<endl;
        cout<<setw(20)<<' '<<"※         ②--〖 ⊕插入学生信息 ⊕〗       ※"<<endl;
        cout<<setw(20)<<' '<<"※         ③--〖 ⊕查询学生信息 ⊕〗       ※"<<endl;
	    cout<<setw(20)<<' '<<"※         ④--〖 ⊕删除学生信息 ⊕〗       ※"<<endl;
	    cout<<setw(20)<<' '<<"※         ⑤--〖 ⊕输出学生信息 ⊕〗       ※"<<endl;
	    cout<<setw(20)<<' '<<"※         ◎--〖     ⊕退出⊕     〗       ※"<<endl;
		cout<<setw(20)<<' '<<"※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
    for( ; ; )
	{   
         cout<<"请从0-5中选择一项:"<<endl;
         cin>>t;
		 break;
	}
	  return t;
}


                                                                           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -