1.問題:給出一串字符串,如"avASkdggddiphhppSSDFFJOK",就你設設一程序求出現次數最多的那個字母出現的次數。
//////////////////////////////////////////////////////////////
網絡上找到的一些想法:
答案:同樣選用cin.getline( )函數實現字符串讀入。統計過程的實現同樣依靠循環依次判斷歸類並計數。根據題目要求,統計值應該有26個,爲簡化處理,使用整型數組實現。
實現一:歸類用switch語句實現。
#include<iostream.h>
void main()
{
char s[81];//定義存放字符串的數組
int c[26]={0};//定義存放個數的數組,各記數值賦初值爲0
cin.getline(s,81);//讀入一行帶空白符的字符串
for(int i=0;s;i++)//從字符串頭到尾循環判斷
{
switch(s){//如果是某字母,相應計數值加一
case 'A': case 'a': c[0]++; break;
case 'B': case 'b': c[1]++; break;
case 'C': case 'c': c[2]++; break;
case 'D': case 'd': c[3]++; break;
case 'E': case 'e': c[4]++; break;
case 'F': case 'f': c[5]++; break;
case 'G': case 'g': c[6]++; break;
case 'H': case 'h': c[7]++; break;
case 'I': case 'i': c[8]++; break;
case 'J': case 'j': c[9]++; break;
case 'K': case 'k': c[10]++; break;
case 'L': case 'l': c[11]++; break;
case 'M': case 'm': c[12]++; break;
case 'N': case 'n': c[13]++; break;
case 'O': case 'o': c[14]++; break;
case 'P': case 'p': c[15]++; break;
case 'Q': case 'q': c[16]++; break;
case 'R': case 'r': c[17]++; break;
case 'S': case 's': c[18]++; break;
case 'T': case 't': c[19]++; break;
case 'U': case 'u': c[20]++; break;
case 'V': case 'v': c[21]++; break;
case 'W': case 'w': c[22]++; break;
case 'X': case 'x': c[23]++; break;
case 'Y': case 'y': c[24]++; break;
case 'Z': case 'z': c[25]++; break;
}
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"個數:"<<c<<endl;//輸出26個字母的個數
}
實現二:利用ASCII碼錶中字母字符排序與字母順序相同的特點簡化了歸類判斷。
#include<iostream.h>
void main()
{
char s[81];//定義存放字符串的數組
int c[26]={0};//定義存放個數的數組,各記數值賦初值爲0
int zm;
cin.getline(s,81);//讀入一行帶空白符的字符串
for(int i=0;s;i++)//從字符串頭到尾循環判斷
{
if(s>='a'&&s<='z'){ zm=s-'a'; c[zm]++; }//如果是小寫字母,相應字母個數加一
if(s>='A'&&s<='Z'){ zm=s-'A'; c[zm]++; } //如果是大寫字母,相應字母個數加一
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"個數:"<<c<<endl;//輸出26個字母的個數
}
2.問題:設計一個目錄(象Windows的敢)用數據庫保存這樣的結構
網絡上找到的一些想法:
////////////////////////////////////////////////
多級目錄數據庫設計方案
在實際工作中,經常碰到需要多級目錄的情況,例如設計一個論壇,它的版面是分級的,而且爲了靈活擴展,這種分級是沒有限制的,也就是說設計者,不限制用戶設定多少級目錄。
針對這種情況,我提出的設計方案如下,先設計如下的 Table (以 SQL Server 爲例)
CREATE TABLE [ 版面表 ] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[ 版面名稱 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 版面級別 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 上級版面 id] [int] NOT NULL
) ON [PRIMARY]
其中頂級版面的上級版面 id 就是它自己的版面 id
輸入如下數據:
id
版面名稱
版面級別
上級版面 id
1
英語學習
1
1
2
四六級學習
2
1
3
GRE
2
1
4
GRE 作文
3
3
5
GRE 詞彙
3
3
6
GRE 閱讀
3
3
7
GRE 填空
3
3
8
GRE 作文互評
4
4
9
GRE 作文提綱
4
4
10
TOEFL
2
1
11
TOEFL 作文
3
10
12
TOEFL 聽力
3
10
13
TOEFL 閱讀
3
10
14
TOEFL 語法
3
10
15
體育
1
15
16
足球
2
15
17
中國足球
3
16
18
世界足球
3
16
19
籃球
2
15
20
CBA
3
19
21
NBA
3
19
/////////////////////////////////////////////////////////////////////
設計的確有好多的變化,比較別人的思想,可以比自己想到更大空間,同時又可能限制左自己的想法~~~~