vc学生信息管理系统教学内容_第1页
vc学生信息管理系统教学内容_第2页
vc学生信息管理系统教学内容_第3页
vc学生信息管理系统教学内容_第4页
vc学生信息管理系统教学内容_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。vc学生信息管理系统-vc学生信息管理系统悬赏分:0-解决时间:2008-6-1116:461)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。2)能够将指定的信息从文件中删除。3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。4)可以统计全部学生的总成绩,及其在班上的排名。5)能够统计各科的平均成绩及及格率。6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。7)如果检索不到相应的信息应提示用户。#include#include#include#include#

2、include#include#include#include#include/#defineNULL0intconstQ=20;#defineLENsizeof(structstudent)usingnamespacestd;intn=0;/定义一个全局变量统计学生人数/-定义一个学生考试信息的结构体structstudentcharnameQ;/用来存放姓名的charsexQ;/用来存放性别的longintid;/用来存放准考证号的intscore4;/用来存放分数的inttotal;/用来存放总分数的structstudent*next;/student向量容器vectorstu;/-学

3、生类classInformationpublic:Information();/构造函数.Information();/析构函数.student*creat();/建立链表函数。voidoutput(student*head);intcount(student*head);/定义函数count()统计考生总数student*insert(student*head);/指针函数*insert()用来添加考生信息.student*cancel(student*head,longintnum);/指针函数*cancel()用来删除考生信息.student*find(student*head,long

4、intnum);/指针函数*find()用来查找考生信息.voidinorder(student*head);/定义inorder()函数将考生的总分从大到小排列并输出voidaverage(student*head);/求学生成绩的平均分的函数voidsave(student*head);/保存函数student*Read();/读取函数private:student*p1,*p2,*p3,*head,st;Information:Information()cout*n;cout-n;cout*nn;Information:Information()cout*n;cout-n;cout*n;

5、student*Information:creat(void)/定义一个指向structstudent的结构体指针函数*creat()用来增加考生信息.charchQ;n=0;/用来存放姓名的p1=p2=(student*)malloc(LEN);/调用malloc()函数用来开辟一个新的存储单元cout-endl;coutch;head=NULL;/给指针head赋初值while(strcmp(ch,!)!=0)/调用字符比较函数strcmp()用来判断是否继续输入charstr10;intflag=0;p1=(student*)malloc(LEN);/调用malloc()函数用来开辟一个

6、新的存储单元strcpy(p1-name,ch);/将循环结构前面输入的姓名复制到结构体名为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)coutscore0=atoi(str);flag=1;while(flag=0);flag=0;coutstr;if(atoi(str)100|atoi(str)1)coutscore1=atoi(str);flag=1;w

7、hile(flag=0);flag=0;coutstr;if(atoi(str)100|atoi(str)1)coutscore2=atoi(str);flag=1;while(flag=0);flag=0;coutstr;if(atoi(str)100|atoi(str)1)coutscore3=atoi(str);flag=1;while(flag=0);flag=0;p1-total=p1-score0+p1-score1+p1-score2+p1-score3;/计算总分if(n=0)head=p1;/如果是输入第一组学生考试信息就将指针p1赋给指针headelsep2-next=p1

8、;/否则将p1赋给p2所指结构体的next指针p2=p1;/将指针p1赋给指针p2n+;/将n的值加1coutch;/将输入的姓名存放到字符数组ch中p2-next=NULL;/将p2所指结构体的next指针重新赋空值return(head);/将输入的第一组学生考试信息返回/-定义output()函数将考生的信息从头指针所指内容开始输出voidInformation:output(student*head)if(head=NULL)cout这是一个空表,请先输入考生成绩.n;elsecout-n;cout*学生考试成绩信息表*n;cout-n;cout准考证号姓名性别计算机组成原理概率统计英

9、语C+平均分总分n;cout-n;p1=head;/将头指针赋给pdocoutsetw(8)idsetw(9)namesetw(8)sexsetw(13)score0setw(16)score1setw(10)score2setw(9)score3setw(6)total/4.0setw(11)totalendl;coutnext;/将下一组考生信息的next指针赋给pwhile(p1!=NULL);/若指针p非空则继续,目的是把所有的考生信息都传给指针p然后输出./-统计学生人数的函数intInformation:count(structstudent*head)/定义函数count()统计

