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

185 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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("输入1234, 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;
}