本文作者:qiaoqingyi

学生成绩管理系统html源码(成绩管理系统源代码)

qiaoqingyi 2023-01-23 537

今天给各位分享学生成绩管理系统html源码的知识,其中也会对成绩管理系统源代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求学生成绩管理系统的源代码

#include stdio.h

#include stdlib.h

#define FILENAME "student.dat"

typedef enum{MAN, WOMAN} SEX;

typedef struct tagStudent

{

int num; //学生的编号

char name[20]; //学生的姓名

SEX sex; //学生的性别

int age; //学生的年龄

char major[20]; //学生的专业

struct tagStudent *next;//下一个节点的指针

}STUDENT, *PSTUDENT;

STUDENT g_head; //头节点

//1.显示菜单

void ShowMenu();

//2.获取用户选择的菜单的编号

int GetMenuChoose();

//3.创建一个节点,它会返回一个新创建的学生信息节点的指针

PSTUDENT CreateStudent();

//4.把学生信息节点加入到链表中

int AddStudent(PSTUDENT pstu);

//5.返回指定编号学生节点的上一个节点的指针

PSTUDENT GetPrevAddr(int num);

//6.显示所有学生信息

void ShowAll();

//7.显示信息数量

int ShowStudentCount();

//8.修改学生信息,参数为要修改的学生的编号

void ModityStudent(int num);

//9.获取用户的选择

int Question(const char *pstr);

//10.获取用户输入的学生的编号

int GetInputNum();

//11.删除编号为num的学生信息

void DelStudent(int num);

//12.删除所有的学生信息

void DelAll();

//13.把学生信息保存到文件当中

void SaveToFile();

//14.从文件中读取学生信息

void LoadFromFile();

int main()

{

int running = 1;

while(running)

{

switch(GetMenuChoose())

{

case 0:

running = 0;

break;

case 1:

// printf("你选择了菜单1\n");

AddStudent(CreateStudent());

break;

case 2:

// printf("你选择了菜单2\n");

DelStudent(GetInputNum());

break;

case 3:

printf("你选择了菜单3\n");

break;

case 4:

// printf("你选择了菜单4\n");

ModityStudent(GetInputNum());

break;

case 5:

// printf("你选择了菜单5\n");

DelAll();

break;

case 6:

// printf("你选择了菜单6\n");

ShowAll();

break;

case 7:

// printf("你选择了菜单7\n");

ShowStudentCount();

break;

case 8:

// printf("你选择了菜单8\n");

LoadFromFile();

break;

case 9:

// printf("你选择了菜单9\n");

SaveToFile();

break;

}

system("pause");

}

return 0;

}

//1.显示菜单

void ShowMenu()

{

system("cls");

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

printf("\n\t1.添加学生信息    2.删除某个学生信息    3.显示某个学生信息\n");

printf("\t4.修改学生信息    5.删除所有学生信息    6.显示所有学生信息\n");

printf("\t7.显示信息数量    8.读取文件学生信息    9.保存学生信息至文件\n");

printf("\t0.退出系统\n");

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

}

//2.获取用户选择的菜单的编号

int GetMenuChoose()

{

int num;//保存用户选择的菜单编号

ShowMenu();

printf("请选择菜单(0 ~ 9):");

while(1 != scanf("%d", num) || num  0 || num  9)

{

ShowMenu();

printf("选择菜单错误,请重新选择(0 ~ 9):");

fflush(stdin);//清空输入缓冲区

}

return num;

}

//3.创建一个节点,它会返回一个新创建的学生信息节点的指针

PSTUDENT CreateStudent()

{

int sex;

PSTUDENT pstu = (PSTUDENT)malloc(sizeof(STUDENT));//在堆内存申请空间,存储学生信息

if(!pstu)

{

printf("申请内存空间失败!\n");

return NULL;

}

printf("请输入学生的编号(整型):");

while(1 != scanf("%d", pstu-num) || GetPrevAddr(pstu-num))

{

printf("学生编号输入错误或已经存在,请重新输入学生的编号(整型):");

fflush(stdin);

}

printf("请输入学生的姓名(小于20字符):");

scanf("%20s", pstu-name);//(*pstu).name

printf("请选择学生的性别(1.男  2.女):");

while(1 != scanf("%d", sex) || sex  1 || sex  2)

{

printf("性别选择错误,请重新选择学生的性别(1.男  2.女):");

fflush(stdin);

}

if(1 == sex)

pstu-sex = MAN;

else

pstu-sex = WOMAN;

printf("请输入学生的年龄(10 ~ 40):");

while(1 != scanf("%d", pstu-age) || pstu-age  10 || pstu-age  40)

{

printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):");

fflush(stdin);

}

