0%

中国矿业大学高级语言程序设计实践课上机代码

2022 CUMT 中国矿业大学 高级语言程序设计实践课程 实验 全部代码题解

年代久远,只能简单整理了一下,可能有残缺,请根据目录自行查看

本博文由我的GitHub仓库LymoneLM/LymoneTest代码自动整理生成,进入仓库可以查看最新的代码

如果代码对您有帮助,希望可以给我的仓库点个Star,或者在GitHub关注我,感谢

在我的个人博客莱蒙黎梦可以查看本博文原文和更多其他我的博文

本博文提供的代码仅供参考学习,原题已遗失,先尝试后使用,不同年度课程题目可能略有差异

@[TOC]

实验1

Lab1\01.cpp

1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a,b,c;
cin>>a>>b>>c;
double delta=b*b-4*a*c;
double td=sqrt(delta);
cout<<(-b+td)/(2*a)<<" "
<<(-b-td)/(2*a);
return 0;
}

Lab1\02.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
int main()
{
double x;
cin>>x;
cout<<sin(x)<<endl;
cout<<tan(x)<<endl;
cout<<log10(x)<<endl;
cout<<log(x)<<endl;
cout<<pow(x,2)<<endl;
cout<<sqrt(x)<<endl;
cout<<pow(x,10)<<endl;
cout<<pow(x,0.1)<<endl;
cout<<pow(x,-1)<<endl;
cout<<exp(x)<<endl;
cout<<fabs(pow(x,5)+log10(pow(x,2)+1)-pow(2,x)-13);
return 0;
}

Lab1\03.cpp

1
2
3
4
5
6
7
8
9
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,c;double b,d;char e;
cin>>a>>b>>c>>d>>e;
cout<<a+b+c+d+e;
return 0;
}

Lab1\04.cpp

1
2
3
4
5
6
7
8
9
10
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x,y;
cin>>x>>y;
double pie=3.1415926;
cout<<x*x+x-y<<" "<<2*pie*x+pie*y*y;
return 0;
}

Lab1\05.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;
int main()
{
int sec1,sec2;
int h,min,sec;
cin>>h>>min>>sec;
sec1=(h*60+min)*60+sec;
cin>>h>>min>>sec;
sec2=(h*60+min)*60+sec;
cout<<abs(sec2-sec1);
return 0;
}

实验2

Lab2\01.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
using namespace std;
int main()
{
int N;
cin>>N;
for(int xi=1; xi<=N; xi++)
{
if(xi==1)
{
cout<<1<<endl;
continue;
}
int temp=1;
for(int yi=1;yi<xi;yi++)
{
cout<<temp;
temp+=2;
}
cout<<temp;
for(int yi=xi;yi>1;yi--)
{
temp-=2;
cout<<temp;
}
cout<<endl;
}
return 0;

}

Lab2\02.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a,b,c,d;
cin>>a>>b>>c>>d;
cout<<"A:"<<(a*=2.75)<<"\n";
cout<<"B:"<<(b*=12.5)<<"\n";
cout<<"C:"<<(c*=26.8)<<"\n";
if(d<=3)
d*=512;
else if(d<=8)
d=512.0*d*0.9;
else
d=512.0*d*0.85;
cout<<"D:"<<d<<"\n";
cout<<"total:"<<a+b+c+d;
return 0;
}

Lab2\03.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N;
cin>>N;
bool flag=false;
for(int i=15; i<=N; i++)
{
if(i%3==1&&i%10==6)
{
if(flag)
cout<<' ';
cout<<i;
flag=true;
}

}
return 0;
}

Lab2\04.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
int main()
{
int num;cin>>num;
double sum=0;
double temp;int i=num;
double ma=-1,mi=11;
while(i--)
{
cin>>temp;
ma=max(temp,ma);//if(temp>ma)ma=temp;
mi=min(temp,mi);//if(temp<mi)mi=temp;
sum+=temp;
}
cout<<(sum-ma-mi)/(num-2);
return 0;
}

Lab2\05.cpp

1
2
3
4
5
6
7
8
9
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int n=log(a)/log(b);
cout<<n;
}

实验3

Lab3\A.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;
bool f(long n)
{
do
{
if((n%10)%2!=0)
return false;
}
while((n/=10)>0);
return true;
}
int main()
{
long n;
cin>>n;
if(f(n))
cout<<"true";
else
cout<<"false";
return 0;
}

Lab3\B.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <bits/stdc++.h>
using namespace std;
void find(int i,int n)
{
int t=0;
while(t<n)
{
int m=sqrt(i);
bool flag=true;
for(int x=2;x<=m;x++)
{
if(i%x==0)
flag=false;
}
if(flag)
{
cout<<i<<" ";
t++;
}
i++;
}
return;
}
int main()
{
int i,n;
cin>>i>>n;
find(i,n);
return 0;
}

