首页 > 编程语言 >美发店管理系统(C++ 课程设计)含源码,设计文档

美发店管理系统(C++ 课程设计)含源码,设计文档

时间:2024-06-15 20:33:12浏览次数:9  
标签:node p2 课程设计 p1 美发店 p3 next 源码 fp

目 录

一、成员分工1

二、需求分析2

三、总体设计3

四、详细设计4

五、系统测试30

六、总结32

七、参考文献33

一 成员分工

我们小组成员共有两名,分别是李书文、卢增凌、张晗,为了能按时圆满的完成这次C++课程设计,我们小组进行了详细的分工,以确保设计能按时完成。经过周密的考虑和详细的调查最终确定该美发店管理系统需要以下几个功能模块:

主菜单
人员管理子菜单
消费情况子菜单
账单管理子菜单
顾客管理模块
员工管理模块
消费管理功能模块
项目管理功能模块
经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工:

李书文具体完成以下模块的设计与实现:

)顾客管理模块
)员工管理模块
张晗具体完成以下模块的设计与实现
)消费管理功能模块
)项目管理功能模块
卢增凌主要具体完成以下模块的设计与实现:

主菜单
人员管理子菜单
消费情况子菜单
二 需求分析
1.系统概述
该管理系统在Windows系统为用户提供美发店管理的基本功能,用户可以通过键盘选择选项,用来选择需要的操作,键盘录入数据,普通的操作有显示数据,添加数据,保存数据。该管理系统所有数据均保存在d盘目录下,用户可以自行查看,关闭管理系统数据不会丢失。
2.系统运行环境
硬件环境。本系统适用于那种酷睿i3以上计算机,内存容量为512M,应配备,键盘,鼠标,显示器等外部设备。
 

(2)软件、运行环境。本系统的设计采用C++ 编写。在Windows 7环境下测试通过

3.功能需求描述

这是一次尝试,一个比较成功的设计,其精彩的算法与漂亮的程序结构足以让人兴奋了。

根据顾客所要做的美发项目、服务的雇员、消费金额等将相应信息添加到顾客类中指定顾客和员工类中指定员工信息里。同时可以管理店里人员的基本信息,如顾客、经理、员工等。

三 总体设计

1.屏幕的组成

管理系统需要与简洁明了的界面,让人一看就明了,操作简单,不繁琐

2.主菜单的组成

主菜单中有4个选项:员工管理,顾客管理,美发项目,顾客消费情况

3.子菜单的功能

所有主菜单都有显示信息,增加信息,删除信息,保存信息,返回

四 详细设计

1.程序流程图

(1)数据流图

数据流图是对系统数据流向的一种描述,并从本质上让程序的使用者,大致了解系统的使用方法。本管理系统的大致流程图如下:

(2)系统功能模块

(3) 系统流程图

系统流程图是对系统的大致流程进行描述,本游戏的系统流程图如下:

2程序模块详细设计

根据上面所介绍的本系统的各个模块及其需要实现的功能,下面详细设计如下:

(1)主菜单的设计

程序界面程序会在每次用户选择完选项后,进行刷新,是用户一直可以观察到选项目录。另外,界面做美化处理,使程序界面更加友好,在使用上给用户一种清新怡然的感觉。其界面如图所

实现此功能代码如下:

void itemmenu()

{

int choose;

cout<<endl<<endl

<<" **************************"<<endl

<<" *** 美发店管理系统 ***"<<endl

<<" **************************"<<endl

<<" 作者:李书文 卢增凌 张晗"<<endl

<<" 文档将保存在d盘 "<<endl;

cout<<"******************员工管理功能菜单***************"<<endl//功能表

<<" -------------------------------------------------------"<<endl

<<" -- 1.管理顾客 2.管理员工 --"<<endl

<<" -- 3.查看美发项目 4.顾客消费清康 --"<<endl

<<" -- --"<<endl

<<" -- 选择选项后,按回车确认 --"<<endl

<<" -----------------------------------------"<<endl <<endl<<endl;

cin>>choose;

switch(choose)

{

case 1:customer();break;

case 2:worker();break;

case 3:items();break;

case 4:manage();break;

default:cout<<"error";itemmenu();

}

}

(2)顾客管理功能的设计

实现此功能代码如下:

class Customer

