Автор работы: Пользователь скрыл имя, 31 Марта 2014 в 02:51, задача
•Разработать программу по заданной тематике в среде Microsoft Visual;
•Составить описание разработанной программы, использую метрику Холстеда, три критерия, метрику Маккейба, функциональные указатели, модели Джелински – Моранды и Миллса.
1. Формулировка задания 3
2. Описание программы 4
2.1 Постановка задачи 4
2.2 Алгоритм задачи 5
2.3 Исходный текст программы 6
2.4 Виды основных окон программы 13
3. Оценка характеристик программы на основе метрик Холстеда 16
4. Оценка структурной сложности программы на основе трех критериев и метрики Маккейба. 34
5. Оценка характеристик программы на основе функциональных указателей 39
6. Оценка надежности программы 42
6.1 Оценка надежности программы на основе модели Джелински – Моранды 42
6.2 Оценка надежности программы на основе модели Миллса 44
7. Выводы 46
8. Литература 47
Оглавление
№ строки |
Строка программы |
using System; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.Drawing; | |
using System.Linq; | |
using System.Text; | |
using System.Windows.Forms; | |
using System.IO; | |
namespace KDZ | |
{ | |
static class Program | |
{ | |
[STAThread] | |
static void Main() | |
{ | |
Values vs = new Values(); | |
Main mf = new Main(ref vs); | |
TaskForm tf = new TaskForm(ref vs); | |
do | |
{ | |
mf.ShowDialog(); | |
tf.ShowDialog(); | |
} | |
while (vs.StateID != 0); | |
} | |
} | |
public partial class TaskForm : Form | |
{ | |
Values vs; | |
public TaskForm(ref Values vs) | |
{ | |
this.vs = vs; | |
InitializeComponent(); | |
{ | |
private void TaskForm_Load(object sender, EventArgs e) | |
{ | |
TaskControl.TabPages.Remove( | |
TaskControl.TabPages.Remove( | |
Price.Checked = true; | |
switch (vs.OperationID) | |
{ | |
case 1: | |
TaskControl.TabPages.Add( | |
break; | |
case 2: | |
TaskControl.TabPages.Add( | |
break; | |
} | |
} | |
private void TaskForm_FormClosed(object sender, FormClosedEventArgs e) | |
{ | |
switch (MessageBox.Show("Вы хотите продолжить тестирование программы, выбрав другую задачу?", "Важное предупреждение!", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) | |
{ | |
case DialogResult.Yes: | |
vs.StateID = 1; | |
break; | |
case DialogResult.No: | |
vs.StateID = 0; | |
break; | |
} | |
} | |
StreamWriter sw; | |
StreamReader sr; | |
Stream st; | |
struct Car | |
{ | |
public string Name; | |
public int Price; | |
public int Power; | |
public Car(string Name, int Price, int Power) | |
{ | |
this.Name = Name; | |
this.Power = Power; | |
this.Price = Price; | |
} | |
} | |
List<Car> CarList = new List<Car>(); | |
private void CreateButton_Click(object sender, EventArgs e) | |
{ | |
TxtSaveFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; | |
if ((TxtSaveFileDialog. | |
{ | |
sw = new StreamWriter(st); | |
sw.Write(MainBox.Text); | |
sw.Close(); | |
} | |
} | |
private void FindButton_Click(object sender, EventArgs e) | |
{ | |
int CheckValue; | |
string str; | |
string Name = ""; | |
int Power = 0; | |
int Price = 0; | |
if (int.TryParse(ValueBox.Text, out CheckValue)) | |
{ | |
if ((TxtOpenFileDialog. | |
{ | |
sr = new StreamReader(st); | |
int paramID = 0; | |
while ((str = sr.ReadLine()) != null) | |
{ | |
switch (paramID) | |
{ | |
case 0: | |
Name = str; | |
paramID++; | |
break; | |
case 1: | |
Power = int.Parse(str.Replace(" ", "").Substring(9, str.Length - 10)); | |
paramID++; | |
break; | |
case 2: | |
Price = int.Parse(str.Replace(" ", "").Substring(10, str.Length - 11)); | |
CarList.Add(new Car(Name,Price,Power)); | |
paramID = 0; | |
break; | |
} | |
} | |
Search(CheckValue); | |
CarList.Clear(); | |
} | |
} | |
else | |
{ | |
MessageBox.Show("Ошибка в параметре поиска!"); | |
} | |
} | |
private void Search(int CheckValue) | |
{ | |
MainBox.Clear(); | |
for (int i = 0; i < CarList.Count; i++) | |
{ | |
if (Price.Checked == true) | |
{ | |
if (CarList[i].Price <= CheckValue) | |
{ | |
MainBox.AppendText("Марка автомобиля: " + CarList[i].Name + Environment.NewLine + "Мощность: " + CarList[i].Power + Environment.NewLine + "Цена: " + CarList[i].Price + Environment.NewLine); | |
} | |
} | |
else | |
{ | |
if (CarList[i].Power <= CheckValue) | |
{ | |
MainBox.AppendText("Марка автомобиля: " + CarList[i].Name + Environment.NewLine + "Мощность: " + CarList[i].Power + Environment.NewLine + "Цена: " + CarList[i].Price + Environment.NewLine); | |
} | |
} | |
} | |
if (MainBox.Text == "") | |
{ | |
MainBox.AppendText("Ничего не найдено!"); | |
} | |
} | |
List<int> ValueList = new List<int>(); | |
private void ProcessButton_Click(object sender, EventArgs e) | |
{ | |
int MinValue; | |
int MaxValue; | |
OutputBox.Clear(); | |
if ((int.TryParse(MinBox.Text, out MinValue)) && (int.TryParse(MaxBox.Text, out MaxValue))) | |
{ | |
if (MinValue < MaxValue) | |
{ | |
for (int i = MinValue; i <= MaxValue; i++) | |
{ | |
for (int b = 2; b < i; b++) | |
{ | |
if (i % b == 0) | |
{ | |
break; | |
} | |
if ((b == i - 1) || (b > Math.Sqrt(i))) | |
{ | |
ValueList.Add(i); | |
break; | |
} | |
} | |
} | |
for (int i = 1; i < ValueList.Count; i++) | |
{ | |
if (ValueList[i] - ValueList[i - 1] == 2) | |
{ | |
OutputBox.AppendText(" | |
} | |
} | |
if (OutputBox.Text == "") | |
{ | |
OutputBox.AppendText("Ничего не найдено!"); | |
} | |
ValueList.Clear(); | |
} | |
} | |
else | |
{ | |
MessageBox.Show("Ошибка при вводе параметров!"); | |
} | |
} | |
} | |
public class Values | |
{ | |
private int OpID; | |
private int StID; | |
public int OperationID | |
{ | |
get { return OpID; } | |
set | |
{ | |
OpID = value; | |
} | |
} | |
public int StateID | |
{ | |
get { return StID; } | |
set | |
{ | |
StID = value; | |
} | |
} | |
public Values() | |
{ | |
OpID = 1; | |
StID = 0; | |
} | |
} | |
public partial class Main : Form | |
{ | |
Values vs; | |
public Main(ref Values vs) | |
{ | |
InitializeComponent(); | |
this.vs = vs; | |
} | |
private void FirstTaskButton_Click(object sender, EventArgs e) | |
{ | |
vs.OperationID = 1; | |
Hide(); | |
} | |
private void SecondButton_Click(object sender, EventArgs e) | |
{ | |
vs.OperationID = 2; | |
Hide(); | |
} | |
private void Main_FormClosed(object sender, FormClosedEventArgs e) | |
{ | |
System.Environment.Exit(0); | |
} | |
} | |
} |
Таблица 1. Словарь операторов и операций программы
№ п/п |
Операторы, операции |
Количество повторений |
1 |
using |
9 |
2 |
namespace |
1 |
3 |
class |
4 |
4 |
Static |
2 |
5 |
void |
1 |
6 |
Public |
12 |
7 |
…Parse() |
5 |
8 |
...ReadLine() |
1 |
9 |
If…else |
13 |
10 |
; |
102 |
11 |
, |
24 |
12 |
* |
6 |
13 |
= |
52 |
14 |
. |
102 |
15 |
{} |
52 |
16 |
() |
100 |
17 |
“” |
44 |
18 |
: |
16 |
19 |
+ |
26 |
20 |
<= |
3 |
21 |
> |
5 |
22 |
&& |
3 |
23 |
partial |
2 |
24 |
Private |
11 |
25 |
++ |
6 |
26 |
< |
8 |
27 |
do…while |
1 |
28 |
While() |
1 |
29 |
- |
6 |
30 |
== |
8 |
31 |
[] |
13 |
32 |
Environment.NewLine() |
7 |
33 |
new |
8 |
34 |
ref |
4 |
35 |
!= |
4 |
36 |
break |
9 |
37 |
object |
8 |
38 |
TaskControl.TabPages.Remove |
2 |
39 |
...Add() |
4 |
40 |
Price.Checked |
2 |
41 |
true |
2 |
42 |
case |
7 |
43 |
Switch() |
3 |
44 |
MessageBox.Show() |
3 |
45 |
MessageBoxButtons.YesNo |
1 |
46 |
MessageBoxIcon.Question |
1 |
47 |
DialogResult.Yes |
1 |
48 |
DialogResult.No |
1 |
49 |
struct |
1 |
50 |
string |
4 |
51 |
substring |
2 |
52 |
int |
26 |
53 |
this |
5 |
54 |
<> |
2 |
55 |
TxtSaveFileDialog.Filter |
1 |
56 |
…ShowDialog() |
4 |
57 |
DialogResult.OK |
2 |
58 |
...OpenFile() |
2 |
59 |
null |
3 |
60 |
str.Replace() |
2 |
61 |
str.Length |
2 |
62 |
sw.Write() |
1 |
63 |
sw.Close() |
1 |
64 |
int.TryParse |
3 |
65 |
...Text |
6 |
66 |
out |
3 |
67 |
% |
1 |
68 |
|| |
1 |
69 |
Math.Sqrt |
1 |
70 |
Search |
2 |
71 |
…Clear() |
4 |
72 |
for |
4 |
73 |
…Count |
2 |
74 |
…AppendText() |
5 |
75 |
get |
2 |
76 |
set |
2 |
77 |
return |
2 |
78 |
value |
2 |
79 |
Hide() |
2 |
80 |
…Exit() |
1 |
Всего |
807 |
Информация о работе Разработка и описание программы на заданную тематику