您的位置:

c语言学生成绩管理系统,c语言学生成绩管理系统课程设计

本文目录一览:

C语言编写一个简单的学生成绩管理系统

C语言程序:

#include stdio.h

#include string.h

typedef struct student

{

char name[20]; /* 姓名 */

int code; /* 学号 */

int kor, eng, math; /* 3门课程的成绩 */

}STUDENT;

/* 返回输入数据 */

STUDENT Input();

/* 输出所有输入的数据 */

void Output(STUDENT info[], int cnt);

/* 将输入分数转换为A-F */

char grade(int score);

int main()

{

STUDENT S[10];

int cnt = 0, select;

int i, j;

int code;

while(1)

{

printf("\t学生信息管理系统\n\n");

printf("\t\t1\t添加\n");

printf("\t\t2\t删除\n");

printf("\t\t3\t查询\n");

printf("\t\t0\t结束\n");

printf("\t\t您的选择[0-3]:");

scanf("%d", select);

if(select  0 || select  3)

continue;

if(select == 0)

{

printf("退出系统!\n");

break;

}

if(select == 1) /* 添加 */

{

S[cnt++] = Input();

}

else if(select == 2) /* 删除 */

{

printf("\t\t待删除学生的学号:");

scanf("%d", code);

for(i=0; icnt; i++)

if(S[i].code == code)

break;

if(i = cnt)

{

printf("学号不存在,删除失败!\n");

}

else {

for(j=i+1; jcnt; j++)

{

strcpy(S[j-1].name, S[j].name);

S[j-1].code = S[j].code;

S[j-1].kor = S[j].kor;

S[j-1].eng = S[j].eng;

S[j-1].math = S[j].math;

}

cnt--;

printf("删除成功!\n");

}

}

else /* 查询 */

{

printf("\t\t待查找学生的学号:");

scanf("%d", code);

for(i=0; icnt; i++)

if(S[i].code == code)

break;

if(i = cnt)

{

printf("学号不存在,查找失败!\n");

}

else

{

printf("\t查询结果:\n");

Output(S, i);

}

}

}

return 0;

}

/* 返回输入数据 */

STUDENT Input()

{

STUDENT stu;

printf("\t\t新学生信息\n");

printf("\t\t学号:");

scanf("%d", stu.code);

printf("\t\t姓名:");

getchar();

gets(stu.name);

printf("\t\t3门课程成绩(以空格分隔):");

scanf("%d%d%d", stu.kor, stu.eng, stu.math);

return stu;

}

/* 输出所有输入的数据 */

void Output(STUDENT info[], int cnt)

{

printf("学号:%d\n",info[cnt].code);

printf("姓名:");

puts(info[cnt].name);

printf("成绩:%c %c %c\n", grade(info[cnt].kor), grade(info[cnt].eng), grade(info[cnt].math));

}

/* 将输入分数转换为A-F */

char grade(int score)

{

if(score  0 || score  100)

return 'F';

if(score = 90)

return 'A';

if(score = 80)

return 'B';

if(score = 70)

return 'C';

if(score =60)

return 'D';

else

return 'E';

}

运行测试:

用C语言设计一个学生成绩管理系统

#include stdio.h

#include string.h

#include stdlib.h

#define MAX 1000

/*定义学生成绩信息结构*/

struct stu