Lab3\C.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
using namespace std;
void func()
{
int start,end,maxsum=0;
cin>>start>>end;
int i = start,temp = 0;
for(; i <= end; i++)
{
int sum=1;
for(int j = 2; j <= i / 2; j++)
{
if(0 == i%j)
{
sum+=j;
}
}
if(sum > maxsum)
{
maxsum = sum;
temp = i;
}
}
cout<<temp<<" "<<maxsum;
}
int main()
{
func();
return 0;
}

Lab3\D.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <bits/stdc++.h>
using namespace std;
bool symm(long n)
{
long n_=n;
long dn=0;
do
{
dn*=10;
dn+=n%10;
}
while((n/=10)>0);
if(dn==n_)
return true;
return false;
}
int main()
{
long n;
cin>>n;
for(int m=1; m<=n; m++)
{
if(symm(m)&&symm(7*m)&&symm(3*m*m))
{
cout<<m<<" ";
}
}
return 0;
}

Lab3\E.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
long symm(long n)
{
long n_=n;
long dn=0;
do
{
dn*=10;
dn+=n%10;
}
while((n/=10)>0);
return n_+dn;
}
int main()
{
long n;
cin>>n;
cout<<symm(n);
return 0;
}

Lab3\F.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;
long func(long n)
{
return n==0?1:(func(n-1)+1)*2;
}
int main()
{
long n;
cin>>n;
cout<<func(10-n);
return 0;
}

Lab3\G.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
long long func(long long n)
{
int i=1;
do
{
if(i*i>=n)
break;
}
while(i++);
return i*i;
}
int main()
{
long long n;
cin>>n;
cout<<func(n);
return 0;
}

实验4

Lab4\0A-szy.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream> 
using namespace std;
int main()
{
int a[50];
int b[50]={0};
int k,n;
cin>>k;
for(int i=0;i<k;i++)
{
cin>>a[i];
}
int sum=0;
for(int i=0;i<k;i++)
{
sum+=a[i];
}
double ave=0;
n=0;
ave=(double)sum/k;
for(int i=0;i<k;i++)
{
if(a[i]>ave)
{
n++;
}
}
cout<<ave<<" "<<n<<endl;
int m=0;
for(int i=0;i<k;i++)
{
bool flag=true;
for(int j=0;j<m;j++)
{
if(a[i]==b[j])
{
flag=false;
break;
}
}
if(flag)
{
b[m]=a[i];
m++;
}
}
for(int j=0;j<m;j++) cout<<b[j]<<" ";
}

Lab4\0C-szy.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include<iostream>
using namespace std;
int f(int x)
{
if(x%4==0&&x%100!=0) return 1;
if(x%400==0) return 1;
}
int main()
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int y1;
int m1;
int d1;
cin>>y1>>m1>>d1;
int y2,m2,d2;
cin>>y2>>m2>>d2;
int sumy=0;
for(int i=y1;i<y2;i++)
if(f(i)) sumy+=366;
else sumy+=365;
int summ1=0;
if(f(y1))
{
a[1]=29;
for(int i=0;i<m1-1;i++)
{
summ1+=a[i];
}
}
else
{
for(int i=0;i<m1-1;i++)
{
summ1+=a[i];
}
}
int sum1;
sum1=summ1+d1;
int summ2=0;
if(f(y2))
{
a[1]=29;
for(int i=0;i<m2-1;i++)
{
summ2+=a[i];
}
}
else
{
for(int i=0;i<m2-1;i++)
{
summ2+=a[i];
}
}
int sum2;
sum2=summ2+d2;
int m;
m=sumy+sum2-sum1;
cout<<m;
return 0;
}

Lab4\A-sy.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
using namespace std;
int b = 0;
int main()
{
double s[50] = {};
double m[50]={};
int k=0, i;
double ava=0,sum=0;
cin >> k;
for (i = 0; i < k; ++i)
{
cin >> s[i];
sum+=s[i];
}
ava = sum / k;
for (i = 0; i < k; ++i)
{
if (ava < s[i])
++b;
}
cout << ava << " " << b << endl;
int c = 0;
for (c=0; c <= k;c++)
m[c] = s[c];
for (i = 0; i < k; i++)
cout << m[i] << " ";
return 0;
}

