C语言学生管理系统图文超详细版(拷贝即用)
花哥哥的瞎扯:
大一的课设学生管理系统,因为学也学不精,望各位大神轻点骂,多指点一下吖。注释写得相对的仔细,认真看玩就没有不会的!哈哈哈加油!
实现功能:
建立学生结点之后再弄一个链表,用尾插法的方式添加学生元素,主要是由主函数,自定义函数,还有菜单框架函数,及选择功能函数之间的调换,实现主要功能有:增加、删除、修改、统计排序和查询以及信息的存储功能。
理解流程图:
运行环境准备:
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语言学生管理系统图文超详细版(拷贝即用)相关推荐
- Hadoop——MapReduce相关eclipse配置及Api调用(图文超详细版)(内含遇到错误的解决方法)
一.前情提要 前面两篇文章我们已经成功搭建了Hadoop以及安装了Hive,Sqoop和Mysql数据库,现在我们就来利用Hadoop尝试做一个小实战,实现单词统计! 还没有搭建Hadoop成功的同学 ...
- C语言基于链表的学生管理系统,超详细
基于链表的学生管理系统 基于链表的学生管理系统 前言 功能 整体思路 Function.h Function.cpp 主文件StudentManageSystem.cpp 各函数详细说明 保存 读取 ...
- 学生管理系统(超详细)
学生管理系统(详细说明) 一. 简要介绍 二. 数据集 三. 四大模块 1. 模块一:文件读写 1.1. csv文件 1.2 文件读入 1.3 文件写出 2.模块二:辅助函数 2.1 链表释放函数 2 ...
- 春秋云镜 CVE-2022-30887 多语言药房管理系统 (MPMS) [超详细新手教程]
文章目录 一.题目描述 二.简单分析 三.总结 提示:以下是本篇文章正文内容,下面案例可供参考 一.题目描述 多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的 ...
- C语言文件操作(超详细版)
目录 什么是文件 ✨文件分类 程序文件 数据文件 文件的使用 ✨文件指针 文件指针的使用 ✨文件的打开和关闭 文件的使用方式 ✨文件的顺序读写 1.写入一个字符 2.读取一个字符 3.连续每次读取一个 ...
- C语言学生管理系统(期末作业,超详细哟,拿走不谢!!!)
C语言学生管理系统 前言 很多学校都选择C语言作为学生编程入门语言,许多老师都会布置C语言期末大作业,作业题目很多就是学生信息管理系统,以前都是练习小题目,几十行代码就能搞定,而完整的写完这个系统我用 ...
- Docker超详细版教程通俗易懂 -之- 入门篇
前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...
- Docker02 狂神Docker视频学习笔记 :【狂神说Java 哔哩哔哩】Docker最新超详细版教程通俗易懂
目录 0. 视频源 0. 学习网址 基础篇 1. Docker概述 1.1 Docker为什么出现? 1.2 Docker历史 1.3 Docker能干什么 2. Docker安装 2.1 Docke ...
- 手把手教你安装 Centos7.6系统(图文超详细)
桌面版 Centos7.6系统的安装(图文超详细) ●实验目的: 熟练掌握Centos7.6系统的安装. ●实验环境: VMware虚拟机(推荐最新版本):Centos7.6系统镜像 ●实验步骤: . ...
最新文章
- matlab 绘图3
- Linux系统文件和目录管理
- 对于前端js框架对于事件处理的应用场景探讨
- solaris php,solaris 十系统上架构phpwind论坛环境(转)
- java urlconnection乱码_HttpURLConnection 请求乱码
- 有关试用Silverlight OOB模式遇到的一些问题
- windows与Linux间远程拷贝文件(pscp命令)
- 一次搞定各种数据库 SQL 执行计划:MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite
- win7 虚拟机安装
- matlab阵列方向性系数,阵列天线方向图的MATLAB实现.pdf
- 什么是索引?怎么创建索引?索引的使用原则?
- 使用JS监听键盘按下事件(keydown event)
- 3000元台式电脑组装配置单2021 3000元组装电脑配置清单
- 小李飞刀:Python我又来啦,例无虚发~
- 深度学习理论总结(1)
- IDEA打jar包步骤(详细)
- 拼音转换成汉字html,汉字转成拼音-用HTML实现
- 获取钉钉企业部门用户信息
- Git冲突解决: git checkout高级用法
- linux安装微软字体
热门文章
- 有关Android Studio的问题Error:Failed to find: com.google.android.gms:play-services:6.1.71
- Linux——用户和用户组的管理
- 接口 及 PostMan
- 多闪付、岁岁通...字节跳动的支付业务终上正轨,但“逐梦金融圈”谈何容易...
- 亚马逊Kindle入华:狼来了的故事只是传说
- 男子投资致富身价千万仍拾荒度日
- python 打开电脑摄像头拍照保存
- 机器学习方法(四):决策树Decision Tree原理与实现技巧
- C++模拟蚁群算法解决作业车间调度问题(Job-Shop Scheduling Problem,JSP)
- 【pwn学习】pwn中常用工具