哈希の学生管理系统optionshWord文档下载推荐.docx

上传人:b****5 文档编号:19654437 上传时间:2023-01-08 格式:DOCX 页数:11 大小:18.61KB
下载 相关 举报
哈希の学生管理系统optionshWord文档下载推荐.docx_第1页
第1页 / 共11页
哈希の学生管理系统optionshWord文档下载推荐.docx_第2页
第2页 / 共11页
哈希の学生管理系统optionshWord文档下载推荐.docx_第3页
第3页 / 共11页
哈希の学生管理系统optionshWord文档下载推荐.docx_第4页
第4页 / 共11页
哈希の学生管理系统optionshWord文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

哈希の学生管理系统optionshWord文档下载推荐.docx

《哈希の学生管理系统optionshWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《哈希の学生管理系统optionshWord文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

哈希の学生管理系统optionshWord文档下载推荐.docx

intgirl=0,boy=0;

//定义两个全局变量,统计总人数

intIntJudge(intup,intlow,intnum)//判断输入是否正确

if(num>

up||num<

low) 

returnFALSE;

else

returnTRUE;

}

intInitStudent(StudentNode&

stu,char*num,intk)//增加学生的信息

charchoice='

Y'

;

inti=0,score=0;

strcpy(stu.number,num);

stu.key=(num[6]-'

0'

)*100+(num[7]-'

)*10+(num[8]-'

);

cout<

<

"

姓名:

cin>

>

stu.name;

cout<

性别(G/B):

stu.sex;

