资源简介

学生学分管理系统c语言代码

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#define MAX 60
struct student 
{
char num[10];
char name[50]; 
char clas[5];
int score[5]; 
}; 
struct data{
int count; // 当前学生数组中学生的个数
struct student stu[MAX]; // 学生数组 
}dd;//子函数声明
void menu();//菜单函数
void to_menu();//返回菜单函数
void view_data();//查看所有学生信息
void save_data();//保存数据
void add_data();//输入学生数据
void read_data();//读取数据
void delete_data();//删除数据
void edit_data();//修改数据
void query_data_num();//查找(按学号)
void query_data_clas();//查找(按班级) 
void sort_data_num();//排序(学号) 
void tongji();//统计某班学生学分完成情况
// 主函数
void  view_data() // 查看所有学生信息
{
int i;  
    printf(“学号\t姓名\t 班级\t 基础课\t 专业课\t 选修课 \n“);
printf(“\n-----------------------------------------\n“); 
for(i=0;i printf(“%s\t %s\t %s\t %d\t %d\t %d\n“dd.stu[i].numdd.stu[i].name
dd.stu[i].clasdd.stu[i].score[0]dd.stu[i].score[1]dd.stu[i].score[2]); 
}
void save_data()// 将数据从结构体数组保存到文件中
{
FILE *fp;//文件指针
int ik;
k=dd.count;
fp=fopen(“dada.txt““w“);//文件存储位置:当前文件夹
fwrite(&ksizeof(int)1fp);
for(i=0;i fwrite(&dd.stu[i]sizeof(struct student)1fp);
fclose(fp);
}

void add_data()// 输入学生记录
{
struct student st;
int b;
    int a;
    int k;
while(1)
{
printf(“\n请输入学生信息:“);
printf(“\n学号\t姓名\t班级“);
printf(“\n----------------------------------------------\n“);
scanf(“%s%s%s“st.numst.namest.clas);
k = dd.count;
strcpy(dd.stu[k].numst.num);
strcpy(dd.stu[k].namest.name);
strcpy(dd.stu[k].classt.clas);
printf(“\n请输入基础课学分(0-50):“); scanf(“%d“&a);
if(a>50) dd.stu[k].score[0]=50;
else dd.stu[k].score[0]=a;
printf(“\n请输入专业课学分(0-50):“); scanf(“%d“&a);
        if(a>50) dd.stu[k].score[0]=50;
else dd.stu[k].score[0]=a;
printf(“\n请输入选修课学分(0-24):“); scanf(“%d“&a);
if(a>24) dd.stu[k].score[2]=24;
else dd.stu[k].score[0]=a;
dd.count++;
printf(“\n\n继续添加学生信息[1-yes 0-no]:“);
scanf(“%d“&b);
if(b==0) break;
}
    save_data();
}
void read_data()// 将数据从文件读到结构体数组中
{
FILE *fp;//文件指针
int ik;
struct student st;
k=0;
if(access(“dada.txt“0)==-1) // 如果文件不存在
{
fp=fopen(“dada.txt““w“);
    fwrite(&ksizeof(int)1fp);
    fclose(fp);
}
        fp=fopen(“dada.txt““r“);
        fread(&ksizeof(int)1fp);
        dd.count=k;
        for(i=0;i{
      fread(&stsizeof(struct student)1fp);
  strcpy(dd.stu[i].numst.num);
  strcpy(dd.stu[i].namest.name);
  strcpy(dd.stu[i].classt.clas);
  dd.stu[i].score[4]=st.score[4];
  dd.stu[i].score[3]=st.score[3];
  dd.stu[i].score[2]=st.score[2];
  dd.stu[i].score[1]=st.score[1];
  dd.stu[i].score[0]=st.score[0];
}
fclose(fp);
}

void delete_data()
{
int ikj;
char num[10];
    printf(“\n请输入要删除学生的学号:“); 
scanf(“k=-1“);
for(i=0;i {
if(strcmp(dd.stu[i].numnum)==0)
{
k=i;
break;
}
}
if(k==-1)
{
printf(“\n\n没有找到该学生(学号-%s)!“num);
}
el

评论

共有 条评论