B05040424苏杰锋软件设计报告.docx

上传人:b****3 文档编号:2875557 上传时间:2022-11-16 格式:DOCX 页数:54 大小:440.64KB
下载 相关 举报
B05040424苏杰锋软件设计报告.docx_第1页
第1页 / 共54页
B05040424苏杰锋软件设计报告.docx_第2页
第2页 / 共54页
B05040424苏杰锋软件设计报告.docx_第3页
第3页 / 共54页
B05040424苏杰锋软件设计报告.docx_第4页
第4页 / 共54页
B05040424苏杰锋软件设计报告.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

B05040424苏杰锋软件设计报告.docx

《B05040424苏杰锋软件设计报告.docx》由会员分享,可在线阅读,更多相关《B05040424苏杰锋软件设计报告.docx(54页珍藏版)》请在冰豆网上搜索。

B05040424苏杰锋软件设计报告.docx

B05040424苏杰锋软件设计报告

 

软件设计报告

 

姓名:

苏杰锋

学号:

B05040424

 

 

2008年3月24日~2008年4月6日

 

第一章软件设计介绍

软件设计总时间:

二周

一、软件设计的性质、目的

本课程是一门技能训练课,为在校学生的必修课程。

通过设计培养学生良好的编程习惯,使学生掌握编程的基本步骤,规范学生的编写程序的格式,锻炼学生编写程序的能力,为将来编写较大程序的打好基础。

二、软件设计的任务

通过集中时间上机实验,使学生充分发挥已有的编程能力,熟悉编译环境,选择若干课题,进行审题、分析、设计和调试,并根据要求写出实验报告。

三、实验内容

软件设计课题共分A、B两档。

A档共5题,第一周完成;B档共2题,第二周完成。

四、考核办法

考核采取程序验收和面试的方法进行。

其中,程序验收及面试占50%,实验报告占50%。

在考核过程中,若发现抄袭程序者,所抄袭的程序按零分记。

五、实验设备

南京邮电大学微机室微机。

第二章软件开发平台简介

本次实验采用VisualC++开发平台。

VisualC++是一个功能强大的可视化软件开发工具。

自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。

VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。

VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。

这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。

VisualC++它大概可以分成三个主要的部分:

1.DeveloperStudio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“MicrosoftVisualC++”,所以很多人理所当然的认为,那就是VisualC++了。

其实不然,虽然DeveloperStudio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。

我们也知道,DeveloperStudio并不是专门用于VC的,它也同样用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。

所以不要把DeveloperStudio当成VisualC++,它充其量只是VisualC++的一个壳子而已。

这一点请切记!

2.MFC。

从理论上来讲,MFC也不是专用于VisualC++,BorlandC++,C++Builder和SymantecC++同样可以处理MFC。

同时,用VisualC++编写代码也并不意味着一定要用MFC,只要愿意,用VisualC++来编写SDK程序,或者使用STL,ATL,一样没有限制。

不过,VisualC++本来就是为MFC打造的,VisualC++中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC++而不用MFC就等于抛弃了VisualC++中很大的一部分功能。

但是,VisualC++也不等于MFC。

3.PlatformSDK。

这才是VisualC++和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。

大致说来,PlatformSDK是以MicrosoftC/C++编译器为核心(不是VisualC++,看清楚了),配合MASM,辅以其他一些工具和文档资料。

上面说到DeveloperStudio没有编译程序的功能,那么这项工作是由谁来完成的呢?

是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成VisualStudio的基石。

第三章软件设计的内容

3.1分数统计软件(A1)

3.1.1设计题目及要求

分数统计

要求:

(1)输入某班级学生的姓名、分数;

(2)对

(1)的分数进行降幂排列并输出;

(3)具有输入输出界面。

3.1.2设计思想及程序流程框图

提示用户输入学生信息,检查动态开辟的内存空间是否够用,不够用则重新申请更大的一块空间。

输入结束后采用冒泡排序,最终按要求打印成绩。

3.1.3逻辑功能程序

structrecord

{

charname[15];

intfenshu;

};

voidmain()

