北理工计算机复试上机 2008

1.存储一组姓名,如Apple,Tom,Green,Jack 要求能排序、按字母顺序插入、并显示。

 1 /**
 2 1.存储一组姓名,如Apple,Tom,Green,Jack
 3 要求能排序、按字母顺序插入、并显示。
 4 */
 5 #include<iostream>
 6 #include<string>
 7 #include<vector>
 8 #include<algorithm>
 9 
10 using namespace std;
11 bool ins(string a,string b){
12     return a<b;
13 }
14 
15 int main(){
16 vector<string> l;
17 cout<<"请输入姓名,00结束"<<endl;
18 string s;
19 vector<string>::iterator i;
20 while(cin>>s){
21     if(s=="00")break;
22     l.push_back(s);
23     sort(l.begin(),l.end(),ins);
24     for(i=l.begin();i!=l.end();i++){
25         cout<<(*i)<<endl;
26     }
27 }
28 
29 return 0;
30 }

2.输入文件名及路径创建该文件,并把从键盘输入的内容保存到该文件,
最后将该文件的路径、该文件名及文件中的内容输出到屏幕

 1 // 2008_2.cpp : Defines the entry point for the console application.
 2 /**
 3 2.输入文件名及路径创建该文件,并把从键盘输入的内容保存到该文件,
 4 最后将该文件的路径、该文件名及文件中的内容输出到屏幕
 5 */
 6 #include<iostream>
 7 #include<string>
 8 #include<fstream>
 9 using namespace std;
10 int main(int argc, char* argv[])
11 {
12     string filename;
13     string filepath;
14     string content;
15     string sourcepath;
16     cout<<"请输入文件完整路径"<<endl;//F:\\zz.txt
17     cin>>sourcepath;
18     cout<<"请输入要保持的内容,00结束"<<endl;
19     int p;
20 
21     for(int pos=0;pos<sourcepath.length();pos++){
22         if(sourcepath[pos]=='\\')p=pos;
23     }
24     
25 
26     filename=sourcepath.substr(p+1);
27     filepath=sourcepath.substr(0,p-1);
28     ofstream out(sourcepath.c_str());
29     while(cin>>content){
30         if(content=="00")break;
31         out<<content<<endl;
32     }
33     cout<<"路径:"<<filepath<<endl;
34     cout<<"名称:"<<filename<<endl;
35     cout<<"内容:";
36     out.close();
37     ifstream in(sourcepath.c_str());
38     while(!in.eof()){
39         in>>content;
40         cout<<content<<" ";
41     }
42     cout<<endl;
43     in.close();
44     return 0;
45 }
3.设计捕获两种不同类型的异常,一个是被0除,另一个是数组越界(不会,抄的)
 1 // 2008_3.cpp : Defines the entry point for the console application.
 2 //
 3 /**
 4 3.设计捕获两种不同类型的异常,一个是被0除,另一个是数组越界
 5 */
 6 #include<iostream>
 7 #include<list>
 8 
 9 using namespace std;
10 
11 class A{};
12 class B{};
13 
14 int main(int argc, char* argv[])
15 {
16     int a,b,length;
17     cout<<"请输入除数和被除数"<<endl;
18     cin>>a>>b;
19     try{
20         if(b==0)throw A();
21         else cout<<"正常"<<a/b<<endl;
22         cout<<"请输入数组长度"<<endl;
23         cin>>length;
24         int i=1;
25         list<int> arr;
26 
27         while(cin>>a){
28             if(a==0)break;
29             arr.push_back(a);
30             i++;
31         }
32         if(i>length)throw B();
33         else {
34             list<int>::iterator x;
35             for(x=arr.begin();x!=arr.end();x++)cout<<(*x)<<endl;
36         }
37     }catch(A){
38         cout<<"/0"<<endl;
39     }catch(B){
40         cout<<"越界"<<endl;
41     }catch(...){
42         cout<<"未知错误"<<endl;
43     }
44     
45 
46     return 0;
47 }

 

转载于:https://www.cnblogs.com/PPWEI/p/8460792.html

基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文主要介绍基于NSGA-III算法求解微电网多目标优化调度的研究,并提供了完整的Matlab代码实现。研究聚焦于微电网系统中多个相互冲突的目标(如运行成本最小化、碳排放最低、可再生能源利用率最大化等)之间的权衡优化问题,采用NSGA-III(非支配排序遗传算法III)这一先进的多目标进化算法进行求解。文中详细阐述了微电网的数学模型构建、多目标优化问题的定义、NSGA-III算法的核心机制及其在该问题上的具体应用流程,并通过仿真案例验证了算法的有效性和优越性。此外,文档还提及该资源属于一个更广泛的MATLAB仿真辅导服务体系,涵盖智能优化、机器学习、电力系统等多个科研领域。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习和掌握NSGA-III等先进多目标优化算法的原理与实现;②研究微电网能量管理、多目标优化调度策略;③获取可用于科研或课程设计的Matlab代码参考,快速搭建仿真模型。; 阅读建议:此资源以算法实现为核心,建议读者在学习时结合代码与理论背景,深入理解目标函数的设计、约束条件的处理以及NSGA-III算法参数的设置。同时,可利用文中提供的网盘链接获取更多相关资源,进行横向对比和扩展研究。
### 关于北京理工大学计算机复试上机考试的内容 #### 考试概述 北京理工大学计算机专业的复试上机考试通常涉及编程能力测试,主要考察考生对算法设计、数据结构应用以及程序实现的能力。试题难度适中,覆盖范围广泛,包括但不限于基础算法、字符串操作、数组处理等内容。 #### 历年典型题目分析 1. **等腰梯形绘制** 给定高度和底边宽度,要求编写程序输出一个由字符组成的等腰梯形形状[^1]。此题旨在检验考生对于循环控制语句的理解程度及其灵活运用水平。 2. **分段函数计算** 定义特定形式的分段函数f(x),通过给定的一系列x值来求解对应的y=f(x)的结果[^2]。这类问题重点在于分支逻辑判断是否清晰合理。 3. **学生成绩管理** 输入若干名学生的个人信息(含三科分数),筛选并打印未达标者名单;另外还需依据总评得分降序排列全体学员资料再予以展示[^3]。这道综合型习题不仅考验基本语法掌握情况还涉及到排序技巧的应用实践。 4. **数字组合探索** 设定约束条件寻找符合条件的所有整数集合{a,b,c}使得表达式成立:abc+bcc=532[^4]。此类枚举类问题是训练穷举法思维的好素材。 5. **字符串整理** 接收一段自由文本作为参数传入后对其进行重新编排——按照字母表顺序调整各组成单元的位置关系最终得到新序列呈现出来[^5]。该任务突出强调了关于字符串的操作技能。 ```cpp // 示例代码片段用于解决上述提到的部分问题之一即查找满足 abc + bcc = 532 的所有可能数值组合 #include <iostream> using namespace std; int main(){ int a,b,c; bool flag=false; //标记是否有解 for(a=0;a<=9 && !flag;a++) { for(b=0;b<=9&&!flag;b++){ for(c=0;c<=9 ;c++){ if( (a*100+b*10+c)+(b*100+c*10+c)==532 ){ cout<<"Solution:"<<endl; cout<<a<<","<<b<<","<<c<<endl; flag=true;//找到第一个就停止继续搜索其他可能性 } } } } return 0; } ``` #### 复试准备建议 为了更好地应对这样的考核环节,可以采取如下策略: - 加强基础知识复习巩固; - 积累常见算法模板记忆背诵; - 提升实际动手编码练习频率强度; - 参加模拟演练熟悉真实考场环境氛围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值