{

char id[8];

char name[8];

扩展资料:

short:修饰int,短整型数据,可省略被修饰的int。(KR时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(KR时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(KR时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

复杂类型关键字

struct:结构体声明。(KR时期引入)

union:联合体声明。(KR时期引入)

enum:枚举声明。(C89标准新增)

typedef:声明类型别名。(KR时期引入)

sizeof:得到特定类型或特定类型变量的大小。(KR时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

参考资料来源:百度百科-c语言

c语言成绩管理系统

代码如下:

#include stdio.h

#include string.h

#define MAX 100 // 学生最大数量

#define COURSE_N 3 // 课程数

struct Student

{

unsigned int id; // 学号

char name[20]; // 姓名

int scores[COURSE_N]; // 课程分数:语文、数学、英语

int sum; // 总分

float average; // 平均分

};

struct StudentList {

struct Student students[MAX]; // 学生列表

int size; // 实际学生人数

};

struct StudentList studentList;

void PrintStudents(struct StudentList *pList)

{

int i;

printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");

for (i = 0; i  pList-size; i++) {

printf("%d\t%s\t%d\t%d\t%d\t%d\t%.2f\n",

pList-students[i].id,

pList-students[i].name,

pList-students[i].scores[0],

pList-students[i].scores[1],

pList-students[i].scores[2],

pList-students[i].sum,

pList-students[i].average);

}

printf("\n");

}

void PrintStudent(struct Student *pStu)

{

int i;

printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");

printf("%d\t%s\t%d\t%d\t%d\t%d\t%.2f\n",

pStu-id,

pStu-name,

pStu-scores[0],

pStu-scores[1],

pStu-scores[2],

pStu-sum,

pStu-average);

printf("\n");

}

// 通过学号查找学生

struct Student* FindStudentById(struct StudentList *pList, unsigned int id)

{

int i;

for (i = 0; i  pList-size; i++) {

if (pList-students[i].id == id) {

return pList-students[i];

}

}

return NULL;

}

// 通过姓名查找学生

struct Student* FindStudentByName(struct StudentList *pList, const char *name)

{

int i;

for (i = 0; i  pList-size; i++) {

if (strcmpi((const char *)pList-students[i].name, name) == 0) {

return pList-students[i];

}

}

return NULL;

}

// 添加学生

void AddStudent(struct StudentList *pList)

{

int ok = 0;

do {

printf("请输入学号:");

scanf("%d", pList-students[pList-size].id);

if (FindStudentById(pList, pList-students[pList-size].id) != NULL) {

printf("学号重复!\n");

}

else {

ok = 1;

}

} while (!ok);

printf("请输入姓名:");

scanf("%s", pList-students[pList-size].name);

printf("请输入语文分数:");

scanf("%d", pList-students[pList-size].scores[0]);

printf("请输入数学分数:");

scanf("%d", pList-students[pList-size].scores[1]);

printf("请输入英语分数:");

scanf("%d", pList-students[pList-size].scores[2]);

pList-students[pList-size].sum = pList-students[pList-size].scores[0];

pList-students[pList-size].sum += pList-students[pList-size].scores[1];

pList-students[pList-size].sum += pList-students[pList-size].scores[2];

pList-students[pList-size].average = (float)pList-students[pList-size].sum / COURSE_N;

pList-size++;

printf("学生添加成功!\n\n");

}

// 修改学生信息

void ModifyStudent(struct StudentList *pList)

{

int id;

struct Student *p = NULL;

printf("请输入学号:");

scanf("%d", id);

p = FindStudentById(pList, id);

if (p != NULL) {

printf("请输入姓名:");

scanf("%s", p-name);

printf("请输入语文分数:");

scanf("%d", p-scores[0]);

printf("请输入数学分数:");

scanf("%d", p-scores[1]);

printf("请输入英语分数:");

scanf("%d", p-scores[2]);

p-sum = p-scores[0];

p-sum += p-scores[1];

p-sum += p-scores[2];

p-average = (float)p-sum / COURSE_N;

printf("修改学生信息成功。\n\n");

}

else {

printf("没有找到学号为[%u]的学生。\n\n", id);

}

}

void DeleteStudent(struct StudentList *pList)

{

int id, index = -1, i;

printf("请输入学号:");

scanf("%d", id);

for (i = 0; i  pList-size; i++) {

if (pList-students[i].id == id) {

index = i;

break;

}

}

if (index != -1) {

for (i = index; i  pList-size - 1; i++) {

memcpy(pList-students[i], pList-students[i + 1], sizeof(struct Student));

}

pList-size--;

printf("成功删除学号为[%d]的学生。\n\n", id);

else {

printf("没有找到学号为[%u]的学生。\n\n", id);

}

}

void FindStudent(struct StudentList *pList)

{

struct Student *p;

char name[20];

printf("请输入学生姓名:");

scanf("%s", name);

p = FindStudentByName(pList, name);

if (p != NULL) {

PrintStudent(p);

}

else {

printf("没有找到姓名为[%s]的学生。\n\n", name);

}

}

// 按平均分排序

void SortByAverage(struct StudentList *pList)

{

int i, j;

struct Student temp;

for (i = 0; i  pList-size - 1; i++) {

for (j = i + 1; j  pList-size; j++) {

if (pList-students[i].average  pList-students[j].average) {

memcpy(temp, pList-students[i], sizeof(struct Student));

memcpy(pList-students[i], pList-students[j], sizeof(struct Student));

memcpy(pList-students[j], temp, sizeof(struct Student));

}

}

}

}

int main()

{

int exit = 0;

int choose = 0;

while (!exit) {

printf("------ 学生成绩管理系统 ------\n");

printf("1. 增加学生记录\n");

printf("2. 修改学生记录\n");

printf("3. 删除学生记录\n");

printf("4. 按姓名查询学生记录\n");

printf("5. 按平均成绩排序\n");

printf("6. 退出\n");

printf("请选择(1 - 6):");

scanf("%d", choose);

switch (choose) {

case 1:

AddStudent(studentList);

break;

case 2:

ModifyStudent(studentList);

break;

case 3:

DeleteStudent(studentList);

break;

case 4:

FindStudent(studentList);

break;

case 5:

SortByAverage(studentList);

PrintStudents(studentList);

break;

case 6:

exit = 1;

break;

default:

printf("无效的选项。\n");

break;

}

}

printf("已退出系统!\n");

return 0;

}

运行结果:

C语言实现 学生成绩管理系统(超详细) 内附源码

#includestdio.h

#includestring.h

#includestdlib.h

#includeconio.h

#define N 50//定义的学生数组的个数

#define M 1//定义的管理员数组的个数

int k;//录入学生的个数

char read_door[20];//读取文件的"门"

void Add_data(int flag);//增加数据

void Count_score(int flag);//求平均成绩和总成绩

void Delete_data(int flag);//根据学号删除对应学生的成绩

int Landing(int key);//登录程序

void Load_data();//载入数据

void Updata_stu(int flag);

void Read_bigdoor(char *b);

void Rank_score(int way, int flag);//按照需求对对应的成绩排序

void Read_data(char read_door);//读取数据

void Read_door();//读取"门"值

void Read_main_flag(int *a);

void Read_k();

void Save_bigdoor(char *b);

void Save_data(int flag);//保存数据

void Save_door();//保存"门"值

void Save_main_flag(int *a);

void Save_k(int k);

void Screen_rank();

void Screen_search();

void Screen_stu();

void Screen_teacher();

void Screen_stu_teach();

void Screen_onlyteach();

void Search_data(int way, int flag);//按学号或姓名查找查找

static struct STUDENT//学生的信息

{

char num[10];

char name[10];

float score[3];

float sum;

float aver;

int rank[4];

}stu[N];

static struct TEACHER//教师的登录账号和密码

{

char num[10];

char code[10];

}teach[M] = { "18061124","991228" };

int main()

{

char bigdoor ='n';//教师可通过bigdoor控制学生的权限

char *c=bigdoor;

int order1, order2, order3;//order为用户登录的指令

int door1, door2, door3;

printf ("请输入管理员登录指令:\n");

gets(read_door);

if (strcmp(read_door,"Lu Chen")==0)

{

printf("欢迎使用,您目前是拥有最高权限的管理员,请输入您的账号和密码:\n\n");

printf("\n\n\n");

Screen_onlyteach();

door1 = Landing(1);

if (door1 == 2)

{

printf("\n账号或密码不正确");

return 0;

}

}

else

{

Screen_stu_teach();

printf("请输入序号即选择登录选项:");

scanf("%d", order1);

printf("\n\n");

door1 = Landing(order1);//door1确定用户的权限

switch (door1)//提示用户输入出错

{

case 1:

case 3: break;

case 2:printf("\n输入的账号或密码有误"); return 0;

case 4:printf("\n输入的号码有误"); return 0;

}

}

if (door1 == 1)//老师界面

{

int flag = 0;

int *p=flag;

char teach_read_key;

printf("\n是否读取数据?(y/n):");

scanf("%*c%c",teach_read_key);

if(teach_read_key=='y')

{

Read_k();

    Read_door();

Read_main_flag(p);

Read_data(read_door[20]);

}

printf("\n\n");

for (int count = 1; count 0; count++)//利用死循环来重复使用功能

{

Screen_teacher();

printf("\n请输入序号即选择登录选项:");

scanf("%d", order2);

printf("\n\n");

if (order2 == 10)

break;

switch (order2)

{

case 1:

{

Load_data();

flag=1;

Save_main_flag(p);

Save_k(k);

}break;

case 2:Updata_stu(flag); break;

case 3:

{

Screen_search();

printf("请输入你想查询成绩的方式:");

scanf("%d", door2);

Search_data(door2, flag);

}break;

case 4:Add_data(flag);break;

case 5:Delete_data(flag);break;

case 6:

{

Screen_rank();

printf("请输入成绩序号来选择排序:");

scanf("%d", door2);

Rank_score(door2, flag);

} break;

case 7:

{

Save_data(flag);

Save_door();

Save_k(k);

} break;

case 8:

{

bigdoor ='n';

Save_bigdoor(c);

}break;

case 9:

{

bigdoor ='y';

Save_bigdoor(c);

  }break;

default:printf("您输入的序号有误!\n\n");

}

}

}

else//学生界面

{

Read_k();

Read_data('y');

for (int k = 1; k 0; k++)

{

Screen_stu();

printf("请输入下一步操作的序号:");

scanf("%d", order3);

if (order3 == 3)

break;

switch (order3)

{

case 1:

{

Screen_search();

printf("请输入你想查询成绩的方式");

scanf("%d", door3);

Search_data(door3, 1);

}break;

case 2:

{

Screen_rank();

printf("请输入成绩序号来选择排序:");

scanf("%d", door3);

Rank_score(door3, 1);

}break;

default:printf("输入的操作序号有误\n\n");

}

}

}

return 0;

}

int Landing(int key)//登录程序

{

char num[10];

char code[10];

if (key == 1)

{

printf("请输入账号:");

scanf("%s", num);

printf("\n请输入密码:");

scanf("%s", code);

for (int i = 0; i M; i++)

if (strcmp(teach[i].num, num) == 0 strcmp(teach[i].code, code) == 0)//判断登陆账号和密码是否正确

return 1;

else

return 2;

}

else if (key == 2)

{

return 3;

}

else

{

return 4;

}

}

void Search_data(int way, int flag)//按学号或姓名查找查找

{

int Search_flag = 1;

if (flag)

{

char num[10], name[10];

int i;

if (way == 1)

{

printf("\n请输入学号:");

scanf("%s", num);

for (i = 0; i k; i++)

{

if (strcmp(stu[i].num, num) == 0)//判断学号存不存在

{

printf("\n姓名:%s\n学号:%s\nsubject1:%f\nsubject2:%f\nsubject3:%f\nsum:%f\naver:%f\n", stu[i].name, stu[i].num, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].sum, stu[i].aver);

Search_flag = 0;

break;

}

}

if (Search_flag)

printf("\n您输入的学号有误\n");

}

else if (way == 2)

{

printf("\n请输入姓名:");

scanf("%s", name);

for (i = 0; i N; i++)

{

if (strcmp(stu[i].name, name) == 0)//判断姓名存不存在

{

printf("\n姓名:%s\n学号:%s\nsubject1:%f\nsubject2:%f\nsubject3:%f\nsum:%f\naver:%f\n", stu[i].name, stu[i].num, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].sum, stu[i].aver);

flag = 0;

break;

}

}

if (flag)

printf("\n输入的姓名有误\n");

}

else

printf("\n输入的序号有误\n");

}

else

{

printf("\n您还没有载入数据\n");

}

}

void Count_score(int flag)//求平均成绩和总成绩

{

if (flag)

{

for (int i = 0; i k; i++)

{

stu[i].sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];

stu[i].aver = stu[i].sum / 3;

}

}

else

{

printf("\n您还没有载入数据\n");

}

}

void Load_data()//载入数据

{

printf("输入录入学生成绩个数:");

scanf("%d", k);

for (int i = 0; i k; i++)

{

scanf("%s%s%f%f%f", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

Count_score(1);

}

}

void Rank_score(int way, int flag)//按照需求对对应的成绩排序

{

int i, j, n, temp;

if (flag)

{

for (i = 0; i 4; i++)

for (j = 0; j k; j++)

stu[j].rank[i] = j + 1;

if (way == 1)

{

for (i = 0; i 3; i++)

for (j = 0; j k; j++)

for (n = j + 1; n k; n++)

if (stu[j].score[i] stu[n].score[i])

{

temp = stu[j].rank[i];

stu[j].rank[i] = stu[n].rank[i];

stu[n].rank[i] = temp;

}

printf("\n");

for (i = 0; i k; i++)

printf("姓名:%s 学号:%s subject1:%d subject2:%d subject3:%d\n", stu[i].name, stu[i].num, stu[i].rank[0], stu[i].rank[1], stu[i].rank[2]);

}

else if (way == 2)

{

for (j = 0; j k; j++)

for (n = j + 1; n k; n++)

if (stu[j].sum stu[n].sum)

{

temp = stu[j].rank[3];

stu[j].rank[3] = stu[n].rank[3];

stu[n].rank[3] = temp;

}

printf("\n");

for (i = 0; i k; i++)

printf("姓名:%s 学号:%s sum: %d\n", stu[i].name, stu[i].num, stu[i].rank[3]);

}

else

{

printf("\n输入的序号有误\n");

}

}

else

{

printf("\n您还没有载入数据\n");

}

}

void Delete_data(int flag)//根据学号删除对应学生的成绩

{

if (flag)

{

int i, j;

char num[10];

printf("\n请输入您想要删除信息的学号:");

scanf("%s", num);

for (i = 0; i k; i++)

{

if (strcmp(stu[i].num, num) == 0)

for (j = i + 1; j k; j++)

{

stu[i] = stu[j];

Count_score(1);

}

}

k--;

Save_k(k);

}

else

{

printf("\n您还没有载入数据\n");

}

}

void Updata_stu(int flag)//根据学号修改学生的成绩

{

int Updata_flag = 1;

if (flag)

{

char num[10];

float subject1, subject2, subject3;

printf("\n请输入您想要修改学生的学号:");

scanf("%s", num);

printf("\n请输入您想要更改的学生三科的成绩:");

scanf("%f%f%f", subject1, subject2, subject3);

for (int i = 0; i k; i++)

if (strcmp(stu[i].num, num) == 0)

{

stu[i].score[0] = subject1;

stu[i].score[1] = subject2;

stu[i].score[2] = subject3;

Updata_flag = 0;

Count_score(1);

}

if (Updata_flag)

{

printf("\n输入学号有误\n");

}

}

else

{

printf("\n您还没有载入数据\n");

}

}

void Save_data(int flag)//保存数据

{

if(flag)

{

FILE *fp;

if((fp=fopen("load.txt","w"))==NULL)

{

printf("Save_data error!");

exit(0);

}

for(int i=0;ik;i++)

{

fwrite(stu[i],sizeof(STUDENT),1,fp);

}

fclose(fp);

printf("成功保存数据!\n\n");

read_door[20]='y';

}

else

{

printf("\n您还没有载入数据\n");

}

}

void Read_data(char read_door)//读取数据

{

if(read_door=='y')

{

FILE *fp;

if((fp=fopen("load.txt","r"))==NULL)

{

printf("Read_data error!");

exit(0);

}

for(int i=0;ik;i++)

{

fread(stu[i],sizeof(STUDENT),1,fp);

}

fclose(fp);

}

else

{

printf("\n没有保存数据的记录\n");

}

}

void Save_door()//保存"门"值

{

FILE *fp;

if((fp=fopen("door.txt","w"))==NULL)

{

printf("Save_door error!");

exit(0);

}

fputc(read_door[20],fp);

fclose(fp);

}

void Read_door()//读取"门"值

{

FILE *fp;

if((fp=fopen("door.txt","r"))==NULL)

{

printf("Read_door error!");

exit(0);

}

read_door[20]=fgetc(fp);

fclose(fp);

}

void Save_main_flag(int *a)

{

FILE *fp;

if((fp=fopen("flag.txt","w"))==NULL)

{

printf("Save_main_flag error!");

exit(0);

}

fprintf(fp,"%d",*a);

fclose(fp);

}

void Read_main_flag(int *a)

{

FILE *fp;

if((fp=fopen("flag.txt","r"))==NULL)

{

printf("Read_main_flag error!");

exit(0);

}

fscanf(fp,"%d",a);

fclose(fp);

}

void Save_bigdoor(char *b)

{

FILE *fp;

if((fp=fopen("bigdoor.txt","w"))==0)

{

printf("Save_bigdoor error!");

exit(0);

}

fputc(*b,fp);

fclose(fp);

}

void Read_bigdoor(char *b)

{

FILE *fp;

if((fp=fopen("bigdoor.txt","r"))==0)

{

printf("Read_bigdoor error!");

exit(0);

}

*b=fgetc(fp);

fclose(fp);

}

void Save_k(int k)

{

FILE *fp;

if((fp=fopen("k.txt","w"))==0)

{

printf("Save_k error!");

exit(0);

}

fprintf(fp,"%d",k);

fclose(fp);

}

void Read_k()

{

FILE *fp;

if((fp=fopen("k.txt","r"))==0)

{

printf("Read_k error!");

exit(0);

}

fscanf(fp,"%d",k);

fclose(fp);

}

void Add_data(int flag)//增加数据

{

int i, j,count=k;

char num[10], name[10];

float subject1, subject2, subject3;

if (flag)

{

printf("\n输入您想增加的数据条数:");

scanf("%d", i);

for (j = 0; j i; j++)

{

printf("\n输入增加的学生学号,姓名,三门科目成绩");

scanf("%s%s%f%f%f", num, name, subject1, subject2, subject3);

strcpy(stu[count + j].num, num);

strcpy(stu[count+ j].name, name);

stu[count+ j].score[0] = subject1;

stu[count + j].score[1] = subject2;

stu[count+ j].score[2] = subject3;

k++;

Count_score(1);

}

Save_k(k);

}

else

{

printf("\n输入您想增加的数据条数:");

scanf("%d", i);

for (j = 0; j i; j++)

{

printf("\n输入增加的学生学号,姓名,三门科目成绩");

scanf("%s%s%f%f%f", num, name, subject1, subject2, subject3);

strcpy(stu[j].num, num);

strcpy(stu[j].name, name);

stu[j].score[0] = subject1;

stu[j].score[1] = subject2;

stu[j].score[2] = subject3;

k++;

Count_score(1);

}

}

}

void Screen_search()//查询界面

{

printf("*****************学生成绩查询界面*******************\n\n\n");

printf("——————————————————————————\n");

printf("|              ①  学生学号查询                    |\n");

printf("|              ②  学生姓名查询                    |\n");

printf("——————————————————————————\n");

}

void Screen_rank()//成绩排名方式界面

{

printf("*****************学生成绩排名界面*******************\n\n\n");

printf("——————————————————————————\n");

printf("|              ①    subject                      |\n");

printf("|              ②      sum                        |\n");

printf("——————————————————————————\n");

}

void Screen_teacher()

{

printf("*****************教师管理操作界面*******************\n\n\n");

printf("——————————————————————————\n");

printf("|              ①    数据载入                      |\n");

printf("|              ②    修改数据                      |\n");

printf("|              ③    查询数据                      |\n");

printf("|              ④    添加数据                      |\n");

printf("|              ⑤    删除数据                      |\n");

printf("|              ⑥    成绩排序                      |\n");

printf("|              ⑦    保存数据                      |\n");

printf("|              ⑧    学生限制                      |\n");

printf("|              ⑨    学生开放                      |\n");

printf("|              ⑩      退出                        |\n");

printf("——————————————————————————\n");

}

void Screen_stu_teach()

{

printf("*****************学生成绩管理系统*******************\n\n\n");

printf("——————————————————————————\n");

printf("|              ① 教师管理员登录                  |\n");

printf("|              ②  学生端登录                    |\n");

printf("——————————————————————————\n");

}

void Screen_onlyteach()

{

printf("*****************教师登陆操作界面*******************\n\n\n");

printf("——————————————————————————\n");

printf("|              ① 教师管理员登录                  |\n");

printf("——————————————————————————\n");

}

void Screen_stu()

{

printf("*****************学生用户操作界面*******************\n\n\n");

printf("——————————————————————————\n");

printf("|              ①  学生成绩查询                    |\n");

printf("|              ②  成绩排名查询                    |\n");

printf("|              ③      退出                        |\n");

printf("——————————————————————————\n");

}

以上内容仅是本人通过多方浏览网上资料,自己敲出来的。

如有问题,大家可以在评论区下方留言!!!

本人已亲测,可用

C语言 学生成绩管理系统?

附录* 综合实例——学生成绩查询系统

这是一个用c语言编写的小软件——学生成绩查询系统,同学们可以将其作为一个综合实例,对其进行仔细的阅读和研究,体验编程处理问题的过程,加深对编程语言的理解,提高处理问题的综合能力。

1、程序的功能:

1)可以根据用户输入的输入、输出文件名,读入学生成绩,完成数据的初始化。

2)可以查询指定学生的成绩,可以是指定科目的成绩,也可以是全部科目的成绩。

3)友好退出。

2、使用说明:

1)将输入文件放到指定的目录下(即../student/)

