


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生成绩管理简易系统一.课程设计目的解决实际问题的能力。二.设计要求本系统用来管理若干个学院(系、若干个班级的学生成绩,系统具有如下主要功能:成批成绩输入,即从一个固定格式中读入学生成绩,放入学生成绩。交互成绩输入,从屏幕上一个一个地录入学生成绩,放入学生成绩。查询(打印)某班级某门课的最高分、最低分、平均分及成绩清单(分数由高到低排序等。查询(打印)学生(可按学号、按姓名查询)某学期的成绩清单(假定每人每学期最多8。修改和删除某学生的某门课成绩。增加、修改、删除和查询(打印)学生的基本资料。三.设计总体框架程序数据处理流图开始开始建立学生链输入链表上各结点的数据插入新信息排序并输出排序后的链表各结点的数据查找并输出查找得到的数据根据学号删除数据根据学号查任课教师结束每一个功能块的算法流程图1、建立链表开始开始输入学生信息是输入学号是否为0?否是直接插入头指针是否指零?否将新建的结点插入链尾结束2、排序开始开始动态定义一个指针数组是要排序的链表是否为空?否给出错误提示要排序的链表是否只有一个数据?是否使动态定义的指针数组各元素分别指向链表的各结点,并将指针数组连成一个链表根据指针所指结点学号的大小进行冒泡排序将排序后的新数组连成一个新有序数组使头指针指向排序后的指针数组的第一个元素返回头指针的值结束3、插入(增加)开始开始根据学号大小找到要插入的位置确定头指针的位置,并使插入的结点的指针域指向后面的结点返回头指针结束3、查找开始开始是链表是否为空?否给出提示逐个比较各结点的数据是否与所要查找的数据相同否找到?是输出该数据结束开始开始不能能查找要删除的数据?能否给出提示找到的数据是否为头指针?是使找到的指针的一个结点的指针指向找到的指针下一个结点上域的将头指针的下一个指针赋给头指针删除找到的结点返回头指针结束5、删除6、统计开始开始对链表的各个结点进行考查,符合条件的,让计数器自动加1输出结果结束7根据学生查找老师,根据教师代号查所教学生开始开始是链表是否为空?否给出提示逐个比较各结点的老师是否与所要查找的老师相同否找到?是输出该老师结束8.根据教师代号查所教学生开始开始是链表是否为空?否给出提示逐个比较各结点的老师是否与所要查找的老师相同否找到?是输出该学生结束五.数据文件格式说明学生基本资料文件structstudent{charnum[15];charname[15];charmajor[15];chargrade[15];charclas[15];charcharsex[5];floatbirthday[10];floatscore[8];node*next;}head;学生成绩资料文件structscore{charnum[15];floatsubjectmun[10];floatitem[5];floatscore;charteacher[15];}课程代号对照表文件structsubjectmun{floatsubjectmun[10];charsubject[10];floatscoreweight;}教师代号对照表文件structteachermun{floatteachermun[10];charteachername[10];charquality[10];}6.输入输出方法studentinput(studentx){cout<<"请输入学生的相关信息,以学号为字符 0结束(其他项任意,但要入!!):"<<endl;cout<<" 学"<<" 姓"<<" 系"<<" "<<"班"<<" "<<"老"<<" "<<"性别"<<" "<<"生"<<" "<<"各科成绩"<<" "<<endl;cin>>s1>>s2>>s3>>s4>>s4>>s5>>s6>>s7>>s8>>c1>>c2>>c3;returnx;}studentoutput(studentx){cout<<" "<<x.num<<"姓名"<<<<"系"<<x.major<<"班级"<<x.clas<<"老师"<<teacher<<"性别"<<x.sex<<"生日"<<x.birthday<<endl;}六.主要数据类型及其作用(数据结构)课程代号对照表结据。七.主要函数说明及其原代码建立链表node*GradeManage::create(void){node*p1,*p2,*head=0;chars1[15],s2[25],s3[15],s4[15],s5[15],s6[5],s7[10],s8[10];floatc1,c2,c3;cout<<"请输入学生的相关信息,以学号为字符0结束(其他项任意,但要输入cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" "<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<""<<endl;cin>>s1>>s2>>s3>>s4>>s4>>s5>>s6>>s7>>s8>>c1>>c2>>c3;while(strcmp(s1,"0")!=0){p1=newnode;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->score[1]=c1;p1->score[2]=c2;p1->score[3]=c3;if(head==0){head=p1;p2=p1;}else{}size++;
p2->next=p1;p2=p1;cout<<"继续输入"<<endl;cin>>s1>>s2>>c1>>c2>>c3;}cout<<"输入结束!"<<endl;for(inti=0;i<80;i++)cout<<'-';p2->next=0;return(head);}2、排序node*GradeManage::sort(node*head){node**p;p=newnode*[size];if(head==0){!"<<endl;return(NULL);}if(head->next==0){}else{
cout<<"只有一个数据!"<<endl;return(head);node*temp;p[0]=head;inti;for(i=1;i<size;i++){p[i]=p[i-1]->next;}p[size-1]->next=NULL;for(i=0;i<size;i++)for(intj=0;j<size-1-i;j++)if(strcmp(p[j]->num,p[j+1]->num)>0){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}p[size-1]->next=NULL;head=p[0];for(inti=1;i<size;i++){p[i-1]->next=p[i];}p[size-1]->next=0;cout<<"排序后:"<<endl;print(head);delete[]p;return(head);}查找voidGradeManage::search(node*head,char*p){nodeif(head==0){cout<<return;}if(strcmp(head->num,p)==0){p1=head;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" "<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<""<<endl;}else{
cout<<p1->num<<" "<<p1->name<<" "<<p1->major<<" "<<p1->grade<<" "<<p1->clas<<""<<p1->teacher<<""<<p1->sex<<""<<endl;p1=head;p2=head->next;while(p2->next&&strcmp(p2->num,p)!=0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p)==0){cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" ""<<endl;
<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<"cout<<p2->num<<" "<<p2->name<<" "<<p2->major<<" "<<p2->grade<<" "<<p2->clas<<""<<p2->teacher<<""<<p2->sex<<""<<endl;}else}
cout<<"链上没有找到要找的学生信息!"<<endl;return;}删除voidGradeManage::DeleteChain(node*head){node*p;while(head){p=head;head=head->next;deletep;}}求平均分node*fun(node*head,float&aver){student*h,*p,*p1;floatsum=0;intn=0;aver=0;h=NULL;p=head;while(p!=null){sum+=p->grade;n++;p=p->next;}aver=sum/n;}4、程序代码#include<iostream.h>#include<string.h>intsize=0;structnode{charnum[15];charname[15];charmajor[15];chargrade[15];charclas[15];charcharsex[5];floatbirthday[10];floatscore[8];node*next;}head;classGradeManage{public:node*create(void);voidprint(constnode*head);node*sort(node*head);node*insert(node*head,node*p);voidsearch(node*head,char*p);node*Deleteonenode(node*head,char*p);voidDeleteChain(node*head);};node*GradeManage::create(void){node*p1,*p2,*head=0;chars1[15],s2[25],s3[15],s4[15],s5[15],s6[5],s7[10],s8[10];floatc1,c2,c3;cout<<"请输入学生的相关信息,以学号为字符0结束(其他项任意,但要输入cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" "<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<""<<endl;cin>>s1>>s2>>s3>>s4>>s4>>s5>>s6>>s7>>s8>>c1>>c2>>c3;while(strcmp(s1,"0")!=0){p1=newnode;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->score[1]=c1;p1->score[2]=c2;p1->score[3]=c3;if(head==0){}else{}size++;
head=p1;p2=p1;p2->next=p1;p2=p1;cout<<"继续输入"<<endl;cin>>s1>>s2>>c1>>c2>>c3;}cout<<"输入结束!"<<endl;for(inti=0;i<80;i++)cout<<'-';p2->next=0;return(head);}voidGradeManage::print(constnode*head){constnode*p=head;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" "<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<""<<endl;while(p!=0){cout<<p->num<<" "<<p->name<<" "<<p->major<<" "<<p->grade<<" "<<p->clas<<""<<p->teacher<<" "<<p->sex<<"p=p->next;}for(intcout<<'-';cout<<'\n';}node*GradeManage::sort(node*head){node**p;p=newnode*[size];if(head==0){!"<<endl;return(NULL);}if(head->next==0){}else{
cout<<"只有一个数据!"<<endl;return(head);node*temp;p[0]=head;inti;for(i=1;i<size;i++){p[i]=p[i-1]->next;}p[size-1]->next=NULL;for(i=0;i<size;i++)for(intj=0;j<size-1-i;j++)if(strcmp(p[j]->num,p[j+1]->num)>0){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}p[size-1]->next=NULL;head=p[0];for(inti=1;i<size;i++){p[i-1]->next=p[i];}p[size-1]->next=0;cout<<"排序后:"<<endl;print(head);delete[]p;return(head);}node*GradeManage::insert(node*head,node*p){node*p1,*p2;if(head==0){p->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)<0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p->num)<0){}else{}
p2->next=p;p->next=0;p->next=p2;p1->next=p;return(head);}voidGradeManage::search(node*head,char*p){nodeif(head==0){cout<<return;}if(strcmp(head->num,p)==0){p1=head;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" "<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<""<<endl;}else{
cout<<p1->num<<" "<<p1->name<<" "<<p1->major<<" "<<p1->grade<<" "<<p1->clas<<""<<p1->teacher<<""<<p1->sex<<""<<endl;p1=head;p2=head->next;while(p2->next&&strcmp(p2->num,p)!=0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p)==0){"<<endl;
cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"系"<<" "<<"班级"<<" "<<"老师"<<" "<<"性别"<<" "<<"生日"<<" "<<"各科成绩"<<"cout<<p2->num<<" "<<p2->name<<" "<<p2->major<<" "<<p2->grade<<" "<<p2->clas<<""<<p2->teacher<<""<<p2->sex<<""<<endl;}else}
cout<<"链上没有找到要找的学生信息!"<<endl;return;}node*GradeManage::Deleteonenode(node*head,char*p){node*p1,*p2;if(head==0){cout<<"链为空,无法找到所要删除的学生信息!"<<endl;return(0);}if(strcmp(head->num,p)==0){}else{
p1=head;head=head->next;deletep1;cout<<"*********"<<"已成功删除!"<<"*********"<<endl;p1=head;p2=head->next;while(p2->next&&strcmp(p2->num,p)!=0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p)==0){p1->next=p2->next;deletep2;cout<<"*********"<<"已成功删除!"<<"*********"<<endl;}else}
cout<<"*********"<<"链上没有找到要删除的学生信息!"<<"*********"<<endl;return(head);}voidGradeManage::DeleteChain(node*head){node*p;while(head){p=head;head=head->next;deletep;}}intmain(){GradeManageclass1;node*head;chars1[15],s2[25],s3[15],s4[15],s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手术室护理内固定
- 紫色商务极简季度总结模板
- 紫色卡通白底边框可爱小动物教育教学模板
- 古代东方手工艺设计
- 塑钢窗定作合同协议
- 学校教育制度概述
- 小学科学课程课标解读
- 磨具制造加工合同协议
- 私立幼儿园协议合同
- 合同租金保密协议
- 青铜器科普宣传
- 《大学生创新创业基础教程》第六章创业资源与融资
- 山水林田湖草生态环境调查技术规范DB41-T 1992-2020
- 大众旅游服务质量控制手册
- GB/T 44421-2024矫形器配置服务规范
- 大型活动策划与管理第八章 大型活动风险管理
- Q∕GDW 12165-2021 高海拔地区运维检修装备配置规范
- JGJ107-2016钢筋机械连接技术规程
- 妇科医生进修汇报课件
- 动态分析与设计实验报告总结
- 2024年江苏省泰州市海陵区中考一模数学试卷
评论
0/150
提交评论