花哥哥的瞎扯:

大一的课设学生管理系统,因为学也学不精,望各位大神轻点骂,多指点一下吖。注释写得相对的仔细,认真看玩就没有不会的!哈哈哈加油!

实现功能:

建立学生结点之后再弄一个链表,用尾插法的方式添加学生元素,主要是由主函数,自定义函数,还有菜单框架函数,及选择功能函数之间的调换,实现主要功能有:增加、删除、修改、统计排序和查询以及信息的存储功能。

理解流程图:

运行环境准备:

Dev-C++

代码区:

//@你的花哥哥-花森制作
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<bits/stdc++.h>
#include<conio.h>
using namespace std;
struct student//创建学生信息结构体。
{char name[20];char nation[10];char sex[2];long int idnum;float math;float english;float sum;};
struct Node//链表的结点结构。
{struct student data;struct Node*next;};//链表的创建:
Node*creatNode();//1.创建结点//链表的删除:
struct Node*deleteNodebyname(Node*headNode);//1.按姓名删除结点
struct Node*deleteNodebynum(Node*headNode, char num[]);//2.按学号删除结点 //链表的遍历统计:
struct Node*aver(Node*headNode);//1.统计平均数
void mathnopass(Node*headNode);//2.数学未及格人数
void englishnopass(Node*headNode); //3.英语未及格人数输出与统计
void selectsex(Node*headNode);//4. 按性别统计学生人数
void selectnation(Node*headNode);//5.按民族统计学生人数 //链表的输出:
void printlist(Node*headNode); //1.遍历打印学生信息 //文件的操作:
void savefile(Node*headNode); //1.文件的保存
void readfile(Node*headNode);//2.文件的读取
void asavefile(Node*headNode);//3.文件的追加 //菜单框架:
void printstar();//1.打印横条 * 号
void print();//2.打印边边 * 号
void menu();//3.主菜单框架
void menuofdelete();//4.删除菜单框架
void menuofnumalter();//5.按学号修改
void menuofnopass();//6.不及格人数菜单
void menusort(); //排序菜单框架 //界面选择功能:
void keydown();
void keydowndelete();//2.删除菜单
void keydownbynumalter();//3.修改菜单
void keydownsort();//4.单科成绩排序菜单
void keydownnopass();//5.不及格人数菜单 //修改类函数:
Node*altername(Node*headNode);//1.修改姓名
Node*alteridnum(Node*headNode);//2.修改学号
Node*altermath(Node*headNode);//3.修改数学成绩
Node*alterenglish(Node*headNode);//4.修改英语成绩  //排序类函数:
void sortmath(Node*headNode); //1.数学成绩排序
void sortaver(Node*headNode);//2.平均成绩排序
//主程序
int main()
{menu();keydown();return 0;
} //链表的创建 :
struct Node*creatNode()//创建学生结点,并填入数据data,返回这结点的指针。
{/*struct Node  *headNode;headNode=(struct Node*)malloc(sizeof(struct Node));//sizeof函数计算该结构体的所占的内存大小,malloc创建一个结构体大小的内存地址。 headNode->next=NULL; */ Node*pnew;Node*ptail;Node*p=NULL;int i=0;cout<<endl;cout<<"开始学生信息的录入..."<<endl;cout<<endl;cout<<"小提示:输入学号为0时停止输入!"<<endl;cout<<endl; while(1){cout<<"请输入第"<<i+1<<"个学生信息"<<endl; pnew=(struct Node*)malloc(sizeof(struct Node));cout<<"学号:";cin>>pnew->data.idnum;if(pnew->data.idnum==0) break;fflush(stdin);cout<<"姓名: "; cin>>pnew->data.name;cout<<"民族: "; cin>>pnew->data.nation;cout<<"性别: "; cin>>pnew->data.sex;cout<<"数学成绩: ";cin>>pnew->data.math;cout<<"英语成绩:";cin>>pnew->data.english;cout<<endl; pnew->next=NULL;    if(i==0)//建立第一个结点的时候 {p=pnew;ptail=pnew;}else{ptail->next=pnew;ptail=ptail->next;}i++;    }return p;//头指针是一个元素
}//链表结点的删除 :
struct Node*deleteNodebyname(Node*phead)//按姓名遍历查找并删除。
{if(phead==NULL)//头指针的判断是否为空 {cout<<"无学生数据"<<endl;return phead;}else{cout<<"请输入要删除的学生姓名:"<<endl; char name[20];cin>>name;struct Node*p=phead->next;struct Node*q=phead;if(q!=NULL&&p==NULL)//链表只有一个元素情况 {if(strcmp(phead->data.name,name)==0){phead=phead->next;free(q);cout<<"删除成功"<<endl;}}else{while(p!=NULL)//不是一个元素就进循环 {if(strcmp(phead->data.name,name)==0)//如果第一个数直接是匹配的元素。 {phead=phead->next;free(q);cout<<"删除成功"<<endl; break;}if(strcmp(p->data.name,name)==0)//p指针来找要匹配的元素,然后q指向p的前一个。 {q->next=p->next;free(p);cout<<"删除完毕"<<endl;break; }q=p;p=p->next;      }if(p==NULL)//P指针走到最后 {cout<<"无该学生数据"<<endl; }}return phead;}
}
struct Node*deleteNodebynum(Node*phead)//按学号进行删除。
{if(phead==NULL){cout<<"无学生数据"<<endl;return phead;}else{cout<<"请输入要删除的学生学号:"<<endl; long int num;cin>>num;struct Node*p=phead->next;struct Node*q=phead;if(q!=NULL&&p==NULL){if(phead->data.idnum==num){phead=phead->next;free(q);cout<<"删除成功"<<endl;}}else{while(p!=NULL)//不是一个元素就进循环 {if(phead->data.idnum==num)//如果第一个数直接是匹配的元素。 {phead=phead->next;free(q);cout<<"删除成功"<<endl; break;}if(p->data.idnum==num)//p指针来找要匹配的元素,然后q指向p的前一个。 {q->next=p->next;free(p);cout<<"删除完毕"<<endl;break; }q=p;p=p->next;        }if(p==NULL){cout<<"无该学生数据"<<endl; }}return phead;}
}//链表结点的遍历输出:
void printlist(Node*headNode) //遍历打印输出学生的个人信息 。
{cout<<"正在为您导出学生信息..."<<endl;struct Node*pmove=headNode;if(pmove==NULL){cout<<"无学生信息!"<<endl; } else{cout.width(4);cout<<"编号 "<<"姓名 "<<" 数学  "<<"英语  "<<endl;while(pmove!=NULL){cout<<pmove->data.idnum<<"    "<<pmove->data.name<<"   "<<pmove->data.math<<"    "<<pmove->data.english<<endl; pmove=pmove->next;}}
}//遍历统计 :
struct Node*aver(Node*headNode)//计算每名学生的平均数
{float ave;Node*p=headNode;Node*phead=p;if(p==NULL){cout<<"无学生信息 无法求平均数"<<endl;}else{cout<<"开始统计成绩信息..."<<endl;cout<<"编号 "<<"姓名 "<<"数学 "<<"英语 "<<"平均分"<<endl;while(p!=NULL){ave=(p->data.math+p->data.english)/2;p->data.sum=ave;cout<<p->data.idnum<<"    "<<p->data.name<<"   "<<p->data.math<<"   "<<p->data.english<<"    "<<ave<<endl;p=p->next;}}return phead;
}
void mathnnopass(Node*headNode)
{int i=0;Node*p=headNode;if(p==NULL){cout<<"无学生信息!"<<endl;}else{cout<<endl;cout<<"开始统计数学成绩不及格信息..." <<endl;cout<<"姓名 "<<"编号 "<<"数学 "<<endl;cout<<endl;while(p!=NULL){if(p->data.math<60){i++;cout<<p->data.name<<"  "<<p->data.idnum<<"    "<<p->data.math<<endl;}p=p->next;    }  }cout<<endl;cout<<"数学总共有"<<i<<"个学生不及格!" <<endl;cout<<endl;
}
void englishnopass(Node*headNode)
{int i=0;Node*p=headNode;if(p==NULL){cout<<"无学生信息!"<<endl;}else{cout<<endl;cout<<"开始统计数学成绩不及格信息..." <<endl;cout<<"姓名 "<<"编号 "<<"英语 "<<endl;cout<<endl;while(p!=NULL){if(p->data.english<60){i++;cout<<p->data.name<<"  "<<p->data.idnum<<"    "<<p->data.english<<endl;}p=p->next;    }  }cout<<endl;cout<<"英语总共有"<<i<<"个学生不及格!" <<endl;cout<<endl;}
void selectsex(Node*headNode)
{   cout<<endl;cout<<"开始按性别统计学生人数..."<<endl;cout<<"请输入性别(男 or 女):"<<endl;char sex[2];cin>>sex;int i=0;Node*p=headNode;if(p==NULL){cout<<"无学生信息!"<<endl;}else{while(p!=NULL){if(strcmp(p->data.sex,sex)==0){i++;}p=p->next;    }  }cout<<endl;cout<<"总共有"<<i<<"个" <<sex<<"学生!"<<endl;cout<<endl;}
void selectnation(Node*headNode)
{   cout<<endl;cout<<"开始按民族统计学生人数..."<<endl;cout<<"请输入XXX族:"<<endl;char nation[10];cin>>nation;int i=0;Node*p=headNode;if(p==NULL){cout<<"无学生信息!"<<endl;}else{while(p!=NULL){if(strcmp(p->data.nation,nation)==0){i++;}p=p->next;    }  }cout<<endl;cout<<"总共有"<<i<<"个" <<nation<<"学生!"<<endl;cout<<endl;}//修改类
struct Node*altername(Node*headNode)
{cout<<"请输入要修改的学生学号:"<<endl;long int num;cin>>num;struct Node*p=headNode;Node*phead=headNode;if(p==NULL) cout<<"表格为空"<<endl;while(p!=NULL) {if(p->data.idnum==num){char n[20];cout<<"请输入新的姓名:"<<endl;cin>>n;strcpy(p->data.name,n);cout<<"修改成功!"<<endl; break;     }p=p->next;}if(p==NULL){cout<<"无该学生信息"; }return phead;}struct Node*alteridnum(Node*headNode)//修改学号
{cout<<"请输入要修改的学生学号:"<<endl;long int num;cin>>num;struct Node*p=headNode;Node*phead=headNode;if(p==NULL) cout<<"表格为空"<<endl ;while(p!=NULL) {if(p->data.idnum==num){long int n;cout<<"请输入新的学号:"<<endl;cin>>n;p->data.idnum=n;cout<<"修改成功!"<<endl;break;   }p=p->next;}if(p==NULL){cout<<"无该学生信息"; }return phead;}struct Node*altermath(Node*headNode)//修改数学成绩
{cout<<"请输入要修改的学生学号:"<<endl;long int num;cin>>num;struct Node*p=headNode;Node*phead=headNode;if(p==NULL) cout<<"表格为空" <<endl;while(p!=NULL) {if(p->data.idnum==num){float n;cout<<"请输入新的数学成绩:"<<endl;cin>>n;p->data.math=n;cout<<"修改成功!"<<endl;break;     }p=p->next;}if(p==NULL){cout<<"无该学生信息"; }return phead;
}struct Node*alterenglish(Node*headNode)//修改英语成绩
{cout<<"请输入要修改的学生学号:"<<endl;long int num;cin>>num;struct Node*p=headNode;Node*phead=headNode;if(p==NULL) cout<<"表格为空" <<endl;while(p!=NULL) {if(p->data.idnum==num){float n;cout<<"请输入新的英语成绩成绩:"<<endl;cin>>n;p->data.english=n;cout<<"修改成功!"<<endl;break;    }p=p->next;}if(p==NULL){cout<<"无该学生信息"<<endl; }return phead;} //排序类型
void sortmath(Node*headNode)
{cout<<"开始进行数学成绩的排序..." <<endl;int i,j;int len=0;struct Node*p;struct Node* r;struct Node*t=headNode;if(t==NULL){cout<<"该表格为空!"<<endl;}else//表格不为空时就进入 {while(t!=NULL)//计算链表的长度 {len=len+1;t=t->next;}for(i=0,p=headNode;i<len-1;++i,p=p->next)//int i 不能放在这里面,因为括号里的类型不全是int类型,还有指针的类型。 {for( j=i+1,r=p->next;j<len;++j,r=r->next){if(p->data.math<r->data.math){float temp;temp=p->data.math;p->data.math=r->data.math;r->data.math=temp;char t[20];strcpy(t,p->data.name);strcpy(p->data.name,r->data.name);strcpy(r->data.name,t);}}}int count=1;t=headNode;Node*pnew=(struct Node*)malloc(sizeof(struct Node));pnew->next=t;cout<<"名次"<<"  "<<"姓名"<<"  "<<"数学成绩"<<endl; while(t!=NULL)//遍历输出部分 {cout<<count<<"     "<<t->data.name<<"     "<<t->data.math<<endl;pnew=pnew->next; t=t->next;if(t!=NULL){if(pnew->data.math!=t->data.math) count++;   }}   }
} void sortaver(Node*headNode)
{cout<<"开始进行平均成绩的排序..." <<endl;int i,j;int len=0;float ave;struct Node*p;struct Node* r;struct Node*t=headNode;if(t==NULL){cout<<"该表格为空!"<<endl;}else//表格不为空时就进入 {while(p!=NULL){ave=(p->data.math+p->data.english)/2;p->data.sum=ave;p=p->next;}while(t!=NULL)//计算链表的长度 {len=len+1;t=t->next;}for(i=0,p=headNode;i<len-1;++i,p=p->next)//int i 不能放在这里面,因为括号里的类型不全是int类型,还有指针的类型。 {for( j=i+1,r=p->next;j<len;++j,r=r->next){if(p->data.sum<r->data.sum){float temp;temp=p->data.sum;p->data.sum=r->data.sum;r->data.sum=temp;char t[20];strcpy(t,p->data.name);strcpy(p->data.name,r->data.name);strcpy(r->data.name,t);}}}int count=1;t=headNode;Node*pnew=(struct Node*)malloc(sizeof(struct Node));pnew->next=t;cout<<"名次"<<"  "<<"姓名"<<"  "<<"平均成绩"<<endl; while(t!=NULL)//遍历输出部分 {cout<<count<<"     "<<t->data.name<<"     "<<t->data.sum<<endl;pnew=pnew->next; t=t->next;if(t!=NULL){if(pnew->data.sum!=t->data.sum) count++;   }                }   }
}//文件的操作:
void savefile(Node*headNode)//文件的建立保存,通过遍历把每一条数据都保存。
{struct Node*p=headNode;FILE*fp=fopen("student.txt","w");//*fp为一个文件的指针,fopen(文件名,创建的文件权限类型) 文件权限类型:"r","W","a","w+","a+" 。while(p!=NULL){fwrite(p,sizeof(Node),1,fp);//遍历保存记录的语句。 p=p->next;}fclose(fp) ;
}
void asavefile(Node*headNode)//文件的建立保存,通过遍历把每一条数据都保存。
{struct Node*p=headNode;FILE*fp=fopen("student.txt","a");//*fp为一个文件的指针,fopen(文件名,创建的文件权限类型) 文件权限类型:"r","W","a","w+","a+" 。while(p!=NULL){fwrite(p,sizeof(Node),1,fp);//遍历保存记录的语句。 p=p->next;}fclose(fp) ;
}
Node* readfile(char *filename)//文件的读取。
{Node *phead=NULL;FILE *fp;if((fp=fopen(filename,"r"))==0) return phead;Node *ptail, *pnew;int i=0;student s;while(fread(&s,sizeof(Node),1,fp)!=0){pnew=(Node*)malloc(sizeof(Node));pnew->data=s;pnew->next=NULL;      if(i==0){phead=pnew;ptail=pnew;         }else{ptail->next=pnew;ptail=pnew;}i++;}fclose(fp);return phead;//第一个元素的指针
}//菜单选择器
void keydown()
{char choice;fflush(stdin);choice=getch();switch(choice){case '0'://退出管理系统。 break;   case '1'://学生个人信息的录入。{Node*headNode=creatNode();asavefile(headNode);system("pause");system("cls");menu();keydown();  break;}case '2'://遍历输出所有的学生记录。 {char filename[100];strcpy(filename,"student.txt");Node*headNode=readfile(filename);printlist(headNode);system("pause");system("cls");menu();keydown();break;}case '3'://平均分{char filename[100];strcpy(filename,"student.txt");Node*headNode=readfile(filename);headNode=aver(headNode);savefile(headNode);system("pause");system("cls");menu();keydown();break;}case '4'://删除修改信息 {system("cls");menuofdelete();keydowndelete();break;   }case '5':{system("cls");menuofnopass();keydownnopass();break;}case '6':{system("cls");menusort(); keydownsort();break;} case '7'://按性别统计人数 {char filename[100];strcpy(filename,"student.txt");Node*headNode=readfile(filename);selectsex(headNode);savefile(headNode);system("pause");system("cls");menu();keydown();break;}case '8':{char filename[100];strcpy(filename,"student.txt");Node*headNode=readfile(filename);selectnation(headNode);savefile(headNode);system("pause");system("cls");menu();keydown();break;}default:{cout<<"输入错误 请重新输入!"<<endl;system("pause");system("cls");menu(); keydown();break; }     }  }void keydowndelete()//删除修改方式菜单。
{char choice;fflush(stdin);choice=getch();switch(choice){case '0':{system("cls");menu();keydown();break;} case '1'://1,按照姓名查找删除 。 {char filename[100];strcpy(filename,"student.txt");struct Node*phead=readfile(filename);phead=deleteNodebyname(phead);savefile(phead);system("pause");system("cls");menuofdelete();keydowndelete();break;}  case '2'://2,按照学号查找删除。 {char filename[100];strcpy(filename,"student.txt");struct Node*phead=readfile(filename);phead=deleteNodebynum(phead);savefile(phead);system("pause");system("cls");menuofdelete();keydowndelete();break;}case '3'://按学号修改信息 {system("cls");menuofnumalter();keydownbynumalter();break;} default:{cout<<"输入错误"<<endl;system("pause"); system("cls");menuofnumalter();keydownbynumalter();break;}   }
}
void keydownbynumalter()//按照学号修改选择器
{char choice;fflush(stdin);choice=getch();switch(choice){case '0'://返回到主菜单{system("cls");menu();keydown();break;}case '1'://修改学号 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);headNode=alteridnum(headNode);savefile(headNode);system("pause");system("cls");menuofnumalter(); keydownbynumalter();break;}case '2'://修改姓名 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);headNode=altername(headNode);savefile(headNode);system("pause");system("cls");menuofnumalter(); keydownbynumalter();break;}case '3'://修改数学成绩 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);headNode=altermath(headNode);savefile(headNode);system("pause");system("cls");menuofnumalter(); keydownbynumalter();break;}case '4'://修改英语成绩 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);headNode=alterenglish(headNode);savefile(headNode);system("pause");system("cls");menuofnumalter(); keydownbynumalter();break;} default:{cout<<"您输入错误请重新输入!"<<endl; system("pause");system("cls");menuofnumalter(); keydownbynumalter();}}
}void keydownnopass()
{char choice;fflush(stdin);choice=getch();switch(choice){case '0':{system("cls");menu();keydown();break;}case '1'://数学不及格人数 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);mathnnopass(headNode);system("pause");system("cls");menuofnopass();keydownnopass();break;}case '2'://英语不及格人数 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);englishnopass(headNode);system("pause");system("cls");menuofnopass();keydownnopass();break;   }default:{cout<<"您输入错误请重新输入!"<<endl;system("pause");system("cls");menuofnopass();keydownnopass();break;} }}
void keydownsort()
{char choice;fflush(stdin);choice=getch();switch(choice){case '0':{system("cls");menu();keydown();break;}case '1'://数学排序 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);sortmath(headNode); system("pause");system("cls");menuofnopass();keydownnopass();break;}case '2'://平均成绩排序 {char filename[100];strcpy(filename,"student.txt");struct Node*headNode=readfile(filename);sortaver(headNode);system("pause");system("cls");menuofnopass();keydownnopass();break;  }default:{cout<<"您输入错误请重新输入!"<<endl;system("pause");system("cls");menuofnopass();keydownnopass();break;} }
}//菜单框架:
void menu()//功能表的菜单框架。
{void printstar();void print();printstar();print();cout<<"*       学生成绩管理系统       *"<<endl;print();printstar();  print();                                   cout<<"*            主菜单            *"<<endl;print();cout<<"*       1.学生信息的录入       *"<<endl;cout<<"*       2.学生信息的遍历       *"<<endl;cout<<"*       3.学生成绩的平均       *"<<endl;cout<<"*       4.信息删除和修改       *"<<endl;cout<<"*       5.不合格成绩统计       *"<<endl;cout<<"*       6.成绩名次的排序       *"<<endl;cout<<"*       7.性别统计学生数       *"<<endl;cout<<"*       8.民族统计学生数       *"<<endl;cout<<"*       0.管理系统的退出       *"<<endl;print();print();print();cout<<"*                              *"<<endl;printstar();cout<<"请选择以上功能(0-6):"<<endl;
}void menuofdelete()
{void printstar();void print();printstar();print();cout<<"*          删除修改菜单        *"<<endl;print();printstar();                                     cout<<"*                              *"<<endl;print();cout<<"*        0.返回到主菜单        *"<<endl;cout<<"*        1.按照姓名删除        *"<<endl;cout<<"*        2.按照学号删除        *"<<endl;cout<<"*        3.按学号改信息        *"<<endl;cout<<"*                              *"<<endl;print();print();print();print();cout<<"*                              *"<<endl;printstar();cout<<"请选择以上功能(0-3):"<<endl;
}void menuofnumalter()
{void printstar();void print();printstar();print();cout<<"*         按学号修改菜单       *"<<endl;print();printstar();                                     cout<<"*                              *"<<endl;print();cout<<"*        0.返回到主菜单        *"<<endl;cout<<"*        1.修改学生学号        *"<<endl;cout<<"*        2.修改学生姓名        *"<<endl;cout<<"*        3.修改数学成绩        *"<<endl;cout<<"*        4.修改英语成绩        *"<<endl;cout<<"*                              *"<<endl;print();print();print();print();cout<<"*                              *"<<endl;printstar();cout<<"请选择以上功能(0-4):"<<endl;
}void menuofnopass()
{void printstar();void print();printstar();print();cout<<"*        单科成绩不及格        *"<<endl;print();printstar();                                     cout<<"*                              *"<<endl;print();cout<<"*        0.返回到主菜单        *"<<endl;cout<<"*        1.数学不及格数        *"<<endl;cout<<"*        2.英语不及格数        *"<<endl;cout<<"*                              *"<<endl;cout<<"*                              *"<<endl;print();print();print();print();cout<<"*                              *"<<endl;printstar();cout<<"请选择以上功能(0-2):"<<endl;
}
void menusort()
{void printstar();void print();printstar();print();cout<<"*           排序菜单           *"<<endl;print();printstar();                                     cout<<"*                              *"<<endl;print();cout<<"*        0.返回到主菜单        *"<<endl;cout<<"*        1.数学成绩排序        *"<<endl;cout<<"*        2.平均成绩排序        *"<<endl;cout<<"*                              *"<<endl;cout<<"*                              *"<<endl;print();print();print();print();cout<<"*                              *"<<endl;printstar();cout<<"请选择以上功能(0-2):"<<endl;
}void printstar() //此处有30个星号
{cout<<"********************************"<<endl;
}
void print()
{cout<<"*                              *"<<endl;
}

 话痨:

当时弄这个鬼东西,差点没有给我累死,还好当时还有几位不遗余力的解答我的奇奇怪怪的问题,予以表扬吖。

网站推荐(2020年):

花森酱个人资源导航:huasenjio.top/nav(必备)

花森酱个人笔录博客:huasenjio.top(资源教程)

花哥哥严肃说:

所学的知识均从课本,课外读物,网上收集资料,如果哪有侵权惹到您不开心丫,此外还有我也是小白,如果哪有认识不对的地方系统您抽我一耳光说我哪错了,联系企鹅号:184820911,有哪不明白或没事都可以找我,陪聊,陪吃不陪睡。

C语言学生管理系统图文超详细版(拷贝即用)相关推荐

  1. Hadoop——MapReduce相关eclipse配置及Api调用(图文超详细版)(内含遇到错误的解决方法)

    一.前情提要 前面两篇文章我们已经成功搭建了Hadoop以及安装了Hive,Sqoop和Mysql数据库,现在我们就来利用Hadoop尝试做一个小实战,实现单词统计! 还没有搭建Hadoop成功的同学 ...

  2. C语言基于链表的学生管理系统,超详细

    基于链表的学生管理系统 基于链表的学生管理系统 前言 功能 整体思路 Function.h Function.cpp 主文件StudentManageSystem.cpp 各函数详细说明 保存 读取 ...

  3. 学生管理系统(超详细)

    学生管理系统(详细说明) 一. 简要介绍 二. 数据集 三. 四大模块 1. 模块一:文件读写 1.1. csv文件 1.2 文件读入 1.3 文件写出 2.模块二:辅助函数 2.1 链表释放函数 2 ...

  4. 春秋云镜 CVE-2022-30887 多语言药房管理系统 (MPMS) [超详细新手教程]

    文章目录 一.题目描述 二.简单分析 三.总结 提示:以下是本篇文章正文内容,下面案例可供参考 一.题目描述 多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的 ...

  5. C语言文件操作(超详细版)

    目录 什么是文件 ✨文件分类 程序文件 数据文件 文件的使用 ✨文件指针 文件指针的使用 ✨文件的打开和关闭 文件的使用方式 ✨文件的顺序读写 1.写入一个字符 2.读取一个字符 3.连续每次读取一个 ...

  6. C语言学生管理系统(期末作业,超详细哟,拿走不谢!!!)

    C语言学生管理系统 前言 很多学校都选择C语言作为学生编程入门语言,许多老师都会布置C语言期末大作业,作业题目很多就是学生信息管理系统,以前都是练习小题目,几十行代码就能搞定,而完整的写完这个系统我用 ...

  7. Docker超详细版教程通俗易懂 -之- 入门篇

    前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...

  8. Docker02 狂神Docker视频学习笔记 :【狂神说Java 哔哩哔哩】Docker最新超详细版教程通俗易懂

    目录 0. 视频源 0. 学习网址 基础篇 1. Docker概述 1.1 Docker为什么出现? 1.2 Docker历史 1.3 Docker能干什么 2. Docker安装 2.1 Docke ...

  9. 手把手教你安装 Centos7.6系统(图文超详细)

    桌面版 Centos7.6系统的安装(图文超详细) ●实验目的: 熟练掌握Centos7.6系统的安装. ●实验环境: VMware虚拟机(推荐最新版本):Centos7.6系统镜像 ●实验步骤: . ...

最新文章

  1. matlab 绘图3
  2. Linux系统文件和目录管理
  3. 对于前端js框架对于事件处理的应用场景探讨
  4. solaris php,solaris 十系统上架构phpwind论坛环境(转)
  5. java urlconnection乱码_HttpURLConnection 请求乱码
  6. 有关试用Silverlight OOB模式遇到的一些问题
  7. windows与Linux间远程拷贝文件(pscp命令)
  8. 一次搞定各种数据库 SQL 执行计划:MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite
  9. win7 虚拟机安装
  10. matlab阵列方向性系数,阵列天线方向图的MATLAB实现.pdf
  11. 什么是索引?怎么创建索引?索引的使用原则?
  12. 使用JS监听键盘按下事件(keydown event)
  13. 3000元台式电脑组装配置单2021 3000元组装电脑配置清单
  14. 小李飞刀:Python我又来啦,例无虚发~
  15. 深度学习理论总结(1)
  16. IDEA打jar包步骤(详细)
  17. 拼音转换成汉字html,汉字转成拼音-用HTML实现
  18. 获取钉钉企业部门用户信息
  19. Git冲突解决: git checkout高级用法
  20. linux安装微软字体

热门文章

  1. 有关Android Studio的问题Error:Failed to find: com.google.android.gms:play-services:6.1.71
  2. Linux——用户和用户组的管理
  3. 接口 及 PostMan
  4. 多闪付、岁岁通...字节跳动的支付业务终上正轨,但“逐梦金融圈”谈何容易...
  5. 亚马逊Kindle入华:狼来了的故事只是传说
  6. 男子投资致富身价千万仍拾荒度日
  7. python 打开电脑摄像头拍照保存
  8. 机器学习方法(四):决策树Decision Tree原理与实现技巧
  9. C++模拟蚁群算法解决作业车间调度问题(Job-Shop Scheduling Problem,JSP)
  10. 【pwn学习】pwn中常用工具