图1

2)启动管理程序student.exe

3)在程序的使用界面,首先输入输入文件名和输出文件名,完成程序的初始化,操作如下图所示

图2

然后,按照按照提示,输入学生姓名和需要程序的成绩(此软件暂时只设置了五成成绩,同学们可以按照需要扩展)科目代码,也可以输入查询所有成绩的代码。程序成绩,如下图所示

图3

4)输入代码“q”退出程序。

3、程序代码

#include

#include

#include

FILE *f1,*f2;

char file1[20],file2[20],name[200][20],name1[15];

int n,m,data[200][10];

void init(){

int i,j;

char ch=' ';

printf("%20c欢迎使用班级成绩管理系统\n\n",ch);

printf("请输入输入和输出文件名(中间用一个空格隔开):\n");

scanf("%s %s",file1,file2);// 1)该条语句的功能是什么?

f1=fopen(file1,"r");

f2=fopen(file2,"w");

fscanf(f1,"%d%d",n,m); // 2)该条语句的功能是什么?

for(i=1;i=n;i++)

{

fscanf(f1,"%s",name[i]); // 3)该条语句的功能是什么?

data[i][0]=0; // 4)该条语句的功能是什么?没有这条语句可不可以?

for(j=1;j=m;j++)

{

fscanf(f1,"%d",data[i][j]);

data[i][0]+=data[i][j]; // 5)该条语句的功能是什么?

}

}

fprintf(f2,"name\tyuwen\tshuxue\tyingyu\twuli\thuaxue\tzongfen\n ");

for(i=1;i=n;i++)

{

fprintf(f2,"%s\t",name[i]);

for(j=1;j=m;j++)

fprintf(f2,"%d\t",data[i][j]);

fprintf(f2,"%d\n",data[i][0]);

}

fclose(f1);// 6)问什么可以在这关闭输入文件?

fclose(f2);

}