Lab4\A.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x[50],y[50];
int k,n=0;
cin>>k;
double ave=0;
for(int i=0;i<k;i++)
{
cin>>x[i];
ave+=x[i];
}
ave/=k;
int t=0;
for(int i=0;i<k;i++)
{
if(x[i]>ave)
n++;
bool flag=false;
for(int m=0;m<t;m++)
{
if(x[i]==y[m])
flag=true;
}
if(flag)
continue;
y[t++]=x[i];
}

cout<<ave<<" "<<n<<" \n";

for(int i=0;i<t;i++)
{
cout<<y[i]<<" ";

}
return 0;
}

Lab4\B.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <bits/stdc++.h>
using namespace std;
class node
{
public:
int name;
node *next;
};
class link
{
node *head,*rear;
node *tp;
public:
int add(int n)
{
int m=n-2;
while(m--)
tp=tp->next;
node *p=tp->next;
tp->next=p->next;
m=p->name;
delete p;
return m;
}
void en(int n)
{
node *p=new node;
p->name=n;
rear->next=p;
rear=p;
p->next=head;
}
link()
{
tp=new node;
tp->name=1;
tp->next=tp;
head=rear=tp;
for(int i=2;i<=12;i++)
en(i);
}
};
int main()
{
int k,m,n=12;
cin>>k;
link data;
while(n--)
m=data.add(k);
cout<<m;
return 0;
}

Lab4\B2.cpp

1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
int f(int n, int m)
{
return n == 1 ? n : (f(n - 1, m) + m - 1) % n + 1;
}
int main()
{
int k;cin>>k;
cout<<f(12,k);
return 0;
}

Lab4\B3.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k;cin>>k;
int data[13][2];
for(int i=1;i<=12;i++)
{
data[i][0]=i-1;
data[i][1]=i+1;
}
data[1][0]=12;
data[12][1]=1;
int p=1,m;
for(int xi=1;xi<12;xi++)
{
for(int yi=1;yi<k;yi++)
{
p=data[p][1];
}
m=data[p][1];
data[data[p][0]][1]=data[p][1];
data[data[p][1]][0]=data[p][0];
p=m;
}
cout<<m;
return 0;
}

Lab4\C-xjy.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
using namespace std;
bool a(int n)
{
if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0)
return true;
else
return false;
}
int y(int n)
{
int r = 0, p = 0, i;
for (i = 0; i < n; i++)
{
if (a(i))
r++;
else
p++;
}
return (r * 366 + p * 365);
}
int m(int year, int month, int day)
{
int num;
if (a(year))
{
switch (month)
{
case 1:
num = day;
break;
case 2:
num = 31 + day;
break;
case 3:
num = 31 + 29 + day;
break;
case 4:
num = 31 + 29 + 31 + day;
break;
case 5:
num = 31 + 29 + 31 + 30 + day;
break;
case 6:
num = 31 + 29 + 31 + 30 + 31 + day;
break;
case 7:
num = 31 + 29 + 31 + 30 + 31 + 30 + day;
break;
case 8:
num = 31 + 29 + 31 + 30 + 31 + 30 + 31 + day;
break;
case 9:
num = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + day;
break;
case 10:
num = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
break;
case 11:
num = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
break;
case 12:
num = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
break;
}
}
else
{
switch (month)
{
case 1:
num = day;
break;
case 2:
num = 31 + day;
break;
case 3:
num = 31 + 28 + day;
break;
case 4:
num = 31 + 28 + 31 + day;
break;
case 5:
num = 31 + 28 + 31 + 30 + day;
break;
case 6:
num = 31 + 28 + 31 + 30 + 31 + day;
break;
case 7:
num = 31 + 28 + 31 + 30 + 31 + 30 + day;
break;
case 8:
num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;
break;
case 9:
num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;
break;
case 10:
num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
break;
case 11:
num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
break;
case 12:
num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
break;
}
}
return num;
}
int main()
{
int year1, month1, day1,
year2, month2, day2;
cin >> year1 >> month1 >> day1 >> year2 >> month2 >> day2;
cout << y(year2) + m(year2, month2, day2) -
y(year1) - m(year1, month1, day1);
}

Lab4\C.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <bits/stdc++.h>
using namespace std;
bool is_r(int n)
{
return (0 == n % 4 && n % 100 != 0) || (0 == n % 400)?1:0;
}
class date
{
const int m_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
public:
int year,month,day;
void input()
{
cin>>year>>month>>day;
}
bool equal(const date &temp)
{
bool flag=true;
if(year!=temp.year)
flag=false;
if(month!=temp.month)
flag=false;
if(day!=temp.day)
flag=false;
return flag;
}
void add()
{
day++;
if(month==2&&is_r(year))
{
if(day>m_day[2]+1)
{
month=3;
day=1;
}
}
else
{
if (day>m_day[month])
{
month++;
day=1;
}
if (month>12)
{
year++;
month=1;
}
}
}
};
int main()
{
date fir,sec;
fir.input();
sec.input();
int n=0;
while(true)
{
if(fir.equal(sec))
break;
fir.add();
++n;
}
cout<<n;
return 0;
}