printf("请输入学生的专业(小于20字符):");

scanf("%20s", pstu-major);

pstu-next = NULL;

return pstu;

}

//4.把学生信息节点加入到链表中

int AddStudent(PSTUDENT pstu)

{

PSTUDENT ps = g_head;

if(!pstu)

{

return 0;

}

//判断一下该学生信息是不是已经存在

if(GetPrevAddr(pstu-num))

{

printf("编号为%d的学生信息已经存在!\n", pstu-num);

free(pstu);//释放该节点内存空间

return 0;

}

//while循环的作用是找到当前链表的最后一个节点

while(ps-next)

ps = ps-next;

//把新节点加入到最后那个节点的后面

ps-next = pstu;

pstu-next = NULL;

return 1;

}

//5.返回指定编号学生节点的上一个节点的指针

PSTUDENT GetPrevAddr(int num)

{

PSTUDENT pstu = g_head;

while(pstu-next)

{

if(pstu-next-num == num)

return pstu;

pstu = pstu-next;

}

return NULL;

}

//6.显示所有学生信息

void ShowAll()

{

PSTUDENT pstu = g_head;

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

printf("  编号        姓名            性别     年龄               专业\n");

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

while(pstu-next)

{

printf("  %-8d  ", pstu-next-num);

printf("%-20s", pstu-next-name);

printf("%-6s", pstu-next-sex == MAN ? "男" : "女");

printf("%4d", pstu-next-age);

printf("%20s\n", pstu-next-major);

pstu = pstu-next;//让指针指向下一个节点

}

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

}

//7.显示信息数量

int ShowStudentCount()

{

int count = 0;

PSTUDENT pstu = g_head;

while(pstu-next)

{

++count;

pstu = pstu-next;

}

printf("\n当前共有%d位学生信息。\n", count);

return count;

}

//8.修改学生信息,参数为要修改的学生的编号

void ModityStudent(int num)

{

PSTUDENT pstu = GetPrevAddr(num);//获取要修改的学生节点的上一个节点

int choose;

if(!pstu)

{

printf("没有编号为%d的学生信息。\n", num);

return;

}

pstu = pstu-next;//将要修改的学员节点的指针改为指向自己的

printf("当前学生的姓名为%s,", pstu-name);

if(Question("确定要修改吗?"))

{

printf("请输入学生的姓名(小于20字符):");

scanf("%20s", pstu-name);

}

printf("当前学生的性别为%s,", pstu-sex == MAN ? "男" : "女");

if(Question("确定要修改吗?"))

{

printf("请输入学生的性别(1.男 2.女):");

while(1 != scanf("%d", choose) || choose  1 || choose  2)

{

printf("输入错误,请重新输入学生的性别(1.男 2.女):");

fflush(stdin);

}

if(1 == choose)

pstu-sex = MAN;

else

pstu-sex = WOMAN;

}

printf("当前学生的年龄为%d,", pstu-age);

if(Question("确定要修改吗?"))

{

printf("请输入学生的年龄(10 ~ 40):");

while(1 != scanf("%d", pstu-age) || pstu-age  10 || pstu-age  40)

{

printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):");

fflush(stdin);

}

}

printf("当前学生的专业为%s,", pstu-major);

if(Question("确定要修改吗?"))

{

printf("请输入学生的专业(小于20字符):");

scanf("%20s", pstu-major);

}

printf("修改完毕!\n");

}

//9.获取用户的选择

int Question(const char *pstr)

{

char answer;

printf("%s请选择(y or n):", pstr);

while(1 != scanf(" %c", answer) || (answer != 'y'  answer != 'n'))

{

printf("输入错误!%s请重新选择(y or n):", pstr);

fflush(stdin);//清空输入缓冲区,C库函数

}

if('y' == answer)

return 1;

else

return 0;

}

//10.获取用户输入的学生的编号

int GetInputNum()