{

private:

int m ;

public :

typedef struct node

{

int Number;

char Name[10];

char Sex[4];

char PhoneNumber[15];

node *next;

}node,*linklist;

node *p1,*p2;

//*************************读入数据

node* ReadData()

{

m= 0;

node *head;

FILE *fp;

if((fp=fopen("d:\\Customer.txt","r"))==0)

{

cout<<"没有顾客,请输入信息"<<endl;

cout<<"请输入信息:(输入0 0 0 0结束),输入完毕请保存"<<endl

<<"会员号 姓名 性别 电话"<<endl

<<"**********************************************************\n";

p1=p2=new node;

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

while(p1 -> Number != 0 )

{

m++;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

}

p2 -> next = NULL;

return head;

}

p1=p2=new node;

head = NULL;

while (!feof(fp))

{

m++;

fscanf(fp,"%d %s %s %s\n",&p1->Number,&p1->Name,&p1->Sex,&p1->PhoneNumber);

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

}

p2 -> next = NULL;

fclose(fp);

return head;

}

void creat(node *head)

{

cout<<"请输入信息:(输入会员号码为0时结束)输入完毕请保存"<<endl

<<"会员号 姓名 性别 电话"<<endl

<<"**********************************************************\n";

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

while(p1 -> Number != 0 )

{

m = m+1;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

}

p2 -> next = NULL;

}

int print(node*H)

{

cout<<"会员号 姓名 性别 电话"<<endl

<<"**********************************************************\n";

if(m == 0)

{cout<<"没有顾客"<<endl;return 0;}

struct node *p;

p = H ;

while(p!=NULL)

{

cout<<p->Number<<"\t"<<p->Name<<"\t"<<p->Sex<<"\t"<<p->PhoneNumber<<endl;

p=p->next;

}

system("PAUSE");

}

int Delete(node *Head)

{

int num;

cout<<"请输入要删除的顾客会员卡号:输入完毕请保存"<<endl;

cin>>num;

node *p3,*p4,*tem;

p3 = Head;

if(p3 ->Number == num)

{tem=Head; Head=tem ->next;return 0;}

p4 = p3;

p3 = p3->next;

while(p3!=NULL)

{

if(p3->Number == num)

{p4->next = p3 ->next;return 0;}

//

p4 = p3;

p3 = p3 ->next;

}

}

//************写入数据

int WriteData(node *head)

{

FILE *fp;

node *p;

if((fp=fopen("d:\\Customer.txt","w"))==NULL)

{

printf("打开文件出错\n");

return 0;

}

p=head;

while(p!=NULL)

{

fprintf(fp,"%d %s %s %s\n",p->Number,p->Name,p->Sex,p->PhoneNumber);

p=p->next;

}

fprintf(fp,"\0");

rewind(fp);

fclose(fp);//关闭文件

}

};

void customer()

{

Customer m;

Customer::node*list;

list=m.ReadData();

customermenu(list,m);

}

void customermenu(Customer::node*list,Customer m)

{

int choose;

cout<<endl<<endl

<<" **************************"<<endl

<<" *** 美发店管理系统 ***"<<endl

<<" **************************"<<endl

<<" 作者:李书文 卢增凌 张晗"<<endl

<<" 文档将保存在d盘 "<<endl;

cout<<"**********************vip理功能菜单**********************"<<endl//功能表

<<" ----------------------------------------------------------"<<endl

<<" -- 1.显示所有VIP信息 2.增加VIP信息 --"<<endl

<<" -- 3.删除VIP信息 4.保存 --"<<endl

<<" -- 5.返回 --"<<endl

<<" -- 选择选项后,按回车确认 --"<<endl

<<" ----------------------------------------------------------"<<endl <<endl;

cin>>choose;

switch(choose)

{

case 1:m.print(list);break;

case 2:m.creat(list);break;

case 3:m.Delete(list);break;

case 4:m.WriteData(list);break;

case 5:itemmenu();break;

default:cout<<"error"<<endl;customermenu(list,m);break;

}

customermenu(list,m);

}

(3)员工管理功能的设计

class Worker

