السلام عليكــم ورحمـة الله وبركاتــه
تحية طيبة اخواني الأعضاء
:blush:
شاكر لكم في ماقدمتموه لي من مساعدات طوال مواضيعي السابقة في المنتدى بخصوص مشروعي
:salam:
الان خلاص مابقى على تسبيم المشروع والمناقشة سوى شهر واحد فقط
:cry:
يادوب يكفي في كتابة الرسالة
المهم انا باحط شرح لمشروعي واتمنى تساعدوني بالاقتراحات والافكار حتى يطلع مشروعي بشكل جيد وممتاز بخصوص البرمجة :blush:
بســم الله الـرحمــن الرحيــم
المشروع
StaticTester
تخصص هندسة برمجيات
التعريف
الاختبارات الاستاتيكية Static Testing :
في هذه التقنية يتم اختبار النظام البرمجي قبل مرحلة الترجمة ( Compilation ) وذلك لاكتشاف الأخطاء الاستاتيكية حيث يتم بناء برنامج يسمى Static Tester يقوم باكتشاف الأخطاء الاستاتيكية .
هذا التقرير الأول كامل في ملف Word في شرح كامل للمشروع
الان نجي نشرح الكود خطوة خطوة < المشروع كامل بس باقي بعض التحسينات اللغوية + اضافة بعض العناصر في قواعد البيانات >
شرح الدوال فقط المشروع كامل في المرفقات
{
CheckChanged(s, e);
string lexbufi = t1.Text;
p.Inputbuff = lexbufi.ToCharArray();
while (p.ibPtr < p.Inputbuff.Length)
{
t = p.LexAn();
p.ibPtr++;
}
CopyDB();
view();
}
public void Test(object s, EventArgs e)
تقرأ الموجود في ال Rich Text Box وتحول الى مجموعة من الحروف lexical وتستدعي الدالة lexAn
{
string dirApp = "C:\\StaticTester\\StaticTester\\bin\\Debug";
string orginalDBPath = Path.Combine(dirApp, OrginalDBName);
string copyDBPath = Path.Combine(dirApp, CopyDBName);
File.Copy(orginalDBPath, copyDBPath, true);
}
public static void CopyDB()
نسخ قاعدة البيانات ولكن اعتقد الفكرة تحتاج الى اجتهاد اكثر لأني احتجت بهذه الدالة حذف البيانات في قاعدة البيانات كل مايعمل البرنامج ولكن اعتقد وجود امر يسهل هذه العملية
هل يوجد امر كذلك لتصفير البيانات ؟
{
stgraph(p.symbolTable[p.stsize]);
stgraphC();
}
public void view()

هذه الدالة تستدعي دالتين كماهي موجودة في الصورة
الاولى State Transition Graph
الثانية State Transition Graph Comparator
شرح State transtion graph
الكود
{
//
olecon.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test1.mdb";
olecon.Open();
adapt = new OleDbDataAdapter("Select * FROM STG", olecon);
commbld = new OleDbCommandBuilder(adapt);
adapt.Fill(dtTable);
//
for (int i = 0; i < p.stsize; i++)
{
if (p.symbolTable.type == p.types[0])
{
if (p.symbolTable.lexeme == "filename")
{
DataRow dr = dtTable.NewRow();
dr["ID"] = dtTable.Rows.Count;
dr[1] = "";
dtTable.Rows.Add(dr);
rowpos = dtTable.Rows.Count - 1;
if (dtTable.Rows.Count != 0)
{
dtTable.Rows[rowpos]["ID"] = rowpos + 1;
dtTable.Rows[rowpos][1] = p.symbolTable.lexeme;
adapt.Update(dtTable);
}
}
}
if (p.symbolTable.type == p.types[0])
{
if (p.symbolTable.lexeme == "Open")
{
dtTable.Rows[rowpos]["Enter1"] = rowpos + 1;
dtTable.Rows[rowpos][2] = p.symbolTable.lexeme;
adapt.Update(dtTable);
}
else if (p.symbolTable.lexeme == "Read")
{
dtTable.Rows[rowpos]["Enter2"] = rowpos + 1;
dtTable.Rows[rowpos][3] = p.symbolTable.lexeme;
adapt.Update(dtTable);
}
else if (p.symbolTable.lexeme == "Write")
{
dtTable.Rows[rowpos]["Enter2"] = rowpos + 1;
dtTable.Rows[rowpos][3] = p.symbolTable.lexeme;
adapt.Update(dtTable);
}
else if (p.symbolTable.lexeme == "Close")
{
dtTable.Rows[rowpos]["Enter3"] = rowpos + 1;
dtTable.Rows[rowpos][4] = p.symbolTable.lexeme;
adapt.Update(dtTable);
}
}
}
olecon.Close();
}
public void stgraph(SymbT st)
داخل للدالة Symbol Table الجدول الذي نتج من class lexical analyser
تبحث فيه عن الكود التالي
FileStream Ma =new FileStream (filename,FileMode.Open, FileAccess.Read);
حيث هنا قد يحدث خطأمن الممكن فتح ملف ولكن دون ذكر كلمة Read or Write
من الممكن اضافة اخطاء اخرى
التكملة في الرد التالي