You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ggabc/简易学籍系统.c

191 lines
5.2 KiB

#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 <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>: ");
scanf("%f", &newStudent.gaoshu);
printf("Enter <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>: ");
scanf("%f", &newStudent.wuli);
printf("Enter Ӣ<><D3A2><EFBFBD>ɼ<EFBFBD>: ");
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<EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>\tӢ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>\t<EFBFBD>ܳɼ<EFBFBD>\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<EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>\tӢ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>\t<EFBFBD>ܳɼ<EFBFBD>\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; // <20><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
while (running) { printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD>4, 5, 6ʹ<36>ö<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>\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;
}