void search(char na[],char num){

int i=1,j;

while((i=n)(strcmp(na,name[i])!=0))i++;

if(i=n){

switch(num){

case '1':printf("%s的语文成绩为%d!\n",na,data[i][1]);break;

case '2':printf("%s的数学成绩为%d!\n",na,data[i][2]);break;

case '3':printf("%s的英语成绩为%d!\n",na,data[i][3]);break;

case '4':printf("%s的物理成绩为%d!\n",na,data[i][4]);break;

case '5':printf("%s的化学成绩为%d!\n",na,data[i][5]);break;

case 'a':

printf("%s的各科成绩为:\n",name[i]);

printf("语文\t数学\t英语\t物理\t化学\t总成绩\n");

for(j=1;j=m;j++)

printf("%d\t",data[i][j]);

printf("%d\n",data[i][0]);

break;

default: printf("没有这种查询方式,请确认后再次输入!\n");

}

}

else printf("查无此人,请确认后再次查询!\n");

printf("\n\n");

}

main(){

init();//数据初始化

printf("数据初始化结束!\n\n");

printf("------------------------------------------------\n\n");

char na[20];

char num;

while(1){ // 7)该条语句的功能是什么?

//scanf("%s%c%c",na,num,num); // 8)此处的输入可不可以用这条语句?

printf("请输入学生的姓名和要查询成绩的科目代码(中间用一个空格隔开):\n(1 语文 2 数学 3 英语 4 物理 5 化学 a 所有科目成绩 q 退出)\n");

scanf("%s",na);

if(strcmp(na,"q")==0)break; // 9)问什么要用这条语句strcmp(na,"q")==0?

scanf("%c%c",num,num); // 10)为什么用了两次num?

search(na,num);

printf("------------------------------------------------\n\n");

printf("\n请输入新的查询:\n\n");

}

system("pause");

}

