用c语言写能实现上述功能的中文小型系统
时间: 2024-04-12 22:30:37 浏览: 12
以下是一个使用C语言实现学生成绩统计管理系统的简单示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
int studentID;
char name[50];
char gender[10];
char className[50];
float chineseScore;
float mathScore;
float englishScore;
float databaseScore;
} Student;
// 全局变量
Student students[100];
int studentCount = 0;
// 函数声明
void addStudent();
void editStudent();
void deleteStudent();
void displayStudents();
void calculateAverageScore();
void listFailingStudents();
void exitSystem();
int main() {
int choice;
do {
printf("============== 学生成绩统计管理系统 ==============\n");
printf("1. 录入学生信息\n");
printf("2. 修改学生信息\n");
printf("3. 删除学生信息\n");
printf("4. 显示学生信息\n");
printf("5. 统计平均成绩\n");
printf("6. 列出不及格学生\n");
printf("7. 退出系统\n");
printf("请输入你的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
editStudent();
break;
case 3:
deleteStudent();
break;
case 4:
displayStudents();
break;
case 5:
calculateAverageScore();
break;
case 6:
listFailingStudents();
break;
case 7:
exitSystem();
break;
default:
printf("无效的选择!请重新输入。\n");
}
printf("\n");
} while (choice != 7);
return 0;
}
void addStudent() {
Student newStudent;
printf("请输入学号:");
scanf("%d", &newStudent.studentID);
printf("请输入姓名:");
scanf("%s", newStudent.name);
printf("请输入性别:");
scanf("%s", newStudent.gender);
printf("请输入班级:");
scanf("%s", newStudent.className);
printf("请输入语文成绩:");
scanf("%f", &newStudent.chineseScore);
printf("请输入数学成绩:");
scanf("%f", &newStudent.mathScore);
printf("请输入英语成绩:");
scanf("%f", &newStudent.englishScore);
printf("请输入数据库成绩:");
scanf("%f", &newStudent.databaseScore);
students[studentCount++] = newStudent;
printf("学生信息录入成功!\n");
}
void editStudent() {
int studentID, found = 0;
printf("请输入要修改的学生学号:");
scanf("%d", &studentID);
for (int i = 0; i < studentCount; i++) {
if (students[i].studentID == studentID) {
printf("请输入修改后的信息:\n");
printf("姓名:");
scanf("%s", students[i].name);
printf("性别:");
scanf("%s", students[i].gender);
printf("班级:");
scanf("%s", students[i].className);
printf("语文成绩:");
scanf("%f", &students[i].chineseScore);
printf("数学成绩:");
scanf("%f", &students[i].mathScore);
printf("英语成绩:");
scanf("%f", &students[i].englishScore);
printf("数据库成绩:");
scanf("%f", &students[i].databaseScore);
found = 1;
printf("学生信息修改成功!\n");
break;
}
}
if (!found) {
printf("未找到该学生的信息!\n");
}
}
void deleteStudent() {
int studentID, found = 0;
printf("请输入要删除的学生学号:");
scanf("%d", &studentID);
for (int i = 0; i < studentCount; i++) {
if (students[i].studentID == studentID) {
for (int j = i; j < studentCount - 1; j++) {
students[j] = students[j + 1];
}
found = 1;
studentCount--;
printf("学生信息删除成功!\n");
break;
}
}
if (!found) {
printf("未找到该学生的信息!\n");
}
}
void displayStudents() {
if (studentCount == 0) {
printf("没有学生信息可显示。\n");
return;
}
printf("学号\t姓名\t性别\t班级\t语文\t数学\t英语\t数据库\n");
for (int i = 0; i < studentCount; i++) {
printf("%d\t%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n", students[i].studentID, students[i].name, students[i].gender, students[i].className, students[i].chineseScore, students[i].mathScore, students[i].englishScore, students[i].databaseScore);
}
}
void calculateAverageScore() {
if (studentCount == 0) {
printf("没有学生信息可统计。\n");
return;
}
printf("学号\t姓名\t平均成绩\n");
for (int i = 0; i < studentCount; i++) {
float averageScore = (students[i].chineseScore + students[i].mathScore + students[i].englishScore + students[i].databaseScore) / 4.0;
printf("%d\t%s\t%.2f\n", students[i].studentID, students[i].name, averageScore);
}
}
void listFailingStudents() {
if (studentCount == 0) {
printf("没有学生信息可统计。\n");
return;
}
printf("学号\t姓名\t不及格课程\n");
for (int i = 0; i < studentCount; i++) {
if (students[i].chineseScore < 60) {
printf("%d\t%s\t语文\n", students[i].studentID, students[i].name);
}
if (students[i].mathScore < 60) {
printf("%d\t%s\t数学\n", students[i].studentID, students[i].name);
}
if (students[i].englishScore < 60) {
printf("%d\t%s\t英语\n", students[i].studentID, students[i].name);
}
if (students[i].databaseScore < 60) {
printf("%d\t%s\t数据库\n", students[i].studentID, students[i].name);
}
}
}
void exitSystem() {
printf("感谢使用学生成绩统计管理系统,再见!\n");
exit(0);
}
```
这个示例包含了录入学生信息、修改学生信息、删除学生信息、显示学生信息、统计平均成绩、列出不及格学生等功能。你可以根据实际需求进行修改和扩展。注意,这只是一个简单的示例,并没有进行输入验证和错误处理,实际开发中需要考虑更多的情况。