当前位置:首页 > 网站源码 > 正文内容

学生成绩查询系统数据库代码(学生成绩管理系统数据库代码)

网站源码2年前 (2023-01-25)788

本篇文章给大家谈谈学生成绩查询系统数据库代码,以及学生成绩管理系统数据库代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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

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

}

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

学生成绩管理系统代码

#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');

}

学生成绩管理系统的代码是什么?

代码如下:

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

printf("*");

printf("\n");

printf("1.Input record\n");

printf("2.Caculate totel and average score of every course\n");

printf("3.Caculate totel and average score of every student\n");

printf("4.Sort in descending order by total score of every student\n");

printf("5.Sort in ascending order by total score of every student\n");

printf("6.Sort in ascending order by number\n");

printf("7.Sort in ascending order by name\n");

printf("8.Search by number\n");

printf("9.Search by name\n");

printf("10.Statistic analysis for every course\n");

printf("11.List record\n");

printf("12.Write to a file\n");

printf("13.Read from a file\n");

printf("0.Exit\n");

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

printf("*");

printf("\n");

printf("Please enter your choice:");

printf("\n");

输入函数:

void Readscore (STU stu[],int n,int m)    //1.输入数据

{

int i,j;

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

{

printf("Input student's ID ,name and score");

scanf("%ld",stu[i].studentID);

scanf("%s",stu[i].studentName);

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

scanf("%d",stu[i].score[j]);

}

}

数据处理函数:

void Tota (STU stu[],int n,int m)     //2.计算每门课程的总分和平均分

{

int i,j,sum[M];

double ave[M];

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

{

sum[j]=0;

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

{

sum[j]=sum[j]+stu[i].score[j];

}

ave[j]=(double)sum[j]/n;

}

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

printf("Project %d 总分=%d,课程的平均分=%f\n",i+1,sum[i],ave[i]);

}

void Datasort_1 (STU stu[],int n,int m)     //3.计算每个学生的总分和平均分

{

int i,j,sum[N];

double ave[N];

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

{

sum[i]=0;

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

{

sum[i]=sum[i]+stu[i].score[j];

}

ave[i]=(double)sum[i]/m;

}

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

printf("ID:%10ld,Name: %s Allscore=%d,The ave=%f\n",stu[i].studentID,stu[i].studentName,sum[i],ave[i]);

}

排序函数:

void Datasort_2 (STU stu[],int n,int m)          //4.按每个学生的总分由高到低排出名次表

{

int i,j,k,h,sum[N];

STU t;

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

{

sum[i]=0;

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

{

sum[i]=sum[i]+stu[i].score[j];

}

}

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

{

k=i;

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

{

if (sum[j]sum[k])

k=j;

}

if(i!=k)

{

t=stu[i],h=sum[i];

stu[i]=stu[k],sum[i]=sum[k];

stu[k]=t,sum[k]=h;

}

}

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

printf("ID:%10ld,Name:%s,Score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]);

}

void Datasort_3 (STU stu[],int n,int m)          //5.按每个学生的总分由低到高排出名次表

{

int i,j,k,h,sum[N];

STU t;

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

{

sum[i]=0;

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

{

sum[i]=sum[i]+stu[i].score[j];

}

}

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

{

k=i;

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

{

if (sum[j]sum[k])

k=j;

}

if(i!=k)

{

t=stu[i],h=sum[i];

stu[i]=stu[k],sum[i]=sum[k];

stu[k]=t,sum[k]=h;

}

}

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

printf("ID:%10ld,Name:%s,score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]);

}

void Datasort_4 (STU stu[],int n,int m)    //6.按学号由小到大排出名次表

{

int i,j,k;

STU t;

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

{

k=i;

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

{

if (stu[j].studentIDstu[k].studentID)

k=j;

}

if(i!=k)

t=stu[k],stu[k]=stu[i],stu[i]=t;

}

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

{

printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName);

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

printf("Project %d Score:%d\n",j+1,stu[i].score[j]);

}

}

数据分析函数:

void Statistis (STU stu[],int n,int m)   //10.

{

int i,j,count_1,count_2,count_3,count_4,count_5;

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

{

count_1=0,count_2=0,count_3=0,count_4=0,count_5=0;

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

{

if(stu[i].score[j]=90)

count_1++;

else if(stu[i].score[j]=80)

count_2++;

else if(stu[i].score[j]=70)

count_3++;

else if(stu[i].score[j]=60)

count_4++;

else

count_5++;

}

printf("project %d\n",j+1);

printf("优秀:%d\t优秀率:%f%\n",count_1,(float)count_1/n);

printf("良好:%d\t良好率:%f%\n",count_2,(float)count_2/n);

printf("中等:%d\t中等率:%f\n",count_3,(float)count_3/n);

printf("及格:%d\t及格率:%f\n",count_4,(float)count_4/n);

printf("不及格:%d\t不及格率:%f\n",count_5,(float)count_5/n);

}

}

数据界面打印函数:

void List (STU stu[],int n,int m)         //11.

{

int i,j,sum[N];

double ave[N];

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

{

sum[i]=0;

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

{

sum[i]=sum[i]+stu[i].score[j];

}

ave[i]=(double)sum[i]/m;

}

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

{

printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName);

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

{

printf("Score %d :%d\n",j+1,stu[i].score[j]);

}

printf("Allscore=%d\n平均分%f\n",sum[i],ave[i]);

}

}

