Advertisement
TheWhiteFang

Tutorial 2 Section B

Nov 9th, 2014
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. // http://pastebin.com/u/TheWhiteFang
  2. //Tutorial 2 Section B
  3. //
  4. //AmpRes.txt is pasted under C:\Users\*username*\Documents\Visual Studio 2010\Projects\*projectname*\*projectname*
  5. //
  6. #include <iostream>
  7. #include <stdio.h>
  8. using namespace std;
  9.  
  10. struct SVoltageData
  11. {
  12.     float m_Current;
  13.     float m_Resistance;
  14.     float m_Voltage;
  15.     float m_CurrTotal;
  16.     float m_RestTotal;
  17.     float m_VoltTotal;
  18. };
  19.  
  20. void ReadData(struct SVoltageData *pDataArr, int numData)
  21. {
  22.     FILE *pFile = fopen("AmpRes.txt", "r"); //pointer ish pointing at 1st elemnt of file
  23.     int i;
  24.     for( i = 0; i < numData; i++)
  25.     {
  26.         fscanf(pFile, "%f%f", &pDataArr[i].m_Current, &pDataArr[i].m_Resistance ); //%f%f will read 2 float values //fscanf is reading text file
  27.         //dot operator for struct array
  28.     }
  29.  
  30.     fclose(pFile);
  31. }
  32.  
  33. void CalcVoltage(struct SVoltageData *pDataArr, int numData, float *pOutAvgRest, float *pOutAvgCurr, float *pOutAvgVolt)
  34. {
  35.     int i;
  36.     pDataArr[0].m_RestTotal = 0; pDataArr[0].m_CurrTotal = 0; pDataArr[0].m_VoltTotal = 0;
  37.     for( i = 0; i < numData; i++)
  38.     {
  39.         pDataArr[i].m_Voltage = pDataArr[i].m_Current * pDataArr[i].m_Resistance;
  40.  
  41.         pDataArr[0].m_VoltTotal = pDataArr[0].m_VoltTotal + pDataArr[i].m_Voltage;
  42.         pDataArr[0].m_CurrTotal = pDataArr[0].m_CurrTotal + pDataArr[i].m_Current;
  43.         pDataArr[0].m_RestTotal = pDataArr[0].m_RestTotal + pDataArr[i].m_Resistance;
  44.     }
  45.    
  46.     //avg = pDataArr[i].m_Voltage / numData ;
  47.     //pDataArr[0].m_RestTotal = pDataArr[0].m_RestTotal / numData;
  48.     pOutAvgRest =  &pDataArr[0].m_RestTotal;
  49.     *pOutAvgRest = pDataArr[0].m_RestTotal / numData;
  50.  
  51.     pOutAvgCurr = &pDataArr[0].m_CurrTotal;
  52.     *pOutAvgCurr = pDataArr[0].m_CurrTotal / numData;
  53.  
  54.     pOutAvgVolt = &pDataArr[0].m_VoltTotal;
  55.     *pOutAvgVolt = pDataArr[0].m_VoltTotal / numData;
  56.         //two versions. Use either one.
  57.         //version 1:(
  58.         //pOutAvgRest = &avg;
  59.         // )
  60.         //version 2:(
  61.         // strycpy(pOutAvgRes,avg)
  62.         // )
  63. }
  64.  
  65.  
  66. void PrintVoltageData(struct SVoltageData *pDataArr, int numData) //this function will create a new file to print volt, cur and resistance
  67. {
  68.     FILE *pFile = fopen("VoltData.txt", "w");
  69.     fprintf(pFile, "CURRENT:\tRESISTANCE:\tVOLTAGE:\n");
  70.     int i;
  71.     for(i=0; i < numData; i++)
  72.     {
  73.         fprintf(pFile, "\n%.2f\t\t%.2f\t\t%.2f\t\t\n", pDataArr[i].m_Current, pDataArr[i].m_Resistance ,pDataArr[i].m_Voltage);
  74.     }
  75.  
  76.     fprintf(pFile, "\nCurrAvg: %.2f\nRestAvg: %.2f\nVoltAvg: %.2f", pDataArr[0].m_CurrTotal, pDataArr[0].m_RestTotal, pDataArr[0].m_VoltTotal);
  77.     fclose(pFile);
  78. }
  79.  
  80.  
  81.  
  82. int main()
  83. {
  84.     struct SVoltageData arrContent[8]; // arrContent is name
  85.  
  86.     float avgR = 0; float avgC = 0; float avgV = 0;
  87.  
  88.     ReadData(arrContent, 8);//if it is an array, we do not need to put & eg:&arrContent
  89.     CalcVoltage(arrContent, 8, &avgR, &avgC, &avgV);
  90.     PrintVoltageData(arrContent, 8);
  91.  
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement