您的位置:首页 > 编程语言 > C语言/C++

C语言创建简单学生成绩管理系统(数组)

2020-02-02 07:29 916 查看

C语言创建简单成绩管理系统

数组实现

头文件及宏定义

#define SIZE 10
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct student
{
char Name[8];
char ID_number[10];
int math;
int english;
student()
{
int i;
for(i=0;i<8;i++){
Name[i]='\0';
ID_number[i]='\0';
}
}
}Student;

排序函数

void swap_students(Student &a,Student &b)
{
Student temp;
temp=a;
a=b;
b=temp;
}
void bubble_sort(Student *S)
{
int i,j;
for(i=0;i<SIZE;i++){
for(j=i+1;j<SIZE;j++){
if(strcmp(S[i].ID_number,S[j].ID_number)>0){
swap_students(S[i],S[j]);
}
}
}
}

输入函数

void input_data(Student &S)
{
printf("请输入学生姓名:");
scanf("%s",S.Name);
printf("请输入学生学号:");
scanf("%s",S.ID_number);
start_m:printf("请输入高数成绩:");
scanf("%d",&S.math);
if(S.math<0||S.math>100){
printf("请输入0-100的值\n");
goto start_m;
}
start_e:printf("请输入英语成绩:");
scanf("%d",&S.english);
if(S.english<0||S.english>100){
printf("请输入0-100的值\n");
goto start_e;
}
}
void Input_Students(Student *S)
{
int i,num;
printf("请输入学生数量:");
scanf("%d",&num);
for(i=0;i<num;i++){
input_data(S[i]);
}
bubble_sort(S);
}

删除函数

void Del_Student(Student *S,char del[])
{
int i,flag=0;
for(i=0;i<SIZE;i++){
if(strcmp(del,S[i].ID_number)==0){
S[i].math=-1;
S[i].english=-1;
strcpy(S[i].Name,"00000000");
strcpy(S[i].ID_number,"0000000000");
flag=1;
}
}
if(flag==0){
printf("未找到\n");
}
}

查询函数

void Inquire_Student(Student Stu[],char inq[])
{
int i,flag=0;
for(i=0;i<SIZE;i++){
if(strcmp(inq,Stu[i].ID_number)==0){
printf("姓名:%s 学号:%s 高数:%d 英语:%d",Stu[i].Name,Stu[i].ID_number,Stu[i].math,Stu[i].english);
flag=1;
break;
}
}
if(flag==0){
printf("未找到\n");
}
}

打印函数

void Print_Students(Student Stu[])
{
int i;
for(i=0;i<SIZE;i++){
if(Stu[i].english<0||Stu[i].english>100){
continue;
}
printf("姓名:%s 学号:%s 高数:%d 英语:%d\n",Stu[i].Name,Stu[i].ID_number,Stu[i].math,Stu[i].english);
}
}

储存函数

void Save_Students(Student *S)
{
int i;
char str[16]={'\0'};
printf("请输入文件名:");
scanf("%s",str);
char Enter='\n';
FILE *fp;
if((fp = fopen(str,"w"))==NULL){
printf("打开文件出错!\n");
return ;
}
for(i=0;i<SIZE;i++)
{
if(S[i].english<0||S[i].english>100){
continue;
}
fprintf(fp,"姓名:%s 学号:%s 高数:%d 英语:%d%c",S[i].Name,S[i].ID_number,S[i].math,S[i].english,Enter);
}
fclose(fp);
printf("保存完成\n");
}

main函数菜单

int main()
{
int sl;
char del[10]={'\0'};
char inq[10]={'\0'};
Student Stu[SIZE];
do
{
start:printf("菜单\n输入学生成绩...1\n删除学生成绩...2\n查询学生成绩...3\n打印全部学生信息...4\n退出并存入文件...0\n");
scanf("%d",&sl);
switch(sl){
case 0:Save_Students(Stu);exit(0);
case 1:Input_Students(Stu);system("pause");system("cls");break;
case 2:printf("请输入要删除的学生学号:");scanf("%s",del);Del_Student(Stu,del);system("pause");system("cls");break;
case 3:printf("请输入要查询的学生学号:");scanf("%s",inq);Inquire_Student(Stu,inq);system("pause");system("cls");break;
case 4:Print_Students(Stu);system("pause");system("cls");break;
default:goto start;
}
}while(1);
}
  • 点赞 2
  • 收藏
  • 分享
  • 文章举报
某科学的烫烫烫 发布了21 篇原创文章 · 获赞 43 · 访问量 3288 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: