c++课程设计 小弟初学,希望有高手帮我,以后也请各位高手帮忙把c++学好.

M_M_LZZ 2008-06-06 08:46:19
课程设计任务书


课程名称:C++程序设计课程设计

设计题目:试卷分析程序

已知技术参数和设计要求:

1. 问题描述:
每次考试结束后,老师都要做试卷分析。在此,我们设计一个试卷分析程序来帮助老师计算一些重要统计指标。根据试卷分析的需求,抽象出下列问题:
(1) 从文件中读取学生成绩表数据。
(2) 计算分频数分析表的指标。(如表1-1所示)
(3) 绘制考分频数分布图。
(4) 计算试卷难易度与区分度。试题难度P是某一题目平均得分与题目满分的比值。试题区分度的计算公式为:D=PH-PL其中,PH、PL分别为某道题目高、低分段的难度系数。这里,高分段和低分段的分段方法为:将全体考生按总分从低到高排列,取总分最高的27%和总分最低的27%的考生分别定为高分段和低分段。试卷平均难度:试卷平均得分除以试卷满分的比值,应控制在 0.5~0.6 之间为宜。试卷平均区分度:试卷中所有题目区分度的平均值,应控制在 0.4 以上为宜。
表1-1 分频数分析表
分数段 得分人数 百分比
90-100(优秀)
80-89 (良好)
70-79 (中等)
60-69 (及格)
0-59 (不及格)
及 格 率


图1-1考分频数分布图

2. 功能要求:
(1)读文件功能;
(2)输出分频数分析表功能;
(3)绘制考分频数分布图功能;
(4)打印试卷难易度与区分度功能;

3. 界面要求:
用户界面设计不做统一规定,但应做到界面友好,易于操作。

4. 技术要求:
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次; 在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。

5. 课程设计时间:15周、16周

6. 课程设计的考核方式及评分方法
1) 考核方式
 课程设计结束时,在机房当场验收。
 教师提供测试数据,检查运行结果是否正确。
 回答教师提出的问题。
 学生提交课程设计文档(A4纸打印)
2) 评分方法
上机检查 :书面报告:答辩=6 :3 :1,没有通过上机检查的其成绩直接记录不及格

指导教师签名:         日期:        

教研室主任签名:        日期:        

系主任签名:          日期:        

