|
|
#include <stdio.h>
|
|
|
#include <stdlib.h>
|
|
|
#include <string.h>
|
|
|
|
|
|
#define MAX_STUDENTS 100
|
|
|
|
|
|
typedef struct {
|
|
|
int id;
|
|
|
char name[50];
|
|
|
float gaoshu;
|
|
|
float wuli;
|
|
|
float yingyu;
|
|
|
int banji;
|
|
|
} Student;
|
|
|
|
|
|
Student students[MAX_STUDENTS];
|
|
|
int studentCount = 0;
|
|
|
|
|
|
void addStudent() {
|
|
|
char panduan;
|
|
|
printf("You are trying to Input info\n");
|
|
|
if (studentCount >= MAX_STUDENTS) {
|
|
|
printf("Cannot add more students. Maximum limit reached.\n");
|
|
|
return;
|
|
|
}
|
|
|
Student newStudent;
|
|
|
printf("Enter ID: ");
|
|
|
scanf("%d", &newStudent.id);
|
|
|
printf("Enter Name: ");
|
|
|
scanf("%s", newStudent.name);
|
|
|
printf("Enter Class: ");
|
|
|
scanf("%d",&newStudent.banji);
|
|
|
printf("Enter 高数成绩: ");
|
|
|
scanf("%f", &newStudent.gaoshu);
|
|
|
printf("Enter 物理成绩: ");
|
|
|
scanf("%f", &newStudent.wuli);
|
|
|
printf("Enter 英语成绩: ");
|
|
|
scanf("%f", &newStudent.yingyu);
|
|
|
|
|
|
students[studentCount++] = newStudent;
|
|
|
printf("Student added successfully!\n");
|
|
|
printf("continue?");
|
|
|
|
|
|
}
|
|
|
|
|
|
void deleteStudent() {
|
|
|
int id;
|
|
|
printf("You are trying to Output info\n");
|
|
|
printf("Enter ID of the student to delete: ");
|
|
|
scanf("%d", &id);
|
|
|
|
|
|
for (int i = 0; i < studentCount; i++) {
|
|
|
if (students[i].id == id) {
|
|
|
for (int j = i; j < studentCount - 1; j++) {
|
|
|
students[j] = students[j + 1];
|
|
|
}
|
|
|
studentCount--;
|
|
|
printf("Student deleted successfully!\n");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
printf("Student not found!\n");
|
|
|
}
|
|
|
|
|
|
void selectStudent(){
|
|
|
int xuan;
|
|
|
printf("Input Id or Class:");
|
|
|
scanf("%d",&xuan);
|
|
|
for (int i = 0; i < studentCount; i++) {
|
|
|
if(xuan==students[i].id||xuan==students[i].banji)
|
|
|
{
|
|
|
printf("%d\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\n", students[i].id, students[i].name, students[i].banji,students[i].gaoshu,students[i].wuli,students[i].yingyu,students[i].gaoshu+students[i].wuli+students[i].yingyu);
|
|
|
}
|
|
|
}
|
|
|
printf("continue?");
|
|
|
}
|
|
|
|
|
|
void orderStudents() {
|
|
|
int i, j;
|
|
|
Student temp;
|
|
|
for (i = 0; i < studentCount - 1; i++) {
|
|
|
for (j = i + 1; j < studentCount; j++) {
|
|
|
if (students[i].banji > students[j].banji) {
|
|
|
temp = students[i];
|
|
|
students[i] = students[j];
|
|
|
students[j] = temp;
|
|
|
}
|
|
|
else if (students[i].banji == students[j].banji) {
|
|
|
float totalScoreI = students[i].gaoshu + students[i].wuli + students[i].yingyu;
|
|
|
float totalScoreJ = students[j].gaoshu + students[j].wuli + students[j].yingyu;
|
|
|
if (totalScoreI < totalScoreJ) {
|
|
|
temp = students[i];
|
|
|
students[i] = students[j];
|
|
|
students[j] = temp;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
printf("ID\tName\t班级\t高数成绩\t物理成绩\t英语成绩\t总成绩\n");
|
|
|
for (int i = 0; i < studentCount; i++)
|
|
|
{
|
|
|
printf("%d\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n", students[i].id, students[i].name, students[i].banji,students[i].gaoshu,students[i].wuli,students[i].yingyu,students[i].gaoshu+students[i].wuli+students[i].yingyu);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void displayStudents()
|
|
|
{
|
|
|
printf("You are trying to Make things ordered\n");
|
|
|
if (studentCount == 0) {
|
|
|
printf("No students to display.\n");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
printf("ID\tName\t班级\t高数成绩\t物理成绩\t英语成绩\t总成绩\n");
|
|
|
for (int i = 0; i < studentCount; i++)
|
|
|
{
|
|
|
printf("%d\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n", students[i].id, students[i].name, students[i].banji,students[i].gaoshu,students[i].wuli,students[i].yingyu,students[i].gaoshu+students[i].wuli+students[i].yingyu);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
int main() {
|
|
|
int choice;
|
|
|
int running = 1; // 控制循环的变量
|
|
|
|
|
|
while (running) { printf("输入1,2,3,4, 5, 6使用对应功能\n");
|
|
|
printf(" 1. Input\n");
|
|
|
printf(" 2. Output\n");
|
|
|
printf(" 3. select\n");
|
|
|
printf(" 4. order\n");
|
|
|
printf(" 5. output\n");
|
|
|
printf(" 6. Quit\n");
|
|
|
printf("Enter your choice: ");
|
|
|
scanf("%d", &choice);
|
|
|
char panduan[3];
|
|
|
|
|
|
|
|
|
switch (choice) {
|
|
|
case 1:
|
|
|
addStudent();
|
|
|
loop:
|
|
|
scanf("%s",panduan);
|
|
|
if(strcmp(panduan,"yes")==0)
|
|
|
{
|
|
|
addStudent();
|
|
|
goto loop;
|
|
|
}
|
|
|
else
|
|
|
break;
|
|
|
case 2:
|
|
|
deleteStudent();
|
|
|
scanf("%s",panduan);
|
|
|
if(strcmp(panduan,"yes")==0)
|
|
|
{
|
|
|
deleteStudent();
|
|
|
}
|
|
|
else
|
|
|
break;
|
|
|
case 3:
|
|
|
selectStudent();
|
|
|
loop3:
|
|
|
scanf("%s",panduan);
|
|
|
if(strcmp(panduan,"yes")==0)
|
|
|
{
|
|
|
selectStudent();
|
|
|
goto loop3;
|
|
|
}
|
|
|
else
|
|
|
break;
|
|
|
case 4:
|
|
|
orderStudents();
|
|
|
break;
|
|
|
case 5:
|
|
|
displayStudents();
|
|
|
break;
|
|
|
case 6:
|
|
|
running = 0;
|
|
|
break;
|
|
|
default:
|
|
|
printf("Wrong input.\n");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
}
|