Computer Programming EEU 101 Total Resistance Calculations Project
Computer Programming EEU 101 Total Resistance Calculations Project
Computer Programming EEU 101 Total Resistance Calculations Project
Group Project
Title: Total Resistance Calculation
Group 4
Group members:
ANG KOK WEI 108467
GOH CHIA YEE 108474
KOAY BOON AIK 108146
MOHAMAD SHAZELEE BIN SIMON 108153
NURUL WAHIEDA BINTI MUHAMAD BUSTAMAN 108488
TIONG KWONG YII 108170
Acknowledgement
2
Here, we would like to acknowledge a few groups of supportive people, who became the
foundation for our achievement in concluding this Group Project for the course EEU 101/2
Computer Programming.
At the outset, there would be no greater accomplishment without the guide and precious
knowledge from our valued lecturer. Consequently, no one else is meant for this part of our
acknowledgement but the person in mind, Associate Prof. Dr. Umi Kalthum Ngah.
Furthermore, we would like to announce our gratitude towards our mentor in the course
EEU 101/2 for all the guidance given in learning the C++ programming language.
To finish with, we would like to express our truthful appreciation towards those around us,
especially those from the other groups, who had been there to assist us with regard to their
Table of Contents
Contents Page
1 Acknowledgement 2
3
2 Table of Contents 3
3 Abstract 4
4 Introduction 5
6 Problem Analysis 10
5. Problem Statement
1 Input and Output Analysis
5.
2
7 Design Decomposition & Methodology 11-13
9 Integration 27-45
11 Gantt Chart 60
12 Conclusion 61
13 Bibliography 62
Abstract
4
Our program is to enable the user to easily calculate the resistance of a resistor using a colour
coded band and the total resistance in a circuit of different type. In a series circuit, the current
through each of the components is the same. To find the total resistance, add the resistances Ri
of each component and take the the sum.
In a parallel circuit, the voltage across each of the components is the same. To find the total
resistance, add the reciprocals of the resistances Ri of each component and take the reciprocal
of the sum.
For series-parallel circuits, the total resistance is computed using series and parallel formula,
where most circuit can be broken down to a simple parallel or series circuit.
Most resistors have three coloured bands close together at one end. The colour codes are as
follows:
Black 0
Brown 1 The integer codes of the bands are in the order of colour1,
Red 2 colour2 and colour3. The resistance in ohms is calculated
Orange 3 using this formula:
Yellow 4
Green 5 Resistance = (10 x colour1 + colour2) x 10colour 3
Blue 6
Violet 7
Gray 8
White 9
Introduction
5
Project Objectives:
2) Calculate the resistance of a resistor based on the colour coded band on a resistor.
Project Scope:
2) The circuit taken into consideration include series, parallel and parallel-series circuit.
3) This programme can calculate resistances of resistors based on the colour bands of the
resistors.
4) The circuit taken into consideration must only consist of a power source, and resistors
either in the connection of series or parallel or the combination of both.
In this project, we tried to utilize as many commands as we are capable of to demonstrate our
familiarity with these commands besides showing variation. Among the commands used are:
for, if, if-else, switch, do-while, looping, function, pointer and arrays.
Topic
1. Discussion on problem statement, input and output analysis.
2. Discussion on the flow chart for the decomposition of the problem
Attendee List
# Name Present Absence
Reason
1 NURUL WAHIEDA BT MUHAMAD BUSTAMAN 108488 Y -
2 ANG KOK WEI 108467 Y -
3 TIONG KWONG YII 108170 Y -
4 MOHAMAD SHAZELEE BIN SIMON 108153 Y -
5 KOAY BOON AIK 108146 Y -
6 GOH CHIA YEE 108474 Y -
Meeting Notes
1 The problem statement, input and output analysis are done.
2 The design composition of the whole program is done.
Topic
1. Writing codes for each part of the program.
Attendee List
# Name Present Absence
Reason
1 NURUL WAHIEDA BT MUHAMAD BUSTAMAN 108488 Y -
2 ANG KOK WEI 108467 Y -
3 TIONG KWONG YII 108170 Y -
4 MOHAMAD SHAZELEE BIN SIMON 108153 Y -
5 KOAY BOON AIK 108146 Y -
6 GOH CHIA YEE 108474 Y -
Meeting Notes
1 Each member are assigned to write the parts of the program.
Topic
1. Each code for every part of the program is debugged to check error. Each one is then
compiled and run.
2. The integrated code is debugged, compiled and run.
Attendee List
# Name Present Absence
Reason
8
Meeting Notes
1 The errors which occurred in compiling the integrated codes while debugging have
been solved.
Topic
1. Rechecking program’s code.
2. Preparing for the presentation of the program.
Attendee List
# Name Present Absence
Reason
1 NURUL WAHIEDA BT MUHAMAD BUSTAMAN 108488 Y -
2 ANG KOK WEI 108467 Y -
3 TIONG KWONG YII 108170 Y -
4 MOHAMAD SHAZELEE BIN SIMON 108153 Y -
5 KOAY BOON AIK 108146 Y -
6 GOH CHIA YEE 108474 Y -
Meeting Notes
9
1 The codes, paperwork and the forecasted flow of our presentation are done.
Action Items
# Task Person
Responsible
1 Prepare for the presentation of the program. All
Problem Analysis
Problem Statement
parallel, series, and a combination of both. Due to the rigorous and complicated
method in calculating the total resistance in the circuit manually (by hand), thus we
intend to create a program which assist the user to solve the problem more easily.
This program will then allow the user to manipulate the type of circuit and the input
needed in order to attain the correct solution in solving the total resistance in the
circuit. In the request of the user, the program would also be able to attain the
Input data:
10
colour coded band), number of resistors in the circuit, the value (in ohm
unit) of each of the resistors, the code for the colour coded band.
Output data:
Design Decomposition
Total Resistance
Calculation
Second
Number of colour’s
resistor in each code
line
Total
Third
resistanc Value of resistors
colour’s
e (ohm) (ohm) of each code
line
12
Start
Output six choices for the user to choose from. Ask the user for what type of calculation required.
Input: circuit
circuit == 1
and circuit ==2 circuit==3
inp Displ
ut= ay
R ‘d’
Display ‘R_equiv’
input =’a’
“sum[a] = sum[a] +
series_line_resistance”
“sum_1r = sum_1r +
1/parallel_line_resistance”
“sumslfinal=1/sumsl”
“finalsum1=1/sumslfinal+1/
totalsum”
“finalsum2=1/finalsum1”
This is known as a comment. The comment is placed first as to specify what the code is for. In
this case, the comment shown refers to the codes of our total resistance calculation program.
The list above is for the headers used in our program. The following table will elaborate on its
term of usage.
Header Definition
<iostream> Declares objects that control reading from and writing to the standard
example of its usage is in the calculation of the resistance for the colour
<windows.h> This header defines a very large number of Windows specific functions that
is intended for the colour output of texts shown on the command prompt.
Then we declare all the functions which are used in our program, including the coloured text
output.
Next is the code for the int main( ), where this is the vital and central part of our program. This
main user interface function, will allow the user to navigate through to the other parts of the
program. Which is why we have chosen to use the switch operator in the int main( ) function
Further elaboration on each part of the int main( ) code has been embedded in the code itself,
where they are stated after each ‘\\’ symbol. This is done to make it easily understandable for
After the definition for the int main( ) function, we then define the other function starting off
with the centerwelcometext( ) function. This function uses pointer operator for the text output
on the main display menu, where they are aligned to the center of the screen.
20
Next is the definition for the parallel circuit function. This parallel( ) function will be called
when the user keys in the number ‘1’ from the main display menu. Since this will initiate the
case ‘1’ for the switch operator in the int main( ) function earlier. The elaboration are in the
Afterward is the definition for the series circuit function. This series( ) function will be called
when the user key in the number ‘2’ from the main display menu. Since this will initiate the
case ‘2’ for the switch operator in the int main( ) function earlier. The elaboration are in the
Further on, the ps( ) function will be called when the user type in the number ‘3’ in the main
display menu. This will then initiate the case ‘3’ for the switch operator in the int main( )
function earlier. The elaboration are in the code, stated after the ‘//’ symbol.
The ps( ) function is to calculate the total resistance in the parallel-series circuit.
Though in ps() function itself includes two more function. The first one, DisplayMenu (), is to
ask the user either to continue or abort the program before going on further. The second one ,
Functionc(), is then the part asking the user for inputs regarding the information on the
parallel-series circuit. The gathered input is then calculated and presented as the final output,
Then, for case ‘4’ in the int main( ) function switch operator, the coded( )function is called.
25
This is to inform the user of the code for each colour band on a resistor.
26
27
The program will then ask the user for inputs. There is then another two switch operators in
order to find b and c, which have the same format as the switch stated before. Then when the
program have attained the value for ‘a’, ‘b’ and ‘c’, it will then compute the answer for‘d’,
Furthermore, the next function, group ( ) will be called through case ‘5’ from the switch
operator in the int main ( ) function. This function is to include each of our team member
Lastly, the dis ( ) function simply contains a disclaimer’s quote if there happens to be a misuse
Integration
// GROUP 4 C++ PROJECT Total Resistance Calculation.cpp : main project file.
#include <iostream>
#include <math.h>
#include <iomanip>
#include <cstdlib>
void parallel();
void series();
void coded();
28
void DisplayMenu();
float FunctionC();
float ps ();
void group();
void dis();
DARKYELLOW, GRAY, DARKGRAY, BLUE, GREEN, TEAL, RED, PINK, YELLOW, WHITE };
struct setcolour
{ colour _c;
HANDLE _console_handle;
: _c(c), _console_handle(0)
{SetConsoleTextAttribute(ref._console_handle, ref._c);
return s; }
//function's definition for the main output on the screen: stores all other function to be called when prompt by the
user
int main()
char circuit;
int number = 0;
int i = 0;
double R = 0.0;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
for(;;) {//do-while loop for the main output to project on the screen
setw(2)<< "**""\n\n\n\n";
cout << setcolour(RED, chandle) << " Choose an option" << setcolour(WHITE, chandle) << " (or q to
exit!!)\n\n";
cin >> circuit; // the value keyed in will determine the case sequence executed in the switch operator below
} while(circuit < '1' || circuit > '6' && circuit != 'q') ;// the do-while loop will repeat its execution as long as
//the user is given the choice to exit the program by keying in 'q'
switch (circuit) {// the value of 'circuit' by user determines the case sequence executed
case '1':
system("pause");//enable the user to ponder on the answer given by the program before the screen is cleared of
previous output
break;
case '2':
system("pause");//enable the user to ponder on the answer given by the program before the screen is cleared of
previous output
break;
case '3':
getchar();//enable the user to ponder on the answer given by the program before the screen is cleared of previous
output
break;
case '4':
system("pause");//enable the user to ponder on the answer given by the program before the screen is cleared of
previous output
break;
case '5':
system("pause");//enable the user to ponder on the answer given by the program before the screen is cleared of
previous output
break;
case '6':
system("pause");//enable the user to ponder on the answer given by the program before the screen is cleared of
previous output
break; }}
return 0; }
void centerwelcomeText(char* s) {
int l=strlen(s);
int pos=(int)((80-l)/2);
for(int i=0;i<pos;i++)
cout<<" ";
//The function's definition to calculate the total parallel resistance in the circuit
int number = 0;
double R = 0.0;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
simple decoration
33
cout << setcolour(TEAL, chandle) << "Enter Total Number of Parallel Resistor: ";//Tell the user to put
cin.clear();
cin.ignore(1000,'\n');
//Using 'for' operator to calculate as many input according to the user's wish without any restriction or
hassle
cout << "Enter Value of Parallel Resistor #" << count << ":";
cin.clear();
cin.ignore(1000,'\n');
if (count ==1)
R_equiv =R;
else
parallel circuit}
cout.setf(ios::fixed);//a format option that displays floating point numbers in normal notation - no
cout.precision(4);//a manipulator that sets the total number of digits to be displayed when floating point
SetConsoleTextAttribute(hOut,
34
BACKGROUND_BLUE|
intensity
cout << " The Equivalent Resistance is : " << R_equiv << " Ohms\n\n\n"<< flush;//generates the
//The function's definition to calculate the total series resistance in the circuit
int number = 0;
double R_equiv=0.0;
double R = 0.0;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
simple decoration
cout << setcolour(GREEN, chandle) << "Enter Total Number of Series: ";//Tell the user to put in total
cin.clear();
cin.ignore(1000,'\n');
//Using 'for' operator to calculate as many input according to the user's wish without any restriction or hassle
cout << "Enter value of series resistor #" << count << ":";
cin.clear();
cin.ignore(1000,'\n');
if (count ==1)
R_equiv =R;
else
cout.setf(ios::fixed);//a format option that displays floating point numbers in normal notation - no
cout.precision(4);//a manipulator that sets the total number of digits to be displayed when floating point
SetConsoleTextAttribute(hOut,
BACKGROUND_GREEN|
intensity
cout << " The Equivalent Resistance is : " << R_equiv << " Ohms\n\n\n" << endl;//generates the
float ps (){
char choice;
char command;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DisplayMenu () ;
36
{ cin>>choice;//function call
if ((choice=='C')||(choice=='c'))
else
return 0; }}
{cout<<" Enter c to continue or any key to quit"<<endl;//ask the user if want to continue}
{int a,b,c;
int no_of_line;
int no_of_line_morethan1r;
int no_of_resistor_insl;
float series_line_resistance;
int no_of_line_contain1r;
float parallel_line_resistance;
cout<<"\n";
cout<<"
.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@****************
@@@@@@@@. \n";
cout<<" | | | | | \n";
cout<<" | | | | | \n";
cout<<" | | | | | \n";
cout<<" | * * * | \n";
cout<<" | * * * | \n";
cout<<" | | | | | \n";
cout<<"
.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@****************
@@@@@@@@. \n";
cout<<"===========================================================================
====\n";
cout<<"Explaination:\n";
cout<<"\n";
cout<<"-------------------------------------------------------------------------------\n";
cout<<"\n";
cout<<"How many lines are connected between Node X and Node Y ?\n";
while (!(cin>>no_of_line)){
38
cin.clear();
cin.ignore(1000,'\n');
cout<<"Please enter the correct value for the number of lines : "; }
cout<<"How many lines which has more than 1 resistor are connected to it ?\n";
while(!(cin>>no_of_line_morethan1r)){
cin.clear();
cin.ignore(1000,'\n');
cout<<"Please enter the correct value for the number of lines : "; }
if (no_of_line_morethan1r!=0)
{cout<<"\n";
cout<<"Lets call the line which contain more than 1 resistor as 'series_line'.\n";
for(a=0;a<no_of_line_morethan1r;a++)
{cout<<"\n";
while(!(cin>>no_of_resistor_insl)){
cin.clear();
cin.ignore(1000,'\n');
cout<<"Please enter the correct value for the number of resistor : ";}
cout<<"Please enter the value of resistance of resistor in series_line "<<(a+1)<<": (in ohms)\n";
sum[a]=0;
for(b=0;b<no_of_resistor_insl;b++)
while(!(cin>>series_line_resistance)){
cin.clear();
cin.ignore(1000,'\n');
if(series_line_resistance<0)
39
cout<<"Please correct value of R "<<(a+1)<<(b+1)<<" :"; //ask user to reenter the value of resistance
cin>> series_line_resistance; }
else {cout<<"Invalid data! Please press reenter the number of line which contain more than 1 resistor.\n";
system("CLS"); }
no_of_line_contain1r=no_of_line-no_of_line_morethan1r;
cout<<"\n";
cout<<"--------------------------------------------------------------------------------\n";
cout<<"Your circuit has "<<no_of_line_contain1r<<" line which contain only one resistor.\n";
if(no_of_line_contain1r!=0)
{cout<<"Please enter the value of each resistor. (in ohms)\n"; //get value from user
sum_1r=0;
for(c=0;c<no_of_line_contain1r;c++)
{cout<<"\n";
while(!(cin>>parallel_line_resistance)){
cin.clear();
cin.ignore(1000,'\n');
if(parallel_line_resistance<0)
cout<<"Please correct the value of Resistor "<<(c+1)<<" :";//ask user to reenter the value of resistance
cin>>parallel_line_resistance; }
totalsum = 1/sum_1r; }
sumsl=0; //calculation
40
for(a=0;a<no_of_line_morethan1r;a++)
{sumsl=sumsl+1/sum[a]; }
sumslfinal=1/sumsl;
finalsum1=1/sumslfinal+1/totalsum;
finalsum2=1/finalsum1;
cout<<"\n";
cout<<"--------------------------------------------------------------------------------\n";
//The function's definition to calculate the resistance according to a resistors' coloured band
void coded()
{char cd1,cd2,cd3;
double a,b,c,d;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
cout <<endl;
chandle)<<setw(5)<<"CODE|"<<endl;
"--|"<<endl;
setw(2)<< "--|"<<endl;
"resistor code>>";
cout <<endl;
switch(cd1){
case'B':case'b': a=0;
break;
break;
break;
case'O': case'o':a=3;
break;
case'Y': case'y':a=4;
break;
case'G': case'g':a=5;
break;
break;
case'V': case'v':a=7;
break;
case'A': case'a':a=8;
break;
case'W':case'w': a=9;
break; }
cin>>cd2;
break;
case'N': case'n':b=1;
break;
case'R':case'r': b=2;
break;
case'O': case'o':b=3;
43
break;
case'Y':case'y': b=4;
break;
case'G':case'g': b=5;
break;
case'E':case'e': b=6;
break;
case'V': case'v':b=7;
break;
break;
case'W': case'w':b=9;
break; }
cin>>cd3;
switch(cd3){
case'B':case'b': c=0;
break;
case'N': case'n':c=1;
break;
case'R':case'r': c=2;
break;
case'O': case'o':c=3;
break;
case'Y':case'y': c=4;
break;
44
case'G':case'g': c=5;
break;
case'E': case'e':c=6;
break;
case'V': case'v':c=7;
break;
case'A': case'a':c=8;
break;
case'W': case'w':c=9;
break; }
d = ((10*a + b))*(pow(10.0,c));
void group()
{HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
cout <<setcolour(GREEN, chandle) << setfill('=') <<setw(80)<<"="<<endl;//lines for border and simple
decoration
"<<setcolour(DARKTEAL, chandle)<<setw(6)<<"108467"<<endl;
"<<setcolour(DARKTEAL, chandle)<<setw(6)<<"108146"<<endl;
"<<setcolour(DARKTEAL, chandle)<<setw(6)<<"108474"<<endl;
"<<setcolour(DARKTEAL, chandle)<<setw(6)<<"108170"<<endl; }
void dis()
{HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
cout <<setcolour(GREEN, chandle) << setfill('=') <<setw(80)<<"="<<endl;//lines for border and simple
decoration
cout <<setcolour(DARKRED, chandle)<< setw(100)<<" Our group accepts no liability for the content
of this program,\n or for the consequences of any actions taken on the basis of the \n information provided, unless
that information is subsequently confirmed in \n writing. If you are not the intended recipient you are notified that
\n disclosing, copying, distributing or taking any action in reliance on the \n contents of this information is strictly
The user will then be asked to key in the number of parallel resistor
Press enter,
48
The program will asked the user to key in all the value of parallel resistor
For example,
R1=2, R2=1.5,
R3=1, R4=3,
R5=1.4, R6=2,
R7=2.2, R8=3,
R9=1, R10=1.1
49
If the user want to continue just press any key and it will return to the original pages.
If the users do not want continue just key in q. then the program will exit.
51
1. First, compile the program in order to convert the language into the machine code.
Click Program > Compile.
2. If there is no error, then proceed to running the program.
3. After compiling the program, the status is “SUCCESS” without any error. This,
however, does not mean that the program is correct because the equivalent resistance
calculated by this program might be wrong as the program might have been written
inappropriately.
4. Click Debug > Run to... to run the program.
5. To verify the correctness of the program, we will test the program with a simple series
circuits.
R5 R4
50 75
R3
105
R R2
1
79 6
8
Circuit 1
52
6. Next, we will calculate the equivalent resistance of the circuit. The equivalent resistance of
circuit 1 calculated (by calculator) using the formulas below is 377ohm.
7. The equivalent resistance calculated by our program is 377ohm. Hence, the program is
correct. Figure below verifies that our program can calculate the equivalent resistance of
circuit 1 correctly.
53
R5 R3
100 2
R6 R2 R1
30 5 10
R4
2
Parallel: 1/Req=1/R1+1/R2+1/R3+..........1/Rn
54
55
Comparing the answer from the calculator which is 1.685393258 ohms and the answer
obtained from the program above, it is verified that they are similar to it. Hence, in can be
proven that the program is valid and is able to calculate the parallel-series circuit (Series circuit
in parallel)
56
Explanation
R5 R3
100 2 R2 R1
R6 5 10
30
R4
2
1. In order to determine the equivalent resistance of a circuit, the type of the circuit must
be identified. (Series, parallel or parallel-series circuit)
2. The calculation of resistance are done with a for loop and equation
Series: Req= R1+R2+R3+........+Rn
Parallel: 1/Req=1/R1+1/R2+1/R3+..........1/Rn
3. Figure below shows the explanation of the program to calculate the equivalent
resistance of the circuit above.
4. First, enter the number of line containing the resistors, as asked by the program. Hence,
there would be five lines in the circuit.
R5 R3 5 lines containing
100 2 resistor
R6 R2 R1
30 5 10
R4
2
57
5. Since all of these five lines each containing resistors, are considered parallel to each
other, the equivalent resistance of the whole circuit will definitely be the sum of
resistance using formula:
Parallel: 1/Req=1/R1+1/R2+1/R3+..........1/Rn
6. Yet, in each of the parallel-circuit lines, there would be other resistance connected to it
as shown in the diagram above which a resistor is connected in series to R4.
R5 R3
100 2 R2 R1 R3 & R4
R6 5 10 connected in
30 series
R4
2
7. Hence, we can determine the number of lines which contains more than one resistor in
each parallel line.
58
Only 1 line
which contain
R5 R3 more than 1
100 2 R2 R1 resistor
R6 5 10
30
R4
2
8. Hence, to get the accurate equivalent resistance, the sum of the resistor (R3 & R4)
should be obtained in order to calculate the total sum of resistance in the circuit using
the formulas:
Series: Req= R1+R2+R3+........+Rn
Combining R3 &
R4 to obtain a
R5 R3
100 2 R2 R1 sum of
R6 5 10 resistance in the
30 line
R4
2
59
9. Hence, the circuit would contain only of resistor connected in parallel. Therefore, the
equivalent resistance of the circuit can now be calaculated using the formula:
Parallel: 1/Req=1/R1+1/R2+1/R3+..........1/Rn
R5
100
R6 R2 R1
30 5 10 Rs = R3 + R4
Rs
Finally, the equivalent resistance calculated by our program is 1.68539 ohms as shown in the
console window below:
60
2. Next, we can calculate the equivalent resistance by giving the codes. The equivalent
resistance of the codes (ROY) if calculated (by calculator) by using the formula below
is 230000ohm.
R(Red) is the colour 1 with number of 2
O(Orange) is the colour 2 with number of 3
Y(Yellow) is the colour 3 with number of 4
3. The equivalent resistance which has been calculated by our program is 23000ohm.
Hence, our program is correct. Figure below verifies that our program can calculate
the equivalent resistance with this method correctly.
61
Gantt chart
Week
No. Activity
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Analysis of the
1
program
Decomposition of
2
the poblem
Coding And
3
Debugging
4 Integration
Testing And
5
Validation
Program
6
Completed
7 Presentation
62
Conclusion
After all the steps taken, we have managed to create a program which solved our problems
mentioned earlier. Thus this program conclusively is able to calculate the total resistance in
series, parallel and parallel-series circuit. Plus, including the calculation for the resistance of a
Since there is a rigorous and complicated method in calculating the total resistance in the
circuit manually (by hand), thus we have successfully created a program which is able to
This program allows the user to manipulate the type of circuit and the input needed in order
to attain the correct solution in solving the total resistance in the circuit. In the request of the
user, the program would also be able to attain the resistance of a resistor using the colour
Bibliography