当前位置:首页 » 考试成绩 » 数据库学生成绩管理源代码

数据库学生成绩管理源代码

发布时间: 2021-01-11 10:43:20

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

#include<stdio.h>
#include<stdlib.h>
#defineFILENAME"student.dat"
typedefenum{MAN,WOMAN}SEX;
typedefstructtagStudent
{
intnum; //学生的编号
charname[20]; //学生的姓名
SEX sex; //学生的性别
intage; //学生的年龄
charmajor[20]; //学生的专业
structtagStudent*next;//下一个节点的指针
}STUDENT,*PSTUDENT;
STUDENTg_head; //头节点
//1.显示菜单
voidShowMenu();
//2.获取用户选择的菜单的编号
intGetMenuChoose();
//3.创建一个节点,它会返回一个新创建的学生信息节点的指针
PSTUDENTCreateStudent();
//4.把学生信息节点加入到链表中
intAddStudent(PSTUDENTpstu);
//5.返回指定编号学生节点的上一个节点的指针
PSTUDENTGetPrevAddr(intnum);
//6.显示所有学生信息
voidShowAll();
//7.显示信息数量
intShowStudentCount();
//8.修改学生信息,参数为要修改的学生的编号
voidModityStudent(intnum);
//9.获取用户的选择
intQuestion(constchar*pstr);
//10.获取用户输入的学生的编号
intGetInputNum();
//11.删除编号为num的学生信息
voidDelStudent(intnum);
//12.删除所有的学生信息
voidDelAll();
//13.把学生信息保存到文件当中
voidSaveToFile();
//14.从文件中读取学生信息
voidLoadFromFile();
intmain()
{
intrunning=1;
while(running)
{
switch(GetMenuChoose())
{
case0:
running=0;
break;
case1:
// printf("你选择了菜单1 ");
AddStudent(CreateStudent());
break;
case2:
// printf("你选择了菜单2 ");
DelStudent(GetInputNum());
break;
case3:
printf("你选择了菜单3 ");
break;
case4:
// printf("你选择了菜单4 ");
ModityStudent(GetInputNum());
break;
case5:
// printf("你选择了菜单5 ");
DelAll();
break;
case6:
// printf("你选择了菜单6 ");
ShowAll();
break;
case7:
// printf("你选择了菜单7 ");
ShowStudentCount();
break;
case8:
// printf("你选择了菜单8 ");
LoadFromFile();
break;
case9:
// printf("你选择了菜单9 ");
SaveToFile();
break;
}
system("pause");
}

return0;
}
//1.显示菜单
voidShowMenu()
{
system("cls");
printf("-----------------------------学生管理系统-------------------------------- ");
printf(" 1.添加学生信息2.删除某个学生信息3.显示某个学生信息 ");
printf(" 4.修改学生信息5.删除所有学生信息6.显示所有学生信息 ");
printf(" 7.显示信息数量8.读取文件学生信息9.保存学生信息至文件 ");
printf(" 0.退出系统 ");
printf(" ------------------------------------------------------------------------- ");
}
//2.获取用户选择的菜单的编号
intGetMenuChoose()
{
intnum;//保存用户选择的菜单编号
ShowMenu();
printf("请选择菜单(0~9):");
while(1!=scanf("%d",&num)||num<0||num>9)
{
ShowMenu();
printf("选择菜单错误,请重新选择(0~9):");
fflush(stdin);//清空输入缓冲区
}
returnnum;
}
//3.创建一个节点,它会返回一个新创建的学生信息节点的指针
PSTUDENTCreateStudent()
{
intsex;
PSTUDENTpstu=(PSTUDENT)malloc(sizeof(STUDENT));//在堆内存申请空间,存储学生信息
if(!pstu)
{
printf("申请内存空间失败! ");
returnNULL;
}
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;
returnpstu;
}
//4.把学生信息节点加入到链表中
intAddStudent(PSTUDENTpstu)
{
PSTUDENTps=&g_head;
if(!pstu)
{
return0;
}
//判断一下该学生信息是不是已经存在
if(GetPrevAddr(pstu->num))
{
printf("编号为%d的学生信息已经存在! ",pstu->num);
free(pstu);//释放该节点内存空间
return0;
}
//while循环的作用是找到当前链表的最后一个节点
while(ps->next)
ps=ps->next;
//把新节点加入到最后那个节点的后面
ps->next=pstu;
pstu->next=NULL;
return1;
}
//5.返回指定编号学生节点的上一个节点的指针
PSTUDENTGetPrevAddr(intnum)
{
PSTUDENTpstu=&g_head;
while(pstu->next)
{
if(pstu->next->num==num)
returnpstu;
pstu=pstu->next;
}
returnNULL;
}
//6.显示所有学生信息
voidShowAll()
{
PSTUDENTpstu=&g_head;
printf("-------------------------------------------------------------------- ");
printf("编号姓名性别年龄专业 ");
printf("-------------------------------------------------------------------- ");
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 ",pstu->next->major);
pstu=pstu->next;//让指针指向下一个节点
}
printf("-------------------------------------------------------------------- ");
}
//7.显示信息数量
intShowStudentCount()
{
intcount=0;
PSTUDENTpstu=&g_head;
while(pstu->next)
{
++count;
pstu=pstu->next;
}
printf(" 当前共有%d位学生信息。 ",count);
returncount;
}
//8.修改学生信息,参数为要修改的学生的编号
voidModityStudent(intnum)
{
PSTUDENTpstu=GetPrevAddr(num);//获取要修改的学生节点的上一个节点
intchoose;
if(!pstu)
{
printf("没有编号为%d的学生信息。 ",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("修改完毕! ");
}
//9.获取用户的选择
intQuestion(constchar*pstr)
{
charanswer;
printf("%s请选择(yorn):",pstr);
while(1!=scanf("%c",&answer)||(answer!='y'&&answer!='n'))
{
printf("输入错误!%s请重新选择(yorn):",pstr);
fflush(stdin);//清空输入缓冲区,C库函数
}
if('y'==answer)
return1;
else
return0;
}
//10.获取用户输入的学生的编号
intGetInputNum()
{
intnum;
printf("请输入学生的编号(整型):");
while(1!=scanf("%d",&num))
{
printf("编号输入错误!请重新输入学生的编号(整型):");
fflush(stdin);
}
returnnum;
}
//11.删除编号为num的学生信息
voidDelStudent(intnum)
{
PSTUDENTpstu,ptmp;
if(pstu=GetPrevAddr(num))
{
if(!Question("确定要删除该学生信息吗?"))
{
return;
}
ptmp=pstu->next;
pstu->next=ptmp->next;
free(ptmp);
printf("删除了编号为%d的学生信息。 ",num);
}
else
{
printf("没有找到编号为%d的学生信息。 ",num);
}
}
//12.删除所有的学生信息
voidDelAll()
{
PSTUDENTpstu=g_head.next,ptmp;
intcount=0;
if(!Question("确定要删除当前所有的学生信息吗?"))
{
return;
}
while(pstu)
{
ptmp=pstu;
pstu=pstu->next;
free(ptmp);
++count;
}
printf("共删除了%d位学生信息。 ",count);
g_head.next=NULL;
}
//13.把学生信息保存到文件当中
voidSaveToFile()
{
FILE*pf=fopen(FILENAME,"wb");
PSTUDENTpstu=&g_head;
inti=0,count=ShowStudentCount();
if(!pf)
{
printf("打开待写入的文件失败! ");
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条学生信息。 ",count);
}
else
{
printf("应写入%d条学生信息,实际写入%d条学生信息。 ",count,i);
}
}
//14.从文件中读取学生信息
voidLoadFromFile()
{
inti,count=0,repeat=0;
FILE*pf;
PSTUDENTpstu;
printf("提示:从文件中读取学生信息会询问是否清空当前学生信息(不清空表示合并所有信息)。 ");
if((pf=fopen(FILENAME,"rb"))==NULL)
{
printf("文件还没有创建,请手工输入学生信息并保存吧! ");
return;
}
DelAll();//删除之前的所有学生信息,然后从文件中读取
fread(&count,1,sizeofcount,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条。 ",count-repeat);
}

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

㈡ 学生成绩管理 c语言源代码

#include <time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 80
void input();
void sort();
void display();
void insert();
void del();
void average();
void find();
void save();
void read();
void del_file();
void average();
void modify();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
int as;
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");display();break;
case 3:system("cls");sort();break;
case 4:system("cls");insert();break;
case 5:system("cls");del();break;
case 6:system("cls");modify();break;
case 7:system("cls");find();break;
case 8:system("cls");read();break;
case 9:system("cls");del_file();break;
case 10:system("cls");save();break;
case 11:system("exit");exit(0);
default:system("cls");goto start;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void average()/*求平均数*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20],as;
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
system("cls");
}

void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i<MAX&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause");
system("cls");
}

void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}

㈢ 学生成绩管理系统,C++源代码

呵呵,好像每个学校的课程设计都差不多

LZ的比我们当时的难一些

㈣ c++编程学生成绩管理系统源代码

我有一个,不过稍微有点不一样,是回答以前的一个同学的问题给编的,
等会回我宿舍给你传过去,你自己改改
模块都构建好了是类结构的,不知道你要不???
哎!!好像不可以存文件里,不合要求哦。。。。。
以下是代码:
c++ vc6.0或7.0下代码是

#include <iostream>
#include <string.h>
using namespace std;
//构造学生类 属性有:学号,姓名,年龄,性别,班级号
class CStudent
{
public: //公有类型声明

char strName[12]; //姓名
char strStuNO[9]; //学号
unsigned int age; //年龄
bool isman; //性别

void SetScore(float s1,float s2,float s3)
//成员函数,设置三门课成绩
{
fScore[0]=s1;
fScore[1]=s2;
fScore[2]=s3;
}
float GetAverage(); //均分

CStudent(char str[9]) //第一个构造函数
{
strcpy(strStuNO,str);
}
CStudent(char str[9],char Name[12]) //第二个构造函数
{
strcpy(strStuNO,str);
strcpy(strName,Name);
}
//利用下面构造函数初始化年龄为18
CStudent(unsigned int IN_age) //第三个构造函数,
{
age=IN_age;
}
friend unsigned long int CIn(CStudent &CStu );

private:
float fScore[3];
enum{ClassNum = 20080715 };
//static const unsigned long int ClassNum=20080715;
//班级号:你可以自己修改2008级07系15班,嘎嘎
//将上面数字改一下
};

float CStudent::GetAverage()
{
return (float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
unsigned long int CIn(CStudent &CStu )
{unsigned long int n;
n=CStu.ClassNum;

return n;
}
void main()
{
const unsigned long int ClassNum=20080715;

unsigned long int n;
int AgeIn;
char str1[9];
char str2[9],strN[12];
cout<<"*****************************************************"<<endl;
cout<<"** C++学生类的构造 **"<<endl;
cout<<"*****************************************************"<<endl;
//以下是调用,为简化问题,只输入三个同学

cout<<"调用一个参数的构造函数,请输入学号:"<<endl;
cin>>str1;
CStudent Onestu(str1);
cout<<"你输入的学号为:"<<str1<<endl;
cout<<"第一位同学信息建立啦!"<<endl;
system("pause");
//第二个同学信息
cout<<"调用两个参数的构造函数,请输入学号:"<<endl;
cin>>str2;
cout<<"请输入姓名:"<<endl;
cin>>strN;
CStudent Twostu(str2,strN);
cout<<"你输入的学号为:"<<str2<<endl;
cout<<"你输入的姓名为:"<<strN<<endl;
cout<<"第二位同学信息建立啦!"<<endl;
system("pause");
//初始化年龄为18
cout<<"你可以输入年龄,建立以年龄为参数的对象:"<<endl;
cout<<"请输入年龄(比如18岁):";
cin>>AgeIn;
CStudent Thrstu(AgeIn);
cout<<"第三位同学信息建立啦!"<<endl;
cout<<"他(她)的年龄为:"<<Thrstu.age<<"岁"<<endl;
n=CIn(Onestu);
cout<<"友元函数声明他们的班级为:"<<n<<endl;
cout<<"*****************************************************"<<endl;
cout<<"** 谢谢使用 **"<<endl;
cout<<"*****************************************************"<<endl;

system("pause");
}

vc2005版本稍微有些不同:

#include <iostream>
#include <string.h>
using namespace std;
//构造学生类 属性有:学号,姓名,年龄,性别,班级号
class CStudent
{
public: //公有类型声明

char strName[12]; //姓名
char strStuNO[9]; //学号
unsigned int age; //年龄
bool isman; //性别

void SetScore(float s1,float s2,float s3)
//成员函数,设置三门课成绩
{
fScore[0]=s1;
fScore[1]=s2;
fScore[2]=s3;
}
float GetAverage(); //均分

CStudent(char str[9]) //第一个构造函数
{
strcpy_s(strStuNO,str);
}
CStudent(char str[9],char Name[12]) //第二个构造函数
{
strcpy_s(strStuNO,str);
strcpy_s(strName,Name);
}
//利用下面构造函数初始化年龄为18
CStudent(unsigned int IN_age) //第三个构造函数,
{
age=IN_age;
}
friend unsigned long int CIn(CStudent &CStu );

private:
float fScore[3];
static const unsigned long int ClassNum=20080715;
//班级号:你可以自己修改2008级07系15班,嘎嘎
//将上面数字改一下
};

float CStudent::GetAverage()
{
return (float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
unsigned long int CIn(CStudent &CStu )
{unsigned long int n;
n=CStu.ClassNum;

return n;
}
void main()
{
unsigned long int n;
int AgeIn;
char str1[9];
char str2[9],strN[12];
cout<<"*****************************************************"<<endl;
cout<<"** C++学生类的构造 **"<<endl;
cout<<"*****************************************************"<<endl;
//以下是调用,为简化问题,只输入三个同学

cout<<"调用一个参数的构造函数,请输入学号:"<<endl;
cin>>str1;
CStudent Onestu(str1);
cout<<"你输入的学号为:"<<str1<<endl;
cout<<"第一位同学信息建立啦!"<<endl;
system("pause");
//第二个同学信息
cout<<"调用两个参数的构造函数,请输入学号:"<<endl;
cin>>str2;
cout<<"请输入姓名:"<<endl;
cin>>strN;
CStudent Twostu(str2,strN);
cout<<"你输入的学号为:"<<str2<<endl;
cout<<"你输入的姓名为:"<<strN<<endl;
cout<<"第二位同学信息建立啦!"<<endl;
system("pause");
//初始化年龄为18
cout<<"你可以输入年龄,建立以年龄为参数的对象:"<<endl;
cout<<"请输入年龄(比如18岁):";
cin>>AgeIn;
CStudent Thrstu(AgeIn);
cout<<"第三位同学信息建立啦!"<<endl;
cout<<"他(她)的年龄为:"<<Thrstu.age<<"岁"<<endl;
n=CIn(Onestu);
cout<<"友元函数声明他们的班级为:"<<n<<endl;
cout<<"*****************************************************"<<endl;
cout<<"** 谢谢使用 **"<<endl;
cout<<"*****************************************************"<<endl;

system("pause");
}

以下是运行结果:
*****************************************************
** C++学生类的构造 **
*****************************************************
调用一个参数的构造函数,请输入学号:
0803
你输入的学号为:0803
第一位同学信息建立啦!
请按任意键继续. . .
调用两个参数的构造函数,请输入学号:
0802
请输入姓名:
liming
你输入的学号为:0802
你输入的姓名为:liming
第二位同学信息建立啦!
请按任意键继续. . .
你可以输入年龄,建立以年龄为参数的对象:
请输入年龄(比如18岁):18
第三位同学信息建立啦!
他(她)的年龄为:18岁
友元函数声明他们的班级为:20080715
*****************************************************
** 谢谢使用 **
*****************************************************

㈤ 求简单一点的学生成绩管理系统源代码,谢谢

已经算是很简单的了

#include <time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 80
void input();
void sort();
void average();
void find();
void total();

int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float sum;
};
struct student stu[MAX],*p;

void main()/*主函数*/
{
int as;

/*一下为功能选择模块*/
do
{
printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
printf("\n\t\t\t\t1.信息输入(INPUT)\n\t\t\t\t2.总分统计(COUNT)\n\t\t\t\t3.总分排序(SORT)\n\t\t\t\t4.查询(QUERY)\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");total();break;
case 3:system("cls");sort();break;
case 4:system("cls");find();break;
default:break;
}
}while(1);
/*至此功能选择结束*/
}

void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生学号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩(FOX):");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩(C):");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩(ENGLISH):");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}

void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
char as;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
}
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].sum<stu[j].sum)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}