Lab4\D.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[10],b[10],c[20];
for(int i=0;i<10;i++)
cin>>a[i];
for(int i=0;i<10;i++)
cin>>b[i];
int a_max=a[0],a_min=a[0];
int b_max=b[0],b_min=b[0];
for(int i=1;i<10;i++)
{
if(a[i]>a_max)
a_max=a[i];
if(a[i]<a_min)
a_min=a[i];
if(b[i]>b_max)
b_max=b[i];
if(b[i]<b_min)
b_min=b[i];
}
printf("%d %d\n%d %d\n",a_max,a_min,b_max,b_min);
sort(a,a+10);
sort(b,b+10);
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
for(int i=9;i>=0;i--)
cout<<b[i]<<" ";
cout<<endl;
int t=0;
int ax=0,bx=0;
while(t!=20)
{
if(a[ax]<=b[bx]&&ax<10)
{
c[t]=a[ax];
ax++;
}
else
{
c[t]=b[bx];
bx++;
}
t++;
}
for(int i=0;i<20;i++)
cout<<c[i]<<" ";
return 0;
}

Lab4\E-sy.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
int main()
{
char s[50];
cin.getline(s, 50);
int i;
int n = 0;
for (i = 0;; i++)
{
if (s[i] == ' ')
{
cout << endl;
++n;
}
if (s[i] == '.')
{
cout << endl;
break;
}
if (s[i] != ' ')
cout << s[i];
// else
// cout << '\0';
}
cout << n + 1;
return 0;
}

Lab4\E.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[50];
cin.getline(s, 50);
int a=0,b=0;int n=0;
while(s[a-1]!='.')
{
b++;
if(s[b]==' '||s[b]=='.')
{
n++;
for(int i=a;i<b;i++)
cout<<s[i];
cout<<endl;
a=b+1;
}
}
cout<<n;
return 0;
}

实验5

Lab5\A.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
using namespace std;
void split(char *str)
{
int i = 0, n = 1;
int max = 0, p = 0, maxp;
while (str[i] != '\0')
{
if (str[i] == ' ')
{
if (i - p > max)
{
maxp = p;
max = i - p;
}
p = i + 1;
n++;
}
i++;
}
if (i - p > max)
{
maxp = p;
max = i - p;
}
cout<<n<<" "<<max<<" ";
while(str[maxp]!=' '&&str[maxp]!='\0')
{
cout<<str[maxp];
maxp++;
}
}
int main()
{
char str[500];
cin.getline(str, 500);
split(str);
return 0;
}

Lab5\B-new.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
int** data = new int* [m];
for (int i = 0; i < m; i++)
{
data[i] = new int [n];
for (int j = 0; j < n; j++)
cin >> data[i][j];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
cout << data[j][i];
cout <<((j+1==m)?'\n':' ');
}
for (int i = 0; i < m; i++)
delete[] data[i];
delete[] data;
return 0;
}

Lab5\B.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
int main()
{
int data[101][101];
int m, n;
cin >> m >> n;
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> data[i][j];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
cout << data[j][i];
cout <<((j+1==m)?'\n':' ');
}
return 0;
}

Lab5\C.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;
void split(double x,int* iPart,double* fPart)
{
*iPart=x;
*fPart=x-*iPart;
}
int main()
{
int* iPart=new int;
double* fPart=new double;
double x;
cin>>x;
split( x, iPart, fPart);
cout<<(*iPart)<<" "<<(*fPart);
return 0;
}

Lab5\D.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <bits/stdc++.h>
using namespace std;
char*findLast(char*sourceStr,char*subStr)
{
char* p=sourceStr-1;
int i=0;
while (sourceStr[i]!='\0')
{
if(sourceStr[i]==subStr[0])
{
int add=0;
while (++add)
{
if(subStr[add]=='\0')
{
p=sourceStr+i;
break;
}
if(subStr[add]!=sourceStr[i+add])
break;
}
}
i++;
}
return p;
}
int main()
{
char sourceStr[10001],subStr[10001];
cin.getline(sourceStr, 10000);
cin.getline(subStr, 10000);
cout<<findLast(sourceStr,subStr)-sourceStr;
return 0;
}