{

private:

int m ;

public :

typedef struct node

{

int Number;

char Name[10];

char Sex[4];

char PhoneNumber[11];

node *next;

}node,*linklist;

node *p1,*p2;

node* ReadData()

{

m= 0;

node *head;

FILE *fp;

if((fp=fopen("d:\\Worker.txt","r"))==0)

{

cout<<"没有员工,请输入信息"<<endl;

cout<<"请输入信息:(美发编号为0时结束),输入完毕请保存"<<endl

<<"编号 姓名 性别 电话 "<<endl

<<"**********************************************************\n";

p1=p2=new node;

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

while(p1 -> Number != 0 )

{

m++;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

}

p2 -> next = NULL;

return head;

}

p1=p2=new node;

head = NULL;

while (!feof(fp))

{

m++;

fscanf(fp,"%d %s %s %s\n",&p1->Number,&p1->Name,&p1->Sex,&p1->PhoneNumber);

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

}

p2 -> next = NULL;

fclose(fp);

return head;

}

void creat(node *head)

{

cout<<"请输入信息:(美发编号为0时结束),输入完毕请保存"<<endl

<<"编号 姓名 性别 电话"<<endl

<<"**********************************************************\n";

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

while(p1 -> Number != 0 )

{

m = m+1;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->Name>>p1->Sex>>p1->PhoneNumber;

}

p2 -> next = NULL;

}

int print(node*H)

{

cout<<"编号 姓名 性别 电话"<<endl

<<"**********************************************************\n";

if(m == 0)

{cout<<"没有员工"<<endl;return 0;}

struct node *p;

p = H ;

while(p!=NULL)

{

cout<<p->Number<<"\t"<<p->Name<<"\t"<<p->Sex<<"\t"<<p->PhoneNumber<<endl;

p=p->next;

}

system("PAUSE");

}

int Delete(node *Head)

{

int num;

cout<<"请输入要删除的员工:输入完毕请保存"<<endl;

cin>>num;

node *p3,*p4,*tem;

p3 = Head;

if(p3 ->Number == num)

{tem=Head; Head=tem ->next;return 0;}

p4 = p3;

p3 = p3->next;

while(p3!=NULL)

{

if(p3->Number == num)

{p4->next = p3 ->next;return 0;}

//

p4 = p3;

p3 = p3 ->next;

}

}

int WriteData(node *head)

{

FILE *fp;

node *p;

if((fp=fopen("d:\\Worker.txt","w"))==NULL)

{

printf("打开文件出错\n");

return 0;

}

p=head;

while(p!=NULL)

{

fprintf(fp,"%d %s %s %s\n",p->Number,p->Name,p->Sex,p->PhoneNumber);

p=p->next;

}

fprintf(fp,"\0");

rewind(fp);

fclose(fp);//关闭文件

}

};

void workermenu(Worker::node*list,Worker m)

{

int choose;

cout<<endl<<endl

<<" **************************"<<endl

<<" *** 美发店管理系统 ***"<<endl

<<" **************************"<<endl

<<" 作者:李书文 卢增凌 张晗 "<<endl

<<" 文档将保存在d盘 "<<endl;

cout<<"*********************员工管理功能菜单*******************"<<endl//功能表

<<" ----------------------------------------------------------"<<endl

<<" -- 1.显示所有员工信息 2.增加员工信息 --"<<endl

<<" -- 3.删除员工信息 4.保存 --"<<endl

<<" -- 5.返回 --"<<endl

<<" -- 选择选项后,按回车确认 --"<<endl

<<" -------------------------------------------------"<<endl<<endl <<endl;

cin>>choose;

switch(choose)

{

case 1:m.print(list);break;

case 2:m.creat(list);break;

case 3:m.Delete(list);break;

case 4:m.WriteData(list);break;

case 5:itemmenu();break;

default:cout<<"error"<<endl;workermenu(list,m);break;

}

workermenu(list,m);

}

void worker()

{

Worker m;

Worker::node*list2;

list2=m.ReadData();

workermenu(list2,m);

}

(4)管理消费信息功能模块

实现此功能相关代码如下:

class Manage

