refactor: reorganize directory structure

This commit is contained in:
Kiana Sheibani 2025-09-04 22:01:00 -04:00
parent 433a4f2c0d
commit d4913ac8df
Signed by: toki
GPG key ID: 6CB106C25E86A9F7
5 changed files with 5 additions and 5 deletions

22
assignment1/default.nix Normal file
View file

@ -0,0 +1,22 @@
let
basic-c = name: { stdenv }:
stdenv.mkDerivation {
inherit name;
src = ./.;
buildPhase = ''
runHook preBuild
gcc part2/${name}.c -o ${name}
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install ${name} $out/bin/
runHook postInstall
'';
};
in {
a1-hello = basic-c "hello";
a1-employee = basic-c "employee";
a1-logwriter = basic-c "logwriter";
}

View file

@ -0,0 +1,34 @@
#include <stdio.h>
#include <string.h>
int main() {
// Character array to store name
// In C, strings are arrays of characters ending with '\0'
char name[50];
int employee_id;
float hours_worked;
printf("OwlTech Employee Registration\n");
printf("=============================\n");
printf("Enter your name: ");
// fgets reads a line including spaces
// stdin means "standard input" (keyboard)
fgets(name, sizeof(name), stdin);
// Remove newline that fgets includes
name[strcspn(name, "\n")] = '\0';
printf("Enter your employee ID: ");
// & means "address of" - scanf needs to know where to store the value
scanf("%d", &employee_id);
printf("Hours worked this week: ");
scanf("%f", &hours_worked);
printf("\nEmployee Summary:\n");
printf("Name: %s\n", name); // %s for string
printf("ID: %d\n", employee_id); // %d for integer
printf("Hours: %.2f\n", hours_worked); // %.2f for float with 2 decimals
return 0;
}

View file

@ -0,0 +1,8 @@
#include <stdio.h>
int main() {
printf("Welcome to OwlTech Industries!\n");
printf("Systems Programming Division\n");
return 0;
}

View file

@ -0,0 +1,39 @@
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main() {
FILE *logfile; // Pointer to file structure
char message[100];
time_t current_time;
// Open file for appending ("a" mode)
// "w" would overwrite, "r" would read
logfile = fopen("owltech.log", "a");
// Always check if file opened successfully
if (logfile == NULL) {
printf("Error: Could not open log file\n");
return 1; // Return non-zero to indicate error
}
printf("Enter log message: ");
fgets(message, sizeof(message), stdin);
// Get current time
time(&current_time);
// Write to file with timestamp
// fprintf works like printf but writes to a file
fprintf(logfile, "[%s] %s", ctime(&current_time), message);
// Always close files when done
fclose(logfile);
printf("Log entry saved successfully!\n");
// Display the log file contents
printf("\n--- Current Log Contents ---\n");
system("cat owltech.log");
return 0;
}