Lab5\E.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;
int f(unsigned long x, int n,int & Lxn)
{
char str[10001];
sprintf(str,"%ld",x);
Lxn=str[n-1]-'0';
int len=strlen(str);
if(len<n)
{
Lxn=0;
return 0;
}
return x/((int)pow(10,n-1)) % 10;
}
int main()
{
unsigned long x;
int n;
int Lxn;
cin>>x>>n;
cout<<f(x,n,Lxn)<<" "<<Lxn;
return 0;
}

实验6

Lab6\A.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
#include<cmath>
#include<string>
using namespace std;

class Complex {
double real; //复数实部
double imag; //复数虚部
public:
Complex (); //无参构造函数,将复数对象的实部和虚部均置为0
Complex (double r, double i):real(r),imag(i){}; //有参构造函数,设置对象的实部和虚部
Complex AddCom(Complex c2); //调用者对象与对象c2相加,返回Complex类对象
void OutCom () ; //输出调用者对象的有关数据(各分量)
};
Complex Complex::AddCom(Complex c2)
{
Complex c3(real+c2.real,imag+c2.imag);
return c3;
}
void Complex::OutCom()
{
if (imag==0&&real!=0) cout<<real<<endl;
else if (real==0&&imag!=0) cout<<imag<<'i'<<endl;
else if (real==0&&imag==0) cout<<0<<endl;
else cout<<real<<'+'<<imag<<'i'<<endl;
}

int main()
{
double a,b,c,d;
cin>>a>>b>>c>>d;
Complex c1(a,b),c2(c,d);
c1=c1.AddCom(c2);
c1.OutCom();
}

Lab6\B.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int checkRun(int y)
{
if (y%400==0||(y%100!=0&&y%4==0)) return 1;
return 0;
}

class DateType {
//自定义的日期类 DateType
int y,m,d; //数据成员,表示当前日期的年、月、日
public:
DateType(int y0=1,int m0=1,int d0=1):y(y0),m(m0),d(d0){};
//构造函数,设定年、月、日;并设置参数默认值
void IncrementDay(); //增加 1 天
bool Equal(DateType dt2); //判断二日期是否相等
void PrintDate(); //屏幕输出日期对象的有关数据(年、月、日)
};
void DateType::IncrementDay()
{
d++;month[2]+=checkRun(y);
if (d>month[m]){
d=1;m++;
if (m>12) {m=1;y++;}
}
month[2]-=checkRun(y);
}
bool DateType::Equal(DateType dt2)
{
if (y==dt2.y&&m==dt2.m&&d==dt2.d) return true;
return false;
}
void DateType::PrintDate()
{
cout<<y<<':'<<m<<':'<<d<<endl;
}

int main()
{
int y1,y2,m1,m2,d1,d2;
cin>>y1>>m1>>d1>>y2>>m2>>d2;
DateType dt1(y1,m1,d1),dt2(y2,m2,d2);
dt1.PrintDate();
dt2.PrintDate();
dt1.IncrementDay();
dt2.IncrementDay();
cout<<(dt1.Equal(dt2)?"True":"False")<<endl;
dt1.PrintDate();
dt2.PrintDate();
}

Lab6\C.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
class CStudent { //学生类 CStudent
unsigned long reg_num; //数据成员:注册号
char name[30]; //数据成员:姓名
float math, eng, comp; //数据成员:数学、英语、计算机成绩
public: //公有成员函数
float Sum(); //求三门课总成绩的函数 Sum
float Average(); //求三门课平均成绩的函数 Average
void Display(); //显示学生数据信息的函数 Display
void SetData (unsigned long r,char* n,float m,float e,float c);
//设置学生数据信息的函数 SetData
};
void CStudent::SetData(unsigned long r,char* n,float m,float e,float c)
{
reg_num=r;
strcpy(name,n);
math=m;
eng=e;
comp=c;
}
float CStudent::Sum()
{
return math+eng+comp;
}
float CStudent::Average()
{
return (math+eng+comp)/3.0;
}
void CStudent::Display()
{
cout<<reg_num<<" "<<name<<" "<<math<<" "<<eng<<" "<<comp<<endl;
}


int main()
{
char c,name_[30];
unsigned long reg_num_;
float math_,eng_,comp_,sum_max,sum_n;
string s;
int n,x,res,res_num;
CStudent stu[160];
cin>>n;
cout<<"TOTAL="<<n<<endl;
for (int i=1;i<=n;i++)
{
cin>>res_num>>name_>>math_>>eng_>>comp_;
stu[i].SetData(res_num,name_,math_,eng_,comp_);
cout<<"CStudent "<<i<<" : ";
stu[i].Display();
}
for (int i=1;i<=n;i++)
{
sum_n=stu[i].Sum();
if (sum_n>sum_max) {
sum_max=sum_n;
res=i;
}
cout<<"CStudent"<<i<<".Sum="<<sum_n<<",CStudent"<<i<<".average="<<stu[i].Average()<<endl;
}
cout<<"class_Sum_max="<<sum_max<<endl<<"The infomation of the CStudent with class_Sum_max : ";
stu[res].Display();
}

