Develop an algorithm, flow chart and pseudocode that accept as input three unit test scores and a project score for seven students. The algorithm, flow chart and pseudocode should accept seven examination scores. The students's overall score comprised of their weighted mid-semester scores which is the average examination score. The weigh for the mid-semester score is 30% while the examination is 70%. Calculate the student's average mid-semester score, their weighted mid-semester score, weighted examination score and the overall score. Based on the overall score of the student, the algorithm,flow chart and pseudocode should generate a letter grade. The student's letter grade should range from A to E. They should display the student's name,weighted mid semester score, weighted examination score, overall score and the corresponding letter grade.

Using the C programming language write a program to implement the algorithm, flow chart and pseudocode in the above question.

Sure! Here's an explanation of the algorithm, flowchart, pseudocode, and a programming implementation in C for the given requirements.

Algorithm:
1. Accept input for three unit test scores and a project score for each of the seven students.
2. For each student:
2.1 Calculate the average mid-semester score (weighted average of the three unit test scores) as (sum of test scores / 3).
2.2 Calculate the weighted mid-semester score as (average mid-semester score * 30%).
2.3 Calculate the weighted examination score as (project score * 70%).
2.4 Calculate the overall score as (weighted mid-semester score + weighted examination score).
2.5 Determine the letter grade based on the overall score.
2.6 Display the student's name, weighted mid-semester score, weighted examination score, overall score, and letter grade.

Flowchart:
[Insert flowchart depicting the steps mentioned in the algorithm]

Pseudocode:
1. Declare variables for test scores, project score, average mid-semester score, weighted mid-semester score, weighted examination score, overall score, and letter grade.
2. For each student:
2.1 Accept input for test scores and project score.
2.2 Calculate average mid-semester score as (sum of test scores / 3).
2.3 Calculate weighted mid-semester score as (average mid-semester score * 0.30).
2.4 Calculate weighted examination score as (project score * 0.70).
2.5 Calculate overall score as (weighted mid-semester score + weighted examination score).
2.6 Determine letter grade based on the overall score.
2.7 Display student's name, weighted mid-semester score, weighted examination score, overall score, and letter grade.

C Programming Implementation:

```c
#include<stdio.h>

// Function to calculate average of the test scores
float calculateAverage(float scores[]) {
float sum = 0;

for(int i = 0; i < 3; i++) {
sum += scores[i];
}

return sum / 3;
}

// Function to calculate weighted mid-semester score
float calculateWeightedMidSemester(float average) {
return average * 0.30;
}

// Function to calculate weighted examination score
float calculateWeightedExamination(float projectScore) {
return projectScore * 0.70;
}

// Function to calculate overall score
float calculateOverallScore(float weightedMidSemester, float weightedExamination) {
return weightedMidSemester + weightedExamination;
}

// Function to determine letter grade
char determineLetterGrade(float overallScore) {
if(overallScore >= 90) return 'A';
else if(overallScore >= 80) return 'B';
else if(overallScore >= 70) return 'C';
else if(overallScore >= 60) return 'D';
else return 'E';
}

int main() {
float testScores[3];
float projectScore;
float averageMidSemester, weightedMidSemester, weightedExamination, overallScore;
char letterGrade;

// Loop for each student
for(int student = 1; student <= 7; student++) {
printf("Enter test scores for student %d: ", student);
for(int i = 0; i < 3; i++) {
scanf("%f", &testScores[i]);
}

printf("Enter project score for student %d: ", student);
scanf("%f", &projectScore);

averageMidSemester = calculateAverage(testScores);
weightedMidSemester = calculateWeightedMidSemester(averageMidSemester);
weightedExamination = calculateWeightedExamination(projectScore);
overallScore = calculateOverallScore(weightedMidSemester, weightedExamination);
letterGrade = determineLetterGrade(overallScore);

printf("Student %d:\n", student);
printf("Weighted Mid-Semester Score: %.2f\n", weightedMidSemester);
printf("Weighted Examination Score: %.2f\n", weightedExamination);
printf("Overall Score: %.2f\n", overallScore);
printf("Letter Grade: %c\n\n", letterGrade);
}

return 0;
}
```

This C program accepts the test scores and project score for each student, calculates the weighted mid-semester score, weighted examination score, overall score, and determines the letter grade for each student based on the given weightage criteria. It then displays the required information for each student.

Algorithm:

1. Start
2. Declare variables for student name, unit test scores (3 scores), project score, overall score, weighted mid-semester score, weighted examination score, and letter grade.
3. Repeat the following steps for each student:
- Accept the student name.
- Accept the unit test scores and project score.
- Calculate the average mid-semester score using the formula: (unit test score 1 + unit test score 2 + unit test score 3 + project score) / 4.
- Calculate the weighted mid-semester score using the formula: average mid-semester score * 0.3.
- Calculate the weighted examination score using the formula: (average mid-semester score * 0.7).
- Calculate the overall score using the formula: weighted mid-semester score + weighted examination score.
- Determine the letter grade based on the overall score using the following table:
- if overall score >= 90, set letter grade to 'A'.
- if overall score >= 80 and < 90, set letter grade to 'B'.
- if overall score >= 70 and < 80, set letter grade to 'C'.
- if overall score >= 60 and < 70, set letter grade to 'D'.
- if overall score < 60, set letter grade to 'E'.
- Display the student name, weighted mid-semester score, weighted examination score, overall score, and letter grade.
4. End

Flowchart:

```
+---------------------------+
| |
| Start |
| |
+---+-------------------+---+
| |
v |
+----------+ |
| | |
| INPUT +------------+
| |
+---+------+
|
v
+---------------------------+
| |
| FOR each student |
| |
+---+-------------------+---+
| |
v |
+----------+ |
| | |
| CALCULATE+------------+
| SCORES |
| |
+---+------+
|
v
+---------------------------+
| |
| DETERMINE LETTER GRADE |
| |
+---+-------------------+---+
| |
v |
+----------+ |
| | |
| DISPLAY +------------+
| |
+---+------+
|
v
+---------------------------+
| |
| END |
| |
+---------------------------+
```

Pseudocode:

```C
START
// Declare variables
String studentName
float unitTest1, unitTest2, unitTest3, projectScore
float avgMidSemesterScore, weightedMidSemesterScore, weightedExamScore, overallScore
char letterGrade

// Repeat for each student
FOR each student
// Input student details
INPUT studentName
INPUT unitTest1, unitTest2, unitTest3, projectScore

// Calculate average mid-semester score
avgMidSemesterScore = (unitTest1 + unitTest2 + unitTest3 + projectScore) / 4

// Calculate weighted mid-semester score
weightedMidSemesterScore = avgMidSemesterScore * 0.3

// Calculate weighted examination score
weightedExamScore = avgMidSemesterScore * 0.7

// Calculate overall score
overallScore = weightedMidSemesterScore + weightedExamScore

// Determine letter grade
IF overallScore >= 90
letterGrade = 'A'
ELSE IF overallScore >= 80
letterGrade = 'B'
ELSE IF overallScore >= 70
letterGrade = 'C'
ELSE IF overallScore >= 60
letterGrade = 'D'
ELSE
letterGrade = 'E'

// Display student details
DISPLAY studentName, weightedMidSemesterScore, weightedExamScore, overallScore, letterGrade
END
```

C code:

```C
#include <stdio.h>

int main() {
// Declare variables
char studentName[100];
float unitTest1, unitTest2, unitTest3, projectScore;
float avgMidSemesterScore, weightedMidSemesterScore, weightedExamScore, overallScore;
char letterGrade;
int i;

// Repeat for each student
for (i = 0; i < 7; i++) {
// Input student details
printf("Enter student name: ");
fgets(studentName, sizeof(studentName), stdin);
printf("Enter unit test scores (3 scores): ");
scanf("%f%f%f", &unitTest1, &unitTest2, &unitTest3);
printf("Enter project score: ");
scanf("%f", &projectScore);

// Calculate average mid-semester score
avgMidSemesterScore = (unitTest1 + unitTest2 + unitTest3 + projectScore) / 4;

// Calculate weighted mid-semester score
weightedMidSemesterScore = avgMidSemesterScore * 0.3;

// Calculate weighted examination score
weightedExamScore = avgMidSemesterScore * 0.7;

// Calculate overall score
overallScore = weightedMidSemesterScore + weightedExamScore;

// Determine letter grade
if (overallScore >= 90)
letterGrade = 'A';
else if (overallScore >= 80)
letterGrade = 'B';
else if (overallScore >= 70)
letterGrade = 'C';
else if (overallScore >= 60)
letterGrade = 'D';
else
letterGrade = 'E';

// Display student details
printf("\nStudent: %s", studentName);
printf("Weighted Mid-Semester Score: %f\n", weightedMidSemesterScore);
printf("Weighted Examination Score: %f\n", weightedExamScore);
printf("Overall Score: %f\n", overallScore);
printf("Letter Grade: %c\n", letterGrade);
}

return 0;
}
```

The answer is one that you must learn for yourself my friend...