Herança e array

Estou fazendo um projeto da faculdade que é necessário criar um sistema em java usando POO, herança, encapsulamento etc. Comecei fazer esse sistema que calcula o valor estimado para a venda de um churros e cadastra eles. Só que estou tendo problemas em somar os valores das classes, já tentei de varias formas mas nenhuma esta dando certo. O erro mais recorrente é java.lang.NullPointerException

package ChurrosControl;

public class Churros {
private String nome;
private int numero;
private double PrecoCobertura;
private double PrecoConfeito;
private double PrecoRecheio;
private double PrecoFarinha;
private double PrecoManteiga;
private double PrecoOleo;
private double PrecoAcucar;
private double ConfeitoUni;
private double RecheioUni;
private double CoberturaUni;
private double OleoUni;
private double AcucarUni;
private double ManteigaUni;
private double FarinhaUni;

public double getFarinhaUni() {
	return FarinhaUni;
}

public void setFarinhaUni(double farinhaUni) {
	this.FarinhaUni = farinhaUni;
}

public double getRecheioUni() {
	return RecheioUni;
}

public void setRecheioUni(double recheioUni) {
	this.RecheioUni = recheioUni;
}

public double getCoberturaUni() {
	return CoberturaUni;
}

public void setCoberturaUni(double coberturaUni) {
	this.CoberturaUni = coberturaUni;
}

public double getOleoUni() {
	return OleoUni;
}

public void setOleoUni(double oleoUni) {
	this.OleoUni = oleoUni;
}

public double getAcucarUni() {
	return AcucarUni;
}

public void setAcucarUni(double acucarUni) {
	this.AcucarUni = acucarUni;
}

public double getManteigaUni() {
	return ManteigaUni;
}

public void setManteigaUni(double manteigaUni) {
	this.ManteigaUni = manteigaUni;
}

public double getConfeitoUni() {
	return ConfeitoUni;
}

public void setConfeitoUni(double confeitoUni) {
	this.ConfeitoUni = confeitoUni;
}

public double getPrecoFarinha() {
	return PrecoFarinha;
}

public void setPrecoFarinha(double precoFarinha) {
	this.PrecoFarinha = precoFarinha;
}

public double getPrecoManteiga() {
	return PrecoManteiga;
}

public void setPrecoManteiga(double precoManteiga) {
	this.PrecoManteiga = precoManteiga;
}

public double getPrecoOleo() {
	return PrecoOleo;
}

public void setPrecoOleo(double precoOleo) {
	this.PrecoOleo = precoOleo;
}

public double getPrecoAcucar() {
	return PrecoAcucar;
}

public void setPrecoAcucar(double precoAcucar) {
	this.PrecoAcucar = precoAcucar;
}

public double getPrecoCobertura() {
	return PrecoCobertura;
}

public void setPrecoCobertura(double PrecoCobertura) {
	this.PrecoCobertura = PrecoCobertura;
}

public double getPrecoConfeito() {
	return PrecoConfeito;
}

public void setPrecoConfeito(double PrecoConfeito) {
	this.PrecoConfeito = PrecoConfeito;
}

public double getPrecoRecheio() {
	return PrecoRecheio;
}

public void setPrecoRecheio(double PrecoRecheio) {
	this.PrecoRecheio = PrecoRecheio;
}

public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;	
}

public int getNumero() {
	return numero;
}

public void setNumero(int numero) {
	this.numero = numero;
}

public double Calcular() {	
	double soma = this.getCoberturaUni() + this.getRecheioUni() + this.AcucarUni + this.ConfeitoUni + this.FarinhaUni + this.ManteigaUni + this.OleoUni;
	return soma;
}

}

package ChurrosControl;

import java.util.ArrayList;

