学生成绩管理系统.doc_第1页
学生成绩管理系统.doc_第2页
学生成绩管理系统.doc_第3页
学生成绩管理系统.doc_第4页
学生成绩管理系统.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

学生成绩管理系统程序设计基础课程设计报告二OO八 年 七月 二 日目 录1课程设计目的22课程设计题目描述和要求23课程设计报告内容23.1帮助菜单63.2录入功能63.3打印信息83.4排序功能103.5统计功能133.5.1一班统计153.5.2二班统计173.6查询功能193.6.1按学号查询203.6.2按姓名查询213.6.3按成绩查询223.6.4按分数段查询243.7添加功能283.8删除功能303.9修改功能334.调试与测试365课程设计总结381课程设计目的: 通过一学年的C+课程学习,运用所学知识,根据给出的要求,编写一个“学生成绩管理系统”,要求用类来实现。以此来表示确实通过C+的课程学习。2课程设计题目描述和要求:C+题目:学生成绩管理系统(限最多2人完成)课程设计程序实现要求:1.有启动和退出界面;2.采用按纽或菜单选择方法选择相应的功能(录入、查询、统计、打印和退出);3.要求系统具有下列功能:(1)以班级为单位,进行学生成绩的录入,包括学号、姓名、班级、计算机文化基础等字段,所录入的数据存入一个文本文件中,能根据情况调出数据;(2)具有对学生数据进行插入、删除功能,具有按学号进行排序功能;(3)具有查询功能:按学生学号或姓名进行查询;按学生成绩及格或不及格查询学生情况;按各分数段查询学生情况(每隔10分为一个分数段,60分以下为一段)。(4)具有统计功能:统计学生各分数段的人数,统计及格、不及格的人数;按各分数段的人数生成二维柱形图;统计该门课程的总分和平均分。4.具有打印功能,即能在屏幕上输出学生成绩单。3课程设计报告内容:#include #include #include #include using namespace std;void help(); /声明帮助函数。 void max();void Shuru();void Xianshi();void Paixu();void Tongji();void look();void look1();void look2();void look3();void look4();void add();void shanxhu();void change();class studentpublic:int number;char name10;char sex6;int banji;double chengji;student * stu=new student1000; /定义动态数组。int main()string again=1; /声明一个用于系统循环的数据,并赋初值用于判断!while(again=1)cout请按下列菜单进行操作endl; cout功能菜单endl;cout1.学生信息打印endl;cout2.学生信息添加endl;cout3.学生信息修改endl;cout4.学生信息删除endl;cout5.学生信息查询endl;cout6.学生信息录入endl;cout7.学生信息统计endl;cout8.学生信息排序endl;cout9.帮助菜单endl;cout0.退出系统endl;cout endl; coutendl;cout ;char work_number10;/定义为字符型以免输入类型不对时而出错!cinwork_number;while(strcmp(work_number,1)!=0&strcmp(work_number,2)!=0&strcmp(work_number,3)!=0&strcmp(work_number,4)!=0&strcmp(work_number,5)!=0&strcmp(work_number,6)!=0&strcmp(work_number,7)!=0&strcmp(work_number,8)!=0&strcmp(work_number,9)!=0&strcmp(work_number,0)!=0)coutwork_number;int work_number_int=atoi(work_number); /将字符强制转化成整型数字string f=1; /在case语句中不能对f赋初值。string bianbie3;switch(work_number_int)case 1:cout你选择的是打印学生信息endl;Xianshi();break;case 2:cout你选择的是添加学生信息endl;add();break;case 3:cout你选择的是修改学生信息endl;change();break;case 4:cout你选择的是删除学生信息endl;shanxhu();break;case 5:cout你选择的是查询学生信息endl;while(f=1)look();coutf;while(f!=1&f!=0)coutf;break;case 6:cout你选择的是录入学生信息endl;cout!注意!,如果选择录入功能将丢失原有数据!endl;coutbianbie3;while(bianbie3!=1&bianbie3!=0)coutbianbie3;if(bianbie3=1)max();Shuru();break;case 7:Tongji();break;case 8:Paixu();break;case 9:help(); break;case 0:break;coutagain;while(again!=1&again!=0)coutagain;cout谢谢使用本系统!endl;return 0;3.1帮助菜单:void help()cout帮助在此endl; cout请根据提示操作,不要胡乱输入,否则系统会报错endl;3.2录入功能:void max()int max1;coutmax1;ofstream outfile1(max.dat,ios:out);/用ios:out这种方法打开,会将其原有内容全部清空if(! outfile1)cerropen error!endl;exit(1);elsecout打开文件成功!endl;outfile1max1;outfile1.close();void Shuru()int max;ifstream infile2(max.dat,ios:in);if(! infile2)cerrmax;student * stu=new studentmax; /定义动态数组。cout请输入1班学生的信息endl;cout请输入1班学生的人数:ren1;for(int j=0;jren1;j+)cout请输入1班第j+1位学生的资料:endl;coutstuj.number;;coutstuj.sex;stuj.banji=1;coutstuj.chengji;cout请输入2班学生的信息endl;for(j=ren1;jmax;j+)/应该是ren1-1吧cout请输入2班第j+1-ren1位学生的资料:endl;coutstuj.number;;coutstuj.sex;stuj.banji=2;coutstuj.chengji;ofstream outfile3(student.dat,ios:out);if(! outfile3)cerropen error!endl;abort();elsecout打开文件成功!endl;for(int i=0;imax;i+)outfile3stui.number stui.sex stui.banji stui.chengji ;outfile3.close();3.3打印信息:void Xianshi()int max;ifstream infile4(max.dat,ios:in);if(! infile4)cerrmax; /将文件中的数据值赋给max。ifstream infile5(student.dat,ios:in);if(! infile5)cerropen error!endl;exit(1);for(int i=0;stui.sexstui.banjistui.chengji; /将employee中的数据传给动态数组!infile5.close(); coutpanbie1;if(panbie1=0)cout全部信息endl;for(int j=0;jmax;j+)coutsetw(2)学号:setw(8)stuj.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stuj.sexsetw(6)班级:setw(1)stuj.banji班setw(6)成绩:setw(4)stuj.chengjiendl;else if(panbie1=1)cout1班信息endl;for(int j=0;jmax;j+)if(stuj.banji=1)coutsetw(2)学号:setw(8)stuj.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stuj.sexsetw(6)班级:setw(1)stuj.banji班setw(6)成绩:setw(4)stuj.chengjiendl;else if(panbie1=2)cout 2班信息endl;for(int j=0;jmax;j+)if(stuj.banji=2)coutsetw(2)学号:setw(8)stuj.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stuj.sexsetw(6)班级:setw(1)stuj.banji班setw(6)成绩:setw(4)stuj.chengjiendl;elsecout没有该班级endl;3.4排序功能:void Paixu()int i,j,max;ifstream infile15(max.dat,ios:in);if(! infile15)cerrmax;ifstream infile12(student.dat,ios:in);if(! infile12)cerropen error!endl;exit(1);for(i=0;stui.sexstui.banjistui.chengji;int k,m1,m2;char c110,c26;double t1;coutpai;while(strcmp(pai,1)!=0&strcmp(pai,2)!=0)coutpai;if(strcmp(pai,1)=0)for (i=0;imax-1;i+)/冒泡法k=i;for (j=i+1;jstuj.number)k=j;if(k!=i)m1=stui.number;stui.number=stuk.number;stuk.number=m1;strcpy(c1,);strcpy(,);strcpy(,c1);strcpy(c2,stui.sex);strcpy(stui.sex,stuk.sex);strcpy(stuk.sex,c2);m2=stui.banji;stui.banji=stuk.banji;stuk.banji=m2;t1=stui.chengji;stui.chengji=stuk.chengji;stuk.chengji=t1;if(strcmp(pai,2)=0)for (i=0;imax-1;i+)/冒泡法k=i;for (j=i+1;jmax;j+)if (stuk.chengjistuj.chengji)k=j;if(k!=i)m1=stui.number;stui.number=stuk.number;stuk.number=m1;strcpy(c1,);strcpy(,);strcpy(,c1);strcpy(c2,stui.sex);strcpy(stui.sex,stuk.sex);strcpy(stuk.sex,c2);m2=stui.banji;stui.banji=stuk.banji;stuk.banji=m2;t1=stui.chengji;stui.chengji=stuk.chengji;stuk.chengji=t1;ofstream outfile9(student.dat,ios:out);if(! outfile9)cerropen error!endl;abort();for(i=0;imax;i+)outfile9stui.number stui.sex stui.banji stui.chengji ;outfile9.close();cout排序成功endl;3.5统计功能:void Tongji()int i,max;ifstream infile16(max.dat,ios:in);if(! infile16)cerrmax;ifstream infile17(student.dat,ios:in);if(! infile17)cerropen error!endl;exit(1);for(i=0;stui.sexstui.banjistui.chengji;int k1=0,k2=0,k3=0,k4=0,k5=0,k6=0;for(i=0;i=90&stui.chengji=80&stui.chengji=70&stui.chengji=60&stui.chengji70)k5+;if(stui.chengji60)k6+;int zong;zong=k1+k2+k3+k4+k5;double zongfen=0;double pin;for(i=0;imax;i+)zongfen=zongfen+stui.chengji;pin=zongfen/max;double lv;lv=zong/max*100;cout全部学生信息endl;cout总人数为max人endl;cout及格人数为:zong人 不及格人数为:k6人endl;cout及格率为: lv%endl;cout总分为zongfen分 平均分为pin分endl;cout100 分数段人数:;for(i=0;ik1;i+) cout;coutk1人endl;cout90 分数段人数:;for(i=0;ik2;i+)cout;coutk2人endl;cout80 分数段人数:;for(i=0;ik3;i+)cout;coutk3人endl;cout70 分数段人数:;for(i=0;ik4;i+)cout;coutk4人endl;cout60 分数段人数:;for(i=0;ik5;i+)cout;coutk5人endl;cout60分下数段人数:;for(i=0;ik6;i+)cout;coutk6人endl;3.5.1一班统计:int k11=0,k12=0,k13=0,k14=0,k15=0,k16=0;for(i=0;i=90&stui.chengji=80&stui.chengji=70&stui.chengji=60&stui.chengji70)k15+;if(stui.chengji60)k16+;int zong1;zong1=k11+k12+k13+k14+k15;double zongfen1=0;double pin1;int ren11=0;for(i=0;imax;i+)if(stui.banji=1)+ren11;zongfen1=zongfen1+stui.chengji;pin1=zongfen1/ren11;double lv1;lv1=zong1/ren11*100;cout1班学生信息endl;cout1班总人数为ren11人endl;cout及格人数为:zong1人 不及格人数为:k16人endl;cout及格率为: lv1%endl;cout总分为zongfen1分平均分为pin1分endl;cout100 分数段人数:;for(i=0;ik11;i+)cout;coutk11人endl;cout90 分数段人数:;for(i=0;ik12;i+)cout;coutk12人endl;cout80 分数段人数:;for(i=0;ik13;i+)cout;coutk13人endl;cout70 分数段人数:;for(i=0;ik14;i+)cout;coutk14人endl;cout60 分数段人数:;for(i=0;ik15;i+)cout;coutk15人endl;cout60分下数段人数:;for(i=0;ik16;i+)cout;coutk16人endl;3.5.2二班统计:int k21=0,k22=0,k23=0,k24=0,k25=0,k26=0;for(i=0;i=90&stui.chengji=80&stui.chengji=70&stui.chengji=60&stui.chengji70)k25+;if(stui.chengji60)k26+;int zong2;zong2=k21+k22+k23+k24+k25;double zongfen2=0;double pin2;int ren22=0;for(i=0;imax;i+)if(stui.banji=2)+ren22;zongfen2=zongfen2+stui.chengji;pin2=zongfen2/ren22;double lv2;lv2=zong2/ren22*100;cout2班学生信息endl;cout1班总人数为ren22人endl;cout及格人数为:zong2人 不及格人数为:k26人endl;cout及格率为: lv2%endl;cout总分为zongfen2分 平均分为pin2分endl;cout100 分数段人数:;for(i=0;ik21;i+)cout;coutk21人endl;cout90 分数段人数:;for(i=0;ik22;i+)cout;coutk22人endl;cout80 分数段人数:;for(i=0;ik23;i+)cout;coutk23人endl;cout70 分数段人数:;for(i=0;ik24;i+)cout;coutk24人endl;cout60 分数段人数:;for(i=0;ik25;i+)cout;coutk25人endl;cout60分下数段人数:;for(i=0;ik26;i+)cout;coutk26人endl;3.6查询功能:void look()cout按学号查询请按 1,按姓名查询请按 2:endl;coutway;while(strcmp(way,1)!=0&strcmp(way,2)!=0&strcmp(way,3)!=0&strcmp(way,4)!=0)coutway;if(strcmp(way,1)=0)look1();if(strcmp(way,2)=0)look2();if(strcmp(way,3)=0)look3();if(strcmp(way,4)=0)look4();3.6.1按学号查询:void look1()int max;ifstream infile1(max.dat,ios:in);if(! infile1)cerrmax;ifstream infile13(student.dat,ios:in);if(! infile13)cerropen error!endl;exit(1);for(int i=0;stui.sexstui.banjistui.chengji;coutnum;cout查询结果endl;int bianbie2=0;for(int j=0;jmax;j+)if(stuj.number =num)+bianbie2;coutsetw(2)学号:setw(8)stuj.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stuj.sexsetw(6)班级:setw(1)stuj.banji班setw(6)成绩:setw(4)stuj.chengjiendl;if(bianbie2=0)cout没有你查询的同学endl;infile13.close();3.6.2按姓名查询:void look2()int max;ifstream infile14(max.dat,ios:in);if(! infile14)cerrmax;ifstream infile15(student.dat,ios:in);if(! infile15)cerropen error!endl;exit(1);for(int i=0;stui.sexstui.banjistui.chengji;coutname1;cout查询结果endl;int bianbie2=0;for(int j=0;jmax;j+)if(strcmp(name1,)=0)+bianbie2;coutsetw(2)学号:setw(8)stuj.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stuj.sexsetw(6)班级:setw(1)stuj.banji班setw(6)成绩:setw(4)stuj.chengjiendl;if(bianbie2=0)cout没有你查询的同学endl;infile15.close();3.6.3按成绩查询:void look3()int max;ifstream infile17(max.dat,ios:in);if(! infile17)cerrmax;ifstream infile18(student.dat,ios:in);if(! infile18)cerropen error!endl;exit(1);for(int i=0;stui.sexstui.banjistui.chengji;coutji;cout查询结果endl;if(ji=1)for(int i=0;i=60)+bianbie3;coutsetw(2)学号:setw(8)stui.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stui.sexsetw(6)班级:setw(1)stui.banji班setw(6)成绩:setw(4)stui.chengjiendl;cout共有bianbie3名同学及格!endl;if(ji=2)for(int i=0;imax;i+)if(stui.chengji60)+bianbie4;coutsetw(2)学号:setw(8)stui.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stui.sexsetw(6)班级:setw(1)stui.banji班setw(6)成绩:setw(4)stui.chengjiendl;cout共有bianbie4名同学不及格endl;infile18.close();3.6.4按分数段查询:void look4()int i,max;ifstream infile17(max.dat,ios:in);if(! infile17)cerrmax;ifstream infile18(student.dat,ios:in);if(! infile18)cerropen error!endl;exit(1);for(i=0;stui.sexstui.banjistui.chengji;cout满分按1,9099按 9,8089按 8endl;coutji;cout查询结果endl;if(ji=1)int bianbie3=0;for(i=0;imax;i+)if(stui.chengji=100)+bianbie3;coutsetw(2)学号:setw(8)stui.numbersetw(2)姓名:setw(6)setw(6)性别:setw(2)stui.sexsetw(6)班级:setw(1)stui.banji班setw(6)成绩:setw(4)stui.chengjiendl;cout共有bianbie3名同学满分endl;if(ji=0)int bianbie0=0;for(i=0;imax;i+)if(stui.chengji60)+bianbie0;coutsetw(

温馨提示

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

评论

0/150

提交评论