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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++学生成绩查询统计.docx

1、C+学生成绩查询统计制作人:学 号:vc+课程设计报告学生成绩管理简易系统一课程设计目的 深入理解向对象程序设计思想,运用已学知识设计简易的学生成绩管理系统,提高分析解决实际问题的能力。二.设计要求 本系统用来管理若干个学院(系)、若干个班级的学生成绩,系统具有如下主要功能: 成批成绩输入,即从一个固定格式中读入学生成绩,放入学生成绩。 交互成绩输入,从屏幕上一个一个地录入学生成绩,放入学生成绩。 查询(打印)某班级某门课的最高分、最低分、平均分及成绩清单(可按学号排序、按分数由高到低排序等)。 查询(打印)学生(可按学号、按姓名查询)某学期的成绩清单(假定每人每学期最多能学8门课)。 修改和

2、删除某学生的某门课成绩。 增加、修改、删除和查询(打印)学生的基本资料。 根据学号查任课教师,根据教师代号查所教学生。三.设计总体框架程序数据处理流图每一个功能块的算法流程图1、 建立链表2、排序3、插入(增加)3、 查找5、删除6、 统计7根据学生查找老师,根据教师代号查所教学生 8根据教师代号查所教学生五数据文件格式说明 学生基本资料文件struct student char num15; char name15; char major15; char grade15; char clas15; char teacher15; char sex5; float birthday10; fl

3、oat score8; node *next; head;学生成绩资料文件struct score char num15; float subjectmun10; float item5; float score; char teacher15;课程代号对照表文件struct subjectmun float subjectmun10; char subject10; float scoreweight;教师代号对照表文件struct teachermun float teachermun10; char teachername10; char quality10;6. 输入输出方法stude

4、nt input(student x) cout请输入学生的相关信息,以学号为字符0结束(其他项任意,但要输入!):endl; cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 s1s2s3s4s4s5s6s7s8c1c2c3; return x; student output(student x) cout 学号x.num姓名 x.name系x.major 班级 x.clas老师teacher性别 x.sex生日x.birthdayendl; 六主要数据类型及其作用(数据结构)学生类型结构体记录学生基本资料,学生成绩类型结构体记录学生成绩,课程代号对照表结构体,师代号对照表结构体为

5、程序中根据学号查任课教师和根据教师代号查所教学生提供依据。七主要函数说明及其原代码建立链表node *GradeManage:create(void) node *p1,*p2,*head=0; char s115,s225,s315,s415,s515,s65,s710,s810; float c1,c2,c3; cout请输入学生的相关信息,以学号为字符0结束(其他项任意,但要输入!):endl; cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 s1s2s3s4s4s5s6s7s8c1c2c3; while(strcmp(s1,0)!=0) p1=new node; strcp

6、y(p1-num,s1); strcpy(p1-name,s2); strcpy(p1- major,s3); strcpy(p1- grade,s4); strcpy(p1-clas,s5); strcpy(p1-teacher,s6); strcpy(p1-sex,s7); p1-score1=c1; p1-score2=c2; p1-score3=c3; if(head=0) head=p1;p2=p1; else p2-next=p1;p2=p1; size+; cout继续输入s1s2c1c2c3; cout输入结束!endl; for (int i=0;i80;i+) coutne

7、xt=0; return(head);2、排序node *GradeManage:sort(node* head) node *p; p= new node*size; if(head=0) cout链为空,产生错误!next=0) cout只有一个数据!endl; return(head); else node *temp; p0=head; int i; for(i=1;inext; psize-1-next=NULL; for(i=0;isize;i+) for(int j =0; jnum,pj+1-num)0) temp=pj;pj=pj+1;pj+1=temp; psize-1-n

8、ext=NULL; head=p0; for(int i=1;inext=pi; psize-1-next=0; cout排序后:endl; print(head); delete p; return(head);3查找void GradeManage:search(node *head,char *p) node *p1,*p2; if(head=0) coutnum,p)=0) p1=head; cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 endl; coutnum name major grade clas teacher sex next; while(p2-next&

9、strcmp(p2-num,p)!=0) p1=p2;p2=p2-next; if(strcmp(p2-num,p)=0) cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 endl; coutnum name major grade clas teacher sex endl; else cout链上没有找到要找的学生信息!next; delete p; 5求平均分node *fun (node *head,float &aver) student *h,*p,*p1; float sum=0; int n=0; aver=0;h=NULL; p=head; while(p!=nu

10、ll) sum+=p-grade; n+; p=p-next; aver=sum/n;4、程序代码#include#includeint size=0;struct node char num15; char name15; char major15; char grade15; char clas15; char teacher15; char sex5; float birthday10; float score8; node *next; head;class GradeManage public: node *create(void); void print(const node *h

