学生成绩管理系统.docx

上传人:b****3 文档编号:6566894 上传时间:2023-05-10 格式:DOCX 页数:20 大小:19.40KB
下载 相关 举报
学生成绩管理系统.docx_第1页
第1页 / 共20页
学生成绩管理系统.docx_第2页
第2页 / 共20页
学生成绩管理系统.docx_第3页
第3页 / 共20页
学生成绩管理系统.docx_第4页
第4页 / 共20页
学生成绩管理系统.docx_第5页
第5页 / 共20页
学生成绩管理系统.docx_第6页
第6页 / 共20页
学生成绩管理系统.docx_第7页
第7页 / 共20页
学生成绩管理系统.docx_第8页
第8页 / 共20页
学生成绩管理系统.docx_第9页
第9页 / 共20页
学生成绩管理系统.docx_第10页
第10页 / 共20页
学生成绩管理系统.docx_第11页
第11页 / 共20页
学生成绩管理系统.docx_第12页
第12页 / 共20页
学生成绩管理系统.docx_第13页
第13页 / 共20页
学生成绩管理系统.docx_第14页
第14页 / 共20页
学生成绩管理系统.docx_第15页
第15页 / 共20页
学生成绩管理系统.docx_第16页
第16页 / 共20页
学生成绩管理系统.docx_第17页
第17页 / 共20页
学生成绩管理系统.docx_第18页
第18页 / 共20页
学生成绩管理系统.docx_第19页
第19页 / 共20页
学生成绩管理系统.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统.docx

《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(20页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统.docx

学生成绩管理系统

学生成绩管理系统,功能:

查询、显示记录,删除、添加记录.环境VC++6.0.

本系统由1个ACCESS数据库、3个查询、14个表单、1个菜单、6个程序组成。

1)数据库组成:

数据表3个:

学生表:

Student(5个字段:

编号,学号,姓名,班级名称),其中有两个班各5名学生的记录;

课程表:

Text(3个字段:

编号,班级名称,课程名称),其中有4门课的记录;

成绩表:

Grade(5个字段:

编号,学号,姓名,课程名称,成绩),其中有12条学生成绩的记录。

2)查询组成:

查询学生、按班级查询成绩、按课程查询成绩

3)表单组成:

主界面表单、退出表单、学生表单、课程表单、成绩表单(按学好分类和安课程分类)、查询学生表单、查询成绩表单、总浏览表单、浏览学生表单、浏览成绩表单、系统信息表单、设置口令表单集、修改表单界面。

4)菜单组成:

主菜单由系统、基本信息、视图、窗口、帮助和退出组成。

5)程序组成:

主程序、统计全体学生概况、按班级统计学生概况、统计全体成绩概况、按班级统计各门课成绩、按课程统计各班学生的成绩。

环境VC++6.0.

#include

#include

#include

structstud

{

longnum;

charname[20];

doublescore;

};

typedefstructstucode

{

structstudstudent;

structstucode*next;

}L;

 

voidmenu();

voidcreatelist(structstucode**r);

voidout(structstucode*r);

voidsearch1(structstucode*r);

voidsearch2(structstucode*r);

voiddel(structstucode**r);

voidinsert(structstucode**r);

voidsort(structstucode**r);

voidmain()