{

private:

int m;

public:

typedef struct node

{

int Number;

char Name1[10];

char Name2[10];

char Price[3];

node *next;

}node,*linklist;

node *p1,*p2;

node* ReadData()

{

m= 0;

node *head;

FILE *fp;

if((fp=fopen("d:\\Manage.txt","r"))==0)

{

cout<<"没有管理信息,请输入信息"<<endl;

cout<<"请输入信息:(美发编号为0时结束),输入完毕请保存"<<endl

<<"编号 顾客 员工 价格"<<endl

<<"**********************************************************\n";

p1=p2=new node;

cin>>p1->Number>>p1->Name1>>p1->Name2>>p1->Price;

while(p1 -> Number != 0 )

{

m++;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->Name1>>p1->Name2>>p1->Price;

}

p2 -> next = NULL;

return head;

}

p1=p2=new node;

head = NULL;

while (!feof(fp))

{

m++;

fscanf(fp,"%d %s %s %s\n",&p1->Number,&p1->Name1,&p1->Name2,&p1->Price);

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

}

p2 -> next = NULL;

fclose(fp);

return head;

}

void creat(node *head)

{

cout<<"请输入信息:(美发编号为0时结束),输入完毕请保存"<<endl

<<"编号 顾客 员工 价格"<<endl

<<"**********************************************************\n";

cin>>p1->Number>>p1->Name1>>p1->Name2>>p1->Price;

while(p1 -> Number != 0 )

{

m = m+1;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->Name1>>p1->Name2>>p1->Price;

}

p2 -> next = NULL;

}

int print(node*H)

{

cout<<"编号 顾客 员工 价格"<<endl

<<"**********************************************************\n";

if(m == 0)

{cout<<"没有账单"<<endl;return 0;}

struct node *p;

p = H ;

while(p!=NULL)

{

cout<<p->Number<<"\t"<<p->Name1<<"\t"<<p->Name2<<"\t"<<p->Price<<endl;

p=p->next;

}

system("PAUSE");

}

int Delete(node *Head)

{

int num;

cout<<"请输入要删除的编号,删除完毕请保存"<<endl;

cin>>num;

node *p3,*p4,*tem;

p3 = Head;

if(p3 ->Number == num)

{tem=Head; Head=tem ->next;return 0;}

p4 = p3;

p3 = p3->next;

while(p3!=NULL)

{

if(p3->Number == num)

{p4->next = p3 ->next;return 0;}

//

p4 = p3;

p3 = p3 ->next;

}

}

int WriteData(node *head)

{

FILE *fp;

node *p;

if((fp=fopen("d:\\Manage.txt","w"))==NULL)

{

printf("打开文件出错\n");

return 0;

}

p=head;

while(p!=NULL)

{

fprintf(fp,"%d %s %s %s\n",p->Number,p->Name1,p->Name2,p->Price);

p=p->next;

}

fprintf(fp,"\0");

rewind(fp);

fclose(fp);//关闭文件

}

};

、、、、、、、、、、、、、、、、、、、、、、

void managemenu(Manage::node*list,Manage m)

{

int choose;

cout<<endl<<endl

<<" **************************"<<endl

<<" *** 美发店管理系统 ***"<<endl

<<" **************************"<<endl

<<" 作者:李书文 卢增凌 张晗 "<<endl

<<" 文档将保存在d盘 "<<end;

cout<<"***************************manage管理功能菜单**********************"<<endl//功能表

<<" ----------------------------------------------------------"<<endl

<<" -- 1.显示所有管理信息 2.增加信息 --"<<endl

<<" -- 3.删除信息 4.保存 --"<<endl

<<" -- 5.返回 --"<<endl

<<" -- 选择选项后,按回车确认 --"<<endl

<<" ------------------------------------------------"<<endl<<endl<<endl;

cin>>choose;

switch(choose)

{

case 1:m.print(list);break;

case 2:m.creat(list);break;

case 3:m.Delete(list);break;

case 4:m.WriteData(list);break;

case 5:itemmenu();break;

default:cout<<"error"<<endl;managemenu(list,m);break;

}

managemenu(list,m);

}

void manage()

{

Manage m;

Manage::node*list3;

list3=m.ReadData();

managemenu(list3,m);

}

(6)美发项目功能模块

此模块用来显示所有的美发项目,以及项目的价格。

实现此功能相关代码如下:

class Item