10、考生总数if(head=NULL)return(0);/若指针head为空返回值为0elsereturn(1+count(head-next);/函数的递归调用/-插入学生的成绩的函数student*Information:insert(student*head)/插入新结点定义一个指向structstudent的结构体指针函数*insert()用来添加考生信息.charstr10;intflag=0;coutt-nendl;p1=(student*)malloc(LEN);/使p1指向插入的新结点coutp1-name;/将输入的姓名存放到结构体名为p1的数组name中coutp1-sex;

11、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)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)coutscore2=a

12、toi(str);flag=1;while(flag=0);flag=0;coutstr;if(atoi(str)100|atoi(str)1)coutscore3=atoi(str);flag=1;while(flag=0);flag=0;p1-total=p1-score0+p1-score1+p1-score2+p1-score3;/计算总分p2=head;/将头指针赋给p2if(head=NULL)/若没调用次函数以前的头指针head为空head=p1;p1-next=NULL;/则将p1赋给头指针head并将p1所指结构体成员指针next赋空值elsewhile(p1-idp2-id

13、)&(p2-next!=NULL)p3=p2;/p3指向原p2指向的结点p2=p2-next;/p2后移一个结点if(p1-idid)if(head=p2)p1-next=head;head=p1;/插入到第一个结点之前elsep3-next=p1;p1-next=p2;/插入到p3所指结点之后elsep2-next=p1;p1-next=NULL;/插入到尾结点之后n+;/将学生人数加1coutt你输入的学生信息已经成功插入删除函数student*Information:cancel(student*head,longintnum)/定义一个指向structstudent的结构体指针函数*d

14、elete()用来删除考生信息.if(head=NULL)/若调用次函数以前的头指针head为空return(head);elsep1=head;/否则将头指针赋给p1while(num!=p1-id&p1-next!=NULL)/寻找要删除的结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空p2=p1;p1=p1-next;/p2指向原p1指向的结点p1后移一个结点if(num=p1-id)/如果输入的学生准考证号是p1所指的学生准考证号/结点找到后删除if(p1=head)head=p1-next;/如果head指针和p1指针相等则将下一个结点赋给指针hea

15、delsep2-next=p1-next;/否则将p1所指结点赋给p2所指结点将要删除的学生信息跳过去cout删除准考证号为num查找函数student*Information:find(student*head,longintnum)/定义一个指向structstudent的结构体指针函数*find()用来查找考生信息.if(head=NULL)/若调用次函数以前的头指针head为空coutid&p1-next!=NULL)/寻找结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空p1=p1-next;/p2指向原p1指向的结点p1后移一个结点if(num=p1

16、-id)/如果要查找的学生准考证号是p1所指的学生准考证号cout-n;cout准考证号姓名性别计算机组成原理概率统计英语C+平均分总分n;cout-n;coutsetw(8)idsetw(9)namesetw(8)sexsetw(13)score0setw(16)score1setw(10)score2setw(9)score3setw(6)total/4.0setw(11)totalendl;cout-n;elsecout没找到准考证号为num的学生.n;/结点没找到return(head);/-定义inorder()函数将考生的总分从大到小排列并输出voidInformation:ino