实验7(含原题)

Lab7\A.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
问题 A: 零件类(静态成员)
[命题人 : ]
时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述
定义一个 Lingjian 类,拥有整型的数据成员 Weight 和静态数据成员 AllWeights(初始化为 0),每定义一个对象时, 在AllWeights 中增加该零件的重量 Weight;在析构函数中减去 Weight;静态成员函数 GetAllWeights()获取AllWeights。设计程序,定义两个对象之后, 输出类的 AllWeights。其中 Weight 是通过成员函数输入对单个零件重量赋值。
输入
两个整数。 分别为两个对象的重量
输出
输出一行,是AllWeights的值
样例输入 Copy
12 24
样例输出 Copy
36 */
#include <bits/stdc++.h>
using namespace std;
class Lingjian
{
int Weight;
static int Allweights;
public:
Lingjian(int w):Weight(w)
{
Allweights+=w;
}
~Lingjian()
{
Allweights-=Weight;
}
static int GetAllWeights()
{
return Allweights;
}
};
int Lingjian::Allweights=0;
int main()
{
int a,b;cin>>a>>b;
Lingjian l1(a),l2(b);
cout<<Lingjian::GetAllWeights();
return 0;
}

Lab7\B.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
问题 B: 狮子与老虎的朋友(友元函数)
[命题人 : liuhouquan]
时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述
定义狮子 Lion 与老虎 Tiger 两个类,二者都有 weight 私有整型属性,定义二者的一个友元函数 totalWeight(参数表),计算二者的重量和。设计程序,定义狮子与老虎两个对象之后,调用 totalWeight(参数表),计算二者的重量和,然后输出。其中狮子与老虎的 Weight 是在各自的类成员函数中读数赋值。
输入
两个整数。分别为狮子与老虎对象的重量
输出
输出一个整数,是两个对象重量之和。
样例输入 Copy
240 280
样例输出 Copy
520 */
#include <bits/stdc++.h>
using namespace std;
class Lion;
class Tiger{
int weight;
public:
Tiger(int w):weight(w){};
friend int totalWeight(Lion a,Tiger b);
};
class Lion{
int weight;
public:
Lion(int w):weight(w){};
friend int totalWeight(Lion a,Tiger b);
};
int totalWeight(Lion a,Tiger b){
return a.weight+b.weight;
}
int main()
{
int w1,w2;cin>>w1>>w2;
Lion l(w1);Tiger t(w2);
cout<<totalWeight(l,t);
return 0;
}

Lab7\C.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*
问题 C: 集合(运算符重载)
[命题人 : ]
时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述
集合是由一个或多个确定的元素所构成的整体。集合的运算有并、交、相对补等。

集合A和集合B的交集:由属于A且属于B的相同元素组成的集合。

集合A和集合B的并集:由所有属于集合A或属于集合B的元素所组成的集合。

集合B关于集合A的相对补集,记做A-B:由属于A而不属于B的元素组成的集合。

假设集合A={10,20,30},集合B={1,10,50,8}。则A与B的并是{10,20,30,1,50,8},A与B的交是{10},B关于A的相对补集是{20,30}。

定义整数集合类CSet,属性包括:集合中的元素个数n,整型指针data存储集合中的元素。
主函数输入集合A、B的数据,计算集合的并、交、相对补。
可根据题目,为CSet类添加需要的成员函数。


方法有:重载输出,按样例格式输出集合中的元素。
重载+运算符,求集合A和集合B的并集,并返回结果集合。 重载-运算符,求集合B关于集合A的相对补集,并返回结果集合。 重载*运算符,求集合A和集合B的交集,并返回结果集合。
输入
测试次数
每组测试数据两行,格式如下:
第一行:集合A的元素个数和元素
第二行:集合B的元素个数和元素
输出
每组测试数据输出如下:
第一行:集合A
第二行:集合B
第三行:A和B的并
第四行:A和B的交
第五行:B关于A的相对补集 与 A关于B的相对补集的并,即(A-B)+(B-A)
每组测试数据间以空行分隔。
样例输入 Copy
2
3 10 20 30
4 10 1 2 3
5 100 2 3 4 -10
6 -34 12 2 4 90 100
样例输出 Copy
A:10 20 30
B:10 1 2 3
A+B:10 20 30 1 2 3
A*B:10
(A-B)+(B-A):20 30 1 2 3

