ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:18.61KB ,
资源ID:6640558      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6640558.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(哈希の学生管理系统optionsh.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

哈希の学生管理系统optionsh.docx

1、哈希学生管理系统optionsh哈希学生管理系统options.h2009-12-26 19:58#include#include#include#include#includeusing namespace std;typedef struct/定义一个课程结构体char name15;int score;char teacher15;CourseNode,*m_class;typedef structint key;char number10;char name15;int age;int a,score; /a记录课程的个数char sex;m_class m_course10;/指向课

2、程的十个指针,不是链表结构StudentNode;#define SUCCESS 1#define ERROR 0#define FALSE 0#define TRUE 1int girl=0,boy=0;/定义两个全局变量,统计总人数int IntJudge(int up,int low,int num)/判断输入是否正确 if(numup|numlow) return FALSE; else return TRUE;int InitStudent(StudentNode &stu,char* num,int k)/增加学生的信息char choice=Y;int i=0,score=0;s

3、trcpy(stu.number,num);stu.key=(num6-0)*100+(num7-0)*10+(num8-0);coutstu.name; coutstu.sex;if(stu.sex=B) boy+;else if(stu.sex=G) girl+;else stu.key=-1; strcpy(stu.number,); strcpy(stu.name,);stu.sex=0; return ERROR; coutstu.age;coutchoice;while(1) if(choice=Y) stu.m_coursei=new CourseNode; coutstu.m_

4、coursei-name; coutstu.m_coursei-teacher; coutstu.m_coursei-score; i+; coutchoice; else if(choice=N) stu.a=i; break; else coutchoice; for(int j=0;jscore; stu.score=score; return SUCCESS;void ShowStudent(StudentNode stu)/显示全部学生信息 int i=0,n=1; coutsetw(12)stu.numbersetw(9)stu.namesetw(3)stu.sexsetw(4)s

5、tu.age;for(;i=3)coutendl |setw(9)namesetw(9)teachersetw(3)score; else cout|setw(9)namesetw(9)teachersetw(3)score; n+;coutendl;void ShowMenu()/显示学生信息导航coutendl 学号 姓名 性别 年龄| 课程 老师 成绩| 课程 老师 成绩 endl;int Key(int &k,StudentNode* stu,char*number)if(!strcmp(stuk.number,number) cout 该记录已经存在!; return ERROR;

6、while(k10) cout 存储已满!; return ERROR; else -k; return SUCCESS; void Display(StudentNode* stu)/显示已有学生信息 int i=0,j=0;/i是人数,j是结构体的下标ShowMenu(); if(girl+boy)=0) cout 现在没有任何学生记录!endl;while(i(girl+boy) for(;j10;j+) if(stuj.key!=-1) ShowStudent(stuj); i+; int NumSearch(StudentNode* stu,char* m_number)/按学号查找

7、学生信息int i=0,score=0,EveScore=0,n=0; ShowMenu();for(;i10;i+) if(!strcmp(m_number,stui.number) ShowStudent(stui); n+; break; if(stui.a!=0) cout 总成绩:stui.score; EveScore=stui.score/stui.a; cout 平均成绩:EveScoreendl; return SUCCESS;if(n=0) cout 没有这样的记录!endl; return ERROR; return SUCCESS;void NameSearch(Stu

8、dentNode* stu)/按姓名查找学生信息char m_name15;int i=0,n=0;coutm_name; ShowMenu();for(;i10;i+) if(!strcmp(m_name,stui.name) ShowStudent(stui); n+; if(n=0) cout 没有这样的记录!endl;void SexSearch(StudentNode* stu)/按性别查找学生信息char m_sex;int i=0,n=0;coutm_sex; while(1) if(m_sex=G|m_sex=B) ShowMenu(); for(;i10;i+) if(m_s

9、ex=stui.sex) ShowStudent(stui); n+; if(n=0) cout 没有这样的记录!endl; break; else coutm_sex;void CourseSearch(StudentNode* stu)/按课程查找学生信息char m_course15;int i=0,n=0;coutm_course; ShowMenu();for(;i10;i+) for(int j=0;jname) ShowStudent(stui); n+; if(n=0) cout 没有这样的记录!endl;/else return n;void TeachSearch(Stud

10、entNode* stu)/按教师查找学生信息char m_teacher15;int i=0,n=0;coutm_teacher; ShowMenu();for(;i10;i+) for(int j=0;jteacher) ShowStudent(stui); n+; if(n=0) cout 没有这样的记录!endl;void GradeSearch(StudentNode* stu)/按年级查找学生信息char m_grade5;int i=0,n=0;coutendlm_grade; ShowMenu();for(;i10;i+) if(stui.number2=m_grade2&st

11、ui.number3=m_grade3&stui.key!=-1) ShowStudent(stui); n+; if(n=0) cout 没有这样的记录!endl;void ClassScore(StudentNode* stu)/统计课程平均成绩 int score=0,i=0,n=0;char m_course15;coutm_course;for(;i10;i+) for(int j=0;jname) score+=stui.m_coursej-score; n+; break; if(n=0) cout 没有这样的记录!endl;else cout 这门课程的平均成绩:; score

12、/=n; coutscore分endl; void AgeStat(StudentNode* stu)/统计年级平均年龄 int age=0,i=0,n=0;char year5;coutyear;for(;i10;i+) if(stui.key!=-1&stui.number2=year2&stui.number3=year3) age+=stui.age; n+; if(n=0) cout 没有这样的记录!endl;else age/=n; cout 该年级的平均年龄为age岁endl; void Add(StudentNode* stu)/添加一个学生的信息 char m_number1

13、0,choice=Y;int k=0;/哈希地址while(1) if(choice=Y) coutendlm_number; k=(m_number6-0)*100+(m_number7-0)*10+(m_number8-0)%11; if(Key(k,stu,m_number) if(InitStudent(stuk,m_number,k) coutchoice; if(choice!=Y&choice!=N) coutchoice; else coutchoice; if(choice!=Y&choice!=N) coutchoice; else coutchoice; else if(

14、choice=N) break; else coutchoice; void Delete(StudentNode* stu)/删除一个学生全部信息char m_number10,choice;int i=0;coutendlm_number;if(NumSearch(stu,m_number) coutendlchoice; while(1) if(choice=Y) for(;i10;i+) if(!strcmp(m_number,stui.number) break; / 找到该同学的下标记录 stui.key=-1; stu i.a=0; stu i.age=0; strcpy( st

15、u i.name,); if(stu i.sex=G) -girl; else -boy; stu i.sex=0; strcpy( stu i.number,); for(int j=0;j10;j+) stu i.m_coursej=NULL; coutendl 操作成功!endl; break; else if(choice=N) break; else coutchoice; void Modify(StudentNode* stu)/修改一个学生的信息 char m_number10,choice;int i=0,opt=0,k=0,j=0;coutm_number;if(NumSe

16、arch(stu,m_number) coutendlchoice; while(1) if(choice=Y) for(;i10;i+) if(!strcmp(m_number,stui.number) break; / 找到该同学的下标记录 cout 以下是要修改的信息:endl; coutendl*endlendl; cout 1.学号 2.姓名 3.性别 4.年龄 5.课程 6.教师 7.成绩 endlendl; cout*endl; coutopt; if(IntJudge(7,1,opt) switch(opt) case 1: coutendlm_number; k=(m_num

17、ber6-0)*100+(m_number7-0)*10+(m_number8-0)%11; if(Key(k,stu,m_number) strcpy(stuk.number,m_number); stuk.key=(m_number6-0)*100+(m_number7-0)*10+(m_number8-0); 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; for(int j=0;j10;j+) stu k.m_coursej=stu i.m_course

18、j; stui.key=-1; stui.a=0; stui.age=0; strcpy( stui.name,); stui.sex=0; strcpy( stui.number,); for(j=0;j10;j+) stui.m_coursej=NULL; coutendl 操作成功!endl; break; else cout 操作失败!;break; case 2: coutendlstu i.name; coutendl 操作成功!endl; break; case 3: coutendlstu i.sex; if(stu i.sex=G) +girl;-boy; else -girl; +boy; coutendl 操作成功!end

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

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