17、rder(student*head)inti,k,m=0,j;student*pQ;/定义一个指向structstudent的结构体指针数组pif(head!=NULL)/如果头指针是空则继续m=count(head);cout-n;cout学生考试成绩统计表n;cout-n;cout准考证号姓名性别计算机组成原理概率统计英语C+平均分总分名次n;cout-n;p1=head;for(k=0;knext;for(k=0;km-1;k+)/选择排序法for(j=k+1;jtotaltotal)p2=pk;pk=pj;pj=p2;/从大到小排列的指针for(i=0;im;i+)coutsetw(8

18、)idsetw(9)namesetw(8)sexsetw(13)score0setw(16)score1setw(10)score2setw(9)score3setw(6)total/4.0setw(11)totalendl;cout求各科平均分成绩的函数voidInformation:average(student*head)intk,m;floatarg1=0,arg2=0,arg3=0,arg4=0;if(head=NULL)/如果头指针是空则继续cout这是一个空表,请先输入考生成绩.n;elsem=count(head);p1=head;for(k=0;kscore0;arg2+=p

19、1-score1;arg3+=p1-score2;arg4+=p1-score3;p1=p1-next;arg1/=m;arg2/=m;arg3/=m;arg4/=m;cout全班单科成绩平均分n;cout-n;cout计算机组成原理平均分:setw(7)arg1概率统计平均分:setw(7)arg2英语平均分:setw(7)arg3C+平均分:setw(7)arg4endl;cout保存函数.voidInformation:save(student*head)ofstreamout(data.txt,ios:out);outcount(head)endl;while(head!=NULL)o

20、utnametidttsextscore0tscore1tscore2tscore3ttotalnext;/读取函数的实现student*Information:Read()inti=0;p1=p2=(student*)malloc(LEN);head=NULL;ifstreamin(data.txt,ios:out);ini;if(i=0)coutdata.txt文件中的数据为空,请先输入数据。endl;return0;elsecout0;i-)p1=(student*)malloc(LEN);cinst.idst.sexst.score0st.score1st.score2st.score

21、3st.total;strcpy(p1-name,);p1-id=st.id;strcpy(p1-sex,st.sex);p1-score0=st.score0;p1-score1=st.score1;p1-score2=st.score2;p1-score3=st.score3;p1-total=st.total;if(n=0)head=p1;/如果是输入第一组学生考试信息就将指针p1赋给指针headelsep2-next=p1;/否则将p1赋给p2所指结构体的next指针p2=p1;/将指针p1赋给指针p2n+;/将n的值加1/显示读入数据coutnametidttsextscore0ts

22、core1tscore2tscore3ttotalendl;coutendl;/cout数据已经成功读取完毕。next=NULL;return(head);/-主函数.intmain(void)Informationperson;student*head=NULL;charstr10;intflag=0;intchoice;longinti;head=person.Read();docoutendl;cout学生成绩管理系统主菜单界面endl;cout读取数据请输入数字零endl;coutendl;cout.输入学生成绩endl;cout.显示学生成绩endl;cout.排序统计成绩endl;

23、cout.查找学生成绩endl;cout.增加学生成绩endl;cout.删除学生成绩endl;cout.保存退出系统endl;coutendl;coutstr;if(atoi(str)7|atoi(str)1)cout对不起,请输入1-7这几个数字!n;elsechoice=atoi(str);switch(choice)case1:head=person.creat();break;case2:person.output(head);break;case3:person.inorder(head);person.average(head);cout参加考试的学生人数为:person.cou

24、nt(head)人n;break;case4:coutstr;if(atol(str)99999999|atol(str)1)cout对不起,请输入正确输入!n;elsei=atol(str);flag=1;while(flag=0);flag=0;person.find(head,i);break;case5:head=person.insert(head);person.output(head);break;case6:coutstr;if(atol(str)99999999|atol(str)1)cout对不起,请输入正确输入!hn;elsei=atol(str);flag=1;whil

25、e(flag=0);flag=0;head=person.cancel(head,i);person.output(head);break;case7:person.save(head);cout文件已保存!可以安全退出!endl;break;default:cout相关内容HYPERLINK/question/152102420.html?fr=qrl&cid=866&index=1&fr2=queryt_blank求毕业论文VC“学生信息管理系统”2010-5-25HYPERLINK/question/47128238.html?fr=qrl&cid=866&index=2&fr2=que

26、ryt_blank用VC+做“学生信息管理系统”的登录界面32008-3-19HYPERLINK/question/53288779.html?fr=qrl&cid=866&index=3&fr2=queryt_blank谁能帮我vc+做个学生信息管理系统52008-5-29HYPERLINK/question/58880756.html?fr=qrl&cid=866&index=4&fr2=queryt_blank用VC编写一个学生信息管理系统2008-7-5HYPERLINK/question/163679654.html?fr=qrl&cid=866&index=5&fr2=queryt

27、_blank谁能提供一下用VC+制作一个学生信息管理系统的代码的啊?12010-7-4HYPERLINK/q?word=vc%20%D1%A7%C9%FA%B9%DC%C0%ED%CF%B5%CD%B3&ct=17&pn=0&tn=ikaslist&rn=10&fr=qrl&cid=866&fr2=queryt_blank更多关于vc学生管理系统的问题查看同主题问题:HYPERLINK/topic?ct=29&tn=iktopic&word=%D1%A7%C9%FA%D0%C5%CF%A2%B9%DC%C0%ED%CF%B5%CD%B3&fr=rtag&cid=866&index=1&fr2=

28、queryt_blank学生信息管理系统等待您来回答HYPERLINK/q?ct=18&tn=ikqlall_cookie&lm=2更多0回答HYPERLINK/question/198390515.html?push=qlo谁有易学C+这本书的电子版帮忙发带407066663t_blank谁有易学C+这本书的电子版帮忙发带4070666630回答20HYPERLINK/question/198390365.html?push=qloLinuxwindowssocket传输问题t_blankLinuxwindowssocket传输问题0回答HYPERLINK/question/19839007

29、3.html?push=qloC+简单问题,谢谢。t_blankC+简单问题,谢谢。0回答HYPERLINK/question/198389926.html?push=qlo苹果电脑YY语音的声卡驱动在哪里?QQ757066637t_blank苹果电脑YY语音的声卡驱动在哪里?QQ7570666370回答HYPERLINK/question/198389442.html?push=qlo荣成方正房地产公司开发的宝月山庄怎么样t_blank荣成方正房地产公司开发的宝月山庄怎么样0回答HYPERLINK/question/198389429.html?push=qloc语言中(a)(b)?(a):

30、(b)什么意思t_blankc语言中(a)(b)?(a):(b)什么意思0回答HYPERLINK/question/198389071.html?push=qlo急!在线等!t_blank急!在线等!0回答HYPERLINK/question/198388980.html?push=qlo屡败屡战说明了什么道理t_blank屡败屡战说明了什么道理其他回答共1条#include#include#includestructstudlongnum;charname20;doublescore;typedefstructstucodestructstudstudent;structstucode*ne

31、xt;L;voidmenu();voidcreatelist(structstucode*r);voidout(structstucode*r);voidsearch1(structstucode*r);voidsearch2(structstucode*r);voiddel(structstucode*r);voidinsert(structstucode*r);voidsort(structstucode*r);voidmain()charchoose;intflag=1;structstucode*r=NULL;while(flag)system(cls);menu();choose=g

32、etchar();switch(choose)case1:createlist(&r);out(r);printf(Testingfunction1nPressanykeytocontinuen);getchar();getchar();break;case2:search1(r);printf(Testingfunction1nPressanykeytocontinuen);getchar();getchar();break;case3:search2(r);printf(Testingfunction1nPressanykeytocontinuen);getchar();getchar()

33、;break;case4:del(&r);out(r);printf(Testingfunction1nPressanykeytocontinuen);getchar();getchar();break;case5:insert(&r);out(r);printf(Testingfunction1nPressanykeytocontinuen);getchar();getchar();break;case6:sort(&r);out(r);printf(Testingfunction1nPressanykeytocontinuen);getchar();getchar();break;case

34、7:out(r);printf(Testingfunction7nPressanykeytocontinuen);getchar();getchar();break;case0:flag=0;printf(Theend.n);break;default:printf(nWrongSelection!(选择错误,请重选!)n);getchar();getchar();voidcreatelist(structstucode*r)structstucode*p,*t;longn;chara20;doubles;if(*r)*r=NULL;printf(n请输入:n学号(请按学号升序排列)姓名分数(

35、若要结束请输入三个为零)n);scanf(%ld%s%lf,&n,a,&s);if(n=0)return;p=(L*)malloc(sizeof(L);p-student.num=n;strcpy(p-,a);p-student.score=s;p-next=NULL;*r=p;scanf(%ld%s%lf,&n,a,&s);while(n)t=p;p=(L*)malloc(sizeof(L);p-student.num=n;strcpy(p-,a);p-student.score=s;p-next=NULL;t-next=p;scanf(%ld%s%lf,&n,a,&s);voidsearc

36、h1(structstucode*r)longx;if(!r)printf(没有学生信息可查询!n);return;printf(请输入要查询的学生信息的学生学号:n);scanf(%ld,&x);while(r&r-student.num!=x)r=r-next;if(r=NULL)printf(Error!Nosuchstudent!n);elseprintf(%ld%s%.2lfn,r-student.num,r-,r-student.score);voidsearch2(structstucode*r)charm20;if(!r)printf(没有学生信息可查询!n);return;printf(请输入要查询的学生信息的学生姓名:n);scanf(%s,m);while(r&strcmp(r-,m)r=r-next;if(r=NULL)printf(Error!Nosuchstudent!n);elseprintf(%ld%s%.2lfn,r-student.num,r-,r-student.score);voiddel(structstucode*r)longk;structstucode*p=*r,*t;if(!(*r)printf(没有学生信息可删除!n);return;printf(请输入要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论