×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Program That Will Implement File and String Parsing in C Assignment Solutions

June 22, 2024
Johanna Louis
Johanna Louis
🇦🇹 Austria
C
Johanna Louis, PhD in Computer Science from the University of Klagenfurt, Austria. With 8 years of extensive experience in C programming assignments, I specialize in providing expert solutions and guidance in this field.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Focus on understanding TensorFlow's computational graph and its eager execution mode. Use pre-built functions like tf.data for efficient data pipelines.
News
The latest version of Google's machine learning library, offering improved performance, streamlined APIs, and expanded support for reinforcement learning, making it a powerful tool for AI development.

Instructions

Objective

Write a program that will implement file and string parsing in C language.

Requirements and Specifications

Assignment Overview

OVERVIEW

Write a C assignment program to generate sport team win-loss records from game results in files.

NOTE: This is a harder assignment than the previous major assignments.

OBJECTIVES

  • Use file I/O (text mode).
  • Use C-style strings and string functions.
  • Use best practices for magic numbers.
  • Design computer programs for modularity and maintainability.
  • Demonstrate the development cycle for C programs.
  • Follow stated requirements.

ACADEMIC INTEGRITY AND LATE PENALTIES

  • Link to Academic Integrity Information
  • Link to Late Policy

Screenshots

Program-that-will-implement-file-and-string-parsing-in-C-language

Source Code

#include #include #include #define TEAMS_FILENAME "teams.txt" int isBlank(char* line) { int len = strlen(line), i; for (i = 0; i if (line[i] != ' ') { return 0; } } return 1; } int parseLine(char* line, char* opponent, int* score, int* oppScore) { int len = strlen(line); int bufferSize = 255; char resultStr[bufferSize]; char scoreStr[bufferSize]; char oppScoreStr[bufferSize]; char* delPtr = strchr(line, ','); if (delPtr == NULL) { return 0; } int index = delPtr - line; strncpy(opponent, line, index); opponent[index] = 0; memcpy(resultStr, delPtr + 1, len - (index + 1)); resultStr[len - index - 1] = 0; len = strlen(resultStr); delPtr = strchr(resultStr, '-'); if (delPtr == NULL) { return 0; } index = delPtr - resultStr; strncpy(scoreStr, resultStr, index); scoreStr[index] = 0; *score = atoi(scoreStr); memcpy(oppScoreStr, delPtr + 1, len - (index + 1)); oppScoreStr[len - index - 1] = 0; *oppScore = atoi(oppScoreStr); return 1; } int processGames(char* filename) { FILE *f = fopen(filename, "r"); int bufferSize = 255; char line[bufferSize]; char name[bufferSize]; char opp[bufferSize]; int wins = 0, ties = 0, losses = 0, score, oppScore; double percentage; if (!f) { return 0; } printf("Processing %s:\n", filename); while(fgets(line, bufferSize, f)) { line[strlen(line) - 1] = 0; if (isBlank(line)) { continue; } if (parseLine(line, opp, &score, &oppScore)) { if (score > oppScore) { printf("\t%s beat %s %d-%d\n", name, opp, score, oppScore); wins++; } else if (oppScore > score) { printf("\t%s lost to %s %d-%d\n", name, opp, score, oppScore); losses++; } else { printf("\t%s and %s tied at %d\n", name, opp, score); ties++; } } } if (wins + ties + losses == 0) { return 0; } percentage = (2*wins + ties)/(2.0*(wins + ties + losses)); printf("Season result for %s: %.3f (%d-%d-%d)\n", name, percentage, wins, ties, losses); fclose(f); return 1; } int main(void) { FILE *fTeams; int bufferSize = 255; char line[bufferSize]; fTeams = fopen(TEAMS_FILENAME, "r"); while(fgets(line, bufferSize, fTeams)) { if (line[strlen(line) - 1] == '\n') { line[strlen(line) - 1] = 0; } if (isBlank(line)) { continue; } processGames(line); } fclose(fTeams); return 0; }

Similar Samples

Explore our extensive collection of programming homework samples at ProgrammingHomeworkHelp.com. Our examples cover a wide range of topics and languages, including Java, Python, C++, and more. Each sample showcases our dedication to delivering clear, well-commented solutions that meet academic standards. Dive into our samples to see how we can assist you in mastering programming concepts effectively.