11、ead); node *sort(node *head); node *insert(node *head,node *p); void search(node *head,char *p); node *Deleteonenode(node *head,char *p); void DeleteChain(node *head);node *GradeManage:create(void) node *p1,*p2,*head=0; char s115,s225,s315,s415,s515,s65,s710,s810; float c1,c2,c3; cout请输入学生的相关信息,以学号为

12、字符0结束(其他项任意,但要输入!):endl; cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 s1s2s3s4s4s5s6s7s8c1c2c3; while(strcmp(s1,0)!=0) p1=new node; strcpy(p1-num,s1); strcpy(p1-name,s2); strcpy(p1- major,s3); strcpy(p1- grade,s4); strcpy(p1-clas,s5); strcpy(p1-teacher,s6); strcpy(p1-sex,s7); p1-score1=c1; p1-score2=c2; p1-score3=

13、c3; if(head=0) head=p1;p2=p1; else p2-next=p1;p2=p1; size+; cout继续输入s1s2c1c2c3; cout输入结束!endl; for (int i=0;i80;i+) coutnext=0; return(head);void GradeManage:print(const node *head) const node *p=head; cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 endl; while(p!=0) coutnum name major grade clas teacher sex next; fo

14、r (int i=0;i80;i+) cout-; coutn;node *GradeManage:sort(node* head) node *p; p= new node*size; if(head=0) cout链为空,产生错误!next=0) cout只有一个数据!endl; return(head); else node *temp; p0=head; int i; for(i=1;inext; psize-1-next=NULL; for(i=0;isize;i+) for(int j =0; jnum,pj+1-num)0) temp=pj;pj=pj+1;pj+1=temp;

15、psize-1-next=NULL; head=p0; for(int i=1;inext=pi; psize-1-next=0; cout排序后:next=0;return(p); if(strcmp(head-num,p-num)=0) p-next=head; return(p); p2=p1=head; while(p2-next&strcmp(p2-num,p-num)next; if(strcmp(p2-num,p-num)next=p;p-next=0; else p-next=p2;p1-next=p; return(head);void GradeManage:search(

16、node *head,char *p) node *p1,*p2; if(head=0) coutnum,p)=0) p1=head; cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 endl; coutnum name major grade clas teacher sex next; while(p2-next&strcmp(p2-num,p)!=0) p1=p2;p2=p2-next; if(strcmp(p2-num,p)=0) cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 endl; coutnum name major grade clas teache

17、r sex endl; else cout链上没有找到要找的学生信息!endl; return;node *GradeManage:Deleteonenode(node *head,char *p) node *p1,*p2; if(head=0) cout链为空,无法找到所要删除的学生信息!num,p)=0) p1=head; head=head-next; delete p1; cout*已成功删除!*next; while(p2-next&strcmp(p2-num,p)!=0) p1=p2;p2=p2-next; if(strcmp(p2-num,p)=0) p1-next=p2-ne

18、xt; delete p2; cout*已成功删除!*endl; else cout*链上没有找到要删除的学生信息!*next; delete p; int main() GradeManage class1; node *head;char s115,s225,s315,s415,s515,s65,s710,s810; float c1,c2,c3; node *p1; head=class1.create(); /新建链表 class1.print(head); cout请输入要插入学生的信息!endl; /完成插入功能 cout 学号 姓名 系 班级 老师 性别 生日 各科成绩 s1s2

19、s3s4s4s5s6s7s8c1c2c3; p1=new node; strcpy(p1-num,s1); strcpy(p1-name,s2); strcpy(p1- major,s3); strcpy(p1- grade,s4); strcpy(p1-clas,s5); strcpy(p1-teacher,s6); strcpy(p1-sex,s7); p1-score1=c1; p1-score2=c2; p1-score3=c3; head=class1.insert(head,p1); cout插入后:endl; class1.print(head); size+; /完成排序功能 head=class1.sort(head); char s915; /完成查找功能 couts9; class1.search(head,s3); for (int i=0;i80;i+) cout-; couts10;he

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

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