C程序课程设计报告-2_第1页
C程序课程设计报告-2_第2页
C程序课程设计报告-2_第3页
C程序课程设计报告-2_第4页
C程序课程设计报告-2_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

二○一○~二○一一学年第二学期信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:DB1001学号:201012135018 姓名:胡志刚指导教师:鲍考明二○一一年九月一,设计题目:学生成绩管理系统二,设计目的和要求1.目的(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握C语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2.要求基本要求:1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3.画出功能模块图;4.进行简单界面设计,能够实现友好的交互;5.具有清晰的程序流程图和数据结构的详细定义;6.熟练掌握C语言对文件的各种操作。创新要求:在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同三,系统功能需求:建立学生信息,信息至少包含学号、姓名、专业、班级、5门课程的成绩;能够提供添加、删除和修改学生信息的功能;能够提供按不同方式查询的功能;如按姓名或学号等查询学生相关信息;能否按照指定需求对学生信息排序。如按指定课程成绩或者按总成绩排序等将学生信息保存在外部文件中;能够按表格方式输出学生信息。四,主要功能模块的算法:1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。

2、查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert()函数来实现。其中通过学号的大小来比较的,并且以此来排序。

4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。五,流程图六,源代码#include<iostream>#include<string>#include<fstream>#include<cstdtlid>#include<iomanip>usingnamespacestd;classstudent{private:charname[20];//姓名doublecpro,english,math,sport,law,hbpro,computer;//课程intorder,number;//名次,学号public:student(){}student(charn[20],intnu,doublecc,doubleeng,doublema,doublesp,doublel,doublehb,doublecom){strcpy(name,n);number=nu;cpro=cc;english=eng;math=ma;sport=sp;law=l;hbpro=hb;computer=com;}friendvoidmain();};voidmain(){cout<<"欢迎进入**学生成绩管理系统**!"<<endl;cout<<"******************************************"<<endl;cout<<"****学生成绩管理系统****"<<endl;cout<<"******************************************"<<endl;cout<<"**************************"<<endl;cout<<"**0、输入数据**"<<endl;cout<<"**1、增加数据**"<<endl;cout<<"**2、修改数据**"<<endl;cout<<"**3、按姓名查询**"<<endl;cout<<"**4、按学号查询**"<<endl;cout<<"**5、输出所有学生的成绩**"<<endl;cout<<"**6、退出系统**"<<endl;cout<<"**************************"<<endl;cout<<"选择0-6数字进行操作"<<endl;charp;charw;student*s[50];//指针对象,最多存50个学生数据ofstream*file[50];//负责对文件插入操作inti=0;intj=0;intflag=0;do//flag判断输入是否有效{cin>>p;if((p>='0'&&p<='6'))flag=1;elsecout<<"指令错误!请重新输入:"<<endl;}while(flag==0);do{switch(p)//接收功能选项{case'0'://输入数据{charc;charname[20];intnumber;doublecpro,english,math,sport,law,hbpro,computer;do{cout<<"请输入姓名:";cin>>name;cout<<endl<<"请输入学号:";cin>>number;cout<<"请输入C++成绩:";cin>>cpro;cout<<endl<<"请输入英语成绩:";cin>>english;cout<<endl<<"请输入数学成绩:";cin>>math;cout<<endl<<"请输入体育成绩:";cin>>sport;cout<<endl<<"请输入网络基础成绩:";cin>>law;cout<<endl<<"请输入C语言成绩:";cin>>hbpro;cout<<endl<<"请输入数据库成绩:";cin>>computer;cout<<endl;file[j]=newofstream("D:\\document",ios::ate);*file[j]<<"姓名"<<name<<"学号"<<number<<"C++成绩"<<cpro<<"英语成绩"<<english<<"数学成绩"<<math<<"体育成绩"<<sport<<"网络基础成绩"<<law<<"C成绩"<<hbpro<<"数据库成绩"<<computer<<endl;j++;s[i]=newstudent(name,number,cpro,english,math,sport,law,hbpro,computer);i++;cout<<"数据输入成功,想继续输入吗(y/n):";cin>>c;cout<<endl;do{if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl<<"";cin>>c;}elseflag=1;}while(flag==0);}while(c=='y');break;}case'1'://增加数据{charname[20];intnumber;doublecpro,english,math,sport,law,hbpro,computer;charc;do{cout<<"请输入您要增加的学生的姓名:";cin>>name;cout<<endl<<"请输入学号:";cin>>number;cout<<endl<<"请输入C++成绩:";cin>>cpro;cout<<endl<<"请输入英语成绩:";cin>>english;cout<<endl<<"请输入数学成绩:";cin>>math;cout<<endl<<"请输入体育成绩:";cin>>sport;cout<<endl<<"请输入网络基础成绩:";cin>>law;cout<<endl<<"请输入C语言成绩:";cin>>hbpro;cout<<endl<<"请输入数据库成绩:";cin>>computer;cout<<endl;file[j]=newofstream("d:\\document",ios::ate);*file[j]<<"姓名"<<name<<"学号"<<number<<"C++成绩"<<cpro<<"英语成绩"<<english<<"数学成绩"<<math<<"体育成绩"<<sport<<"网络基础成绩"<<law<<"C成绩"<<hbpro<<"数据库成绩"<<computer<<endl;j++;s[i]=newstudent(name,number,cpro,english,math,sport,law,hbpro,computer);i++;cout<<"数据输入成功,想继续数入吗(y/n):";cin>>c;cout<<endl;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl<<"";cin>>c;}}while(c=='y');break;}case'2'://修改数据{charname[20];intnu;doublecc,eng,ma,sp,l,hb,com;flag=0;charc;if(i==0){cout<<"管理系统中没有输入数据!"<<endl;break;}do{cout<<"请输入您要修改的学生的姓名:";cin>>name;cout<<endl;for(inth=0;h<i;h++)//h纪录要修改学生的位置{if(strcmp(name,s[h]->name)==0){flag=1;cout<<"请输入新的学号:";cin>>nu;cout<<endl<<"请输入C++成绩:";cin>>cc;cout<<endl<<"请输入英语成绩:";cin>>eng;cout<<endl<<"请输入数学成绩:";cin>>ma;cout<<endl<<"请输入体育成绩:";cin>>sp;cout<<endl<<"请输入网络基础成绩:";cin>>l;cout<<endl<<"请输入C语言成绩:";cin>>hb;cout<<endl<<"请输入数据库成绩:";cin>>com;cout<<endl;s[h]->cpro=cc;s[h]->english=eng;s[h]->math=ma;s[h]->sport=sp;s[h]->law=l;s[h]->hbpro=hb;s[h]->computer=com;s[h]->number=nu;cout<<"数据修改成功!"<<endl;}}if(flag==0){cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;}cout<<"想继续修改吗(y/n):";cin>>c;cout<<endl;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl<<"";cin>>c;}}while(c=='y');break;}case'3'://按姓名查询{charn[20];intj=0;charc;if(i==0){cout<<"管理系统中没有输入数据!"<<endl;break;}do{intflag=0;cout<<"请输入你要查询的学生姓名:";cin>>n;cout<<endl;for(intj=0;j<i;j++){if(strcmp(n,(*s[j]).name)==0){flag=1;cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;cout<<(*s[j]).name<<"的成绩是:"<<"C++:"<<(*s[j]).cpro<<"英语:"<<(*s[j]).english<<"数学:"<<(*s[j]).math<<"体育:"<<(*s[j]).sport<<"法律:"<<(*s[j]).law<<"C:"<<(*s[j]).hbpro<<"数据库"<<(*s[j]).computer<<endl;}}if(flag==0)cout<<"对不起!您要查询的学生不存在!"<<endl;cout<<"您想继续查询吗?(y/n):";cin>>c;cout<<endl;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}}while(c=='y');break;}case'4'://按学号查询{intn,j=0;charc;if(i==0){cout<<"管理系统中没有输入数据!"<<endl;break;}do{intflag=0;cout<<"请输入你要查询的学生的学号:";cin>>n;cout<<endl;for(intj=0;j<i;j++){if(s[j]->number==n){flag=1;cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;cout<<(*s[j]).name<<"的成绩是:"<<"C++:"<<(*s[j]).cpro<<"英语:"<<(*s[j]).english<<"数学:"<<(*s[j]).math<<"体育:"<<(*s[j]).sport<<"法律:"<<(*s[j]).law<<"C:"<<(*s[j]).hbpro<<"数据库"<<(*s[j]).computer<<endl;}}if(flag==0)cout<<"对不起!您要查询的学生不存在!"<<endl;cout<<"您想继续查询吗?(y/n):";cin>>c;cout<<endl;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}}while(c=='y');break;}case'5'://输出{cout<<"本系统所有学生数据如下:"<<endl;if(i==0)cout<<"管理系统中没有输入数据!"<<endl;cout<<"姓名学号c++英语数学体育网络基础C语言数据库"<<endl;for(intk=0;k<i;k++){cout<<s[k]->name<<setw(7)<<s[k]->number<<setw(6)<<(*s[k]).cpro<<setw(6)<<(*s[k]).english<<setw(6)<<(*s[k]).math<<setw(6)<<(*s[k]).sport<<setw(7)<<(*s[k]).law<<setw(10)<<(*s[k]).hbpro<<setw(10)<<(*s[k]).computer<<setw(10)<<endl;}break;}case'6'://退出{exit(0);cout<<"Byebye!"<<endl;}}cout<<"您想继续进行其他操作吗?(y/n):";intflag=0;do{cin>>w;cout<<endl;if(w!='y'&&w!='n')cout<<"指令错误!请重新输入!"<<endl;elseflag=1;}while(flag==0);if(w=='y')cout<<"请输入操作代码:0输入数据"<<endl;cout<<"1增加数据"<<endl;cout<<"2修改数据"<<endl;cout<<"3按姓名查询"<<endl;cout<<"4按学号查找"<<endl;cout<<"5输出所有学生成绩"<<endl;cout<<"6退出系统"<<endl;cin>>p;}while(w=='y');}七,测试数据及结果输入:(只输入后面的数字,前面的文字是自己产生的)。请输入第1个学生的学号:001输入第1个学生的数学成绩:1输入第1个学生的英语成绩:1输入第1个学生的计算机成绩:1请输入第2个学生的学号:002输入第2个学生的数学成绩:2输入第2个学生的英语成绩:2输入第2个学生的计算机成绩:2请输入第3个学生的学号:003输入第3个学生的数学成绩:3输入第3个学生的英语成绩:3输入第3个学生的计算机成绩:3请输入第4个学生的学号:004输入第4个学生的数学成绩:4输入第4个学生的英语成绩:4输入第4个学生的计算机成绩:4请输入第5个学生的学号:005输入第5个学生的数学成绩:5输入第5个学生的英语成绩:5输入第5个学生的计算机成绩:5请输入第6个学生的学号:006输入第6个学生的数学成绩:6输入第6个学生的英语成绩:6输入第6个学生的计算机成绩:6请输入第7个学生的学号:007输入第7个学生的数学成绩:7输入第7个学生的英语成绩:7输入第7个学生的计算机成绩:7请输入第8个学生的学号:008输入第8个学生的数学成绩:8输入第8个学生的英语成绩:8输入第8个学生的计算机成绩:8请输入第9个学生的学号:009输入第9个学生的数学成绩:9输入第9个学生的英语成绩:9输入第9个学生的计算机成绩:9请输入第10个学生的学号:010输入第10个学生的数学成绩:10输入第10个学生的英语成绩:10输入第10个学生的计算机成绩:10输出:序号:0学号:010数学:10.000000英语:10.000000计算机:10.000000平均成绩:10.000000总分:30.000000序号:1学号:009数学:9.000000英语:9.000000计算机:9.000000平均成绩:9.000000总分:27.000000序号:2学号:008数学:8.000000英语:8.000000计算机:8.000000平均成绩:8.000000总分:24.000000序号:3学号:007数学:7.000000英语:7.000000计算机:7.000000平均成绩:7.0

温馨提示

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

最新文档

评论

0/150

提交评论