{

int num;

printf("请输入学生的编号(整型):");

while(1 != scanf("%d", num))

{

printf("编号输入错误!请重新输入学生的编号(整型):");

fflush(stdin);

}

return num;

}

//11.删除编号为num的学生信息

void DelStudent(int num)

{

PSTUDENT pstu, ptmp;

if(pstu = GetPrevAddr(num))

{

if(!Question("确定要删除该学生信息吗?"))

{

return;

}

ptmp = pstu-next;

pstu-next = ptmp-next;

free(ptmp);

printf("删除了编号为%d的学生信息。\n", num);

}

else

{

printf("没有找到编号为%d的学生信息。\n", num);

}

}

//12.删除所有的学生信息

void DelAll()

{

PSTUDENT pstu = g_head.next, ptmp;

int count = 0;

if(!Question("确定要删除当前所有的学生信息吗?"))

{

return;

}

while(pstu)

{

ptmp = pstu;

pstu = pstu-next;

free(ptmp);

++count;

}

printf("共删除了%d位学生信息。\n", count);

g_head.next = NULL;

}

//13.把学生信息保存到文件当中

void SaveToFile()

{

FILE *pf = fopen(FILENAME, "wb");

PSTUDENT pstu = g_head;

int i = 0, count = ShowStudentCount();

if(!pf)

{

printf("打开待写入的文件失败!\n");

return;

}

if(!Question("确定要将当前学生信息保存到文件中吗?"))

{

fclose(pf);

return;

}

fwrite(count, 1, sizeof(count), pf);//把学生信息的数量先写入到文件头

while(pstu-next)

{

fwrite(pstu-next, 1, sizeof(STUDENT), pf);//把每位学生信息写入文件

++i;

pstu = pstu-next;

}

fclose(pf);

if(i == count)

{

printf("成功的写入了%d条学生信息。\n", count);

}

else

{

printf("应写入%d条学生信息,实际写入%d条学生信息。\n", count, i);

}

}

//14.从文件中读取学生信息

void LoadFromFile()

{

int i, count = 0, repeat = 0;

FILE *pf;

PSTUDENT pstu;

printf("提示:从文件中读取学生信息会询问是否清空当前学生信息(不清空表示合并所有信息)。\n");

if((pf = fopen(FILENAME, "rb")) == NULL)

{

printf("文件还没有创建,请手工输入学生信息并保存吧!\n");

return;

}

DelAll();//删除之前的所有学生信息,然后从文件中读取

fread(count, 1, sizeof count, pf);//获取学生信息的数量

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

{

pstu = (PSTUDENT)malloc(sizeof(STUDENT));

fread(pstu, 1, sizeof(STUDENT), pf);

if(!AddStudent(pstu))

{

++repeat;//保持有多少个和当前链表中相重复的学生信息

}

}

fclose(pf);

printf("文件读取完毕!新增学生信息%d条。\n", count - repeat);

}

这个累死我了,我要财富值。。。为了这个不容易啊

学生成绩管理系统html源码(成绩管理系统源代码)

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");

}

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

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

本人已亲测,可用

学生成绩管理系统代码

#includeiostream

#includestring

#includefstream

#includecstdlib

#includeiomanip

using namespace std;

class student

{ private:

char name[20]; //姓名

double cpro,english,math,sport,law,hbpro,computer;//课程

int order, number; //名次,学号

public:

student(){}

student(char n[20],int nu,double cc,double eng,double ma,double sp,double l,double hb,double com)

{strcpy(name,n);

number=nu;

cpro=cc; english=eng;math=ma;sport=sp;law=l;hbpro=hb;computer=com;

}

friend void main();

};

void main()

