欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    学生信息管理系统C++语言程序代码.docx

    • 资源ID:13233205       资源大小:23.35KB        全文页数:25页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生信息管理系统C++语言程序代码.docx

    1、学生信息管理系统C+语言程序代码include iostream。h #include iomanip.h #include include include malloc。h include stdlib.h include include stu; class Information public: Information() ; /构造函数。 Information() ; /析构函数。 student creat();/建立链表函数。 void output(student *head); int count(student head);/定义函数count()统计考生总数 studen

    2、t *insert(studenthead);/指针函数*insert()用来添加考生信息. student cancel(student *head,long int num);/指针函数cancel()用来删除考生信息。 student find(student *head,long int num); /指针函数find()用来查找考生信息. void inorder(student *head);/定义inorder()函数将考生的总分从大到小排列并输出 void average( student *head);/求学生成绩的平均分的函数 void save(student *head

    3、);/保存函数 student *Read();/读取函数 private: student p1,p2,*p3,head,st; ; Information:Information() /构造函数 cout-n”; cout” *nn”; Information:Information() /构造函数 cout *n”; cout” -n”; cout *n”; student Information:creat(void) /定义一个指向struct student的结构体指针函数*creat()用来增加学生信息。 char ch20;n=0; /用来存放姓名的 p1=p2=(studen

    4、t )malloc(LEN);/调用malloc()函数用来开辟一个新的存储单元 cout” -请建立学生考试信息表,在姓名处输入 ! 结束输入。-”endl; coutname,ch); /将循环结构前面输入的姓名复制到结构体名为p1的数组name中 coutp1sex; cout”院系:” ; cinstr; coutstr; if(atol(str)999999999 atol(str)1) cout对不起,请正确输入!n”; else p1id=atol(str); flag=1; while(flag=0); flag=0; cout” 语文成绩:; do cinstr; if(at

    5、oi(str)100 | atoi(str)1) coutscore0=atoi(str); flag=1; while(flag=0); flag=0; coutstr; if(atoi(str)100 | atoi(str)1) coutscore1=atoi(str); flag=1; while(flag=0); flag=0; coutstr; if(atoi(str)100 | atoi(str)1) coutstr; if(atoi(str)100 atoi(str)1) coutscore3=atoi(str); flag=1; while(flag=0); flag=0; p

    6、1total=p1-score0+p1-score1+p1score2+p1-score3;/计算总分 if(n=0)head=p1;/如果是输入第一组学生考试信息就将指针p1赋给指针head else p2next=p1;/否则将p1赋给p2所指结构体的next指针 p2=p1;/将指针p1赋给指针p2 n+; /将n的值加1 coutnext=NULL;/将p2所指结构体的next指针重新赋空值 return (head);/将输入的第一组学生考试信息返回 void Information:output(student head) /定义output()函数将学生的信息从头指针所指内容开始

    7、输出 if(head=NULL) cout” 这是一个空表,请先输入考生成绩。n”; else cout”-n”; cout” 学生成绩信息表*n”; cout”-n; cout”学号 姓 名 性别 院系 语文 英语 数学 C+ 平均成绩 总分n”; cout-n”; p1=head;/将头指针赋给p do coutsetw(8)p1id setw(9)p1-name setw(8)p1sex setw(13)p1-score0 setw(16)score2 setw(9)score3 setw(6)p1total/4.0 setw(11)p1totalendl; cout-n”; p1=p1

    8、next;/将下一组学生信息的next指针赋给p while(p1!=NULL);/若指针p非空则继续,目的是把所有的学生信息都传给指针p然后输出。 /统计学生人数的函数 int Information::count(struct student head)/定义函数count()统计考生总数 if(head=NULL) /若指针head为空返回值为0 return(0); else return(1+count(headnext);/函数的递归调用 /插入学生的成绩信息的函数 student Information::insert( student head) /插入新结点定义一个指向str

    9、uct student的结构体指针函数insert()用来添加考生信息. char str10; int flag=0; cout”t-n”endl; p1=(student )malloc(LEN); /使p1指向插入的新结点 coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中 coutp1-sex; coutstr; if(atol(str)99999999 | atol(str)1) coutid=atol(str); flag=1; while(flag=0); flag=0; coutstr; if(atoi(str)100 | atoi(str)1) co

    10、utscore0=atoi(str); flag=1; while(flag=0); flag=0; cout” 外语成绩:”; do cinstr; if(atoi(str)100 atoi(str)1) cout”对不起,请输入1100之间的数字!n”; else p1score1=atoi(str); flag=1; while(flag=0); flag=0; coutstr; if(atoi(str)100 atoi(str)1) coutscore2=atoi(str); flag=1; while(flag=0); flag=0; cout” C+成绩:”; do cinstr;

    11、 if(atoi(str)100 atoi(str)1) cout”对不起,请输入1100之间的数字!!n”; else p1score3=atoi(str); flag=1; while(flag=0); flag=0; p1total=p1-score0+p1score1+p1score2+p1-score3;/计算总分 p2=head;/将头指针赋给p2 if(head=NULL) /若没调用次函数以前的头指针head为空 head=p1;p1-next=NULL;/则将p1赋给头指针head并将p1所指结构体成员指针next赋空值 else while(p1idp2id)&(p2nex

    12、t!=NULL)) p3=p2;/p3指向原p2指向的结点 p2=p2next; /p2后移一个结点 if(p1idnext=p1; p1next=p2; /插入到p3所指结点之后 else p2next=p1; p1-next=NULL; /插入到尾结点之后 n+;/将学生人数加1 coutid&p1next!=NULL)/寻找要删除的结点当p1所指的学号不是输入的学号并且p1所指的next指针不为空 p2=p1; p1=p1next; /p2指向原p1指向的结点p1后移一个结点 if(num=p1id)/如果输入的学生准考证号是p1所指的学号结点找到后删除 if(p1=head) head

    13、=p1-next;/如果head指针和p1指针相等则将下一个结点赋给指针head else p2next=p1next;/否则将p1所指结点赋给p2所指结点将要删除的学生信息跳过去 cout” 删除学号为”num”的学生n; n;/将学生人数减1 return(head);/将头指针返回 /查找学生信息函数 student Information::find(student head,long int num) /定义一个指向struct student的结构体指针函数find()用来查找学生信息. if(head=NULL)/若调用次函数以前的头指针head为空 coutnext; /p1后

    14、移一个结点 if(num=p1-id)/如果要查找的学号是p1所指的学号 cout”-n”; cout”学号 姓名 性别 院系 语文 英语 数学 C+ 平均分 总分 n”; cout”-n”; coutsetw(8)id setw(9)name sex setw(13)p1score0 setw(16)p1score1 setw(10)p1score2 setw(9)p1score3 setw(6)p1total/4.0 setw(11)totalendl; cout”-n; else cout” 没找到学号为”num”的学生。n; /结点没找到 return(head); void Info

    15、rmation::inorder(student *head) /定义inorder()函数将考生的总分从大到小排列并输出 int i,k,m=0,j; student p20;/定义一个指向struct student的结构体指针数组p if(head!=NULL)/如果头指针是空则继续 m=count(head); cout-n”; cout学生成绩统计表n”; cout”-n; cout”学号 姓 名 性别 院系 语文 英语 数学 C+ 平均分 总分 名次n; couttotalpjtotal) p2=pk; pk=pj; pj=p2; for(i=0;im;i+) coutsetw(8

    16、)p1id setw(9)name setw(8)p1sex score0 setw(16)p1score1 setw(10)p1score2 setw(9)score3 setw(6)p1-total/4.0 totalendl; cout-n; void Information::average(student *head) /求各科平均成绩的函数 int k,m; float arg1=0,arg2=0,arg3=0,arg4=0; if(head=NULL)/如果头指针是空则继续 cout 这是一个空表,请先输入学生成绩.n”; else m=count(head); p1=head; for(k=0;km;k+) arg1+=p1score0; arg2+=p1-score1; arg3+=p1score2; arg4+=p1score3; p1=p1next; arg1/=m;arg2/=m;arg3/=m;arg4/=m; cout全班单科成绩平均分n; cout”-n; cout


    注意事项

    本文(学生信息管理系统C++语言程序代码.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开