这是我以前的一个程序,你改改吧,应该很好改

c语言学生成绩管理系统,c语言学生成绩管理系统课程设计

2023-01-07
c语言课设学生成绩信息管理系统,学生成绩管理系统 c语言

2023-01-07
c语言做的学生成绩管理系统,c语言程序学生成绩管理系统

2022-11-29
小成绩管理系统c语言,小成绩管理系统c语言报告

2022-11-23
成绩统计表c语言,统计成绩C语言

2023-01-08
学生身份管理系统c语言,学生管理系统设计c语言

2022-11-26
c语言学生管理系统,c语言学生管理系统流程图

2022-12-02
学生信息管理系统c语言摘要,c语言中学生信息管理系统

2022-11-26
成绩管理c语言,成绩管理C语言项目

2023-01-06
c语言学生信息管理系统心得体会,基于c语言的学生信息管理系统

2022-12-01
c语言学生管理系统for结构,c语言写学生管理系统

2023-01-06
c语言校友管理系统,用c语言写学生信息管理系统

2023-01-06
学生档案管理系统c语言代码,学生档案管理系统c语言代码查询

2023-01-04
用c语言写一个课程管理系统,c语言图书管理系统课程设计

2022-12-01
c语言学生管理系统的删除模块,C语言编写学生管理系统

2022-11-30
c语言课程设计,c语言课程设计学生成绩管理系统

2022-11-25
学生信息管理系统C语言代码详解

2023-05-21
php设计学生成绩管理,php学生管理系统论文

2023-01-06
c语言信息系统,c语言程序管理系统

2022-11-27
学生信息管理系统c语言关键技术,c语言的学生信息管理系统

2022-11-23