{

cout" 欢迎进入**学生成绩管理系统**!"endl;

cout" ******************************************"endl;

cout" **** 学生成绩管理系统 ****"endl;

cout" ******************************************"endl;

cout" **************************"endl;

cout" **0、输入数据 **"endl;

cout" **1、增加数据 **"endl;

cout" **2、修改数据 **"endl;

cout" **3、按姓名查询 **"endl;

cout" **4、按学号查询 **"endl;

cout" **5、输出所有学生的成绩 **"endl;

cout" **6、退出系统 **"endl;

cout" **************************"endl;

cout" 选择0-6数字进行操作"endl;

char p;char w;

student *s[50]; //指针对象,最多存50个学生数据

ofstream *file[50]; //负责对文件插入操作

int i=0;

int j=0;

int flag=0;

do //flag判断输入是否有效

{

cinp;

if((p='0'p='6'))

flag=1;

else

cout" 指令错误!请重新输入:"endl;

}while(flag==0);

do{

switch(p) //接收功能选项

{

case '0': //输入数据

{

char c;

char name[20];int number;double cpro,english,math,sport,law,hbpro,computer;

do{

cout" 请输入姓名:";

cinname;

coutendl" 请输入学号:";

cinnumber;

cout" 请输入C++成绩:";

cincpro;

coutendl" 请输入英语成绩:";

cinenglish;

coutendl" 请输入数学成绩:";

cinmath;

coutendl" 请输入体育成绩:";

cinsport;

coutendl" 请输入网络基础成绩:";

cinlaw;

coutendl" 请输入C语言成绩:";

cinhbpro;

coutendl" 请输入数据库成绩:";

cincomputer;

coutendl;

file[j]=new ofstream("D:\document",ios::ate);

*file[j]" 姓名 "name" 学号 "number" C++成绩 "cpro

" 英语成绩 "english" 数学成绩 "math" 体育成绩 "

sport" 网络基础成绩 "law" C成绩 "hbpro" 数据库成绩 "computerendl;

j++;

s[i]=new student(name, number,cpro,english,math,sport,law,hbpro,computer);

i++;

cout" 数据输入成功,想继续输入吗(y/n):";

cinc;

coutendl;

do

{

if(c!='y'c!='n')

{

cout" 指令错误!请重新输入!"endl" ";

cinc;

}

else

flag=1;

}while(flag==0);

}while(c=='y');

break;

}

case '1': //增加数据

{

char name[20];

int number;double cpro,english,math,sport,law,hbpro,computer;

char c;

do

{

cout" 请输入您要增加的学生的姓名:";

cinname;

coutendl" 请输入学号:";

cinnumber;

coutendl" 请输入C++成绩:";

cincpro;

coutendl" 请输入英语成绩:";

cinenglish;

coutendl" 请输入数学成绩:";

cinmath;

coutendl" 请输入体育成绩:";

cinsport;

coutendl" 请输入网络基础成绩:";

cinlaw;

coutendl" 请输入C语言成绩:";

cinhbpro;

coutendl" 请输入数据库成绩:";

cincomputer;

coutendl;

file[j]=new ofstream("d:\document",ios::ate);

*file[j]" 姓名 "name" 学号 "number" C++成绩 "cpro" 英语成绩 "english" 数学成绩 "math" 体育成绩 "sport" 网络基础成绩 "law" C成绩 "hbpro" 数据库成绩 "computerendl;

j++;

s[i]=new student(name, number, cpro,english,math,sport,law,hbpro,computer);

i++;

cout" 数据输入成功,想继续数入吗(y/n):";

cinc;

coutendl;

if(c!='y'c!='n')

{

cout" 指令错误!请重新输入!"endl" ";

cinc;

}

}while(c=='y');

break;

}

case '2': //修改数据

{

char name[20];int nu;double cc,eng,ma,sp,l,hb,com;flag=0;

char c;

if(i==0)

{

cout" 管理系统中没有输入数据!"endl;break;

}

do

{

cout" 请输入您要修改的学生的姓名:";

cinname;

coutendl;

for(int h=0;hi;h++) //h纪录要修改学生的位置

{

if(strcmp(name,s[h]-name)==0)

{

flag=1;

cout" 请输入新的学号:";

cinnu;

coutendl" 请输入C++成绩:";

cincc;

coutendl" 请输入英语成绩:";

cineng;

coutendl" 请输入数学成绩:";

cinma;

coutendl" 请输入体育成绩:";

cinsp;

coutendl" 请输入网络基础成绩:";

cinl;

coutendl" 请输入C语言成绩:";

cinhb;

coutendl" 请输入数据库成绩:";

cincom;

coutendl;

s[h]-cpro=cc;

s[h]-english=eng;

s[h]-math=ma;

s[h]-sport=sp;

s[h]-law=l;

s[h]-hbpro=hb;

s[h]-computer=com;

s[h]-number=nu;

cout" 数据修改成功!"endl;

}

}

if(flag==0)

{

cout" 您要修改的学生本来就不存在!请检查重新输入!"endl;

}

cout" 想继续修改吗(y/n):";

cinc;

coutendl;

if(c!='y'c!='n')

{

cout" 指令错误!请重新输入!"endl" ";

cinc;

}

}while(c=='y');

break;

}

case '3': //按姓名查询

{

char n[20];int j=0;char c;

if(i==0)

{

cout" 管理系统中没有输入数据!"endl;break;

}

do{

int flag=0;

cout" 请输入你要查询的学生姓名:";

cinn;

coutendl;

for(int j=0;ji;j++)

{

if(strcmp(n,(*s[j]).name)==0)

{

flag=1;

cout" 您要查询的学生是:"(*s[j]).nameendl;

cout(*s[j]).name"的成绩是: "" C++: "(*s[j]).cpro" 英语: "(*s[j]).english" 数学:"(*s[j]).math" 体育:"(*s[j]).sport" 法律:"(*s[j]).law" C:"(*s[j]).hbpro" 数据库 "(*s[j]).computerendl;

}

}

if(flag==0)

cout" 对不起!您要查询的学生不存在!"endl;

cout" 您想继续查询吗?(y/n):";

cinc;

coutendl;

if(c!='y'c!='n')

{

cout" 指令错误!请重新输入!"endl;

cinc;

}

}

while(c=='y');

break;

}

case '4': //按学号查询

{

int n,j=0;char c;

if(i==0){

cout" 管理系统中没有输入数据!"endl;break;

}

do{

int flag=0;

cout" 请输入你要查询的学生的学号:";

cinn;

coutendl;

for(int j=0;ji;j++)

{

if(s[j]-number==n)

{

flag=1;

cout" 您要查询的学生是:"(*s[j]).nameendl;

cout(*s[j]).name"的成绩是: "" C++:"(*s[j]).cpro" 英语:"(*s[j]).english" 数学:"(*s[j]).math" 体育:"(*s[j]).sport" 法律:"(*s[j]).law" C:"(*s[j]).hbpro" 数据库 "(*s[j]).computerendl;

}

}

if(flag==0)

cout" 对不起!您要查询的学生不存在!"endl;

cout" 您想继续查询吗?(y/n):";

cinc;

coutendl;

if(c!='y'c!='n')

{

cout" 指令错误!请重新输入!"endl;

cinc;

}

}

while(c=='y');

break;

}

case '5': //输出

{

cout" 本系统所有学生数据如下:"endl;

if(i==0)

cout" 管理系统中没有输入数据!"endl;

cout" 姓名 学号 c++ 英语 数学 体育 网络基础 C语言 数据库 "endl;

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

{

couts[k]-namesetw(7)s[k]-numbersetw(6)

(*s[k]).cprosetw(6)(*s[k]).englishsetw(6)

(*s[k]).mathsetw(6)(*s[k]).sportsetw(7)

(*s[k]).law setw(10)(*s[k]).hbprosetw(10)(*s[k]).computersetw(10)endl;

}

break;

}

case'6'://退出

{exit(0); cout"Bye bye!"endl;}

}

cout" 您想继续进行其他操作吗?(y/n):";

int flag=0;

do

{

cinw;

coutendl;

if(w!='y'w!='n')

cout" 指令错误!请重新输入!"endl;

else

flag=1;

}while(flag==0);

if(w=='y')

cout" 请输入操作代码:0 输入数据"endl;

cout" 1 增加数据"endl;

cout" 2 修改数据"endl;

cout" 3 按姓名查询"endl;

cout" 4 按学号查找"endl;

cout" 5 输出所有学生成绩"endl;

cout" 6 退出系统"endl;

cinp;

}while(w=='y');

}

