2014-2020年中国电子病历行业监测与投资战略咨询报告_第1页
2014-2020年中国电子病历行业监测与投资战略咨询报告_第2页
2014-2020年中国电子病历行业监测与投资战略咨询报告_第3页
2014-2020年中国电子病历行业监测与投资战略咨询报告_第4页
2014-2020年中国电子病历行业监测与投资战略咨询报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、江苏科技大学课程实践报告设计题目: 计算机程序设计实践(VC+) 设计时间: 2012. 2.27 至 2012. 3.4 学 院: 专业班级: 学生姓名: 学号 指导老师: 2012 年 3 月1日 一、 实践任务任务一:试建立一个类SP,求f(n,k)=1k+2k+.+nk, 另有辅助函数power(m,n)用于求mn.具体要求如下:(1)私有成员数据。l int n,k:存放公式中的n和k的值:(2)公有成员数据。l SP(int n1,int k1):构造函数,求初始化成员数据n和k。l int power(int m,int n):求mn。l int fun( ):求公式中的累加和。

2、l void show( ):输出求得的结果.。(3)在主程序中定义对象s,对该类进行测试。任务二: 建立一个STRING,,将一个字符串交叉插入到另一个字符串中(假设两字符串等长)。具体要求如下:(1)私有数据成员l char str180:存放被插入的字符串。l char str240:存放待插入的字符串。(2)公有成员函数l STRING(char*s1,char*s2):构造函数,用s1和s2初始化str1和str2。l void process():将str2中的字符插入到str1中。 l void print():输出插入后的字符串。(3)在主函数中定义STRING类的对象test

3、对该类进行测试。任务三:建立一个类NUM,求指定数据范围内所以的素数(质数)。提示:素数定义是“只能被1和它本身整除的整数”,即质数。具体要求如下:(1)私有数据成员l int data10:依次存放原始数据。l int prime10:存放指定数据内所求出的所以素数。l int num:存放素数个数。(2)公有成员函数l NUM(int n ):构造函数,用参数n初始化data,同时初始化num为0。l Int isprime(int x):判断x是否为素数。若是素数,返回1,否则,返回0。l void process():求指定data数组中的所有素数,把它们依次存放在数组prime中,并

4、求出素数的个数赋给num。l void print():输出求出的素数个数级所有素数,每行输出4个素数。 (3)在主函数中完成对该类的测试。定义NUM类对象test调用成员函数完成求素数及输出素数的工作。原始数据为4,5,6,11,36,29,1,101,56,199。任务四:建立一个矩阵类Array,对二维数组中左下三角的全部元素(包括对角线上的元素)作如下变换:(1)若该数不是素数则保持不变;(2)若该数是素数,则用大于它的最小素数替换该数。并统计二维数组中左下三角的全部元素(包括对角线上的元素)中的素数个数。具体要求如下:(1)私有数据成员l int X44:存储需要处理的二维数组的各元

5、素值。l int count:存储坐下三家元素中素数的个数。(2) 公有成员函数l 构造函数:进行初始化x数组和count的值。l Int fun(int):判断一个数是否为素数的函数。l void encode():对x数组中左下三角的全部元素逐一进行判断,若该数不是素数则保持不变,若该数是素数,则用大于它的最小元素替换该数。l void print():按行输出矩阵的值。 (3) 编写一个程序测试该类,说明(声明)Array对象A,将一个矩阵存入对象A中,并输出矩阵的值,使用以下测试数据:3 6 4 17 5 6 4 178 5 9 10 变后矩阵 8 7 9 1012 19 7 20 1

6、2 23 11 204 14 21 23 4 14 21 29任务五:试定义一个类ID,实现根据某人身份证号码判断在其指定年份时的虚岁年龄。具体要求如下:(1)私有数据成员l char id19:存放身份证号码,身份证号码为18位。l int age:根据身份证号码和指定年份计算后得到的虚岁年龄。(2) 公有成员函数l ID(char *p):构造函数,利用参数p初始化身份证号码。l Int substr(char *p0,char n0,int n):取字符串p0中从第n0个字符开始的连续n个字符(假设都是数字字符)并按顺序转换为相应的整数值,结果作为函数的返回值。l void fun(in

7、t y1):计算相对某个年份一,该身份证号码主人的虚岁年龄。对于18位身份证,从第七位(序号从1开始)开始的四位数字为其出生年份。l void print():打印身份证号码及其年龄。(3) 在主程序中对该类进行测试。任务六:试定义一个类NUM,实现对于给定的任意整数,求出其降序数。一个整数的降序数是指将该整数的各位数字从左到右降序排列所形成的新整数。具体要求如下:(1)私有数据成员l int n:存放一个整数。l int m:存放n的降序数。(2)公有成员函数l NUM(int x=0): 参数x初始化数据成员n。l void decrease():求数据成员n的降序数,并存到数据成员m中。