{

private:

int m;

public:

typedef struct node

{

int Number;

char item[10];

char Price[3];

node *next;

}node,*linklist;

node *p1,*p2;

node* ReadData()

{

m= 0;

node *head;

FILE *fp;

if((fp=fopen("d:\\Item.txt","r"))==0)

{

cout<<"没有美发信息,请输入信息"<<endl;

cout<<"请输入信息:(美发编号为0时结束),输入完毕请保存"<<endl

<<"编号 项目 价格"<<endl

<<"**********************************************************\n";

p1=p2=new node;

cin>>p1->Number>>p1->item>>p1->Price;

while(p1 -> Number != 0 )

{

m++;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->item>>p1->Price;

}

p2 -> next = NULL;

return head;

}

p1=p2=new node;

head = NULL;

while (!feof(fp))

{

m++;

fscanf(fp,"%d %s %s %s\n",&p1->Number,&p1->item,&p1->Price);

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

}

p2 -> next = NULL;

fclose(fp);

return head;

}

void creat(node *head)

{

cout<<"请输入信息:(美发编号为0时结束),输入完毕请保存"<<endl

<<"编号 项目 价格"<<endl

<<"**********************************************************\n";

cin>>p1->Number>>p1->item>>p1->Price;

while(p1 -> Number != 0 )

{

m = m+1;

if(m == 1)

head = p1;

else

p2 -> next = p1;

p2 = p1;

p1 = new node;

cin>>p1->Number>>p1->item>>p1->Price;

}

p2 -> next = NULL;

}

int print(node*H)

{

cout<<"编号 项目 价格"<<endl

<<"**********************************************************\n";

if(m == 0)

{cout<<"没有项目"<<endl;return 0;}

struct node *p;

p = H ;

while(p!=NULL)

{

cout<<p->Number<<"\t"<<p->item<<"\t"<<p->Price<<endl;

p=p->next;

}

system("PAUSE");

}

int Delete(node *Head)

{

int num;

cout<<"请输入要删除的美发项目,删除完毕请保存"<<endl;

cin>>num;

node *p3,*p4,*tem;

p3 = Head;

if(p3 ->Number == num)

{tem=Head; Head=tem ->next;return 0;}

p4 = p3;

p3 = p3->next;

while(p3!=NULL)

{

if(p3->Number == num)

{p4->next = p3 ->next;return 0;}

//

p4 = p3;

p3 = p3 ->next;

}

}

int WriteData(node *head)

{

FILE *fp;

node *p;

if((fp=fopen("d:\\Item.txt","w"))==NULL)

{

printf("打开文件出错\n");

return 0;

}

p=head;

while(p!=NULL)

{

fprintf(fp,"%d %s %s %s\n",p->Number,p->item,p->Price);

p=p->next;

}

fprintf(fp,"\0");

rewind(fp);

fclose(fp);//关闭文件

}

};

void itemsmenu(Item::node*list,Item m)

{

int choose;

cout<<endl<<endl

<<" **************************"<<endl

<<" *** 美发店管理系统 ***"<<endl

<<" **************************"<<endl

<<" 作者:李书文 卢增凌 张晗"<<endl

<<" 文档将保存在d盘 "<<endl;

cout<<"***********************美发管理功能菜单*****************************"<<endl//功能表

<<" ----------------------------------------------------------"<<endl

<<" -- 1.显示所有美发信息 2.增加信息 --"<<endl

<<" -- 3.删除信息 4.保存 --"<<endl

<<" -- 5.返回 --"<<endl

<<" -- 选择选项后,按回车确认 --"<<endl

<<" ------------------------------------------------" <<endl<<endl<<endl;

cin>>choose;

switch(choose)

{

case 1:m.print(list);break;

case 2:m.creat(list);break;

case 3:m.Delete(list);break;

case 4:m.WriteData(list);break;

case 5:itemmenu();break;

default:cout<<"error"<<endl;itemsmenu(list,m);break;

}

itemsmenu(list,m);

}

void items()

{

Item m;

Item::node*list3;

list3=m.ReadData();

itemsmenu(list3,m);

}

五 系统测试

运行程序,进入系统界面


子菜单
(1) 功能菜单

(2) 显示所有信息

输入信息


4.删除功能

5. 若进入相应功能没有数据

经过测试,该系统能够较好地满足用户的需要,能够比较顺利的进行管理。

六 总结

经过我们努力的设计和开发,程序基本开发完毕。在本次课程设计中困难遇到不少,深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,这些都有待以后进一步改进。经过这次的课程设计,在设计中不断完善中,我们知道要做好一件事首先要理清思路,弄懂到底要解决什么问题及相应的步骤,采取的方法和开发工具,以及对一些可能的程序异常或是常见问题的容错检测和修正方案等。对于软件系统的开发,跟应该按照软件工程的相关方法流程等规定进行。写代码并不是最首要的。应根据问题的特色详细的进行需求分析,确定概念模型,然后确定逻辑模型,选定开发工具和开发方案,同时注意文档的修订等。做到每一步思路清晰,有章可依等。

本次课程设计过程,使我们对VC++课程设计有了更深刻的认识。大大提高了模型规划、系统设计和软件编程的能力,自身的各方面的素质也得到了提高。同时也培养了我们的团队协作精神。这次课程设计不仅充实了我们的计算机专业知识,扩大了知识面,增强分析问题和解决问题的能力,也提高自学的能力与软件开发能力,为今后的工作打下了坚实的基础。

