C,课程设计报告书[1].doc_第1页
C,课程设计报告书[1].doc_第2页
C,课程设计报告书[1].doc_第3页
C,课程设计报告书[1].doc_第4页
C,课程设计报告书[1].doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

淮 海 工 学 院 计算机工程学院课程设计报告设计名称: C+语言课程设计 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院软件工程系 设计时间: 2011.6.82011.6.24 设计地点: 计算机工程学院机房 成绩:指导教师评语: 签名: 年 月 日C+课程设计报告 第 37 页,共 37 页1课程设计目的C+课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C+的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C+这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2课程设计任务与要求:要求:本次课程设计利用C+程序设计课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、编程简练,程序功能齐全,能正确运行4、说明书、流程图要清楚5、课题完成后必须按要求提交课程设计报告任务:设计一个学生成绩排名系统,该系统的主要功能如下:1) 具备对成绩的管理功能(添加、删除、排序)2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等)3) 具备按学号、姓名、或课程名查询成绩的功能。4)学生成绩应该保存在文件中。3课程设计说明书概要设计模块说明: 在我设计的程序中一共包括了九个模块,分别是:浏览模块、添加模块、删除模块、查询模块、编辑模块、排序模块、读入文件模块、统计模块、退出系统模块。这九个功能中各个都是独立分开作为子函数的,也就是说为了实现这九个功能我写了九个函数,在主函数中通过switch语句,把九个函数联系了起来,同时,为了实现多次使用这九个函数,就在switch语句外加了for循环。 功能机构图:详细设计 总体流程图:各功能模块流程图:浏览功能模块流程图 添加功能模块流程图 删除功能模块流程图 查询功能模块流程图修改功能模块流程图排序功能模块流程图读入文件功能模块流程图统计功能模块流程图退出系统功能模块流程图4课程设计成果源代码:#include #include#include#includeusing namespace std;struct lessonfloat cgrade;float egrade;float mgrade;struct man char name10; char clas20; int num;float sum;float average;lesson less;m100;int n=100; static int e=0;void sort();void handle();void search();void error() cout-输入错误请从新输入-endl;coutn;void data_input() int a;cout添加学生信息endl;cout请输入信息 依次输入:学号 姓名 班级 C+ 英语 数学 输0结束endl;for(a=e;ama.num; if(ma.num=0) break; ma.clasma.less.cgrade ma.less.egradema.less.mgrade; e+; void data_show() int i;coutsetiosflags(ios:left)setw(2)学号 setw(10)姓名setw(10)班级setw(10)C+setw(10)英语setw(10)数学setw(10)总分setw(10)平均分endl;for(i=0;ie;i+)mi.sum=mi.less.cgrade+mi.less.egrade+mi.less.mgrade; mi.average=mi.sum/3;coutsetiosflags(ios:left)setw(5)mi.num setw(10)setw(10)mi.classetw(10)mi.less.cgradesetw(10)mi.less.egradesetw(10)mi.less.mgradesetw(10)mi.sumsetw(10)mi.averageendl; if(mi.num=0) break;void dalete() data_show(); couta; for(int i=0;ie;i+) if(a=mi.num) c+;int j;for(j=i;je-1;j+)strcpy(,mj+1.name);strcpy(mj.clas,mj+1.clas);mj.less.cgrade=mj+1.less.cgrade; mj.less.egrade=mj+1.less.egrade; mj.less.mgrade=mj+1.less.mgrade; mj.num=mj+1.num; for(i=0;ie-1;i+)coutsetw(5)mi.numsetw(15)setw(20)mi.classetw(12)mi.less.cgradesetw(15)mi.less.egradesetw(15)mi.less.mgradeendl;cout-删除成功-endl;break; if(c=0) error(); e-; void handle() float sumc=0,sume=0,summ=0;static float sum=0; char max_class20,max_name20,min_class20,min_name20;int i,j,c=0; float count1=0,count2=0,count3=0;float maxc=m0.less.cgrade,minc=m0.less.cgrade,pc,maxe=m0.less.egrade,mine=m0.less.egrade,pe,maxm=m0.less.mgrade,minm=m0.less.mgrade,pm,max_score=maxc+maxe+maxm,min_score=maxc+maxe+maxm,max_cgrade=0,max_egrade=0,max_mgrade=0,max_num=0,min_cgrade=0,min_egrade=0,min_mgrade=0,min_num;for(i=1;imi.less.cgrade)minc=mi.less.cgrade;if(maxcmi.less.egrade)mine=mi.less.egrade;if(maxemi.less.mgrade)minm=mi.less.mgrade;if(maxmmi.less.mgrade)maxm=mi.less.mgrade;if(max_score(mi.less.cgrade+mi.less.egrade+mi.less.mgrade) min_score=mi.less.cgrade+mi.less.egrade+mi.less.mgrade; min_num=mi.num;strcpy(min_name,);strcpy(min_class,mi.clas);min_cgrade=mi.less.cgrade;min_egrade=mi.less.egrade;min_mgrade=mi.less.mgrade; for(j=0;j=60) +count1; sume=sume+mj.less.egrade;if(mj.less.egrade=60) +count2; summ=summ+mj.less.mgrade;if(mj.less.mgrade=60) +count3;pc=count1;pe=count2;pm=count3;cout求学号为t的学生的总分和平均分请输入0,求全班总成绩信息请输入其它数字k;if(k=0)cout请输入学生学号:t;for(i=0;ie;i+)if(t=mi.num)sum=mi.less.cgrade+mi.less.egrade+mi.less.mgrade;cout他是: 总分:sum 平均分 :sum/3endl;c+;if(c=0) error();elsecout1 C+成绩,2 英语成绩,3 数学成绩,4 全班成绩endl; cout请输入序号:r; switch(r) case 1:cout(1)C+成绩最高分: maxc C+成绩最低分: mincendl; cout C+全班平均分: sumc/e C+及格率: pc/eendl;break; case 2:cout(2)英语成绩最高分: maxe 英语成绩最低分: mineendl; cout 英语全班平均分: sume/e 英语及格率: pe/eendl;break; case 3:cout(3)数学成绩最高分: maxm 数学成绩最低分: minmendl; cout 数学全班平均分: summ/e 数学及格率: pm/eendl;break; case 4:cout 全班最高分: max_scoreendl; cout他的信息为:endl; coutsetiosflags(ios:left)setw(2)学号 setw(15)姓名setw(12)班级setw(12) C+setw(15)英语setw(15)数学endl; coutsetiosflags(ios:left)setw(5)max_num setw(15)max_namesetw(12)max_classsetw(12) max_cgradesetw(15)max_egradesetw(15)max_mgradeendl; cout 全班最低分: min_scoreendl; cout他的信息为:endl; coutsetiosflags(ios:left)setw(2)学号 setw(15)姓名setw(12)班级setw(12) C+setw(15)英语setw(15)数学endl; coutsetiosflags(ios:left)setw(5)min_num setw(15)min_namesetw(12)min_classsetw(12) min_cgradesetw(15)min_egradesetw(15)min_mgradeendl; break; default:error(); break; void search1() data_show(); cout请输入您要查找的学号:a; int bool=0; for(int i=0;in;i+) if(a=mi.num) coutsetiosflags(ios:left)setw(2)学号 setw(15)姓名setw(12)班级setw(12) C+setw(15)英语setw(15)数学endl; coutsetiosflags(ios:left)setw(5)mi.num setw(15)setw(12)mi.classetw(12) mi.less.cgradesetw(15)mi.less.egradesetw(15) mi.less.mgradeendl; coutendl; bool=1; if(bool=0) cout-抱歉没有您要查询的信息-endl; search(); void search2() data_show(); cout请输入您要查找的姓名:a; int bool=0; for(int i=0;in;i+) if(a=) coutsetiosflags(ios:left)setw(2)学号 setw(15)姓名setw(12)班级setw(12) C+setw(15)英语setw(15)数学endl; coutsetiosflags(ios:left)setw(5)mi.num setw(15)setw(12)mi.classetw(12) mi.less.cgradesetw(15)mi.less.egradesetw(15) mi.less.mgradeendl; coutendl; bool=1; if(bool=0) cout-抱歉没有您要查询的信息-endl; search();void search3() data_show(); cout请输入您要查找的课程:a; int bool=0; for(int i=0;ie;i+) if(a=C+) coutsetiosflags(ios:left)setw(2)setw(15) 姓名setw(12)C+成绩:endl; coutsetiosflags(ios:left)setw(5)setw(15) setw(12)mi.less.cgradeendl; coutendl; bool=1; else if(a=英语) coutsetiosflags(ios:left)setw(2)setw(15) 姓名setw(12)英语成绩:endl; coutsetiosflags(ios:left)setw(5)setw(15) setw(12)mi.less.egradeendl; coutendl; bool=1; else if(a=数学) coutsetiosflags(ios:left)setw(2)setw(15) 姓名setw(12)数学成绩:endl; coutsetiosflags(ios:left)setw(5)setw(15) setw(12)mi.less.mgradeendl; coutendl; bool=1; if(bool=0) cout-抱歉没有您要查询的信息-endl; search(); void search() cout按学号查找请输入1endl;cout按姓名查找请输入2endl;cout按课程查找请输入3endl;cout退出请输入4endl;coutr;switch(r) case 1:search1();break; case 2:search2();break; case 3:search3();break; case 4:cout-GOOD LUCK-endl;break; default:error(); void compile() data_show(); couta; /i-; for(i=0;ie;i+) if(a=mi.num) c+; for(;) cout(1).姓名:; endl; cout(2).班级:; coutmi.clasendl; cout(3).学号:; coutmi.numendl; cout(4).C+成绩:; coutmi.less.cgradeendl; cout(5).英语成绩:; coutmi.less.egradeendl; cout(6).数学成绩:; coutmi.less.mgradeendl; cout(7).exitendl; coutendl; cout编辑姓名请输入1endl; cout编辑班级请输入2endl; cout编辑学号请输入3endl; cout编辑C+成绩请输入4endl; cout编辑英语成绩请输入5endl; cout编辑数学成绩请输入6endl; cout退出请输入7endl; coutendl; coutr; switch(r) case 1:;break; case 2:coutmi.clas;break; case 3:coutmi.num;break; case 4:coutmi.less.cgrade;break; case 5:coutmi.less.egrade;break; case 6:coutmi.less.mgrade;break; case 7:cout-修改成功-endl; return;break; default:error(); if(c=0) error(); compile(); void sort1()int j,i;char temp120,temp220 ;int temp4,temp5,temp6;float temp7;for(i=0;ie-1;i+) for(j=0;j=0) strcpy(temp1,); strcpy(temp2,mj.clas);temp4=mj.less.cgrade;temp5=mj.less.egrade;temp6=mj.less.mgrade;temp7=mj.num;strcpy(,mj+1.name);strcpy(mj.clas,mj+1.clas);mj.less.cgrade=mj+1.less.cgrade;mj.less.egrade=mj+1.less.egrade;mj.less.mgrade=mj+1.less.mgrade;mj.num=mj+1.num;strcpy(mj+1.name,temp1);strcpy(mj+1.clas,temp2);mj+1.less.cgrade=temp4;mj+1.less.egrade=temp5;mj+1.less.mgrade=temp6; mj+1.num=temp7;data_show(); coutsort sucess!endl;coutendl;sort();void sort2()int j,i,k; char temp120,temp220 ;int temp4,temp5,temp6;float temp7;for(i=0;ie-1;i+)k=i; for(j=i+1;je;j+)if(strcmp(mj.clas,mk.clas)0) k=j;strcpy(temp1,);strcpy(temp2,mk.clas);temp4=mk.less.cgrade;temp5=mk.less.egrade;temp6=mk.less.mgrade;temp7=mk.num;strcpy(,);strcpy(mk.clas,mi.clas);mk.less.cgrade=mi.less.cgrade;mk.less.egrade=mi.less.egrade;mk.less.mgrade=mi.less.mgrade;mk.num=mi.num;strcpy(,temp1);strcpy(mi.clas,temp2);mi.less.cgrade=temp4;mi.less.egrade=temp5;mi.less.mgrade=temp6;mi.num=temp7;data_show(); coutsort sucess!endl;coutendl;sort();void sort3()int j,i;char temp120,temp220 ;int temp4,temp5,temp6;float temp7;for(i=0;ie-1;i+) for(j=0;je-i-1;j+)if( mj.less.egrademj+1.less.egrade) strcpy(temp1,); strcpy(temp2,mj.clas);temp4=mj.less.cgrade;temp5=mj.less.egrade;temp6=mj.less.mgrade;temp7=mj.num;strcpy(,mj+1.name);strcpy(mj.clas,mj+1.clas);mj.less.cgrade=mj+1.less.cgrade;mj.less.egrade=mj+1.less.egrade;mj.less.mgrade=mj+1.less.mgrade;mj.num=mj+1.num;strcpy(mj+1.name,temp1);strcpy(mj+1.clas,temp2);mj+1.less.cgrade=temp4;mj+1.less.egrade=temp5;mj+1.less.mgrade=temp6; mj+1.num=temp7;data_show(); coutsort sucess!endl;coutendl;sort();void sort4()int j,i;char temp120,temp220 ;int temp4,temp5,temp6;float temp7;for(i=0;ie-1;i+) for(j=0;j=mj+1.less.cgrade) strcpy(temp1,); strcpy(temp2,mj.clas);temp4=mj.less.cgrade;temp5=mj.less.egrade;temp6=mj.less.mgrade;temp7=mj.num;strcpy(,mj+1.name);strcpy(mj.clas,mj+1.clas);mj.less.cgrade=mj+1.less.cgrade;mj.less.egrade=mj+1.less.egrade;mj.less.mgrade=mj+1.less.mgrade;mj.num=mj+1.num;strcpy(mj+1.name,temp1);strcpy(mj+1.clas,temp2);mj+1.less.cgrade=temp4;mj+1.less.egrade=temp5;mj+1.less.mgrade=temp6; mj+1.num=temp7;data_show(); coutsort sucess!endl;coutendl;sort(); void sort5()int j,i;char temp120,temp220 ;int temp4,temp5,temp6;float temp7;for(i=0;ie-1;i+) for(j=0;j=mj+1.less.mgrade) strcpy(temp1,); strcpy(temp2,mj.clas);temp4=mj.less.cgrade;temp5=mj.less.egrade;temp6=mj.less.mgrade;temp7=mj.num;strcpy(,mj+1.name);strcpy(mj.clas,mj+1.clas);mj.less.cgrade=mj+1.less.cgrade;mj.less.egrade=mj+1.less.egrade;mj.less.mgrade=mj+1.less.mgrade;mj.num=mj+1.num;strcpy(mj+1.name,temp1);strcpy(mj+1.clas,temp2);mj+1.less.cgrade=temp4;mj+1.less.egrade=temp5;mj+1.less.mgrade=temp6; mj+1.num=temp7;data_show(); coutsort sucess!endl;coutendl;sort(); void sort6()int j,i;char temp120,temp220 ;int temp4,temp5,temp6;float temp7;for(i=0;ie-1;i+) for(j=0;j=mj+1.num) strcpy(temp1,); strcpy(temp2,mj.clas);temp4=mj.less.cgrade;temp5=mj.less.egrade;temp6=mj.less.mgrade;temp7=mj.num;strcpy(,mj+1.name);strcpy(mj.clas,mj+1.clas);mj.less.cgrade=mj+1.less.cgrade;mj.less.egrade=mj+1.less.egrade;mj.less.mgrade=mj+1.less.mgrade;mj.num=mj+1.num;strcpy(mj+1.name,temp1);strcpy(mj+1.clas,temp2);mj+1.less.cgrade=temp4;mj+1.less.egrade=te

温馨提示

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

评论

0/150

提交评论