{

record*p=NULL,*q;

inttotal=0;

intfenshutemp;

charnametemp[15];

intshipment=0;

constintquantity=5;

//成绩录入

cout<<"成绩录入!

输入姓名“end”以结束录入,显示成绩"<

while

(1){

if(total==quantity*shipment){//申请空间不够

shipment++;

q=newrecord[quantity*shipment];

if(q==NULL){

cout<<"内存已满,无法继续输入"<

total--;

}

else{

for(intj=0;j

q[j].fenshu=p[j].fenshu;

strcpy(q[j].name,p[j].name);

}

if(p)delete[]p;

p=q;

}

}

if(!

q)break;

cout<<"学生姓名:

";

cin>>p[total].name;

if(!

strcmp(p[total].name,"end"))break;

cout<

fenshutemp=check(10);

while(fenshutemp<0||fenshutemp>100){

cout<<"输入分数不符合要求,请重新输入!

"<

fenshutemp=check(10);

}

p[total].fenshu=fenshutemp;

total++;

};

if(q)

{

boolreverse=0;

for(inttime=total-1;time>0;time--){//冒泡排序

for(intj=0,reverse=0;j

if(p[j].fenshu

fenshutemp=p[j].fenshu;

p[j].fenshu=p[j+1].fenshu;

p[j+1].fenshu=fenshutemp;

strcpy(nametemp,p[j].name);

strcpy(p[j].name,p[j+1].name);

strcpy(p[j+1].name,nametemp);

reverse=1;

}

}

if(reverse==0)break;

}

for(intj=0;j

cout<<"\t\t"<

}

}

intcheck(intweight)

{

charnumin[100];

inttemp=0;

intnumlength,i;

while

(1){

cout<<"\t分数:

";

cin>>numin;

numlength=strlen(numin);

for(i=0;i

numin[i]=numin[i]-0x30;

for(i=0;i

if(numin[i]>9)numin[i]=numin[i]-7;

if(numin[i]>26)numin[i]=numin[i]-32;

if(numin[i]>weight)break;

}

if(i==numlength)break;

cout<<"\t输入数值不符合要求!

\n";

}

for(i=0,temp=0;i

temp=temp*weight+numin[i];

returntemp;

}

3.1.4结果及完善方向

结果如下:

完善方向:

输入姓名可编写一函数使输入姓名可含空格,用MFC,使输入界面更加友好。

3.2打字软件(A2)

3.2.1设计题目及要求

打字程序。

要求:

(1)随即产生一字符串,每次产生的字符串内容、长度都不同;

(2)根据

(1)的结果,输入字符串,判断输入是否正确,输出正确率;

(3)具有输入输出界面。

3.2.2设计思想及程序流程框图

先设定可产生的字符串的最大长度,随机生产一整数,将它与长度最大值取余,得到该次所要生成字符串长度。

重复调用随机数生成函数,将生成的随机数对应输出字符,提示用户按所给字符串输入。

当用户输入完后,统计用户输入字符情况,打印输出。

3.2.3逻辑功能程序

voidmain()

{

constintmaxlength=30;

charfommer[maxlength],latter[maxlength*2],temp,c='1';

intlength,i,len;

floatj;

srand((unsigned)time(NULL));

while(c!

='q'&&c!

='Q'){

length=rand()%maxlength;

if(length==0)length=maxlength;

for(i=0;i

temp=rand()%(2*26);

if(temp<27)fommer[i]=temp+'A';

elsefommer[i]=temp+'a'-27;

}

fommer[i]='\0';

cout<<"\t请输入如下字符串,按回车结束:

"<

cin>>latter;

len=strlen(latter);

if(len

cout<<"您只输入了"<

\n";

length=len;

}

if(len>length)

cout<<"您多输入了"<

\n";

for(i=0,j=0;i

if(fommer[i]==latter[i])j++;

cout<<"\t您的成绩是:

"<

cout<<"\n是否再次练习?

推出按Q(q),继续按其他键:

";

cin>>c;

}

}

3.2.4结果及完善方向

结果如下:

改善方向:

生成字符串可扩展为含有标点符号。

3.3文本编辑器(A3)

3.3.1设计题目及要求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1