文件处理函数:

void WritetoFile(STU stu[],int n,int m)     //将每个学生的记录信息写入文件

{

Tota(stu,n,m);

Datasort_2 (stu,n,m);

FILE *fp;

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

{

printf("Failure to open student.txt!\n");

exit(0);

}

fwrite(stu,sizeof(STU),n,fp);

fclose(fp);

}

int ReadfromFile(STU stu[],int n,int m)//从文件中读出每个学生的记录信息并显示

{

FILE *fp;

int i;

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

{

printf("Failure to open student.txt!\n");

exit(0);

}

for(i=0;!feof(fp);i++)

{

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

}

fclose(fp);

printf("Total student is %d.\n",i-1);

n=i-1;

List(stu,n,m);      //输出从文件中读出的信息到屏幕上

return i-1;

}

用SQL语言如何创建学生成绩数据库的代码?

create database [数据库名];\x0d\x0auser [该数据库名];\x0d\x0a\x0d\x0a--学生表\x0d\x0acreate table [学生表表名](\x0d\x0asId int primary key, --学生ID编号,主键\x0d\x0asName varchar(10) unique not null, --学生名字\x0d\x0a);\x0d\x0a\x0d\x0a--科目表\x0d\x0acreate table [科目表表名](\x0d\x0asjId int primary key, --科目ID编号,主键\x0d\x0asjName varchar(10) unique not null, --科目名称\x0d\x0a);\x0d\x0a\x0d\x0a--成绩表\x0d\x0acreate table [成绩表表名]\x0d\x0arId int primary key, --成绩ID编号,主键\x0d\x0asjId int references [科目表表名](sjId), --科目ID编号,继承科目表的ID编号\x0d\x0asId int references [学生表表名](sId), --学生ID编号,继承学生表的ID编号\x0d\x0aresult float not null --成绩\x0d\x0a);\x0d\x0a\x0d\x0a--查询语句\x0d\x0aselect r.rId,sj.sjId,sj.sjName,su.sId,su.sName,r.result \x0d\x0afrom [成绩表表名] r,\x0d\x0ajoin [科目表表名] sj on sj.sjId=r.sjId,\x0d\x0ajoin [学生表表名] su on su.sId=r.sId;

C语言学生成绩管理系统代码

#includestdio.h

#includestring.h

//外部函数声明

void menu();

void line();

/* 定义全局变量其中n代表学生人数,ave[5]代表每科成绩的平均分,high[5]每科成绩的最高分,

min[5]代表每科成绩的最低分,student_ave[100]代表每个学生五门成绩的平均分*/

int n,i,j;

float ave[5]={0},high[5]={0},min[5]={0},student_ave[100];

//定义全局结构体

struct student

{

long int num; //学生学号

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

float score[5]; //学生成绩

}stu[100];

//主函数开始

int main()

{

void enter(); //enter:输入学生成绩函数(这是函数声明)

void export(); //export:输出学生成绩函数(这是函数声明)

void stat(); //stat:学生成绩统计函数(这是函数声明)

void rank(); //rank:学生成绩排名函数(这是函数声明)

void query(); //query:学生成绩查询函数(这是函数声明)

//定义内部变量

//界面框架

menu();

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

printf("请根据以下提示命令字符进行操作!\n");

printf("q:退出 a:成绩输入 p:成绩输出 s:成绩统计 w:成绩排名 t:成绩查询\n");

menu();

//函数调用,选择成绩管理方式

printf("请选择成绩管理方式");

while(1)

{

char c;

printf("\n");

scanf("%c",c);

if (c=='q') printf("这是退出学生成绩管理信息系统函数\n\n");break;

switch(c)

{

case'a':enter();break;

case'p':export(); break;

case's':stat();break;

case'v':rank();break;

case't':query();break;

default:("命令无效,请重新输入!\n");

}

}

return 0;

}

//主函数部分结束

//定义函数

void menu()

{

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

}

//定义下划线函数

void line()

{

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

}

//定义学生成绩输入函数开始

void enter()

{

menu();

printf("学生成绩输入\n请按以下格式进行数据输入\n");

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

printf(" 学号 学生姓名\n");

printf("请输入学生成绩 ");

printf(" A成绩 B成绩 C成绩 D成绩 E成绩\n");

printf("例如\n请输入学生学号姓名");

printf("2012060402,张三\n");

printf("请输入学生成绩 ");

printf("95.5,97.0,89.0,92.0,85.0\n");

menu();

//输入学生成绩格式备注

printf("\n请输入学生人数 ");

scanf("%d",n);

//用for循环输入学生成绩

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

{

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

scanf("%ld,%s",stu[i].num,stu[i].name);

printf("请输入学生成绩 ");

scanf("%f",stu[i].score[0]);

scanf("%f",stu[i].score[1]);

scanf("%f",stu[i].score[2]);

scanf("%f",stu[i].score[3]);

scanf("%f\n",stu[i].score[4]);

getchar();

student_ave[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4])/5;

//用for循环计算每科成绩z总分

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

{

ave[j]=ave[j]+stu[i].score[j];

}

//用for循环得出每科成绩最高分

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

{

if(high[j]=stu[i].score[j])

{

high[j]=stu[i].score[j];

}

}

//用for循环得出每科成绩最低分

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

{

if(i==0)

{

min[j]=stu[i].score[j];

}

if(min[j]=stu[i].score[j])

{

min[j]=stu[i].score[j];

}

}

}

//学生成绩输入完成

//用for循环计算每科成绩平均分

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

{

ave[j]=ave[j]/n;

}

getchar();

menu();

printf("\n");

}

//定义学生成绩输入函数结束

//定义学生成绩输出函数开始

void export()

{

int i;

printf(" 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E\n");

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

{

printf("%9ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f\n",stu[i].num,stu[i].name,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);

}

menu();

}

//定义学生成绩输出函数结束

//定义学生成绩统计函数开始

void stat()

{

printf("各科平均成绩如下!\n");

line();

printf("\n");

printf(" 成绩A 成绩B 成绩C 成绩D 成绩E\n");

//这是每科成绩平均分

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

{

printf(" %6.1f ",ave[i]);

}

printf("\n");

printf("\n");

//只是每科成绩的最高分

printf("各科最高分如下!\n");

line();

printf("\n");

printf(" 成绩A 成绩B 成绩C 成绩D 成绩E\n");

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

{

printf(" %6.1f ",high[j]);

}

printf("\n");

printf("\n");

//这是每科成绩最低分

printf("各科最低分如下!\n");

line();

printf("\n");

printf(" 成绩A 成绩B 成绩C 成绩D 成绩E\n");

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

{

printf(" %6.1f ",min[i]);

}

printf("\n");

printf("\n");

}

//定义学生成绩统计函数结束

//定义学生成绩排名函数开始

void rank()

{

int k=1,z;

float t=0;

float student_high[100]={0};

printf("学生成绩排名如下:\n\n");

line();

printf("\n");

printf("名次 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E 平均分 \n");

//把每个学生五门课的成绩按从大到小的顺序排列并存在数组student_high[]中去

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

{

student_high[i]=student_ave[i];

}

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

{

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

{

if(student_high[i]=student_high[i+1])

{

t=student_high[i+1];

student_high[i+1]=student_high[i];

student_high[i]=t;

}

}

}

//按成绩排名输出学生成绩信息

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

{

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

{

if(student_high[i]==student_high[i+1])

{

i++;

}

if(student_high[i]==student_ave[j])

{

printf("%d %ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f %7.1f\n",k,stu[j].num,stu[j].name,

stu[j].score[0],stu[j].score[1],stu[j].score[2],stu[j].score[3],stu[j].score[4],student_ave[j]);

for(z=j+1;zn;z++)

{

if(student_high[i]==student_ave[z])

{

k++;

}

}

}

}

k++;

}

line();

printf("\n");

}

