中国矿业大学软件课程设计报告Word文档格式.docx
- 文档编号:19850030
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:56
- 大小:257.70KB
中国矿业大学软件课程设计报告Word文档格式.docx
《中国矿业大学软件课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《中国矿业大学软件课程设计报告Word文档格式.docx(56页珍藏版)》请在冰豆网上搜索。
1.4调试分析………………………………………………………………………...13
1.5用户使用说明………………………………………………………………….13
1.6设计心得………………………………………………………………………...13
二、面向过程设计题7------将输入的罗马数据化为10进制数(第一阶段第七题.cpp)
2.1需求分析…………………………………………………………………………13
2.2概要设计………………………………………………………………………...14
2.3详细设计与编码………………………………………………………………...16
2.4调试分析………………………………………………………………………...17
2.5用户使用说明………………………………………………………………….17
2.6设计心得………………………………………………………………………...17
三、面向对象设计题2------自定义一个简单的日期类DateType
(第二阶段第二题.cpp)
3.1需求分析…………………………………………………………………………17
3.2概要设计………………………………………………………………………...19
3.3详细设计与编码………………………………………………………………...21
3.4调试分析………………………………………………………………………...22
3.5用户使用说明………………………………………………………………….22
3.6设计心得………………………………………………………………………...22
四、面向过程设计题5---------设计一个类CStudent(第二阶段第五题.cpp)
4.1需求分析…………………………………………………………………………22
4.2概要设计………………………………………………………………………...23
4.3详细设计与编码………………………………………………………………...25
4.4调试分析………………………………………………………………………...25
4.5用户使用说明………………………………………………………………….25
4.6设计心得………………………………………………………………………...25
五、图形界面1---------计算器(禹勇的计算器.exe)
5.1需求分析…………………………………………………………………………26
5.2概要设计………………………………………………………………………...26
5.3详细设计与编码………………………………………………………………...27
5.4调试分析………………………………………………………………………...27
5.5用户使用说明………………………………………………………………….28
5.6设计心得………………………………………………………………………...29
六、数据结构1------用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判空、查找等操作(第四阶段第一题.cpp)
6.1需求分析…………………………………………………………………………30
6.2概要设计………………………………………………………………………...30
6.3详细设计与编码………………………………………………………………...34
6.4调试分析………………………………………………………………………...35
6.5用户使用说明………………………………………………………………….35
6.6设计心得………………………………………………………………………...35
七、数据结构2--------假设有一个循环链表的长度大于1,且表中既无头结点也无头指针(第四阶段第二题.cpp)
7.需求分析………………………………………………………..………….……36
7.概要设计………………………………………………………………………...37
7.详细设计与编码………………………………………………………………...39
7.调试分析………………………………………………………………………...41
7.用户使用说明………………………………………………………………….41
7.设计心得………………………………………………………………………...41
八、课程设计总结………………………………………………………………42
1、面向过程设计题2
1.1需求分析:
编程序,从键盘输入正整数n,求出n与其反序数之和并输出根据题目要求,规定如下:
测试数据:
【输入数据】:
2038
【输出数据】:
10340
1234
5555
1.2概要设计:
(1)定义整形变量n为用户输入值;
(2)输出反序数;
(3)定义整形变量sum求和;
(4)输出sum的值。
(5)主程序流程:
step1:
让用户输入一个整数n;
step2:
进入for循环计算其反序数;
step3:
求和并输出。
1.3详细设计与编码:
(1)流程图:
进入for循环
yes
判断条件
no
(2)源程序
#include<
iostream>
usingnamespacestd;
intmain()
{
intn,a,b,c,sum;
cout<
<
"
请输入一个整数n:
;
//输入要求的整数n
cin>
>
n;
a=n;
endl;
for(c=0;
n!
=0;
)//求n的反序数
{
b=n%10;
c=c*10+b;
n=n/10;
}
sum=a+c;
//求n与其反序数之和
n和它的反序数之和为:
sum<
return0;
}
1.4调试分析:
输入2038
输入1234
分析:
经过输入多次实验后,都取得了预期值,这说明了程序的正确性。
1.5用户使用说明:
打开程序;
输入要求的数;
得出结果;
1.6设计心得:
通过此次实验加深了对for循环的使用方法!
从小程序开始逐渐把以前遗忘的内容捡起。
2、面向过程设计题7
2.1需求分析:
实现罗马数据与10进制数之间的相互转换
根据实验要求,规定如下:
测试数据
【输入数据】LXXXVII
【输出结果】87
【输入数据】99
【输出结果】LXXXXVIIII
2.2概要设计:
(1)定义整形数组变量ROME_DATA[7]={1000,500,100,50,10,5,1};
(2)定义字符串ROME="
MDCLXVI"
;
(3)定义“罗马数据转换为十进制数据”函数voidROME_INT();
(4)定义“十进制数据转换为罗马数据”函数voidINT_ROME();
(5)主函数调用ROME_INT()、INT_ROME()。
2.3详细设计与编码:
(1)流程图
主函数
调用ROME_INT()函数调用INT_ROME()函数
输入罗马数据输入10进制数
进入for循环进入for循环
输出10进制数
输出罗马数据
(2)源程序
#include<
string>
charc[50],d[50];
inti,j,a,NUMBER;
stringROME="
intROME_DATA[7]={1000,500,100,50,10,5,1};
voidROME_INT();
voidINT_ROME();
ROME_INT();
INT_ROME();
//将罗马数据转换为十进制数据
voidROME_INT()
请输入要换算的罗马数据:
c;
for(a=0,i=0;
c[i]!
i++)
switch(c[i])
{
case'
M'
:
a=a+1000;
break;
D'
a=a+500;
C'
a=a+100;
L'
a=a+50;
X'
a=a+10;
V'
a=a+5;
I'
a=a+1;
default:
}
转换成十进制为:
a<
//将十进制数据转换为罗马数据
voidINT_ROME()
请输入要换算的十进制数据:
cin>
NUMBER;
cout<
转换成的罗马数据为:
for(i=0;
i<
7;
d[i]=NUMBER/ROME_DATA[i];
NUMBER=NUMBER%ROME_DATA[i];
for(j=0;
j<
d[i];
j++)
ROME[i];
2.4调试分析:
2.5用户使用说明:
2.6设计心得:
经过此次试验进一步加深了对for循环和switch语句的使用,而且熟悉了主函数对函数的调用。
3、面向对象设计题2
3.1需求分析:
本题目要求编写类成员函数,来实现日期的增加、日期的比较、日期的输入、日期的输出。
根据实验要求输入一组测试数据,规定如下:
【输入数据】200811
其余数据采用程序中默认的函数;
【输出】dt1的日期为:
1年1月1日
dt2的日期为:
2008年12月31日
dt3的日期为:
dt1的日期为:
2008年1月1日
dt2的日期增加一天为:
2009年1月1日
dt2与dt3的日期相同!
dt2与dt4的日期不同!
3.2概要设计:
(1)完成类的各成员函数的编码;
(2)编写主函数,首先由用户输入一组日期;
(3)然后主函数调用默认的构造函数,再进行一系列的调用类的成员函数;
3.3详细设计与编码:
调用一系列的构造函数
输入dt4的数据元素
调用一系列的输出函数
调用日期比较函数比较dt2与dt3、dt2与dt4
(2)源程序:
classDateType
{//自定义的日期类DateType
inty,m,d;
//数据成员,表示当前日期的年、月、日
public:
DateType(inty0=1,intm0=1,intd0=1);
//构造函数,设定年、月、日;
并设置参数默认值
voidset_DateType()
y>
m>
d;
voidincrementDay();
//增加1天
boolequal(DateTypedt2);
//判断二日期是否相等
voidprintDate();
//屏幕输出日期对象的有关数据(年、月、日)
};
DateType:
DateType(inty0,intm0,intd0)//构造函数
y=y0;
m=m0;
d=d0;
voidDateType:
incrementDay()//增加一天
inta[]={31,28,31,30,31,30,31,31,30,31,30,31};
if((y%4==0&
&
y%100!
=0)||y%400==0)
a[1]=29;
if(d==31&
m==12)
y++;
m=1;
d=1;
elseif(d==a[m-1])
m++;
elseif(d<
a[m-1])
d++;
y<
年"
m<
月"
d<
日"
boolDateType:
equal(DateTypedt2)//比较日期
if(y==dt2.y&
m==dt2.m&
d==dt2.d)
returntrue;
else
returnfalse;
printDate()//输出日期
DateTypedt1,dt2(2008,12,31),dt3(2008,12,31),dt4;
dt4.set_DateType();
dt1的日期为:
dt1.printDate();
dt2的日期为:
dt2.printDate();
dt3的日期为:
dt3.printDate();
dt4的日期为:
dt4.printDate();
dt2增加一天为:
dt2.incrementDay();
if(dt2.equal(dt3))
dt2与dt3日期相同!
else
dt2与dt3日期不同!
if(dt2.equal(dt4))
dt2与dt4日期相同!
dt2与dt4日期不同!
3.4调试分析:
输出结果与预设值完全一致,证实了程序的正确性!
3.5用户使用说明:
【step1】打开源程序
【step2】输入一个日期
3.6设计心得:
通过此题的编写加深了对类的了解以及对类成员函数的调用,对瑞年的判断的算法也更为熟悉。
4、面向对象设计题7
4.1需求分析:
本题目要设计一个Cstudent类,类中包含学生的基本信息,而且要采用binary文件形式,使用随机读写处理方式对类的对象数据进行存储与读写处理。
而且要有输入函数、输出函数,而且还可以计算总成绩!
根据实验要求,设置一组测试数据如下:
【输入数据】
1
001禹勇男19898592
002刘菲女19887695
2
3
【输出数据】编号姓名性别年龄数学成绩计算机成绩外语成绩总分
1禹勇男20898592266
2刘菲女19887695259
4.2概要设计:
(1)建一个Cstudent类,定义类中的数据元素Num、Name[10]、Sex[10]、Age、Math、Com、Eng、Total;
(2)设置类的成员函数:
输入类元素getdata()、输出类元素outdate()、把数据输入到磁盘中get()、把数据从磁盘中输出put();
(3)编写类的成员函数的代码;
(4)编写主函数,并调用get()、put()函数;
4.3详细设计与编码:
do语句
switch语句
case1case2
调用get()函数调用put()函数
判断语句
no
主函数结束
get()函数
打开磁盘
调用getdata()函数输入数据
关闭磁盘
put()函数
打开磁盘
调用putdata()函数输出数据
(2)源程序
fstream>
iomanip>
classCStudent
intNum;
charName[10];
charSex[10];
intAge;
intMath,Com,Eng,Total;
voidgetdata()//输入类元素
编号:
"
Num;
endl<
姓名:
Name;
性别:
Sex;
年龄:
Age;
数学成绩:
Math;
计算机成绩:
Com;
外语成绩:
Eng;
voidoutdate()//输出类元素
Total=Math+Com+Eng;
setw(5)<
Num<
Name<
Sex<
Age<
setw(8)
<
Math<
setw(10)<
Com<
setw(8)<
Eng<
Total<
voidget()//把类数据输入到磁盘中
ofstreamoutfile("
stud.dat"
);
CStudents;
intn;
输入数据:
学生人数:
for(inti=0;
第"
i+1<
个学生:
s.getdata();
outfile.write((char*)&
s,sizeof(s));
};
outfile.close();
voidput()//把类数据从磁盘中输出
ifstreaminfile("
输出数据:
编号姓名性别年龄数学成绩计算机成绩外语成绩总分"
infile.read((char*)&
while(infile)
s.outdate();
infile.read((char*)&
infile.close();
inta;
do//选择应执行程序
选择:
1:
输入数据2:
输出数据其他退出:
a;
switch(a)
case1:
get();
//输入数据
case2:
put();
//输出数据
default:
cout<
error"
}while(a==1||a==2);
4.4调试分析:
输入一组验证数据:
001禹勇男20898592
输出结果:
经过比较可以发现输出结果与程序设计之初预想的结果完全吻合,这表明已达到先前的设计要求,而且整个操作过程都有操作提示,显示出此程序的健壮性!
4.5用户使用说明:
【step1】打开程序;
【step2】选择操作类型;
【step3】若选择输入数据,则选择要输入的人数,然后再输入相关数据;
【step4】继续选择相关的操作,若想停止则输入出1、2之外的数据。
4.6设计心得:
经过此次试验对binary文件及随机读写的处理方式有了更加深刻的认识,从实验过程中也得到的了不少经验教训,比如:
应该随程序的使用函数、操作不同要增加相应的头文件;
程序在操作过程中要有相应的操作提示,这样才更有益与用户更好的使用!
五、图形界面1
5.1需求分析:
1.用你熟悉的一种可视化编程语言实现如下图所示的计算器。
该计算器需要实现基础的数学运算,如加,减,乘,除。
设计一个简单的计算器可以进行简单的数学运算,比如加减乘除。
利用C++中的MFC来编写实现。
输出形式要与题目中给的样板相同或类似。
输入数据和输出数据均以double型数据表示
【输入数据】9-15
【输出结果】-6
【输入数据】2.4*0.2
【输出结果】0.48
【输入数据】4.8/3
【输出结果】1.6
5.2.概要设计
(1)设置如图说是的按钮;
(2)点击每一个按钮,起一个函数名,进入Dlg.cpp中编写相应的函数体;
(3)设置一些全局变量:
double型m1、m2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 矿业大学 软件 课程设计 报告