七 参考文献

C++程序设计(第三版).电子工业出版社.2009年8月.
赵树升 赵韶平. Windows信息安全原理与实现.清华大学出版社.2004年9月.
赛奎春.Visual C++ 信息系统开发实例精选,2005
杨永国. Visual C++ 6.0实用教程. 清华大学出版社,2004
唐俊明. Visual C++ 6.0 编程实例与技巧. 高等教育出版,2002
潘锦平. 软件系统开发技术. 西安电子科技大学出版社, 1997
郑阿奇 丁有和 编著 Visual C++(第2版).机械工业出版社.2008年8月.
侯俊杰 编著 深入浅出MFC(第2版).华中科技大学出版社.2008年1月.
孙鑫 余安萍 编著 VC++ 深入浅出
详解.电子工业出版社.2006年6月.
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/m0_66999594/article/details/139567542

标签:node,p2,课程设计,p1,美发店,p3,next,源码,fp
From: https://blog.csdn.net/m0_73546099/article/details/139611029

相关文章

  • 自动驾驶 Apollo 源码分析:ProcessMonitor
    自动驾驶 Apollo 源码分析:ProcessMonitor本篇文章分析 Apollo 中监控模块中监控进程状态的相关代码。附赠自动驾驶最全的学习资料和量产经验:链接1. ProcessMonitorProcessMonitor 是一个普通的定时器组件,内部函数也只是常规的 RunOnce 和 UpdateStatus,所以,......
  • JavaWeb课程设计/期末大作业-电影网站+源代码+文档说明+数据库sql
    文章目录源码下载地址项目介绍项目功能界面预览项目备注源码下载地址源码下载地址点击这里下载代码项目介绍项目功能界面预览项目备注1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!2、本项目适合计算机相关专业(如计科......
  • C语言:头歌课程设计(未完结,慎入)
    第1关:【课程设计】Init任务描述你需要将一系列的学生期末考试信息进行存储(学生人数不会超过100)。每个学生的信息包括:姓名(由firstname和lastname两部分组成,例如JingyuLI,first_name="Jingyu"last_name="LI");学号(12位数字组成,开头4位为2022、2021、2020);C......
  • ZooKeeper源码解读
    ZooKeeper源码分析1.服务器构成群首(leader),追随者(follower),观察者(observer)本质上都是服务器。在实现服务器主要抽象概念是请求处理器。请求处理器是对处理流水线上不同阶段的抽象,每个服务器实现一个请求处理器的序列。zookeeper服务端有两种模式:单机的独立模式和集群的仲裁模式,......
  • 《并发编程系列01》从底层源码剖析AQS的来龙去脉!(通俗易懂)
    前言本文是作者的第一篇文章,目的就是可以分享自己个人的一些技术上的心得体会以及找寻志同道合的人来共同讨论技术。个人学习难免会有一些理解上的错误,所以写博客也是为了记录和反思自己的学习过程,进一步加深对技术的理解和掌握。希望通过这篇博客,能够帮助到一些和我一样......
  • 虚拟化 之一 详解 jailhouse 架构及原理、软硬件要求、源码文件、基本组件
      Jailhouse是一个基于Linux实现的针对创建工业级应用程序的小型Hypervisor,是由西门子公司的JanKiszka于2013年开发的,并得到了官方Linux内核的支持,在开源社区中获得了知名度和吸引力。Jailhouse  Jailhouse是一种轻量级的虚拟化技术,可以将多个操作系统(或......
  • 【弹孔计数】机器视觉弹孔检测计数(开闭运算 canny算子)【含GUI Matlab源码 4679期】
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。......
  • 【导航定位】卡尔曼滤波kalman GPS和惯性船舶组合导航(弧长 速度分量 航向 航向变化率
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。......
  • 【数据结构】遍历二叉树(递归思想)-->赋源码
    欢迎来到我的Blog,点击关注哦......
  • LLM大模型: MOE原理和源码解析
    1、古人云:闻道有先后,术业有专攻!每个人的能力范围是有限的,不可能360行,行行都精通!所以搞研究都会选一个细分领域深耕,争取在这个领域做到世界top级别的泰斗!一个团队,内部也都是在各个领域擅长的人组成,比如前端、ui、后端、算法、运维、运营等,大家互相配合,完成既定目标!本人多年前做......