//定义学生成绩排名函数结束

//定义学生成绩查询函数开始

void query()

{

//查询成绩格式

char c2,shu_name[20]; //c2代表查询成绩控制字符。shu_name[]代表输入查询姓名,shu_num代表输入查询学号

int shu_num;

menu();

printf("学生成绩查询\n请按以下方式查询\na:按学生姓名查询 b:按学生学号查询 q:退出\n");

menu();

printf("\n\n");

//选择查询方式

while(c2!='q')

{

printf("请选择查询成绩方式");

scanf("%c",c2);

getchar();

//按姓名查询成绩

if(c2=='a')

{

line();

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

scanf("%s",shu_name);

getchar();

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

{

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

{

printf(" 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E\n");

printf("%ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f\n",stu[i].num,stu[i].name,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);

}

else if(shu_name!=stu[i].namei==(n-1))

{

printf("无此学生成绩\n");

}

}

line();

printf("\n");

}

//按学号查询成绩

else if(c2=='b')

{

line();

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

scanf("%d",shu_num);

getchar();

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

{

if(shu_num==stu[i].num)

{

printf(" 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E\n");

printf("%ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f\n",stu[i].num,stu[i].name,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);

}

else if(shu_num!=stu[i].numi==(n-1))

{

printf("无此学生成绩\n");

}

}

line();

printf("\n");

}

}

line();

printf("\n\n");

}

//定义学生成绩查询函数结束

c语言程序学生成绩管理系统源代码

头文件:::

#ifndef H_STUDENT_HH

#define H_STUDENT_HH

#include "stdio.h"

#include "string.h"

#include "malloc.h"

#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/

#define numsubs 5 /*学科数目*/

typedef struct message_student /*结构体定义*/

{

char number[6];

char name[20];

char sex[4];

float subject[numsubs];

float score;

float average;

int index;

}student;

extern int numstus; /*学生数目*/

extern student *pointer; /*指向结构体数组*/

extern int lens;

int menu_select(); /*函数声明*/

int openfile(student stu[]);

int findrecord(student stud[]);

int writetotext(student stud[]);

void welcome();

void display1();

void showtable();

void sort(student stu[]);

void deleterecord(student stu[],int i);

void addrecord(student stud[]);

void display(student stud[],int n1,int n2);

void amendrecord(student stud[]);

void count(student stud[]);

void sortnum(student stud[]);

void sortnum2(student stud[]);

void sortname(student stud[]);

void sortname2(student stud[]);

void sortcount(student stud[]);

void sortcount2(student stud[]);

void statistic(student stud[]);

void display1();

#endif

#include "head.h"

int menu_select()

{

char c;

printf("\n\n");

printf(" | 1. 增加学生记录 5.统计信息 |\n");

printf(" | 2. 查询学生记录 6.打开文件 |\n");

printf(" | 3. 修改学生记录 7.保存文件 |\n");

printf(" | 4. 学生纪录排序 8.显示记录 |\n");

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

printf("\n\n");

printf("请选择(0-8):");

c=getchar();

getchar();

return (c-'0');

}

#include "head.h"

int findrecord(student stud[]) /*查找信息*/

{

char str[2];

int i,num;

if(numstus==0)

{

printf("没有可被查找的记录\n");

return -1;

}

else

{

printf("以何种方式查找?\n1.学号\t2.姓名\t3.名次\n");

gets(str);

if(str[0]=='1') /*按学号查找*/

{

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

gets(str);

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

if(strcmp(str,stud[i].number)==0)

{

display(stud,i,i);

break;

}

else continue;

}

else if(str[0]=='2') /*按姓名查找*/

{

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

gets(str);

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

if(strcmp(str,stud[i].name)==0)

{

display(stud,i,i);

break;

}

else continue;

}

else if(str[0]=='3') /*按名次查找*/

{

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

scanf("%d",num);

getchar();

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

if(num==stud[i].index)

{

display(stud,i,i);

break;

}

else continue;

}

if(inumstus)

{

printf("没有查找所要的信息。\n");

return -1;

}

return i;

}

}