...全文
442 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui515168 2009-06-06
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
#if! defined _LVOE_H_
#define _LVOE_H_
class LOVE{
public:
LOVE()
{
cout<<"/*************************************/"<<endl;
cout<<"请输入要统计的学生的人数(如果要从文件中直接取数据请输入40):";
cin>>size;
cout<<"/*************************************/"<<endl;
}
void mark_enter();
void read_file();
void count_fp();
void print_HZphoto();
void print_NandQ();
private:
int size;
};
#endif
#include"LOVE.h"
void LOVE::mark_enter()
{
float *a;
a=new float[size];
ofstream outFile;
outFile.open("love.txt",ios::out);
if(!outFile)
cerr<<"open file or creat file error."<<endl;
else
cout<<"请输入对应数目的学生成绩:"<<endl;
for(int i=0;i<size;i++)
{
cin>>a[i];
outFile<<a[i]<<" ";
}
outFile.close();
}
void LOVE::read_file()
{
float *b;
b=new float[size];
ifstream inFile;
inFile.open("love.txt",ios::in);
if(!inFile)
cerr<<"open file error."<<endl;
else
cout<<"从文件中读取数据后为:"<<endl;
for(int i=0;i<size;i++)
{
inFile>>b[i];
if((i==10)||(i==20)||(i==30)||(i==40)||(i==50))
cout<<endl;
cout<<b[i]<<" ";
}
cout<<endl;
inFile.close();
}
void LOVE::count_fp()
{
float *h;
h=new float[size];
ifstream inFile;
inFile.open("love.txt",ios::in);
if(!inFile)
cerr<<"open file error."<<endl;
else
{
for(int i=0;i<size;i++)
{
inFile>>h[i];
}
}
inFile.close();
int scorephrase;
int a=b=c=d=e=f=g=x1=x2=x3=0;
float pass,a1,a2,a3,a4,a5;
for(int j=0;j<size;j++)
{
scorephrase=(int)h[j]/10;
switch(scorephrase)
{
case 10:
case 9:
a++;
break;
case 8:
b++;
break;
case 7:
c++;
break;
case 6:
d++;
break;
case 5:
e++;
break;
case 4:
f++;
break;
case 3:
g++;
break;
case 2:
x1++;
break;
case 1:
x2++;
break;
case 0:
x3++;
break;
default:
cout<<"The score is illegall!"<<endl;
}
}
pass=float(a+b+c+d)/size;
a1=(float)a/size;
a2=(float)b/size;
a3=(float)c/size;
a4=(float)d/size;
a5=(float)(e+f+g+x1+x2+x3)/size;
cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(10)<<"分数段"<<setw(15)<<"得分人数"<<setw(15)<<"百分比"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(13)<<"90-100(优秀)"<<setw(13)<<a<<setw(13)<<a1<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(13)<<"80-89(良好)"<<setw(13)<<b<<setw(13)<<a2<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(13)<<"70-79(中等)"<<setw(13)<<c<<setw(13)<<a3<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(13)<<"60-69(及格)"<<setw(13)<<d<<setw(13)<<a4<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(13)<<"0-59(不及格)"<<setw(13)<<(e+f+g+x1+x2+x3)<<setw(13)<<a5<<endl;
cout<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<setw(15)<<"|"<<endl;

cout<<"______________________________________________"<<endl;
cout<<"|"<<setw(15)<<" "<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<setw(20)<<"及 格 率"<<setw(19)<<pass<<endl;
cout<<"|"<<setw(15)<<" "<<setw(15)<<"|"<<setw(15)<<"|"<<endl;
cout<<"______________________________________________"<<endl;
}
void LOVE::print_NandQ()
{
float *b;
b=new float[size];
float sum1=0,sum2=0,sum3=0;
ifstream inFile;
inFile.open("love.txt",ios::in);
if(!inFile)
cerr<<"open file error."<<endl;
else
{
for(int i=0;i<size;i++)
{
inFile>>b[i];
sum1+=b[i];
}
cout<<endl;
cout<<"该试卷的难度系数为:"<<sum1/(size*100)<<endl;
for(int x=0;x<size-1;x++)
{
for(int y=x+1;y<size;y++)
{
if(b[x]>b[y])
{
float t;
t=b[x];
b[x]=b[y];
b[y]=t;
}
}
}
cout<<"所有成绩从小到大排序得:"<<endl;
for(int j=0;j<size;j++)
{
if((j==10)||(j==20)||(j==30)||(j==40)||(j==50))
cout<<endl;
cout<<b[j]<<" ";
}
cout<<endl;
int f,n;
float s,d;
f=int(size*0.27);
n=int(size*(1-0.27));
for(int h=0;h<f;h++)
sum2+=b[h];
s=sum2/(f*100);
cout<<"低分难度系数为:"<<s<<endl;
for(int w=n;w<size;w++)
sum3+=b[w];
d=sum3/((size-n)*100);
cout<<"高分难度系数为:"<<d<<endl;
cout<<"试卷的区分度为:"<<d-s<<endl;
}
inFile.close();
}
void LOVE::print_HZphoto()
{
float *h;
h=new float[size];
int scorephrase;
int a=b=c=d=e=f=g=x1=x2=x3=0;
ifstream inFile;
inFile.open("love.txt",ios::in);
if(!inFile)
cerr<<"open file error."<<endl;
else
{
for(int i=0;i<size;i++)
{
inFile>>h[i];
}
for(int j=0;j<size;j++)
{
scorephrase=(int)h[i]/10;
switch(scorephrase)
{
case 10:
case 9:
a++;
break;
case 8:
b++;
break;
case 7:
c++;
break;
case 6:
d++;
break;
case 5:
e++;
break;
case 4:
f++;
break;
case 3:
g++;
break;
case 2:
x1++;
break;
case 1:
x2++;
break;
case 0:
x3++;
break;
default:
cout<<"The score is illegall!"<<endl;
}
}
cout<<"分数"<<endl;
cout<<setw(6)<<"↑"<<endl;
cout<<"100"<<"-"<<"∣";
for(int i1=0;i1<a;i1++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"90"<<"-"<<"∣";
for(int i2=0;i2<b;i2++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"80"<<"-"<<"∣";
for(int i3=0;i3<c;i3++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"70"<<"-"<<"∣";
for(int i4=0;i4<d;i4++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"60"<<"-"<<"∣";
for(int i5=0;i5<e;i5++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"50"<<"-"<<"∣";
for(int i6=0;i6<f;i6++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"40"<<"-"<<"∣";
for(int i7=0;i7<g;i7++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"30"<<"-"<<"∣";
for(int i8=0;i8<x1;i8++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"20"<<"-"<<"∣";
for(int i9=0;i9<x2;i9++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"10"<<"-"<<"∣";
for(int j2=0;j2<x3;j2++)
cout<<"____";
cout<<endl;
cout<<setw(3)<<"0"<<"-"<<"∣";
for(int j1=0;j1<15;j1++)
cout<<"----";
cout<<"-→"<<endl;
cout<<setw(10)<<"1"<<setw(4)<<"2"<<setw(4)<<"3"<<setw(4)<<"4"
<<setw(4)<<"5"<<setw(4)<<"6"<<setw(4)<<"7"<<setw(4)<<"8"
<<setw(4)<<"9"<<setw(4)<<"10"<<setw(4)<<"11"<<setw(4)<<"12"
<<setw(4)<<"13"<<setw(4)<<"14"<<setw(4)<<"15"<<setw(6)<<"人数"<<endl;
}
inFile.close();
}




#include"LOVE.h"
void main()
{
cout<<"/*************************************/"<<endl;
cout<<setw(30)<<"欢迎使用试卷分析系统:"<<endl;
cout<<"/*************************************/"<<endl;
cout<<"本程序分析的是08级计科3班的线性代数考试成绩"<<endl;
/****************************************************/
LOVE p;
int x,y;
cout<<"请输入0进入程序系统";
cin>>x;
while(x==0)
{
cout<<"/*************************************/"<<endl;
cout<<setw(31)<<"1:从键盘上输入成绩到文件"<<endl;
cout<<setw(31)<<"2:从文件中读取学生的成绩"<<endl;
cout<<setw(25)<<"3:输出分频数分析表"<<endl;
cout<<setw(27)<<"4:绘制考分频数分布图"<<endl;
cout<<setw(31)<<"5:打印试卷难易度与区分度"<<endl;
cout<<"/*************************************/"<<endl;
cout<<setw(23)<<"请按键选择:";
cin>>y;
switch(y)
{
case 1:
p.mark_enter();
break;
case 2:
p.read_file();
break;
case 3:
p.count_fp();
break;
case 4:
p.print_HZphoto();
break;
case 5:
p.print_NandQ();
break;
default:
cout<<"没有此选项!:"<<endl;
}
cout<<"请输入0再次进入程序系统,任意非0的整数退出系统:";
cin>>x;
}
cout<<setw(22)<<"“""版权所有,违法必究""”"<<endl
<<setw(19)<<"“""欢迎下次使用""”"<<endl;

}

























mgm611 2008-06-21
  • 打赏
  • 举报
回复
不错的学习计划! 可以试试
yzx65 2008-06-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyyl00 的回复:]
叫人如何放心现在的学生,哎,我出去都不好意思说自个是学生
[/Quote]
icyice1989 2008-06-20
  • 打赏
  • 举报
回复
貌似不难,一步一步做就行了
lc19890326 2008-06-11
  • 打赏
  • 举报
回复
除非不感兴趣并且有自己感兴趣的方向了

一定要好好上课做作业 就算不喜欢听讲 也要自学
风尘守望者 2008-06-11
  • 打赏
  • 举报
回复
嗯,不错的学习计划!
darkarthur 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyyl00 的回复:]
叫人如何放心现在的学生,哎,我出去都不好意思说自个是学生
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyyl00 的回复:]
叫人如何放心现在的学生,哎,我出去都不好意思说自个是学生
[/Quote]
wyyl00 2008-06-07
  • 打赏
  • 举报
回复
叫人如何放心现在的学生,哎,我出去都不好意思说自个是学生
lihaifeng0412 2008-06-06
  • 打赏
  • 举报
回复
关注
  • 打赏
  • 举报
回复
不懂C++
  • 打赏
  • 举报
回复
0
五号智能 2008-06-06
  • 打赏
  • 举报
回复
学c++的30天
1、C++程序的基本结构1天
2、基本数据类型2天
3、程序的分支与判断3天
4、复合数据类型与容器5天
5、指针与引用,动态内存分配5天;
6、函数调用3天
7、类的声明定义1天
8、成员函数和构造与析构的功能1天
9、运算符重载3天
10、类的继承1天
11、多重继承3天
12、I/O,2天

每项概念理解并运用
终结作业,酒店预定管理系统,完成时间3天。下载地址:http://download.csdn.net/source/480694
作息时间,一日三餐,分别于早8时,下午15时,晚20时,睡眠时间,早2点至6时,中12时至14时,晚20时至22时。

这是我上个月的生活,我现在加深内容学习,在复习一些具体内容
中文名称:东南大学C++语言程序设计视频教程 简介: 打包完毕,把80讲全部压缩到一个文件包内,现在正是供源 授课老师:何洁月 授课内容:共80个学时 涵盖了C++的绝大部分内容. 点评:这个课程在网上的口碑很好! 首先、该课程有学时作保证.80个学时的时间,使授课老师有足够的时间讲授C++的大部分内容. 其次,对知识点的阐述循序渐进,逐步深入.比如说何老师在第三四讲中讲到了计算机的二进制 数字系统,接着在第五讲中便讲到了数据类型的取值范围以及其取值范围为什么是那么多,取 值范围是如何计算出来的. 其次、讲解了大量的例子.尤其是对重点难点,更是讲得很透彻.使抽象的知识变得具体,很适合 初学者. 使用对象:初学者 如何学好c++? 何洁月教授是这样回答的: 如何学好c++,这是很多同学想问的问题。 c++程序设计这门课程与你们以往所学的数学等不同,有他特有的思考,和解决问题方法,所以一定要掌握这种方法。也许这样说,太空。具体说: (1)一定要化时间,这是前提。你看很多“电脑高手”,都是花很多时间在那儿琢磨,他们很痴迷,所以不觉的。你现在还未找到编程的乐趣,太可惜。 (2)掌握学习的方法,首先将概念搞懂,看书,听老师讲,与同学讨论,如听不懂老师所讲,就必须预习。还可以找参考书看,因为每一本书都有不足,和他的长处。 第二,对一些典型的例子,一定要搞懂,记住,不是叫你去死记,例如运算符重载中complex的例子,将概念与例子结合,就容易理解概念,同时当你自己编程时,你就会想这与那个例子类似,然后先模仿,慢慢你就能熟能生巧了 第三,大量练习,即使有答案,先别看,自己做,不行再看,同时想,是那儿不会,再去补那方面的知识,这样才能进步。有条件要去上机,是否正确,上机运行就知,而且程序最终总要运行的。 开始是非常痛苦的,一定要坚持,不懂,赶快加大时间去搞懂,否则会越来越多,然后整个放弃,就完了,千万别指望补,它需要更多的精力,否则很难通过。 何洁月教授是为教学经验非常丰富的老师,在细致入微的80讲视频中,知识重点突出,主次分明,每个例子讲解的非常详细!是非常好的c++视频教学软件!

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