8、l void print():按输入/输出示例格式输出原整数及其降序数。(4) 在主函数中对该类进行测试。任务七:试定义一个类NUM,实现求大于整数m的最小的k个自反数。具体要求如下:(1)私有数据成员l int *p:p指向用于储存满足条件的k个自反数的动态数组。l int m,k:(2)公有成员函数l NUM(int t1,int t2):构造函数,用参数t1、t2分别初始化m、k,并为p分配相应的存储空间。l Int isinv(int n):判断整数n是否为自反数,如果是,则返回1,否则返回0.l void fun():根据题意将求的的自反数按从小到大的顺序存放到p所指向的动态数组中。

9、要求利用成员函数isinv()来判断某个整数是否为自反数。l void print():按输出示例格式输出满足条件的自反数。l NUM():析构函数,释放动态内存。 (3)在主函数中对该类进行测试。任务八:试定义一个类Num,其功能是求出1000以内所有满足下列条件的整数:(1)该整数是一个素数,(2)其各位数字之和与它的平方数的各位数字之和相等。具体要求如下:(1)私有数据成员l Int:存放结果。l Int count:结果数组元素的个数。(2)公有成员函数l Num():构造函数,设置count的初始值为0。l Int prime(int x)判断参数x是否为素数,如果是则返回1,否则返

10、回0。l Int digitsum(int x):计算参数x的各位数字之和,并返回计算结果。l void fun():找出1000以内所有满足条件的数,并存放到成员数组a中,同时计数;l void print();按输出示例格式输出所有符合条件的数。(4) 在主函数中完成对该类的测试。二、系统设计任务一1. 任务(系统)分析通过类SP的构造函数初始化成员数据,使array指向动态申请的空间。利用成员函数power( )求幂,fun()将数组中的幂相加,用于在show()中输出。类的定义如下:class SPint n,k;public:SP(int n1,int k1);int power(i

11、nt m,int n);int fun(int m,int n);void show();2. 算法设计(1)输出幂利用循环和n将指针指向的数组中的每个数字通过for()语句,依次相乘直到求出其本身的幂。(2)求各个幂的和通过for()语句依次累加直至求出最终结果。3.系统测试在主函数中定义数x和数个数y,然后输入n,以及数组元素,先调用show()函数对其进行运行,再调用fun()函数输出运行结果。主函数定义如下:void main()int x,y;cinxy;SP s(x,y);s.show();用以测试的数据:X=4,y=4预期输出的结果为:354任务二1. 任务(系统)分析通过类ST

12、RING的构造函数STRING(char*s1,char*s2)初始化私有数据成员str180,str240。通过类的成员函数process()将str2中的字符串插入到str1中。类的定义如下:class STRINGchar str180;char str240;public:STRING(char*s1,char*s2);void process();void print();2. 算法设计(1)调用头文件#include,在构造函数中用strcpy(str1,s1);strcpy(str2,s2);初始化str180和str240。(2)str2中的字符串插入到str1定义字符数组ch

13、ar temp100=0作为中间变量,定义整型变量j=0,利用for循环在i=0到i(int)strlen(str1)之间循环,并定义循环tempj+=str1i;tempj+=str2i;利用j的自增依次将str1j和str2j赋给tempj+,达到将str1和str2合并到temp数组中的效果。循环完成之后为字符数组temp加上结束符即tempj=0;然后将temp数组拷贝到str1中,达到题目的要求。3. 系统测试在主函数中定义字符数组s180,s240,利用cin.getline(s1,80)和cin.getline(s2,40)输入两个等长的字符串,并输出。然后以s1和s2初始化ST

14、RING 的对象test,调用process()函数将一个字符串交叉插入到另一个字符串当中,再调用print()函数输出插入后的字符串。主函数定义如下:void main() char s1100=abcde; char s2100=ABCDE;STRING test(s1,s2); cess(); test.print();用于测试的字符串分别是:ABCDE abcde预期输出的结果是:ABCDEAbcdes1=ABCDEs2=abcde插入后的字符串为:AaBbCcDdEe任务三1. 任务(系统)分析通过类NUM的构造函数用n初始化data,同时初始化num=0。利用isp