public class Funcionarios {
private String nome;
private double Salario;
private double SalarioT;

public Funcionarios(String nome, double salario) {
	this.nome = nome;
	this.Salario = salario;
	SalarioT = Salario + Salario;
}

public double getSalarioT() {
	return SalarioT;
}

public void setSalarioT(double salarioT) {
	this.SalarioT = salarioT;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public double getSalario() {
	return Salario;
}

public void setSalario(double salario) {
	Salario = salario;
}

}

package ChurrosControl;

public class GastoMensal {
private double Energia;
private double Combustivel;
private double Gas;
private double MaterialLimpeza;
private double embalagem;
private double EnergiaUni;
private double CombustivelUni;
private double GasUni;
private double MaterialUni;
private double EmbalagemUni;
private int mediachurros;
private double lucro;
private double soma;
private Funcionarios funcionario;
private Churros churros;

public GastoMensal(double energia, double combustivel, double gas, double materiallimpeza, double embalagem, double lucro, int mediachurros){
	this.Combustivel = combustivel;
	this.Energia = energia;
	this.Gas = gas;
	this.MaterialLimpeza = materiallimpeza;
	this.embalagem = embalagem;
	this.lucro = lucro;
	this.mediachurros = mediachurros;
}	

public double getEnergiaUni() {
	return EnergiaUni;
}

public void setEnergiaUni(double energiaUni) {
	this.EnergiaUni = energiaUni;
}

public double getCombustivelUni() {
	return CombustivelUni;
}

public void setCombustivelUni(double combustivelUni) {
	this.CombustivelUni = combustivelUni;
}

public double getGasUni() {
	return GasUni;
}

public void setGasUni(double gasUni) {
	this.GasUni = gasUni;
}

public double getMaterialUni() {
	return MaterialUni;
}

public void setMaterialUni(double materialUni) {
	this.MaterialUni = materialUni;
}

public double getEmbalagemUni() {
	return EmbalagemUni;
}

public void setEmbalagemUni(double embalagemUni) {
	this.EmbalagemUni = embalagemUni;
}

public double getLucro() {
	return lucro;
}

public void setLucro(double lucro) {
	this.lucro = lucro;
}

public double getEmbalagem() {
	return embalagem;
}
public void setEmbalagem(double embalagem) {
	this.embalagem = embalagem;
}

public double getMaterialLimpeza() {
	return MaterialLimpeza;
}

public void setMaterialLimpeza(double materialLimpeza) {
	MaterialLimpeza = materialLimpeza;
}

public Funcionarios getFuncionario() {
	return funcionario;
}

public void setFuncionario(Funcionarios funcionario) {
	this.funcionario = funcionario;
}

public Churros getChurros() {
	return churros;
}

public void setChurros(Churros churros) {
	this.churros = churros;
}

public double getEnergia() {
	return Energia;
}

public void setEnergia(double energia) {
	this.Energia = energia;
}

public double getCombustivel() {
	return Combustivel;
}

public void setCombustivel(double combustivel) {
	this.Combustivel = combustivel;
}

public double getGas() {
	return Gas;
}

public void setGas(double gas) {
	this.Gas = gas;
}	

public int getMediachurros() {
	return mediachurros;
}

public void setMediachurros(int mediachurros) {
	this.mediachurros = mediachurros;
}

public double CalculoGeral() {
	soma = EnergiaUni + CombustivelUni + GasUni + MaterialUni + EmbalagemUni;
	double soma2 = churros.Calcular() + funcionario.getSalarioT();
	System.out.println("cu"+soma2);
	return soma2;
}

}

package ChurrosControl;

import java.util.ArrayList;
import java.util.Scanner;

public class Principal {
public static void main(String[] args) {

	int op, op2, numero, num, quantchurF, quantchurM, quantchurA, quantchurO, quantchurR, quantchurC, quantchurCon, mediachurros;
	String nomeChurros, nomeFunc, senha, op3, nomez, massafarinha, receitafarinha, massamanteiga, receitamanteiga, massaacucar, receitaacucar, massaoleo, receitaoleo, 
	massarecheio, receitarecheio, massacobertura, receitacobertura, massaconfeito, receitaconfeito;
	double PrecoCobertura, PrecoConfeito, PrecoRecheio, salario, energia, gas, combustivel, valortotal, PrecoFarinha, PrecoManteiga, PrecoOleo, PrecoAcucar, salarioT=0, 
	materiallimpeza, xx=0, embalagem, quantembalagem, EmbalagemUni,	lucro, soma, total=0, salarioUni,	lucrofinal,
	quantmassaF,   quantreceiF,   farinha,  MedidaFarinha=0,  MedidaFarinha2=0,  FarinhaUni,  EnergiaUni,
	quantmassaM,   quantreceiM,   manteiga, MedidaManteiga=0, MedidaManteiga2=0, ManteigaUni, CombustivelUni,
	quantmassaA,   quantreceiA,   acucar,   MedidaAcucar=0,   MedidaAcucar2=0, 	 AcucarUni,   GasUni,
	quantmassaO,   quantreceiO,   oleo,     MedidaOleo=0,     MedidaOleo2=0, 	 OleoUni,     MaterialUni,
	quantmassaR,   quantreceiR,   recheio,  MedidaRecheio=0,  MedidaRecheio2=0,  RecheioUni, 
	quantmassaC,   quantreceiC,   cobertura,MedidaCobertura=0,MedidaCobertura2=0,CoberturaUni, 
	quantmassaCon, quantreceiCon, Confeito, MedidaConfeito=0, MedidaConfeito2=0, ConfeitoUni;
	
	Scanner sc = new Scanner(System.in);		

	ArrayList<Churros> churros = new ArrayList<Churros>(); //armazena os churros
	ArrayList<Funcionarios> funcionario = new ArrayList<Funcionarios>(); //armazena os funcionarios
	ArrayList<GastoMensal> gastomensal = new ArrayList<GastoMensal>(); //armazena os churros

	do{ //repete o menu até que seja selecionado a opção 3 - sair
		System.out.println("-----------------------------------");
		System.out.println("      Calculadora de churros");
		System.out.println("-----------------------------------");
		System.out.println("[1] Cadastrar churros");
		System.out.println("[2] Cadastrar funcionário");
		System.out.println("[3] Cadastrar gastos mensais");
		System.out.println("[4] Listar churros");
		System.out.println("[5] Listar funcionários");
		System.out.println("Digite sua opção: ");
		op = sc.nextInt();
			
		Funcionarios f1 = new Funcionarios(nomeFunc = "",  salario = 0); //buffer do funcionario
		GastoMensal gm = new GastoMensal(energia=0, combustivel=0, gas=0, materiallimpeza=0, embalagem=0, lucro=0, mediachurros=0); //buffer do funcionario
		Churros c1 = new Churros(); //buffer do churros

		//Churros = c1 = new Churros();
		switch (op) {
		
		case 1:
			System.out.println("Digite o nome do churros: ");
			System.out.flush(); //limpa o buffer do teclado
			nomeChurros = sc.next();
			c1.setNome(nomeChurros);
			
			System.out.println("Digite o número no cardápio: ");
			System.out.flush();
			numero = sc.nextInt();
			c1.setNumero(numero);	
			
			
	//------------------------------------------------------------COBERTURA---------------------------------------------------------
			System.out.println("Digite o preço da cobertura: ");
			System.out.flush();
			PrecoCobertura = sc.nextDouble();
			c1.setPrecoCobertura(PrecoCobertura);
			
			System.out.println("Qual medida de massa (kg, g) na compra da cobertura: ");
			System.out.flush();
			massacobertura = sc.next();
			
			if(massacobertura.equals("kg")) {
				MedidaCobertura = 1000;
			}
			
			if(massacobertura.equals("g")) {
				MedidaCobertura = 1;
			}
			
			System.out.println("Qual a quantidade em ["+massacobertura+"] de cobertura dessa compra ?");
			System.out.flush();
			quantmassaC = sc.nextDouble();
			
			System.out.println("Quantidade que é utilizado na receita (apenas números)");
			System.out.flush();
			quantreceiC = sc.nextDouble();
			
			System.out.println("Qual medida da massa (kg, g) utilizado na receita?: ");
			System.out.flush();
			receitacobertura = sc.next();
			
			if(receitacobertura.equals("kg")) {
				MedidaCobertura2 = 1000;
			}
			
			if(receitacobertura.equals("g")) {
				MedidaCobertura2 = 1;
			}
			
			System.out.println("Quantos churros é possivel fazer com essa receita?: ");
			System.out.flush();
			quantchurC = sc.nextInt();
			
			CoberturaUni = MedidaCobertura * quantmassaC;
			CoberturaUni = CoberturaUni / (MedidaCobertura2 * quantreceiC);
			CoberturaUni = CoberturaUni * quantchurC;
			CoberturaUni = PrecoCobertura /CoberturaUni;
			System.out.println(CoberturaUni);
			c1.setCoberturaUni(CoberturaUni);
			
	//------------------------------------------------------------RECHEIO---------------------------------------------------------
			System.out.println("Digite o Preco do recheio: ");
			System.out.flush();
			PrecoRecheio = sc.nextDouble();
			c1.setPrecoRecheio(PrecoRecheio);
			
			System.out.println("Qual medida de massa (kg, g) na compra da recheio: ");
			System.out.flush();
			massarecheio = sc.next();
			
			if(massarecheio.equals("kg")) {
				MedidaRecheio = 1000;
			}
			
			if(massarecheio.equals("g")) {
				MedidaRecheio = 1;
			}
			
			System.out.println("Qual a quantidade em ["+massarecheio+"] de recheio dessa compra ?");
			System.out.flush();
			quantmassaR = sc.nextDouble();
			
			System.out.println("Quantidade que é utilizado na receita (apenas números)");
			System.out.flush();
			quantreceiR = sc.nextDouble();
			
			System.out.println("Qual medida da massa (kg, g) utilizado na receita?: ");
			System.out.flush();
			receitarecheio = sc.next();
			
			if(receitarecheio.equals("kg")) {
				MedidaRecheio2 = 1000;
			}
			
			if(receitarecheio.equals("g")) {
				MedidaRecheio2 = 1;
			}
			
			System.out.println("Quantos churros é possivel fazer com essa receita?: ");
			System.out.flush();
			quantchurR = sc.nextInt();
			
			
			RecheioUni = MedidaRecheio * quantmassaR;
			RecheioUni = RecheioUni / (MedidaRecheio2 * quantreceiR);
			RecheioUni = RecheioUni * quantchurR;
			RecheioUni = PrecoRecheio / RecheioUni;
			c1.setRecheioUni(RecheioUni);
	//------------------------------------------------------------FARINHA---------------------------------------------------------
			
			System.out.println("Digite o preço de compra da farinha: ");
			System.out.flush();
			PrecoFarinha = sc.nextDouble();
			c1.setPrecoFarinha(PrecoFarinha);
			
			System.out.println("Qual medida de massa (kg, g) na compra da farinha: ");
			System.out.flush();
			massafarinha = sc.next();
			
			if(massafarinha.equals("kg")) {
				MedidaFarinha = 1000;
			}
			
			if(massafarinha.equals("g")) {
				MedidaFarinha = 1;
			}
			
			System.out.println("Qual a quantidade em ["+massafarinha+"] de farinha dessa compra ?");
			System.out.flush();
			quantmassaF = sc.nextDouble();
			
			System.out.println("Quantidade que é utilizado na receita (apenas números)");
			System.out.flush();
			quantreceiF = sc.nextDouble();
			
			System.out.println("Qual medida da massa (kg, g) utilizado na receita?: ");
			System.out.flush();
			receitafarinha = sc.next();
			
			if(receitafarinha.equals("kg")) {
				MedidaFarinha2 = 1000;
			}
			
			if(receitafarinha.equals("g")) {
				MedidaFarinha2 = 1;
			}

			System.out.println("Quantos churros é possivel fazer com essa receita?: ");
			System.out.flush();
			quantchurF = sc.nextInt();
			
		
			FarinhaUni = MedidaFarinha * quantmassaF;
			FarinhaUni = FarinhaUni / (MedidaFarinha2 * quantreceiF);
			FarinhaUni = FarinhaUni * quantchurF;
			FarinhaUni = PrecoFarinha / FarinhaUni;
			c1.setFarinhaUni(FarinhaUni);
	//------------------------------------------------------------MANTEIGA---------------------------------------------------------	
			
			System.out.println("Digite o preço de compra da manteiga: ");
			System.out.flush();
			PrecoManteiga = sc.nextDouble();
			c1.setPrecoManteiga(PrecoManteiga);
			
			System.out.println("Qual medida de massa (kg, g) na compra da manteiga: ");
			System.out.flush();
			massamanteiga = sc.next();
			
			if(massamanteiga.equals("kg")) {
				MedidaManteiga = 1000;
			}
			
			if(massamanteiga.equals("g")) {
				MedidaManteiga = 1;
			}
			
			System.out.println("Qual a quantidade em ["+massamanteiga+"] de manteiga dessa compra ?");
			System.out.flush();
			quantmassaM = sc.nextDouble();
			
			System.out.println("Quantidade que é utilizado na receita (apenas números)");
			System.out.flush();
			quantreceiM = sc.nextDouble();
			
			System.out.println("Qual medida da massa (kg, g) utilizado na receita?: ");
			System.out.flush();
			receitamanteiga = sc.next();
			
			if(receitamanteiga.equals("kg")) {
				MedidaManteiga2 = 1000;
			}
			
			if(receitamanteiga.equals("g")) {
				MedidaManteiga2 = 1;
			}
			
			System.out.println("Quantos churros é possivel fazer com essa receita?: ");
			System.out.flush();
			quantchurM = sc.nextInt();
			
			ManteigaUni = MedidaManteiga * quantmassaM;
			ManteigaUni = ManteigaUni / (MedidaManteiga2 * quantreceiM);
			ManteigaUni = ManteigaUni * quantchurM;
			ManteigaUni = PrecoManteiga / ManteigaUni;
			c1.setManteigaUni(ManteigaUni);
	//----------------------------------------------------------------AÇUCAR-----------------------------------------------------
			
			System.out.println("Digite o preço de compra do açucar: ");
			System.out.flush();
			PrecoAcucar = sc.nextDouble();
			c1.setPrecoAcucar(PrecoAcucar);
			
			System.out.println("Qual medida de massa (kg, g) na compra do açucar: ");
			System.out.flush();
			massaacucar = sc.next();
			
			if(massaacucar.equals("kg")) {
				MedidaAcucar = 1000;
			}
			
			if(massaacucar.equals("g")) {
				MedidaAcucar = 1;
			}

			System.out.println("Qual a quantidade em ["+massaacucar+"] de açucar dessa compra ?");
			System.out.flush();
			quantmassaA = sc.nextDouble();
			
			System.out.println("Quantidade que é utilizado na receita (apenas números)");
			System.out.flush();
			quantreceiA = sc.nextDouble();
			
			System.out.println("Qual medida da massa (kg, g) utilizado na receita?: ");
			System.out.flush();
			receitaacucar = sc.next();
			
			if(receitaacucar.equals("kg")) {
				MedidaAcucar2 = 1000;
			}
			
			if(receitaacucar.equals("g")) {
				MedidaAcucar2 = 1;
			}
			
			System.out.println("Quantos churros é possivel fazer com essa receita?: ");
			System.out.flush();
			quantchurA = sc.nextInt();
			
			AcucarUni = MedidaAcucar * quantmassaA;
			AcucarUni = AcucarUni / (MedidaAcucar2 * quantreceiA);
			AcucarUni = AcucarUni * quantchurA;
			AcucarUni = PrecoAcucar / AcucarUni;
			c1.setAcucarUni(AcucarUni);
	//------------------------------------------------------------OLEO----------------------------------------------------------
			
			System.out.println("Digite o preço de compra do óleo: ");
			System.out.flush();
			PrecoOleo = sc.nextDouble();
			c1.setPrecoOleo(PrecoOleo);
			
			System.out.println("Qual medida (l, ml) na compra do óleo: ");
			System.out.flush();
			massaoleo = sc.next();
			
			if(massaoleo.equals("l")) {
				MedidaOleo = 1000;
			}
			
			if(massaoleo.equals("ml")) {
				MedidaOleo = 1;
			}
			
			System.out.println("Qual a quantidade em ["+massaoleo+"] de óleo dessa compra ?");
			System.out.flush();
			quantmassaO = sc.nextDouble();
			
			System.out.println("Quantidade que é utilizado na receita (apenas números)");
			System.out.flush();
			quantreceiO = sc.nextDouble();
			
			System.out.println("Qual medida da massa (l, ml) utilizado na receita?: ");
			System.out.flush();
			receitaoleo = sc.next();
			
			if(receitaoleo.equals("l")) {
				MedidaOleo2 = 1000;
			}
			
			if(receitaoleo.equals("ml")) {
				MedidaOleo2 = 1;
			}
			
			System.out.println("Quantos churros é possivel fazer com essa receita?: ");
			System.out.flush();
			quantchurO = sc.nextInt();
			
			OleoUni = MedidaOleo * quantmassaO;
			OleoUni = OleoUni / (MedidaOleo2 * quantreceiO);
			OleoUni = OleoUni * quantchurO;
			OleoUni = PrecoOleo / OleoUni;
			c1.setOleoUni(OleoUni);
			

	//-------------------------------------------------------CONFEITO--------------------------------------------------------------

			System.out.println("Digite 'sim' se o churros possui confeito ou 'não': ");
			System.out.flush();
			op3 = sc.next();
			
			if(op3.equals("sim")) {
				System.out.println("Digite o preço de compra do confeito: ");
				System.out.flush();
				PrecoConfeito = sc.nextDouble();
				c1.setPrecoConfeito(PrecoConfeito);
				
				System.out.println("Qual medida de massa (kg, g) na compra do confeito: ");
				System.out.flush();
				massaconfeito = sc.next();
				
				if(massaconfeito.equals("kg")) {
					MedidaConfeito = 1000;
				}
				
				if(massaconfeito.equals("g")) {
					MedidaConfeito = 1;
				}
				
				System.out.println("Qual a quantidade em ["+massaconfeito+"] de confeito dessa compra ?");
				System.out.flush();
				quantmassaCon = sc.nextDouble();
				
				System.out.println("Quantidade que é utilizado na receita (apenas números)");
				System.out.flush();
				quantreceiCon = sc.nextDouble();
				
				System.out.println("Qual medida da massa (kg, g) utilizado na receita?: ");
				System.out.flush();
				receitaconfeito = sc.next();
				
				if(receitaconfeito.equals("kg")) {
					MedidaConfeito2 = 1000;
				}
				
				if(receitaconfeito.equals("g")) {
					MedidaConfeito2 = 1;
				}
				
				System.out.println("Quantos churros é possivel fazer com essa receita?: ");
				System.out.flush();
				quantchurCon = sc.nextInt();
				
				ConfeitoUni = MedidaConfeito * quantmassaCon;
				ConfeitoUni = ConfeitoUni / (MedidaConfeito2 * quantreceiCon);
				ConfeitoUni = ConfeitoUni * quantchurCon;
				ConfeitoUni = PrecoConfeito / ConfeitoUni;
				System.out.println(ConfeitoUni);

				c1.setConfeitoUni(ConfeitoUni);
			}
			
			churros.add(c1);//adiciona o churros atual na lista de churros
			gm.setChurros(c1);
			
			System.out.println(c1.getNome() + " foi cadastrado");
			break;
			
		case 2:
			//Funcionarios f1 = new Funcionarios(nomeFunc = "",  salario = 0); //buffer do funcionario
			System.out.println("Digite o nome: ");
			System.out.flush(); //limpa o buffer do teclado
			nomeFunc = sc.next();
			f1.setNome(nomeFunc);
				
			System.out.println("Digite o salário: ");
			System.out.flush();
			salario = sc.nextDouble();
			f1.setSalario(salario);
			
			System.out.println(nomeFunc + " foi cadastrado");
			//adiciona o produto atual na lista
			
			salarioT = salarioT + salario;
			f1.setSalarioT(salarioT);
			
			//
			break;
			
		case 3:
			System.out.println("Digite o valor do gás no mês: ");
			System.out.flush(); //limpa o buffer do teclado
			gas = sc.nextDouble();
			gm.setGas(gas);
				
			System.out.println("Digite o valor do combustível no mês: ");
			System.out.flush();
			combustivel = sc.nextDouble();
			gm.setCombustivel(combustivel);
			
			System.out.println("Digite o valor do energia mês: ");
			System.out.flush();
			energia = sc.nextDouble();
			gm.setEnergia(energia);
			
			System.out.println("Digite o valor do matérial de limpeza por mês: ");
			System.out.flush();
			materiallimpeza = sc.nextDouble();
			gm.setMaterialLimpeza(materiallimpeza);

			System.out.println("Digite o valor do pacote da embalagem: ");
			System.out.flush();
			embalagem = sc.nextDouble();
			gm.setEmbalagem(embalagem);
			
			System.out.println("Quantidade de embalagens que vem no pacote: ");
			System.out.flush();
			quantembalagem = sc.nextInt();
			EmbalagemUni = embalagem / quantembalagem;
			gm.setEmbalagemUni(EmbalagemUni);
			
			System.out.println("Qual a média de churros produzidos por semana: ");
			System.out.flush();
			mediachurros = sc.nextInt();
			mediachurros = mediachurros * 4;
			gm.setMediachurros(mediachurros);
			
			System.out.println("Digite o valor da margem de lucro para churros(70 = 70%): ");
			System.out.flush();
			lucro = sc.nextDouble();
			gm.setLucro(lucro);
			
			EnergiaUni = energia / mediachurros;
			gm.setEnergiaUni(EnergiaUni);
			CombustivelUni = combustivel / mediachurros;
			gm.setCombustivelUni(CombustivelUni);
			GasUni = gas / mediachurros;
			gm.setGasUni(GasUni);
			MaterialUni = materiallimpeza / mediachurros;
			gm.setMaterialUni(MaterialUni);
			System.out.println("Gasto mensal foi cadastrado");
			
			
			System.out.println("Energia por churros: ["+gm.getEnergiaUni()+"]\n"+
					   "Combustível por churros: ["+gm.getCombustivelUni()+"]\n"+
					   "Gás por churros: ["+gm.getGasUni()+"]\n"+
					   "Matérial de limpeza por churros: ["+gm.getMaterialUni()+"]\n");
			break;
		case 4:
			if (churros.size() == 0) {
				System.out.println("\nNão existem cadastros !!!\n");
			} 
			else {
				System.out.println("\nLista de Cadastros\n");
		
				salarioUni = salarioT / mediachurros;
				lucrofinal = gm.getLucro();
				for (int i = 0; i < churros.size(); i++) {
					Churros c = churros.get(i);
					System.out.println("-----------------------------------------------");

					System.out.println("Nome: " + c.getNome() + "\n");
					System.out.println("Número no cardápio: " + c.getNumero() + "\n");
					
					System.out.println("Preco do recheio: " + c.getPrecoRecheio() + "\n");
					System.out.println("Preco do recheio por churros: " + c.getRecheioUni() + "\n");
					
					System.out.println("Preco do açucar: " + c.getPrecoAcucar() + "\n");
					System.out.println("Preco do açucar por churros: " + c.getAcucarUni() + "\n");

					System.out.println("Preco do cobertura: " + c.getPrecoCobertura() + "\n");
					System.out.println("Preco do cobertura por churros: " + c.getAcucarUni() + "\n");

					System.out.println("Preco do confeito: " + c.getPrecoConfeito() + "\n");
					System.out.println("Preco do confeito por churros: " + c.getConfeitoUni() + "\n");

					System.out.println("Preco do oleo: " + c.getPrecoOleo() + "\n");
					System.out.println("Preco do oleo por churros: " + c.getOleoUni() + "\n");

					System.out.println("Preco da manteiga: " + c.getPrecoManteiga() + "\n");
					System.out.println("Preco da manteiga por churros: " + c.getManteigaUni() + "\n");

					System.out.println("Preco da farinha: " + c.getPrecoFarinha() + "\n");
					System.out.println("Preco da farinha por churros: " + c.getFarinhaUni() + "\n");

					System.out.println("Preco total dos ingredientes: " + c.Calcular() + "\n");
					

				}

				}
			break;
		case 5:
			if (funcionario.size() == 0) {
				System.out.println("\nNão existem cadastros !!!\n");
			} 
			else {
				System.out.println("\nLista de Cadastros\n");
				for (int i = 0; i < funcionario.size(); i++) {
					Funcionarios f = funcionario.get(i);
					
					System.out.println("-----------------------------------------------");
					System.out.println("Nome: " + f.getNome() + "\n");
					System.out.println("Salário: " + f.getSalario() + "\n");
					System.out.println("Salário total: " + salarioT+ "\n");

					//System.out.println("gm: "+gm.getFuncionario().getSalario());
				}
			}
			break;
		case 6:
			//soma = f1.getSalarioT() + gm.CalculoGeral();
			gm.CalculoGeral();
			break;
		default:
			System.out.println("Opção inválida!");
			break;
		}
		
		funcionario.add(f1);
		gm.setFuncionario(f1);
		gastomensal.add(gm);
		
		//System.out.println("gm: "+gm.getFuncionario().getSalario());
	}while (op!=0);
}

Poste o erro completo e a linha que ele está apontando.

Exception in thread "main" java.lang.NullPointerException
at ChurrosControl.GastoMensal.CalculoGeral(GastoMensal.java:144)
at ChurrosControl.Principal.main(Principal.java:560)

NullPointerException acontece quando você tenta acessar um atributo ou invocar um método em um objeto que não foi inicializado.

No seu caso está acontecendo dentro do seguinte método:

public double CalculoGeral() {
    soma = EnergiaUni + CombustivelUni + GasUni + MaterialUni + EmbalagemUni;
    double soma2 = churros.Calcular() + funcionario.getSalarioT();
    System.out.println("cu"+soma2);
    return soma2;
}

Onde você inicializou os objetos churros e funcionario?

Se tratando de array eu me atrapalho um pouco para fazer isso, qual a forma correta de inicializar um objeto ?

Não tem nenhum array dentro da classe GastoMensal nem no método CalculoGeral.