某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字; 前 缀:非 '0'或'1'的三位数字;后 缀:4 位数字。假定被测程序能接受一切符合上述规定 的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并 设计测试方案以及c语言代码
时间: 2024-02-01 09:15:13 浏览: 168
等价类划分:
1. 地区码为空白或三位数字
2. 前缀是非'0'或'1'的三位数字
3. 后缀是四位数字
测试方案:
1. 输入符合规定的电话号码,如"010-1234"
2. 输入地区码为三位数字,如"021-1234"
3. 输入前缀为非'0'或'1'的三位数字,如"075-2345"
4. 输入后缀为四位数字,如"010-5678"
5. 输入地区码为空白,如" -1234"
6. 输入前缀为'0'或'1',如"010-0123"
7. 输入后缀不为四位数字,如"010-567"
C语言代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 判断是否符合规定
int isValid(char *str) {
int len = strlen(str);
if (len != 8) return 0; // 长度不为8位
if (!isdigit(str[0]) || !isdigit(str[1]) || !isdigit(str[2])) return 0; // 地区码不是数字
if (str[3] != '-') return 0; // 前缀和后缀之间不是'-'
if (str[4] == '0' || str[4] == '1') return 0; // 前缀以'0'或'1'开头
if (!isdigit(str[4]) || !isdigit(str[5]) || !isdigit(str[6])) return 0; // 前缀不是数字
if (!isdigit(str[7])) return 0; // 后缀不是数字
return 1;
}
int main() {
char str[100];
printf("请输入电话号码:");
gets(str);
if (isValid(str)) printf("符合规定\n");
else printf("不符合规定\n");
return 0;
}
```
阅读全文