do{
for(i=0;i<now_no;i++)
{
printf("\t\t\t班级学员信息列表\n");
printf("\t学号\t姓名\t性别\tFOX成绩\tC成绩\tENG成绩\t总分\n");
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void find()/*查询函数*/
{
int i,str;
char as;

do
{
printf("输入要查询的学生学号:");
fflush(stdin);
scanf("%d",&str);
for(i=0;i<now_no;i++)
if(stu[i].no==str)
{
printf("\t学号\t姓名\t性别\tFOX成绩\tC成绩\tENG成绩\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void total()/*求总分*/
{
int i;
char as;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
}

do{
for(i=0;i<now_no;i++)
{
printf("\t\t\t班级学员信息列表\n");
printf("\t学号\t姓名\t性别\tFOX成绩\tC成绩\tENG成绩\t总分\n");
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

㈥ 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(i>numstus)
{
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(i<numstus)
{
fscanf(fp,"%s",stu[i].number);
fscanf(fp,"%s",stu[i].name);
fscanf(fp,"%s",stu[i].sex);
for(j=0;j<numsubs;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=0;;i++)
{
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;i<numstus;i++)
for(j=0;j<numstus-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;i<numstus;i++)
for(j=0;j<numstus-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;i<numstus;i++)
for(j=0;j<numstus-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;i<numstus;i++)
for(j=0;j<numstus-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;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j+1].index>stud[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;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j].index>stud[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;i<numstus;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;i<numstus;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;i<numstus;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;i<numstus;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;i<numstus;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(i<numstus)
{
fprintf(fp,"%s %s %s ",stud[i].number,stud[i].name,stud[i].sex);
for(j=0;j<numsubs;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"
#include<string.h>
void amendrecord(student stud[])
{
char str[5]; /*供用户输入*/
int i=-1,j;

if(numstus==0) /*没有记录返回*/
printf("没有可供修改的记录!");
while(i<0)
{
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;j<numsubs;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;j<numstus;j++)
stu[j]=stu[j+1];
numstus--;
printf("删除成功!\n");

}
}

void count(student stud[])
{
int i,j;
for(i=0;i<numstus;i++)
{
stud[i].index=1;
for(j=0;j<numstus;j++)
if(stud[j].score>stud[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(numstus>lens)
{
lens+=50;
pointer=(student *)realloc(pointer,lens*LEN);
}
printf("请输入学生信息:\n");
for(;i<numstus;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;j<numsubs;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(i>0)
{
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();
}

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

㈦ 用VB怎么编写学生成绩管理系统 要源代码而且和数据库要有联系

你要自己做还是我发给你???代码先给你。。。Public zf1 As Integer
Private Sub cj98_Click()
Dim bh
Data2.RecordSource = "98年成绩"
Data2.Refresh
bh = Data1.Recordset.Fields("编号")
Data2.Recordset.FindFirst ("编号" = bh)
Call zf
Label13 = zf1
End SubPrivate Sub cj99_Click()
Dim bh As Integer
Data2.RecordSource = "99年成绩"
Data2.Refresh
bh = Data1.Recordset.Fields("编号")
Data2.Recordset.FindFirst ("编号" = bh)
Call zf
Label13 = zf1
End SubPrivate Sub Data1_Reposition()
Dim bh As Integer
bh = Data1.Recordset.Fields("编号")
Data2.Recordset.MoveFirst
Do While Data2.Recordset.EOF = False
If Data2.Recordset.Fields("编号") = bh Then
Exit Do
Else
Data2.Recordset.MoveNext
End If
Loop
Call zf
Label13 = zf1
End Sub
Private Sub Z1_Click()
Dim bh
Data1.DatabaseName = "C:\Documents and Settings\Administrator\桌面\db2.mdb"
Data1.Refresh
Data2.DatabaseName = "C:\Documents and Settings\Administrator\桌面\db2.mdb"
Data2.Refresh
bh = Data1.Recordset.Fields("编号")
Data2.Recordset.FindFirst ("编号" = bh)
Call zf
Label13 = zf1
End Sub
Sub zf()
zf1 = Data2.Recordset.Fields("微机原理") + Data2.Recordset.Fields("OFFICE使用") + Data2.Recordset.Fields("五笔字型打字") + Data2.Recordset.Fields("VB编程")
End Sub

㈧ 求“学生成绩管理系统”源代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 50 /*定义符号常量,代表学生人数最大值*/
int count=0; /*全局变量,用于记录数组的当前位置*/
struct student /*定义结构体类型,代表学生信息*/
{
char name[9]; /*学生姓名*/
char number[10]; /*学生学号*/
float math; /*数学成绩*/
float english; /*英语成绩*/
};
void input(struct student *arr); /*函数声明,输入学生信息*/
void sort(struct student *arr); /*函数声明,按总分排序*/
void find(struct student *arr); /*函数声明,查找某位学生信息*/
void main()
{
char selmenu; /*定义局部变量,用于记录用户选择的功能编号*/
struct student stud[N]; /*定义结构体数组,用于记录学生信息*/
do /*利用循环显示界面*/
{
system("cls"); /*清屏函数*/
printf("\n\n");
printf("\t\t\t\t 学生成绩管理系统 \n\n");
printf("\t\t\t\t1.输入学生成绩\n");
printf("\t\t\t\t2.按总分排榜\n");
printf("\t\t\t\t3.查找学生信息\n");
printf("\t\t\t\t4.退出\n\n");
printf("\t\t\t请输入功能选择编号(1-4):");
fflush(stdin); /*清空输入缓冲区*/
scanf("%c",&selmenu); /*接受用户选择的功能编号*/
switch(selmenu) /*输入不同功能编号调用相应函数来完成功能*/
{
case'1':
input(stud); /*调用输入学生信息函数,参数为学生信息数组名*/
break;
case'2':
sort(stud); /*调用按总分排榜函数,参数是数组名*/
break;
case'3':
find(stud); /*调用按学号和姓名查找学生信息函数*/
break;
}
}while(selmenu!='4'); /*判断是否退出*/
printf("\n\n\t\t\t----------------谢谢使用----------------\n\n"); /*输出告别词*/
}
void input(struct student *arr) /*定义输入学生信息函数*/
{
char ch; /*用于接收用户指令*/
do /*利用循环,由用户控制输入学生成绩*/
{
system("cls");
printf("\n输入第%d个学生的信息:\n输入学生姓名:",count+1);
scanf("%s",arr[count].name);
printf("\n输入学生学号:");
scanf("%s",arr[count].number);
printf("\n输入数学成绩:");
scanf("%f",&arr[count].math);
printf("\n输入英语成绩:");
scanf("%f",&arr[count].english);
count++; /*记录当前输入的学生资料的个数*/
printf("\n是否继续输入(y/n)\n");
fflush(stdin); /*清空输入缓冲区*/
ch=getchar();
}while(ch=='y'||ch=='Y'); /*判断用户指令,是否继续输入*/
}
void sort(struct student *arr) /*定义按总分排榜函数*/
{
int i,j,k; /*定义循环变量i,j,最小数位置k*/
struct student t; /*定义交换临时变量*/
if(count==0) /*判断数组中学生成绩是否存在*/
printf("无学生成绩,请先录入学生信息\n");
else
{
for(i=0;i<count-1;i++) /*用选择法按总分对学生成绩排序*/
{
k=i;
for(j=i+1;j<count;j++) /*k为arr[i]到arr[count-1]中最小数的位置*/
if((arr[k].math+arr[k].english)<(arr[j].math+arr[j].english))
k=j;
if(k!=i) /*如果最小数不是比较数列中第一个,对调*/
{
t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
printf("\n总分排榜:\n\n");
printf("\t姓名\t学号\t数学\t英语\t总分\t名次\n");
for(j=0;j<count;j++) /*输出按总分排榜后的学生成绩和名次*/
printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-5d\n",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english,
j+1);
}
printf("\n回车键返回主程序\n");
fflush(stdin);
getchar();
}
void find(struct student *arr) /*定义查找函数*/
{
int j;
char name[9]; /*用于接收用户输入的学生姓名*/
char number[10]; /*用于接收用户输入的学生学号*/
system("cls"); /*清屏函数*/
printf("\n请输入要查找的学生资料:\n");
printf("\n学生姓名:");
scanf("%s",name);
printf("\n学生学号:");
scanf("%s",number);
for(j=0;j<count;j++) /*使用字符串比较函数查找兵书出符合条件的学生成绩*/
{
if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
{
printf("\n\t姓名\t学号\t数学\t英语\t总分\n");
printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\n",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
break;
}
}
if(j>=count) /*如果没找到,会从循环条件退出*/
printf("\n未找到该学生纪录,请核对后重新查找!\n");
fflush(stdin); /*清空输入缓冲区*/
printf("\n回车键返回上一功能菜单\n");
getchar();
}

㈨ 跪求学生成绩管理系统源代码及详细的设计过程和截图

我要是最加,我就告诉你.

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919