学生成绩管理系统论文+分析(要有源代码的)

对于一所学校来说,如何利用计算机改变每次考试结束后老师们统计大量的学生成绩时的繁重任务?如何消除因时间紧所产生的统计结果错误百出?设计出学生成绩管理系统就是一个很好的解决方法。

本文通过用VB面向对象的编程环境编写学生成绩管理系统,利用软件工程原理,采用生命周期方法学,根据3NF的关系模式设计数据库表,用模块化设计方式将系统的各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实现的功能,详细地定义了各个模块的具体功能。

开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,实现了学生成绩数据库的创建及学生成绩的输入、浏览、维护和统计,使得系统具有功能强大,界面友好的特点。

在设计学生成绩管理系统过程中,得到了各位老师的指导,在此表示感谢。由于本人水平有限,程序中不足之处在所难免,敬请各位老师批评指正。

关键字: 成绩管理,软件工程,vb6.0

Abstract

In will it be information age now, quickening , life of speed, make people more and more to informationize , is it develop to digitize, the management information system (MIS ) is a collection , transmission , system stored , processed , maintained and used that be able to carry on information made up of person , computer ,etc., can replace a large amount of , miscellaneous and done by hand of the past . To a school, How utilize computer change each examination teacher count a large number of student strenuous task at the score? How dispel because time full of mistakes statistics produced closely? Designing student's achievement administrative system is a very good solution. This text, through writing student's achievement administrative system with vb target -oriented programming environment, Utilize the soft project principle, adopt the cycle method of the life to study , design the database form according to the relation mode of 3NF, resolve each systematic function module ring upon ring with module design, design systematic module structure, and according to concrete to demand and function that need realize of system, have defined the concrete function of each module in detail .