15、rime(int x)判断x是否为素数是素数返回1,不是素数返回0。利用process()找出指定data数组中的素数,将它们依次存放在prime中,并记录素数个数赋给num。类的定义如下:class NUMint data10;int prime10;int num;public:NUM(int n);int isprime(int x);void process();void print();2. 算法设计(1)在构造函数中利用循环将数组n中的元素存放到数组data中,并为num赋初值0。(2)利用for循环,从i=2开始循环到ix为止,当存在x%i=0便返回0,循环完成后也不存在x%i=

16、0便返回1。(3)从i=0到i=10逐个循环判断,若为素数将datai赋给primenum+,存放到数组prime中。同时num的计数工作由primenum+中的num自增完成。3. 系统测试在主函数中定义整型数组a10并为其初始化a10=4,5,9,11,36,29,31,101,56,199,以数组a初始化类NUM的对象test,通过对process()的调用完成找出所有素数存放在prime中和计数的工作。再通过print()函数的调用每行四个输出结果。主函数定义如下:void main()int a10=4,5,9,11,36,29,31,101,56,199;NUM test(a);t

17、cess();test.print();用于测试的数组为:int a10=4,5,9,11,36,29,31,101,56,199;预期得到的结果是:num=65 11 29 31101 199任务四1.任务(系统)分析类的成员函数int X44存储需要处理的二维数组的各元素值;int count:存储坐下三家元素中素数的个数构造函数:进行初始化x数组和count的值。Int fun(int):判断一个数是否为素数的函数。void encode():对x数组中左下三角的全部元素逐一进行判断,若该数不是素数则保持不变,若该数是素数,则用大于它的最小元素替换该数。void print