#include"head.h"

int openfile(student stu[])

{

int i=0,j;

FILE *fp;

char filename[20],str[2];

if(numstus!=0)

{

printf("已经有记录存在,是否保存?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

writetotext(stu);

}

printf("请输入文件名:");

gets(filename);

numstus=0;

if((fp=fopen(filename,"rb+"))==NULL)

{

printf("无法打开该文件\n");

return(-1);

}

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

fgetc(fp);

while(inumstus)

{

fscanf(fp,"%s",stu[i].number);

fscanf(fp,"%s",stu[i].name);

fscanf(fp,"%s",stu[i].sex);

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

fscanf(fp,"%f",stu[i].subject[j]);

fscanf(fp,"%f",stu[i].score);

fscanf(fp,"%f",stu[i].average);

fscanf(fp,"%d",stu[i].index);

i++;

}

fclose(fp);

printf("文件读取成功\n");

printf("是否显示纪录?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

display(stu,0,numstus-1);

return(0);

}

#include "head.h"

void sort(student stud[])

{

int i,j=0;

char str[5];

student *p;

p=stud;

if(numstus==0)

{

printf("没有可供查询的记录!");

}

while(1)

{

for(i=0i++)

{

printf(" 请输入查询方式:");

printf("(直接输入回车则结束查询操作)\n");

printf("1.按照学号\t");

printf("2.按照姓名\t");

printf("3.按照名次\n");

gets(str);

if(strlen(str)==0) break;

if(str[0]=='1')

{

printf("请输入排序次序:\n");

printf("1.升序排列\t");

printf("2.降序排列\n");

gets(str);

if(str[0]=='1')

sortnum2(p);

else

sortnum(p);

display(stud,0,numstus-1);

}

else if(str[0]=='2')

{

printf("请输入排序次序:\n");

printf("1.升序排列\t");

printf("2.降序排列\n");

gets(str);

if(str[0]=='1')

sortname2(p);

else

sortname(p);

display(stud,0,numstus-1);

}

else if(str[0]=='3')

{

printf("请输入排序次序:\n");

printf("1.升序排列\t");

printf("2.降序排列\n");

gets(str);

if(str[0]=='1')

sortcount2(p);

else

sortcount(p);

display(stud,0,numstus-1);

}

else printf("请输入1~3");

printf("是否退出排序?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y') break;

}

return;

}

}

void sortnum(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

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

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j+1].number,stud[j].number)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortnum2(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

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

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j].number,stud[j+1].number)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortname(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

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

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j+1].name,stud[j].name)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortname2(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

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

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j].name,stud[j+1].name)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortcount(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

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

for(j=0;jnumstus-i-1;j++)

{

if(stud[j+1].indexstud[j].index)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortcount2(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

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

for(j=0;jnumstus-i-1;j++)

{

if(stud[j].indexstud[j+1].index)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

#include"head.h"

void statistic(student stud[]) /*新增功能,输出统计信息*/

{

int i,j=0,k=0;

char c1,str[2];

float average[numsubs],sum=0;

if(numstus==0)

printf("没有可被查找的记录\n");

else

{

while(1)

{

printf("下面将统计考试成绩\n");

printf("请选择你要统计哪科的成绩 1.A\t2.B\t3.C\t4.D\t5.E\n");

c1=getchar();

printf("\t一共有个%d记录\n",numstus); /*总共记录数*/

switch(c1)

{

case '1':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[0];

if(stud[k].subject[0]stud[i].subject[0]) k=i;

if(stud[j].subject[0]stud[i].subject[0]) j=i;

}

average[0]=sum/numstus;

printf("\t科目A的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[0]);

printf("\t科目A的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[0]);

printf("\t科目A的平均分是 %5.2f\n",average[0]); /*平均分*/

break;

case '2':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[1];

if(stud[k].subject[1]stud[i].subject[1]) k=i;

if(stud[j].subject[1]stud[i].subject[1]) j=i;

}

average[1]=sum/numstus;

printf("\t科目B的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[1]);

printf("\t科目B的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[1]);

printf("\t科目B的平均分是 %5.2f\n",average[1]); /*平均分*/

break;

case '3':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[2];

if(stud[k].subject[2]stud[i].subject[2]) k=i;

if(stud[j].subject[2]stud[i].subject[2]) j=i;

}

average[2]=sum/numstus;

printf("\t科目C的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[2]);

printf("\t科目C的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[2]);

printf("\t科目C的平均分是 %5.2f\n",average[2]); /*平均分*/

break;

case '4':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[3];

if(stud[k].subject[3]stud[i].subject[3]) k=i;

if(stud[j].subject[3]stud[i].subject[3]) j=i;

}

average[3]=sum/numstus;

printf("\t科目D的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[3]);

printf("\t科目D的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[3]);

printf("\t科目D的平均分是 %5.2f\n",average[3]); /*平均分*/

break;

case '5':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[4];

if(stud[k].subject[4]stud[i].subject[4]) k=i;

if(stud[j].subject[4]stud[i].subject[4]) j=i;

}

average[4]=sum/numstus;

printf("\t科目E的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[4]);

printf("\t科目E的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[4]);

printf("\t科目E的平均分是 %5.2f\n",average[4]); /*平均分*/

break;

default:printf("输入错误!请输入1~5之间的数\n");

}

sum=0;

getchar();

printf("是否继续进行统计?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y') ;

else break;

}

}

}

#include"head.h"

int writetotext(student stud[]) /*将所有记录写入文件*/

{

int i=0,j;

FILE *fp;

char filename[20];

printf("输入文件名称:");

gets(filename);

fp=fopen(filename,"w");

fprintf(fp,"%d\n",numstus);

while(inumstus)

{

fprintf(fp,"%s %s %s ",stud[i].number,stud[i].name,stud[i].sex);

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

fprintf(fp,"%f ",stud[i].subject[j]);

fprintf(fp,"%f %f %d ",stud[i].score,stud[i].average,stud[i].index);

i++;

}

fclose(fp);

printf("已成功存储!\n");

display(stud,0,numstus-1);

numstus=0;

return 0;

}

#include"head.h"

void welcome()

{

printf("\t*************************************************************\n");

printf("\t\t\t\t这是一个学生成绩管理系统\n\t\t\t\t 倾情奉献 欢迎使用!\n");

printf("\t*************************************************************\n");

}

void showtable()

{

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

printf("学号\t姓名\t性别\tA\tB\tC\tD\tE\t总分\t平均分\t名次\n");

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

}

void display(student stud[],int n1,int n2)

{

int i;

showtable(); /*显示表头*/

for(i=n1;i=n2;i++)

printf("%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].score,stud[i].average,stud[i].index);

/*通过循环输出数据*/

}

void display1()

{

printf("\t\t本系统由计应精英一组亲情制作\n\n");

printf("\t\t制作人员列表: (按比划)\n");

printf("\t\t王庆斌\t\t\t张威\n\t\t李智\t\t\t周在峰\n\t\t杨凯\t\t\t胡杨\n");

printf("\n\n");

getchar();

}

#include"head.h"

#includestring.h

void amendrecord(student stud[])

{

char str[5]; /*供用户输入*/

int i=-1,j;

if(numstus==0) /*没有记录返回*/

printf("没有可供修改的记录!");

while(i0)

{

i=findrecord(stud);

if(i=0)

{

printf("要删除这个学生的信息吗?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

{

deleterecord(stud,i);

count(stud);

}

else

{

printf("确定要修改这个学生的信息吗?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

{

printf("下面请重新输入学生的信息:\n");

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

gets(stud[i].number);

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

gets(stud[i].name);

printf("请输入性别(男/女 1/0):");

gets(str);

if(str[0]=='0')

strcpy(stud[i].sex,"女");

else

strcpy(stud[i].sex,"男");

stud[i].score=0;

printf("请按顺序输入成绩:");

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

{

scanf("%f",stud[i].subject[j]);

stud[i].score+=stud[i].subject[j];

}

getchar();

stud[i].average=stud[i].score/numsubs;

}

count(stud);

}

display(stud,0,numstus-1);

}

printf("是否继续进行其他修改?(y/n)\n");

gets(str);

if(str[0]=='y'||str[0]=='Y')

i=-1;

else i=1;

}

}

void deleterecord(student stu[],int i) /*删除信息*/

{

int j;

while(i=0)

{

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

stu[j]=stu[j+1];

numstus--;

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

}

}

void count(student stud[])

{

int i,j;

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

{

stud[i].index=1;

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

if(stud[j].scorestud[i].score)

stud[i].index++;

}

}

#include "head.h"

void addrecord(student stud[])

{

int i=0,j,num;

char str[5];

if(numstus!=0)

{

printf("已有记录存在是否覆盖?(y/n)\n");

gets(str);

if(str[0]=='Y'||str[0]=='y')

i=0;

else i=numstus;

}

printf("请输入增加的学生信息条目数:");

scanf("%d",num);

if(i==0)

numstus=num;

else numstus+=num;

if(numstuslens)

{

lens+=50;

pointer=(student *)realloc(pointer,lens*LEN);

}

printf("请输入学生信息:\n");

for(;inumstus;i++)

{

getchar();

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

gets(pointer[i].number);

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

gets(pointer[i].name);

printf("请输入性别(男/女 1/0):");

gets(pointer[i].sex);

if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");

else strcpy(pointer[i].sex,"男");

printf("请输入各科成绩:(按ABCDE的顺序):");

stud[i].score=0;

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

{

scanf("%f",stud[i].subject[j]); /*计算总分*/

stud[i].score+=stud[i].subject[j];

}

stud[i].average=stud[i].score/numsubs; /*计算平均分*/

}

count(stud); /*附名次*/

display(stud,0,numstus-1);

getchar();

}#include "head.h"

int numstus;

int lens;

student *pointer;

void main()

{

int i=1;

char str[2];

lens=100;

pointer=(student *)malloc(lens*LEN); /*分配内存*/

numstus=0;

welcome(); /*欢迎界面*/

while(i0)

{

i=menu_select(); /*控制菜单*/

switch(i)

{

case 1:addrecord(pointer);break; /*增加学生信息*/

case 2:findrecord(pointer);break; /*查询学生信息*/

case 3:amendrecord(pointer);break; /*修改学生信息*/

case 4:sort(pointer);break; /*学生信息排序*/

case 5:statistic(pointer);break; /*统计信息*/

case 6:openfile(pointer);break; /*打开文件*/

case 7:writetotext(pointer);break; /*保存文件*/

case 8:display(pointer,0,numstus-1);break; /*显示记录*/

case 0:

if(numstus!=0) printf("是否保存当前记录?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

writetotext(pointer);

i=-1;break; /*退出系统*/

default:printf("请输入数字0~8:\n");i=1; /*输入错误*/

}

}

printf("\t\t欢迎再次使用本系统。\n\n");

display1();

}

自己一改就能用,给我加分哈!

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

扫描二维码推送至手机访问。

版权声明:本文由我的模板布,如需转载请注明出处。


本文链接:http://390c.top/post/1927.html

分享给朋友:

“学生成绩查询系统数据库代码(学生成绩管理系统数据库代码)” 的相关文章

java怎么导出项目(java导出)

java怎么导出项目(java导出)

今天给各位分享java怎么导出项目的知识,其中也会对java导出进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、java项目导出excel 2、java项...

零元手游ap(零元手游激活码)

零元手游ap(零元手游激活码)

今天给各位分享零元手游ap的知识,其中也会对零元手游激活码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、什么手游适合0元党玩家 2、问道手游零元党怎么玩...

一场2小时的直播要多少流量(一场两小时的直播需要多少流量)

一场2小时的直播要多少流量(一场两小时的直播需要多少流量)

本篇文章给大家谈谈一场2小时的直播要多少流量,以及一场两小时的直播需要多少流量对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、手机看电视直播一小时要多少流量? 2、两个...

手机卡分销系统源码(发卡系统分销版)

手机卡分销系统源码(发卡系统分销版)

本篇文章给大家谈谈手机卡分销系统源码,以及发卡系统分销版对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、谁有用过微分销源码比较靠谱的?要免费的那种 2、分销系统开发用的...

app制作软件手机版结婚证(结婚证制作 手机 app)

app制作软件手机版结婚证(结婚证制作 手机 app)

本篇文章给大家谈谈app制作软件手机版结婚证,以及结婚证制作 手机 app对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、用什么软件可以做结婚照,有什么软件可以将普通的照片...

网络影片发行许可证(网络影片发行许可证怎么办理)

网络影片发行许可证(网络影片发行许可证怎么办理)

本篇文章给大家谈谈网络影片发行许可证,以及网络影片发行许可证怎么办理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、网络剧片发行许可证明六月起全面发放,该证有何重要作用?...