2013-7-18学习作业[有常考面试题]
来源:互联网 发布:python框架有哪些 编辑:程序博客网 时间:2024/06/05 00:18
作业1.C++文件流的应用
如果令A,B,C,D,……,X,Y,Z这26个英文字母,分别等于百分之1,2,……,24,25,26个数值,那么我们就能得出如下有趣的结论:
HARD WORD 8+1+18+4+23+15+18+11=98%
KNOWLEDGE 96%
LOVE 54% LUCK 47%
计算一下MONEY STUDY ATTITUDE
//
// main.cpp
// 2013-7-18作业1
//
// Created by 丁小未 on 13-7-18.
// Copyright (c) 2013年 dingxiaowei. All rights reserved.
//
//如果令A,B,C,D,……,X,Y,Z这26个英文字母,分别等于百分之1,2,……,24,25,26个数值,那么我们就能得出如下有趣的结论:
//HARD WORD 8+1+18+4+23+15+18+11=98%
//KNOWLEDGE 96%
//LOVE 54% LUCK 47%
//计算一下MONEY STUDY ATTITUDE
#include <iostream>
#include <fstream>
using namespace std;
//输入一个字母,然后返回他对应的值
void getValue(char num[26],int n[26])
{
int j;
char c[2];
ifstream infile1,infile2;//定义文件输出类
infile1.open("file1.txt");
infile2.open("file2.txt");
for (int i=0; i<26; i++) {
infile1>>num[i];
infile2>>n[i];
}
infile1.close();
infile2.close();
}
int serch(char c)
{
int j; //记录下标
char num[26];
int n[26];
getValue(num, n);
int i;
for (i=0; i<26; i++) {
if (c == num[i]) {
j=i;
break;
}
}
if(26 == i)
{
return 0;
}
return n[j];
// infile1.close();
// infile2.close();
}
int overridestrlen(const char *p)
{
int i=0;
do {
p++;
i++;
} while (*p!='\0');
return i;
}
int main(int argc, const char * argv[])
{
char num[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int val[26];
for (int i=0; i<26; i++) {
val[i] = i+1;
}
//将数据存储到文件中
ofstream onfile1,onfile2;//定义输出文件类(将数据写入到文件中)
onfile1.open("file1.txt");//打开一个输入文件file1用来保存26个大写的英文字母
onfile2.open("file2.txt");//打开一个输入文件file2用来保存1-26个数字
for (int i=0; i<26; i++) {
onfile1<<num[i]<<' ';
onfile2<<val[i]<<' ';
}
onfile1.close();
onfile2.close();
char f1[10];
char f='Y';
do {
int sum=0;
char s[50];
string ss;
cout<<"请输入要计算的字符串"<<endl;
//cin>>s;
cin.getline(s, 80);
char *p=s;
int j = overridestrlen(p);
for (int i=0; i<j; i++){
sum+=serch(s[i]);
}
cout<<s<<":"<<sum<<"%"<<endl;
cout<<"您还要继续计算吗?(Y/N)";
//cin>>f>>f;
cin.getline(f1,10);
}while('Y' == f1[0]);
cout<<"欢迎使用!谢谢!"<<endl;
return 0;
}
结果:
请输入要计算的字符串
LOVE
LOVE:54%
作业2.对string类进行重写(重要,面试常考)
#include <iostream>
using namespace std;
class String1
{
char *m_data;
public:
String1(const char *str = NULL) //普通构造函数
{
if (str==NULL) {
m_data = new char[1];
m_data[0] = '\0';
}
else
{
if (m_data) {
delete []m_data;
}
else
{
m_data = new char[strlen(str)];
strcpy(m_data, str);
}
}
}
String1(const String1&other) //拷贝构造函数
{
if (this == &other) {
cout<<"不能复制本身!"<<endl;
}
else if (this->m_data == other.m_data)
{
cout<<"不能复制相同的值"<<endl;
}
else
{
if (this->m_data) {
delete []m_data;
}
else
{
this->m_data = new char[strlen(other.m_data)+1];
strcpy(this->m_data, other.m_data);
}
}
}
~String1()//析构函数
{
if (this->m_data) {
delete []m_data;
}
}
String1 &operator = (const String1&other) //赋值函数(通过重载=运算符)
{
if (this == &other)
{
return *this;
}
else
{
if (m_data) {
delete []m_data;
}
this->m_data = new char(strlen(other.m_data)+1);
strcpy(this->m_data, other.m_data);
//this->m_data = other.m_data;
}
}
//显示函数
char *show()
{
return this->m_data;
}
};
int main(int argc, const char * argv[])
{
String1 s1("dingxiaowei");
String1 s2;
s2 = s1;
char *p = s2.show();
cout<<p<<'\n'<<endl;
return 0;
}
- 2013-7-18学习作业[有常考面试题]
- 2013-7-11学习作业[有面试题]
- 2013-7-15学习作业
- 2013-7-17学习作业练习
- 机器学习作业7
- 机器学习技法作业7
- 2013-7-22学习C面试题
- 【上机作业】 第一次上机试题
- 【上机作业】第二次上机试题
- 【机器学习】作业7: 随机森林
- 作业:C++作业7
- 2013/06/03 javaweb学习 c#大作业 数据结构学习
- 笔试面试题15--作业调度算法
- 学习笔记心得&作业
- Oracle学习笔记+作业
- coursera 机器学习作业
- 学习班长编写作业
- Python学习day3作业
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- Uninstall iLivid Download Manager with WindowsUninstaller.Org Removal Tips
- iOS应用崩溃日志分析
- 去掉图片转换后的黑色背景
- hdu 1042 N! 高精度运算
- 2013-7-18学习作业[有常考面试题]
- getopt简介
- CSDN的网站注册和用户管理最TMD垃圾
- bmp位图数据宽度为什么是4的倍数字节(转)
- 34个高质量的扁平化设计资源
- java高新技术
- 自定义UITableView的Section的title的样式
- 快速排序-以高位为标志
- linux 内核编程视频