Develop two respects of main development including setting-up and maintenance and front application program of backstage supporter's database , have realized the establishment of student's achievement database and introduction of student's achievement, had a look around, maintaining and counting , is it have the characteristics that powerful , an interface is friendly systematically to make.

In the course of designing student's achievement administrative system , have got the guidance of king's prosperous teacher, express thanks here. Because one's own level is limited, the weak point is unavoidable in the procedure, please offer a teacher make a comment.

Key word: The achievement is managed, soft project , vb6.0

目 录

第一章 毕业设计正文 .

1.1 管理信息系统概述和VB介绍

1.2 方案论证

1.2.1 实现功能…………………………………………………………………………...

1.2.2 功能与模块的设计……………………………………………………………… ..

1.2.3 数据库的设计…………………………………………………………………… ..

1.3 过程论述

1.3.1 登陆流程图……………………………………………………………………… ..

1.3.2 登陆界面流程图………………………………………………………………… ..

1.3.3 主界面流程图…………………………………………………………………… ..

1.3.4 学生数据处理流程……………………………………………………………… ..

1.3.5 课程与成绩处理流程图………………………………………………………… ..

1.3.5 课程管理………………………………………………………………………… ..

1.3.5 查询流程图……………………………………………………………………… ..

1.4 结论和总结

第二章 致谢

第三章 附录(计算机程序等内容)

3.1 数据库连接模块...….……………………………………………………………… ..

3.2 登陆界面与代码…….…………………………...………………………………… ..

3.3 主界面与代码……………………………………………………………………… ..

3.4 用户管理界面与代码……………………………………………………………… ..

3.5学生管理源代码………………………………………………………………………

3.6学生查询源代码………………………………………………………………………

3.7 学生选课源代码…………………………………………………………………… ..

第四章 参考文献

我选择了Visual Basic+ADO+ACCESS来开发整个系统。

1.2.1、 实现功能:

(1) 能够浏览学生成绩的所有信息

(2) 能够对学生的信息注册登记管理

(3) 学生成绩资料的数据库建立和管理

(4) 能够通过学生的一个信息找到个人成绩的相关信息(例如:知道学生的学号能够找到该学生的所有有关的成绩信息)

(5) 通过一条信息找到与之匹配的信息(例如:查询同一专业的所有人员)

(6) 相关人员能对包含学生的成绩信息进行管理(因为学生有关情况不是固定不变的所以一旦学生信息发生改变就要对原有信息进行诸如添加,删除,修改等的操作)

(7) 多用户数据安全管理,保证各部门的数据安全、完整,对每个使用本系统用户进行权限的设置

(8) 简易操作,不需要计算机专业人员。

(9) 学生成绩添加、删除和修改,包括学生的学号、姓名、课程名称、学分、成绩

(10) 成绩查询,查询条件为学生学号、姓名、课程名称等信息的综合查询,允许管理员模糊查询,查询结果以图表形式列出 学生信息查询,查询条件为学生学号、姓名、身份证号等信息的综合查询,查询结果以图表形式列出

(11) 用户管理:设置两个级别用户:管理员和普通用户,管理员有权限使用1~5的功能,普通用户只能使用3和4的功能,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户)

查看全文:

学生成绩管理系统html源码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于成绩管理系统源代码、学生成绩管理系统html源码的信息别忘了在本站进行查找喔。

阅读
分享