A:100 2 3 4 -10
B:-34 12 2 4 90 100
A+B:100 2 3 4 -10 -34 12 90
A*B:100 2 4
(A-B)+(B-A):3 -10 -34 12 90*/
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
class CSet
{
public:
int *data;
int n;
CSet(int n_=0,int *a=0):n(n_){
data = new int[n];
data = a;
}
CSet operator + (CSet );
CSet operator - (CSet );
CSet operator * (CSet );
};
CSet CSet::operator + (CSet c)
{
int a[1000],t=0,j;
for (int i=1;i<=n;i++) a[++t]=*(data+i);
for (int i=1;i<=c.n;i++)
{
j=1;
while (*(c.data+i)!=a[j]&&j<=t) j++;
if (j>t) a[++t]=*(c.data+i);
}
CSet res(t,a);
return res;
}
CSet CSet::operator * (CSet c)
{
int a[1000],t=0,j;
for (int i=1;i<=n;i++)
{
j=1;
while (j<=c.n){
if (*(data+i)==*(c.data+j)) a[++t]=*(data+i);
j++;
}
}
CSet res(t,a);
return res;
}
CSet CSet::operator - (CSet c)
{
int *a,t=0,j;
a = new int[n+c.n];
for (int i=1;i<=n;i++)
{
j=1;
while (*(data+i)!=*(c.data+j)&&j<=c.n) j++;
if (j>c.n) {*(a+(++t))=*(data+i);}
}
CSet res(t,a);
return res;
}
void display(CSet c)
{
for (int j=1;j<=c.n;j++) {
if (j!=1) cout<<" ";
cout<<*(c.data+j);
}
cout<<endl;
}
void getin(int *a,int m)
{
for (int j=1;j<=m;j++){
cin>>*(a+j);
if (j!=1) cout<<" ";
cout<<*(a+j);
}
cout<<endl;
}
int main()
{
int n,a[1000],b[1000],m1,m2;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>m1;
cout<<"A:"; getin(a,m1);
cin>>m2;
cout<<"B:"; getin(b,m2);
CSet c1(m1,a),c2(m2,b),c3,c4,c;
c=c1+c2;
cout<<"A+B:"; display(c);
c=c1*c2;
cout<<"A*B:"; display(c);
c3=c1-c2;c4=c2-c1;
c=c3+c4;
cout<<"(A-B)+(B-A):"; display(c);
cout<<endl;
}
}

Lab7\D.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*问题 D: 矩形类(继承与派生)
[命题人 : liuhouquan]
时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述
要求定义一个基类Point,它有两个私有的float型数据成员X,Y;一个构造函数用于对数据成员初始化;有一个成员函数void Move(float xOff, float yOff)实现分别对X,Y值的改变,其中参数xOff和yOff分别代表偏移量。另外两个成员函数GetX() 、GetY()分别返回X和Y的值。
Rectangle类是基类Point的公有派生类。它增加了两个float型的私有数据成员W,H; 增加了两个成员函数float GetH() 、float GetW()分别返回W和H的值;并定义了自己的构造函数,实现对各个数据成员的初始化。
编写主函数main()根据以下的输入输出提示,完成整个程序。
输入
6个float型的数据,分别代表矩形的横坐标X、纵坐标Y、宽度W,高度H、横向偏移量的值、纵向偏移量的值;每个数据之间用一个空格间隔
输出
输出数据共有4个,每个数据之间用一个空格间隔。分别代表偏移以后的矩形的横坐标X、纵坐标Y、宽度W,高度H的值
样例输入 Copy
5 6 2 3 1 2
样例输出 Copy
6 8 2 3*/
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
class Point
{
private:
float X;
float Y;
public:
Point(float x,float y):X(x),Y(y){}
void Move(float xOff, float yOff)
{
X+=xOff;
Y+=yOff;
}
float GetX(){return X;}
float GetY(){return Y;}
};

class Rectangle:public Point
{
private:
float W;
float H;
public:
Rectangle(float x,float y,float w,float h):Point(x,y),W(w),H(h){}
float GetW(){return W;}
float GetH(){return H;}
};

int main()
{
float a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
Rectangle r(a,b,c,d);
r.Move(e,f);
cout<<r.GetX()<<" "<<r.GetY()<<" "<<r.GetW()<<" "<<r.GetH()<<endl;
}

