#include <iostream>
#include <string.h>
using namespace std;
struct stud {
char n[30];
int sn;
float dr[3], sum, avr;
};
void read(stud x[], int n)
{
int i, j;
for (i = 0; i < n; i++)
{
cout << "\n enter student " << i << " name:";
cin.getline(x[i].n, 30);
cout << "\n enter student " << i << " sn:";
cin >> x[i].sn;
cout << "\n enter student " << i << " 3 dr:";
x[i].sum = 0;
for (j = 0; j < 3; j++)
{
cin >> x[i].dr[j];
x[i].sum += x[i].dr[j];
}
x[i].avr = x[i].sum / 3;
cin.ignore();
}
}
void print(stud x[], int n)
{
int i, j;
cout <<"\nname" << "\t" << "s n\td1\td2\td3\tsum\tavg\n";
cout << "==================================================";
for (i = 0; i < n; i++)
{
cout << "\n" << x[i].n << "\t" << x[i].sn << " ";
for (j = 0; j < 3; j++)
cout << x[i].dr[j] <<" ";
cout << " " << x[i].sum << " " << x[i].avr;
}
}
void sort(stud x[], int n)
{
int i, j;
stud t;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(x[i].n, x[j].n) > 0)
{
t = x[i];
x[i] = x[j];
x[j] = t;
}
}
}
}
void search(stud x[], int n)
{
char s[30];
cout << "enter the student you are searching for: ";
cin >> s;
for (int i = 0; i < n; i++)
{
if (x[i].n == s)
{
cout <<x[i].n << "\t" << x[i].sn << " ";
for (int j = 0; j < 3; j++)
cout << x[i].dr[j] << " ";
cout << " " << x[i].sum << " " << x[i].avr;
}
else
{
cout << "wrong search";
}
}
}
int main()
{
stud list[120];
int n = 3;
read(list, n);
print(list, n);
sort(list, n);
print(list, n);
search(list, n);
return 0;
}
هذا برنامج يصمم تركيبة (اسم طالب ورقمه ودرجاته في ثلاث مواد ) لثلاث طلاب ويحسب المتوسط والمجموع لكل طالب ويرتب الطلاب في النهاية يبحث عن طالب بس تلك الأخيرة فيها مشكلة فهو لا يبحث عن طالب بل يعتبر الشرط خاطئاً