if(stu.sex=='

B'

boy++;

elseif(stu.sex=='

G'

girl++;

else{stu.key=-1;

strcpy(stu.number,"

strcpy(stu.name,"

stu.sex='

returnERROR;

}

年龄:

cin>

stu.age;

是否有课程?

(Y/N):

choice;

while

(1)

if(choice=='

{stu.m_course[i]=newCourseNode;

课程名:

stu.m_course[i]->

name;

教师:

teacher;

分数:

score;

i++;

是否还有课程?

elseif(choice=='

N'

){stu.a=i;

break;

else{ 

输入有错!

!

是否输入课程?

for(intj=0;

j<

stu.a;

j++){score+=stu.m_course[j]->

stu.score=score;

returnSUCCESS;

voidShowStudent(StudentNodestu)//显示全部学生信息

inti=0,n=1;

->

setw(12)<

stu.number<

setw(9)<

stu.name<

setw(3)<

stu.sex<

setw(4)<

for(;

i<

i++) 

if(n>

=3)cout<

endl<

||"

name<

teacher<

else 

||"

n++;

endl;

voidShowMenu()//显示学生信息导航

学号 

姓名性别年龄||课程 

老师 

成绩||课程 

成绩 

"

intKey(int&

k,StudentNode*stu,char*number)

if(!

strcmp(stu[k].number,number)) 

{cout<

该记录已经存在!

while(k<

=11&

&

stu[k++].key!

=-1);

if(k>

10){ 

存储已满!

else{ 

--k;

voidDisplay(StudentNode*stu)//显示已有学生信息

inti=0,j=0;

//i是人数,j是结构体的下标

ShowMenu();

if((girl+boy)==0) 

现在没有任何学生记录!

while(i<

(girl+boy))

for(;

10;

j++)if(stu[j].key!

=-1) 

ShowStudent(stu[j]);

intNumSearch(StudentNode*stu,char*m_number)//按学号查找学生信息

inti=0,score=0,EveScore=0,n=0;

ShowMenu();

if(!

strcmp(m_number,stu[i].number)) 

{ShowStudent(stu[i]);

if(stu[i].a!

=0)

{

总成绩:

stu[i].score;

EveScore=stu[i].score/stu[i].a;

平均成绩:

EveScore<

return 

SUCCESS;

if(n==0){cout<

没有这样的记录!

voidNameSearch(StudentNode*stu)//按姓名查找学生信息

charm_name[15];

inti=0,n=0;

请输入您要查找的姓名:

m_name;

strcmp(m_name,stu[i].name)) 

if(n==0) 

voidSexSearch(StudentNode*stu)//按性别查找学生信息

charm_sex;

请输入您要查找的学生的性别(G/B):

m_sex;

if(m_sex=='

||m_sex=='

if(m_sex==stu[i].sex) 

ShowStudent(stu[i]);

if(n==0) 

else{cout<

重新输入(G/B):

void 

CourseSearch(StudentNode*stu)//按课程查找学生信息

charm_course[15];

请输入您要查找的课程:

m_course;

for(intj=0;

stu[i].a;

j++)

strcmp(m_course,stu[i].m_course[j]->

name)) 

//elsereturnn;

voidTeachSearch(StudentNode*stu)//按教师查找学生信息

charm_teacher[15];

请输入您要查找的教师姓名:

m_teacher;

strcmp(m_teacher,stu[i].m_course[j]->

teacher)) 

voidGradeSearch(StudentNode*stu)//按年级查找学生信息

charm_grade[5];

请输入您要查找年级的年份(如2008):

m_grade;

if(stu[i].number[2]==m_grade[2]&

stu[i].number[3]==m_grade[3]&

stu[i].key!

voidClassScore(StudentNode*stu)//统计课程平均成绩

intscore=0,i=0,n=0;

请输入您要统计的课程的名字:

i++)

score+=stu[i].m_course[j]->

else{cout<

这门课程的平均成绩:

score/=n;

score<

分"

voidAgeStat(StudentNode*stu)//统计年级平均年龄

int 

age=0,i=0,n=0;

charyear[5];

请输入您要统计的年级的年份:

(如2008)"

year;

if(stu[i].key!

=-1&

stu[i].number[2]==year[2]&

stu[i].number[3]==year[3]){age+=stu[i].age;

else{age/=n;

该年级的平均年龄为"

age<

岁"

voidAdd(StudentNode*stu)//添加一个学生的信息

charm_number[10],choice='

intk=0;

//哈希地址

学号:

m_number;

k=((m_number[6]-'

)*100+(m_number[7]-'

)*10+(m_number[8]-'

))%11;

if(Key(k,stu,m_number))

if(InitStudent(stu[k],m_number,k))

成功保存!

是否继续输入学生信息?

if(choice!

='

choice!

{

else

重新输入?

) 

重新输入(Y/N):

}

)break;

Delete(StudentNode*stu)//删除一个学生全部信息

charm_number[10],choice;

i=0;

请输入要删除的同学的学号:

if(NumSearch(stu,m_number))

确定要删除该同学的信息吗?

while

(1)

{if(choice=='

//找到该同学的下标记录

stu[i].key=-1;

stu[i].a=0;

stu[i].age=0;

strcpy(stu[i].name,"

if(stu[i].sex='

)--girl;

else--boy;

stu[i].sex='

strcpy(stu[i].number,"

j++) 

stu[i].m_course[j]=NULL;

操作成功!

输入有误!

请重新选择:

Modify(StudentNode*stu)//修改一个学生的信息

charm_number[10],choice;

i=0,opt=0,k=0,j=0;

请输入要修改的同学的学号:

确定要修改该同学的信息吗?

以下是要修改的信息:

******************************************************************************"

1.学号 

2.姓名 

3.性别 

4.年龄 

5.课程 

6.教师 

7.成绩 

请选择:

opt;

if(IntJudge(7,1,opt))

switch(opt)

{

case1:

学号修改为:

strcpy(stu[k].number,m_number);

stu[k].key=((m_number[6]-'

));

 

stu[k].a=stu[i].a;

stu[k].age=stu[i].age;

strcpy(stu[k].name,stu[i].name);

stu[k].sex=stu[i].sex;

stu[k].m_course[j]=stu[i].m_course[j];

stu[i].a=0;

stu[i].age=0;

strcpy(stu[i].name,"

stu[i].sex='

strcpy(stu[i].number,"

for(j=0;

stu[i].m_course[j]=NULL;

elsecout<

操作失败!

break;

case2:

姓名修改为:

stu[i].name;

case3:

性别修改为:

stu[i].sex;

if(stu[i].sex=='

){++girl;

--boy;

else{--girl;

++boy;

end

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

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1