Lab7\E.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
问题 E: 员工类(继承与派生)
[命题人 : liuhouquan]
时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述
定义一个基类Person,它有3个protected的数据成员:姓名name(char *类型)、性别 sex(char类型)、年龄age(int类型);一个构造函数用于对数据成员初始化;有一个成员函数show()用于输出数据成员的信息。
创建Person类的公有派生类Employee,增加两个数据成员 基本工资 basicSalary(int类型) 请假天数leaveDays(int型);为它定义初始化成员信息的构造函数,和显示数据成员信息的成员函数show()。
输入
共5个数据,分别代表姓名、性别、年龄、基本工资、请假天数。
输出
如示例数据所示,共5行,分别代表姓名、年龄、性别、基本工资、请假天数
样例输入 Copy
zhangsan m 30 4000 2
样例输出 Copy
name:zhangsan
age:30
sex:m
basicSalary:4000
leavedays:2*/
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
class Person
{
protected:
char* name;
char sex;
int age;
public:
Person(char *name_,char sex_,int age_):name(name_),sex(sex_),age(age_){}
void show();
};
void Person::show()
{
cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
cout<<"sex:"<<sex<<endl;
}

class Employee:public Person
{
public:
int basicSalary;
int leaveDays;
Employee(char *name_,char sex_,int age_,int bs,int ld):Person(name_,sex_,age_),basicSalary(bs),leaveDays(ld){}
void show();
};
void Employee::show()
{
Person::show();
cout<<"basicSalary:"<<basicSalary<<endl;
cout<<"leavedays:"<<leaveDays<<endl;
}

int main()
{
char name_[1000],sex_;
int age_,bs_,ld_;
cin>>name_>>sex_>>age_>>bs_>>ld_;
Employee someone(name_,sex_,age_,bs_,ld_);
someone.show();
}

实验8

Lab8\A.cpp

1
2
3
4
5
6
#include <iostream>
using namespace std;
int main()
{
cout<<"30 20 9 2 -1";
}

Lab8\D.cpp

1

期中测试

Midterm\A.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t,m;
cin>>t;
double temp;
for(int i=0;i<t;i++)
{
cin>>temp>>m;
cout<<int(temp*pow(10,m))%10<<endl;
}
return 0;
}
/**************************************************************
Problem: 1141
User: 04223498
Language: C++
Result: 正确
Time:0 ms
Memory:2340 kb
****************************************************************/

Midterm\B-psy.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<iostream>
using namespace std;
int main()
{
int n,d=0,N=0,max=0,j=1,s=0;
int m[1000];
int f[1000];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>m[i];
}
for(int i=1;i<=n;i++)
{
f[i]=0;
}
for(int i=1;i<=n-1;i++)
{
if(m[i]<=m[i+1])
{
f[j]=f[j]+m[i+1]-m[i];
N++;
}
else
{
if(f[j])
{
j++;
}
}
}
if(N>0)
{
for(int i=1;i<=j;i++)
{
if(f[i]>=max)
{
max=f[i];
s++;
}
}

cout<<max;
}
return 0;
}

Midterm\B.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;cin>>n;
int data[100];
for(int i=0;i<n;i++)
cin>>data[i];

int max=0,temp;
for(int xi=0;xi<n;xi++)
{
for(int yi=xi;yi<n;yi++)
{
temp=data[yi]-data[xi];
max=(max>temp)?max:temp;
}
}
cout<<max;
return 0;
}
/**************************************************************
Problem: 1112
User: 04223498
Language: C++
Result: 正确
Time:0 ms
Memory:2088 kb
****************************************************************/

Midterm\C.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <bits/stdc++.h>
using namespace std;
int main()
{
char data[120];
cin>>data;
int len=strlen(data);
if(data[0]=='-')
{
int st=len%3;
cout<<"-";
for(int i=1;i<len;i++)
cout<<data[i]<<(((i+1)%3==st)&&(i!=len-1)?",":"");
}
else
{
int st=(len-1)%3;
for(int i=0;i<len;i++)
cout<<data[i]<<(((i)%3==st)&&(i!=len-1)?",":"");
}
return 0;
}
/**************************************************************
Problem: 1106
User: 04223498
Language: C++
Result: 正确
Time:0 ms
Memory:2088 kb
****************************************************************/

Midterm\D.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m,n_m;cin>>n>>m;n_m=n-m;
long long ln=1,ln_m=1;
for(int i=1;i<=n;i++)
ln*=i;
for(int i=1;i<=n_m;i++)
ln_m*=i;
cout<<ln/ln_m;
return 0;
}
/**************************************************************
Problem: 1138
User: 04223498
Language: C++
Result: 正确
Time:0 ms
Memory:2088 kb
****************************************************************/

编程作业、大作业、课程设计程序代码调试、协助/指导,制作软件/脚本/网页,经验丰富

支持C/C++、JAVA、Python、Matlab、JavaScript、R语言等,欢迎咨询

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道