编号:()字号《软件课程设计》报告班级:网络11-3班姓名: * * *学号: ********指导老师:闫秋艳 ____中国矿业大学计算机科学与技术学院2013 年1 月软件课程设计任务书专业年级:网络11-3班学生姓名:姜国栋任务下达日期:2012 年10 月15 日课程设计日期:2012年10月15 日至2013年01 月8 日课程设计题目:类别题目序号成绩面向过程2、4、面向对象5、图形界面1、数据结构1、2软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月日目录一、面向过程设计题2-------编程序,从键盘输入正整数n,求出n与其反序数之和并输出(第一阶段2.cpp)1.1 需求分析 (6)1.2 概要设计 (6)1.3 详细设计与编码 (6)1.4 调试分析 (7)1.5 用户使用说明 (7)1.6 设计心得 (7)二、面向过程设计题4------编程序,输入正整数m,它代表一个人民币钱数(元数)。
(第一阶段4.cpp)2.1 需求分析 (7)2.2 概要设计 (8)2.3 详细设计与编码 (8)2.4 调试分析 (9)2.5 用户使用说明 (9)2.6 设计心得 (9)三、面向对象设计题5-----设计一个Cstudent类,类中包含学生的基本信息,而且要采用binary文件形式,使用随机读写处理方式对类的对象数据进行存储与读写处理。
而且要有输入函数、输出函数,而且还可以计算总成绩!(第二阶段5.cp p)3.1 需求分析 (9)3.2 概要设计 (9)3.3 详细设计与编码 (10)3.4 调试分析 (13)3.5 用户使用说明 (14)3.6 设计心得 (14)四、图形界面---------可视化编程倒序相加(第三阶段(倒序相加).cpp)4.1 需求分析 (14)4.2 概要设计 (14)4.3 详细设计与编码 (14)4.4 调试分析 (15)4.5 用户使用说明 (15)4.6 设计心得 (15)五、数据结构1-----用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、(第四阶段1 .cpp)5.1 需求分析 (15)5.2 概要设计 (16)5.3 详细设计与编码 (16)5.4 调试分析 (19)5.5 用户使用说明 (20)5.6 设计心得 (20)六、数据结构2--------假设有一个循环链表的长度大于1,且表中既无头结点也无头指针(第四阶段 2.cpp)6.1.需求分析 (21)6.2.概要设计 (21)6.3.详细设计与编码 (21)6.4.调试分析 (23)6.5用户使用说明 (24)6.6.设计心得………………………………………………………………………..七、课程设计总结 (24)一、面向过程设计题21.1 需求分析:编程序,从键盘输入正整数n,求出n与其反序数之和并输出根据题目要求,规定如下:测试数据:【输入数据】:2038【输出数据】:10340【输入数据】:1234【输出数据】:55551.2 概要设计:(1)定义整形变量a为用户输入值;(2)定义整形变量i求和;(3)输出i的值。
(4)主程序流程:step1:让用户输入一个整数n;step3:求和并输出。
1.3详细设计与编码:(1)流程图:用户输入a计算输出结果(2)源程序#include<iostream>using namespace std;int main(){int a,b,c,d,e,f,g,h,i;cout<<"请输入一个四位数:";cin>>a;b=a%10;c=a/10;d=c%10;e=c/10;f=e%10;g=e/10;h=b*1000+d*100+f*10+g;i=a+h;cout<<a<<"+"<<h<<"="<<i<<endl;return 0;}1.4调试分析:step1:输入2038step2:输入1234分析:经过输入多次实验后,都取得了预期值,这说明了程序的正确性。
1.5用户使用说明:step1:打开程序;step2:输入要求的数;step3:得出结果;1.6 设计心得:通过此次实验加深了对%与/的使用方法!从小程序开始逐渐把以前遗忘的内容捡起。
二、面向过程设计题42.1 需求分析:编程序,输入正整数m,它代表一个人民币钱数(元数)。
求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
根据实验要求,规定如下:测试数据【输入数据】12345【输出结果】用123张100元;用0张50元;用2张20元;用0张10元;用1张5元;用0张2元;用0张1元;2.2 概要设计:(1)定义整形变量a为用户输入值;(2)主程序流程:step1:让用户输入一个整数a;step3:计算并输出。
2.3详细设计与编码:(1)流程图主函数计算输出(2)源程序#include<iostream>using namespace std;void main(){cout<<"请输入金额:";int a,b,c,d,e,f,g,h,i,j;cin>>a;b=a/100;c=a%100;d=c/50;e=c%50;f=c%50/20;g=c%50%20/10;h=c%50%20%10/5;i=c%50%20%10%5/2;j=c%50%20%10%5%2/1;cout<<"用"<<b<<"张100元;"<<endl; cout<<"用"<<d<<"张50元;"<<endl; cout<<"用"<<f<<"张20元;"<<endl; cout<<"用"<<g<<"张10元;"<<endl;cout<<"用"<<h<<"张5元;"<<endl;cout<<"用"<<i<<"张2元;"<<endl;cout<<"用"<<j<<"张1元;"<<endl;}2.4调试分析:2.5用户使用说明:step1:打开程序;step2:输入要求的数;step3:得出结果;2.6 设计心得:经过此次实验学会了简单编程,有很大收获。
三、面向对象设计题53.1 需求分析:本题目要设计一个Cstudent类,类中包含学生的基本信息,而且要采用binary文件形式,使用随机读写处理方式对类的对象数据进行存储与读写处理。
而且要有输入函数、输出函数,而且还可以计算总成绩!根据实验要求,设置一组测试数据如下:【输入数据】11 野田男59 89 85 922 奥巴马男69 88 76 9523【输出数据】编号姓名性别年龄数学成绩计算机成绩外语成绩总分1 野田男59 89 85 92 2662 奥巴马男69 88 76 95 2593.2 概要设计:(1)建一个Cstudent类,定义类中的数据元素Num、Name[10]、Sex[10]、Age、Math、Com、Eng、Total;(2)设置类的成员函数:输入类元素getdata()、输出类元素outdate()、把数据输入到磁盘中get()、把数据从磁盘中输出put();(3)编写类的成员函数的代码;(4)编写主函数,并调用get()、put()函数;3.3详细设计与编码:(1)流程图主函数do语句switch语句case1 case2yes 调用get()函数调用put()函数判断语句no主函数结束get()函数打开磁盘调用getdata()函数输入数据关闭磁盘put()函数打开磁盘调用putdata()函数输出数据关闭磁盘(2)源程序#include<iostream>#include<fstream>#include<iomanip>using namespace std;class CStudent{long Num;char stName[10];char Sex[10];int Age;int MathScore;int CompScore;int EnglScore;int Total;public:void getdata(){cout<<"序号: ";cin>>Num;cout<<endl<<"姓名: ";cin>>stName;cout<<endl<<"性别:";cin>>Sex;cout<<endl<<"年龄: ";cin>>Age;cout<<endl<<"数学成绩: ";cin>>MathScore;cout<<endl<<"计算机成绩: ";cin>>CompScore;cout<<endl<<"外语成绩: ";cin>>EnglScore;cout<<endl;}void outdate(){Total=MathScore+CompScore+EnglScore;cout<<setw(5)<<Num<<setw(5)<<stName<<setw(5)<<Sex<<setw(5)<<Age<<setw(7)<<Ma thScore<<setw(10)<<CompScore<<setw(10)<<EnglScore<<setw(10)<<Total<<endl;}};void get(){ofstream outfile("stud.dat");CStudent s;int n;cout<<"输入数据:"<<endl;cout<<"学生人数:";cin>>n;for(int i=0;i<n;i++){cout<<"第"<<i+1<<"个学生:"<<endl;s.getdata();outfile.write((char*)&s,sizeof(s));};outfile.close();}void put(){ifstream infile("stud.dat");CStudent s;cout<<"输出数据:"<<endl;cout<<" 编号姓名性别年龄数学成绩计算机成绩外语成绩总分:"<<endl;infile.read((char*)&s,sizeof(s));while(infile){s.outdate ();infile.read((char*)&s,sizeof(s));};infile.close();}void main(){int a;do //选择执行程序{cout<<"选择:1:输入数据2:输出数据其它退出:";cin>>a;switch(a){case 1:get();break; //输入数据case 2:put();break; //输入数据default:cout<<"error"<<endl;break;}}while(a==1||a==2); }3.4调试分析:输入一组验证数据:11 野田男59 89 85 922 奥巴马男69 88 76 95 2输出结果:分析:经过比较可以发现输出结果与程序设计之初预想的结果完全吻合,这表明已达到先前的设计要求,而且整个操作过程都有操作提示,显示出此程序的健壮性!3.5用户使用说明:【step1】打开程序;【step2】选择操作类型;【step3】若选择输入数据,则选择要输入的人数,然后再输入相关数据;【step4】继续选择相关的操作,若想停止则输入出1、2之外的数据。