18、():按行输出矩阵的值。2.算法设计(1)利用以下语句将各数存入数组;Array(int n44)count=0;for(int i=0;i4;i+)for(int j=0;j4;j+)xij=nij;(2)判断一个数是否为素数;fun(int x)if(x=0|x=1)return 0;for(int i=2;ix-1;i+)if(x%i=0)return 0;return 1;(3)对x数组中左下三角的全部元素逐一进行判断encode()int court=0;for(int i=0;i4;i+) for(int j=0;j=i;j+) if(fun(xij) court+; while(

19、1) xij+; if(fun(xij) break; return court;3.系统测试在主函数中以整数初始化Array的对象,并调用其成员函数print()输出测试结果。主函数定义如下: void main()int n44=3,6,4,17,8,5,9,10,12,19,7,20,4,14,21,23;Array A(n);A.encode();A.print(); 运行结果:5 6 4 17 8 7 9 1012 23 11 204 14 21 29任务五1. 任务(系统)分析通过对类ID的构造函数ID(char*p)中的参数p初始化id,利用substr()函数将出生年份求出来作

20、为函数的返回值返回,接下来利用fun(int y1)函数将指定年份和出生年份相减加一求出虚岁年龄。类的定义如下:class ID char id19; int age;public: ID(char*p);int substr(char*p0,char n0,int n);void fun(int y1);void print();2. 算法设计(1)利用拷贝函数将指针p指向的数组拷贝到数组id中。(2)为age赋初值0,利用for循环从i=n0-1到i=n-1循环将数组当中第n0个元素到第n个元素转化成一个整数,并将所得整数存放在age中,同时作为返回返回。(3)通过fun(int y1)函

21、数输出指定年份y1,将指定年份和得到的整数age相减并加上1,得到的即为虚岁年龄,利用age=y1-age+1;将虚岁年龄存放在age中,供输出函数调用。3. 系统测试在主函数中定义y1,输入y1,再定义字符数组aa19,输入字符串为其初始化。在类ID中用aa初始化对象test。调用test.substr(aa,7,10)和test.fun(y1)运行函数,再通过调用test.print()输出身份证号码和年龄。主函数定义如下:void main()int y1;cout请输入指定年份:y1;char aa19;cout请输入身份证号码:aa;cout指定年份和身份证号码:y1taaendl;

22、ID test(aa);test.substr(aa,7,10);test.fun(y1);test.print();用于测试的数据为:y1=2011 身份证号码为 32062119910522831预期输出的结果是:请输入指定年份:2011请输入身份证号码:32062119910522831指定年份和身份证号码:2011 32062119910522831指定年份:2011身份证号码:32062119910522831虚岁年龄:21任务六1. 任务(系统)分析通过类NUM的构造函数对n进行初始化,利用decrease()函数将n的各位数字存放在整型数组a中,再将a中的元素进行降序排列,最后将

23、数组中的元素化成整数存放到m当中。类的定义如下:class NUMint n;int m;public:NUM(int x=0);void decrease();void print();2. 算法设计(1)通过构造函数用参数x将私有数据成员n进行初始化。(2)把n降序并化成整数存放在m中 定义整型数组int a100,定义整型变量t,l并为t赋初值n,同时为m赋初值为0; 从i=0开始在t!=0时循环,循环体是ai=t%10;t=t/10;k=i;即将t和10求余得到的数存放在ai当中,同时将t/10赋给t,i赋给k; 用for循环从j=0开始到jk循环,在该循环内再次使用循环for从p=j

24、+1到p=k循环,在第二个循环中定义循环体if(ajap) l=aj;aj=ap;ap=l;用来逐个比较,逐个将大的元素排在前面,两次循环结束便能达到降序的目的; 再次使用for循环从g=0到g=k为止,将m*10+ag赋给m,循环结束后能将存在在数组当中的降序元素化为整数。3. 系统测试在主函数中定义整型变量x,然后输入x,以x初始化NUM的对象test,调用decrease()函数达到降序的目的,再调用成员函数print()输出结果。主函数定义如下:void main()int x;coutx;NUM test(x);test.decrease();test.print();用以测试的整数

25、是:431252预期输出的结果是:输入一个正整数:431252原整数为:431252该数的降序为:543221任务七1. 任务(系统)分析通过类NUM的构造函数对m,k进行初始化,并为p开辟k个动态空间。利用isinv()函数判断整数n是否为自反数,是自反数,返回1,不是自反数返回0。利用fun()函数调用isinv()函数判断某个整数是否为自反数,并依次存放到p指向的动态数组当中。定义析构函数,释放为p开辟的动态空间。按照要求定义输出函数。类的定义如下:class NUMint*p;int m,k;public:NUM(int t1,int t2);int isinv(int n);void

26、 fun();void print();NUM();2. 算法设计(1)用构造函数的参数t1,t2初始化m和k,同时为p开辟k个空间,用于存放满足条件的k个自反数。(2)判断n是否为自反数 定义整型数组a100,定义整型变量d,,l,b,并为l赋初值为0,为b赋初值为n; 利用for循环从i=0到b变为0为止依次进行b和10求余赋给ai,b/10赋给b,i赋给d的循环,达到将一个数的各位数字的反序存放到a数组中的目的; 从j=0开始到j=d为止循环,将l*10+aj赋给l得到反序的整数; 若l=n,返回1,否则,返回0。(3),在循环中定义i=0,从q=m开始循环,每次循环结束q自增一次,循环

27、中如果 isinv(i)为1,就将q赋给p+i指向的空间,同时i自增一次,并判断i是否和k相等,相等的话就跳出循环。3. 系统测试在主函数中定义m,k并输入m和k,以m和k初始化NUM的对象test,调用成员函数fun()运行函数,再调用成员函数print()输出函数。主函数定义如下:void main()int m,k;coutmk;NUM test(m,k);test.fun();test.print();用于测试的数据为:m=1000 k=6预期输出的结果为:请输入m和k:10006大于1000的6个自然反数为:1001 1111 1221 1331 1441 1551任务八1. 任务(

28、系统)分析通过类Num的构造函数为count赋初值0,定义prime(int x)函数用于判断是否是素数,是素数返回1,否则返回0.定义digitsum(int x)函数用于计算x的各位数字之和,并返回计算结果。定义fun()函数逐个查找1000以内的数字,找到满足条件的数字就存放在数组a当中,同时利用count计数。类的定义如下:class Numint a20;int count;public:Num();int prime(int x);int digitsum(int x);void fun();void print();2. 算法设计(1)利用构造函数设置count的初始值为0;(2

29、)判断参数x是否为素数当x为0或者x为1时,返回值为0;利用for循环从i=2开始到ix进行循环,若其中存在x和i求余为0,就返回0;上述情况都不满足,就返回1;(3)计算各位数字之和,并作为返回值返回定义整型数组b100和n,m,sum,同时为n赋初值x,sum赋初值0;在i=0到n不为0时进行依次将n和10求余的值赋给bi,即将各位数字存放在数组b当中,n/10赋给n,i赋给m的循环;从j=0到j=m间进行将sum+bj赋给sum的循环,得到各位数字之和。(4)在1000内寻在满足条件的数,并计数在i=0到i=1000内循环,若prime(i)为1,再判断digitsum(i)和digit

30、sum(i*i)是否为1,若为1,就将i赋给acount+;计数工作由acount+中的count自增完成。3. 系统测试在主函数中建立Num的对象test,调用类的成员函数对其运行,在调用成员函数print()按照要求输出结果。主函数定义如下:void main()Num test;test.fun();test.print();预期得到的结果为:符合条件的整数及其平方数:19 361199 39601379 143641739 546121三、实践小结通过对这几次试验的总结,我发现自己在对VC+的一些基本概念还有一些模糊。常常会在程序设计的时候犯一些基本错误。在后来的试验中自己首先要仔细看

31、题,理解题目意思,在大脑里大概形成一个印象,初步了解解题方法。然后根据题目要求和提示写出类的框架,并了解每一个成员函数的作用,写出主函数。并按照题目要求,认真分析思考主功能函数,一步一步有条理地将它写出来。最后完善程序,并调试程序,找出错误的地方进行改正,直到程序无错,并能输出题目要求的任务。虽然在实践中我遇到了不少问题,但是通过这样一个实践的机会自己的动手能力得到了加强,学到了很多课本上没有的知识。 四、参考文献1 张岳新 Visual C+程序设计苏州大学出版社 。2011,201-2382 江苏科技大学计算机科学与工程学院 VC+程序设计课程实践指导书,2011.2,3-133江苏省高等

32、学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷(2011秋)二级VC+语言 试卷代号VC01-VC04五、源程序清单任务一#includeclass SPint n,k;public:SP(int n1,int k1);int power(int m,int n);int fun(int m,int n);void show();SP:SP(int n1,int k1)n=n1;k=k1;intSP:power(int m,int n)int i,p=1;for(i=1;i=n;i+)p=p*m;return p;int SP:fun(int n,int k)int s=0;fo

33、r(int i=1;i=n;i+)s+=power(i,k);return s;void SP:show()coutfun(n,k)xy;SP s(x,y);s.show();任务二#include#includeclass STRING char str180;char str240;public: STRING(char *s1,char *s2);void process();void print();STRING:STRING(char *s1,char *s2)strcpy(str1,s1);strcpy(str2,s2);void STRING:process()char temp

34、100=0;int j=0;for(int i=0;i(int)strlen(str1);i+)tempj+=str1i;tempj+=str2i;strcpy(str1,temp);void STRING:print() coutstr1n;void main() char s1100=abcde; char s2100=ABCDE;STRING test(s1,s2); cess(); test.print();任务三#include#includeclass NUMint data10;int prime10;int num;public:NUM(int n);int i

35、sprime(int x);void process();void print();NUM:NUM(int n)num=0;for(int i=0;i=10;i+)datai=ni;primei=0;int NUM:isprime(int x)for(int i=2;i=sqrt(x)+1;i+)if(x%i=0)return 0;return 1;void NUM:process()int n=0;for(int i=0;i=9;i+)if(isprime(datai)primen=datai;+n;num=n;void NUM:print()coutnumn;for(int i=0;i=9

36、;i+)if(primei)coutprimein;coutendl;void main()int x10=4,5,9,11,36,29,31,101,56,199;NUM test(x);cess();test.print();任务四#includeclass Arrayint x44;int count;public:Array(int n44);int fun(int);int encode(); void print();Array:Array(int n44)count=0;for(int i=0;i4;i+)for(int j=0;j4;j+)xij=nij;int

37、 Array:fun(int x)if(x=0|x=1)return 0;for(int i=2;ix-1;i+)if(x%i=0)return 0;return 1;int Array:encode()int court=0;for(int i=0;i4;i+) for(int j=0;j=i;j+) if(fun(xij) court+; while(1) xij+; if(fun(xij) break; return court;void Array:print()for(int i=0;i4;i+)for(int j=0;j4;j+)coutxijt;coutn;void main()

38、int n44=3,6,4,17,8,5,9,10,12,19,7,20,4,14,21,23;Array A(n);A.encode();A.print();任务五#include#includeclass IDchar id19;int age;public:ID(char *p);int substr(char *p0,char n0,int n);void fun(int y1);void print();ID:ID(char *p)if(p)strcpy(id,p);int ID:substr(char *p0,char n0,int n)int s=0;for(int i=0;in;i+)s=s*10+(p0n0+i-1-48);return s;void ID:fun(int y1)age=y1-substr(id,7,4)+1;void ID:print()fun(2011);cout虚岁年龄为ageendl;void main()char

温馨提示

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

最新文档

评论

0/150

提交评论