{

charchoose;

intflag=1;

structstucode*r=NULL;

while(flag)

{

system("cls");

menu();

choose=getchar();

switch(choose)

{

case'1':

createlist(&r);

out(r);

printf("Testingfunction1\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'2':

search1(r);

printf("Testingfunction1\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'3':

search2(r);

printf("Testingfunction1\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'4':

del(&r);

out(r);

printf("Testingfunction1\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'5':

insert(&r);

out(r);

printf("Testingfunction1\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'6':

sort(&r);

out(r);

printf("Testingfunction1\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'7':

out(r);

printf("Testingfunction7\nPressanykeytocontinue\n");

getchar();

getchar();

break;

case'0':

flag=0;

printf("Theend.\n");

break;

default:

printf("\nWrongSelection!

(选择错误,请重选!

)\n");getchar();getchar();

}

}

}

voidcreatelist(structstucode**r)

{

structstucode*p,*t;

longn;

chara[20];

doubles;

if(*r)*r=NULL;

printf("\n请输入:

\n学号(请按学号升序排列)姓名分数(若要结束请输入三个为零)\n");

scanf("%ld%s%lf",&n,a,&s);

if(n==0)return;

p=(L*)malloc(sizeof(L));

p->student.num=n;

strcpy(p->student.name,a);

p->student.score=s;

p->next=NULL;

*r=p;

scanf("%ld%s%lf",&n,a,&s);

while(n)

{

t=p;

p=(L*)malloc(sizeof(L));

p->student.num=n;

strcpy(p->student.name,a);

p->student.score=s;

p->next=NULL;

t->next=p;

scanf("%ld%s%lf",&n,a,&s);

}

}

voidsearch1(structstucode*r)

{

longx;

if(!

r)

{

printf("没有学生信息可查询!

\n");

return;

}

printf("请输入要查询的学生信息的学生学号:

\n");

scanf("%ld",&x);

while(r&&r->student.num!

=x)

r=r->next;

if(r==NULL)

printf("Error!

Nosuchstudent!

\n");

else

printf("%ld%s%.2lf\n",r->student.num,r->student.name,r->student.score);

}

voidsearch2(structstucode*r)

{

charm[20];

if(!

r)

{

printf("没有学生信息可查询!

\n");

return;

}

printf("请输入要查询的学生信息的学生姓名:

\n");

scanf("%s",m);

while(r&&strcmp(r->student.name,m))

r=r->next;

if(r==NULL)

printf("Error!

Nosuchstudent!

\n");

else

printf("%ld%s%.2lf\n",r->student.num,r->student.name,r->student.score);

}

voiddel(structstucode**r)

{

longk;

structstucode*p=*r,*t;

if(!

(*r))

{

printf("没有学生信息可删除!

\n");

return;

}

printf("请输入要删除的学生信息的学生学号:

\n");

scanf("%ld",&k);

if(p->student.num==k)

*r=(*r)->next,free(p);

else

{

while(p->next&&p->next->student.num!

=k)

p=p->next;

if(p->next==NULL)

printf("Error!

Nosuchstudent!

\n");

else

{

t=p->next;

p->next=p->next->next;

free(t);

}

}

}

voidinsert(structstucode**r)

{

longn;

chara[20];

doubles;

 

L*p,*t,*k;

printf("请输入要插入的学生信息的学生学号姓名分数:

\n");

scanf("%ld%s%lf",&n,a,&s);

p=(L*)malloc(sizeof(L));

p->student.num=n;

p->student.score=s;

strcpy(p->student.name,a);

if(!

(*r))

{

*r=p;

(*r)->next=NULL;

return;

}

if(p->student.num<(*r)->student.num)

p->next=(*r),(*r)=p;

else

{

t=*r;

k=t;

while(t->next&&t->next->student.num<=p->student.num)

t=t->next;

p->next=t->next;

t->next=p;

*r=k;

}

}

 

voidsort(structstucode**r)

{

structstucode*t,*p,*q,*z;

if(!

r)

{

printf("没有学生信息可排序!

\n");

return;

}

if(!

(*r)||!

(*r)->next)

return;

t=*r;

p=t->next;

t->next=NULL;

while(p)

{

q=p->next;

if(p->student.score>t->student.score)

{

p->next=t;

t=p;

}

else

{

z=t;

while(z->next&&z->next->student.score>=p->student.score)

z=z->next;

p->next=z->next;

z->next=p;

}

 

p=q;

}

*r=t;

}

voidout(structstucode*r)

{

printf("\n\n");

if(!

r)

{

printf("没有学生信息可输出!

\n");

return;

}

while(r)

{

printf("%ld%s%.2lf\n",r->student.num,r->student.name,r->student.score);

r=r->next;

}

printf("\n\n");

}

voidmenu()

{

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

printf("\n菜单\n\n");

printf("\n1建立链表并显示\n");

printf("\n2查找某学号的学生信息\n");

printf("\n3查找某姓名的学生信息\n");

printf("\n4删除某学号的学生信息\n");

printf("\n5插入新的学生信息\n");

printf("\n6按分数降序排列输出\n");

printf("\n7输出\n");

printf("\n0退出\n");

printf("\n请选择您要执行的选项:

\n");

}

 

要求:

1、要求有学生成绩的查询,修改

2、不同专业的课程表各不相同(基础课相同,专业课不同)

3、能查询某一专业的学生成绩

4、试用随机产生学生的成绩,记录数达10条左右

学号姓名年龄基础课专业课

ps:

要C++的,要使用类模板

//class.h:

定义学生模板类

template

classstudent{

public:

student(){}

student(tnamename,tbclassbclass,tsclasssclass,tsubsub){

sname=name;

basic_class=bclass;

spec_class=sclass;

subject=sub;

}

tnameget_name(){//姓名查询

returnsname;

}

tbscoreget_bscore(){//基础课成绩查询

returnbscore;

}

tsscoreget_sscore(){//专业课成绩查询

returnsscore;

}

tsubget_subject(){//专业查询

returnsubject;

}

voidset_bccore(tbscorenewscore){//基础课成绩修改

bscore=newscore;

}

voidset_sccore(tsscorenewscore){//专业课成绩修改

sscore=newscore;

}

voidset_snum(tnumnum){//学号设定

snum=num;

}

voidset_age(tageage){//年龄设定

sage=age;

}

private:

tnumsnum;//学号

tnamesname;//姓名

tagesage;//年龄

tbclassbasic_class;//基础课

tbscorebscore;//基础课成绩

tsclassspec_class;//专业课

tsscoresscore;//专业课成绩

tsubsubject;//专业

};

#include"stdafx.h"

#include"iostream"

#include"class.h"

#include"string"

#include"time.h"

#include"list"

#include"cassert"

usingnamespacestd;

int_tmain(intargc,_TCHAR*argv[])

{

srand((unsigned)time(NULL));

list>students;

list>:

:

iterator_ptr;

student*s[10];

s[0]=newstudent("学生1","高等数学","面向对象程序设计","计算机");

s[1]=newstudent("学生2","高等数学","面向对象程序设计","计算机");

s[2]=newstudent("学生3","高等数学","面向对象程序设计","计算机");

s[3]=newstudent("学生4","高等数学","马克思主义哲学","行政管理");

s[4]=newstudent("学生5","高等数学","马克思主义哲学","行政管理");

s[5]=newstudent("学生6","高等数学","马克思主义哲学","行政管理");

s[6]=newstudent("学生7","高等数学","马克思主义哲学","行政管理");

s[7]=newstudent("学生8","高等数学","电路分析","电子信息");

s[8]=newstudent("学生9","高等数学","电路分析","电子信息");

s[9]=newstudent("学生10","高等数学","电路分析","电子信息");

for(inti=0;i<10;i++){//随机产生学生的成绩

s[i]->set_snum(rand()%100);

s[i]->set_age(rand()%10+15);

s[i]->set_bccore(rand()%61+40);

s[i]->set_sccore(rand()%71+30);

}

for(inti=0;i<10;i++){

students.push_back(*s[i]);

}

intchoose;

cout<<"请选择操作:

\n1.查询\n2.修改\n3.删除\n4.打印\n5.退出\n";

cin>>choose;

assert(!

cin.fail());

while(choose!

=5){

switch(choose){

case1:

{

intsn;

intcnt=0;

cout<<"输入学号:

";

cin>>sn;

assert(!

cin.fail());

_ptr=students.begin();

while(_ptr!

=students.end()){

if(_ptr->get_snum()==sn){

_ptr->print();

cnt++;

}

_ptr++;

}

cout<

break;

}

case2:

{

intsn;

cout<<"输入学号:

";

cin>>sn;

assert(!

cin.fail());

_ptr=students.begin();

while(_ptr!

=students.end()){

if(_ptr->get_snum()==sn){

cout<<"找到记录!

\n请输入新的成绩(如果不修改请输入-1):

";

ints;

cin>>s;

if(cin.fail())break;

if(s==-1)break;

else{

_ptr->set_bccore(s);

cout<<"记录修改成功!

\n";

break;

}

}

_ptr++;

}

break;

}

case3:

{

intsn;

intcnt=0;

cout<<"输入学号:

";

cin>>sn;

assert(!

cin.fail());

for(_ptr=students.begin();_ptr!

=students.end();_ptr++){

if(_ptr->get_snum()==sn){

list>:

:

iteratortemp=students.erase(_ptr);

cnt++;

_ptr=temp;

}

}

cout<

break;

}

case4:

{

_ptr=students.begin();

while(_ptr!

=students.end()){

_ptr->print();

_ptr++;

}

break;

}

default:

{cout<<"请输入有效选择!

\n";break;}

}

cout<<"请选择操作:

\n1.查询\n2.修改\n3.删除\n4.打印\n5.退出\n";

cin>>choose;

assert(!

cin.fail());

}

return0;

}用c++设计一个大学教师和学生管理程序,教师包括编号(a),姓名(c),职称(d)和教研室数据(b)的数据输入输出;大学生包括编号(m),姓名(s),性别(t),班号(n),英语(e),高等数学(f)和数据结构(g)三门课程成绩输入输出和计算机平均分(ave);研究生包括编号,姓名,性别,班号,指导教师和研究方法数据输入输出;博士后数据的输入输出;博士后既是教师也是研究生.(用派生,继承的方法可以做)

谢谢大家的帮助,我将给出100分的奖励,请技术人员帮帮忙~!

#include

#include

typedefstruct

{charname[10];

intnumber;

c

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2