1、 1、文件1) 新建:新建窗口;2) 打开:打开本地图片;3) 保存:保存图形;4) 退出:关闭窗体 2、编辑1) 撤销2) 重做 3、帮助1) 关于 4、工具栏:如上图所示。 5、状态栏:显示鼠标位置、显示本地时间、作者三、系统的设计与实现(一) 概要设计 3.1.1系统数据流程设计概要设计阶段的基本目标是用比较抽象的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。从数据流图出发设想完成系统功能的若干种合理的物理方案,从中选择一个最佳方案。然后进行软件结构设计,确定软件由哪些模块组成以及这些模块的动态调用关系。本设计包括管理员、学生
2、模块功能的设计。首先管理员登录系统,对系统进行初始化,并可设置系统的开放与关闭。系统初始化后教师可以出题,教师出题完毕管理员审核课题,审核通过后学生才可进行选题,学生选题完后教师可以选择符合题目要求的学生,形成双向选择。如当出题选题完毕,教师和学生建立了双向的关系后,进入到做题阶段。管理员和教师通过文件上传与下载、留言板、新闻发布和邮箱联系等方式对学生完成毕设的情况进行监督。指导教师指导学生完成设计后,进入到评阅阶段。管理员分配评阅教师后。系统数据流图如下:图3-1 系统数据流图 3.1.2数据字典设计1. 管理员信息数据字典表3-1 管理员信息数据字典名字:管理员信息别名:person描述:
3、管理员的相关信息定义:管理员信息=管理员id+管理员name+管理员password位置:存于数据库,在维护系统时应用2. 教师信息数据字典表3-2 教师信息数据字典教师信息teacher教师的相关信息教师信息=教师id+教师姓名存于数据库,在出题和进程控制时应用表3-3 学生信息数据字典学生信息student学生的相关信息学生信息=学生id+学生姓名+学生性别+学生密码存于数据库,在选题和进程控制时应用表3-4课题信息数据字典课题信息title课题的相关信息课题信息=课题id+课题名+出题教师+需求人数+课题要求存于数据库,在出题、选题时应用(2)详细设计3.2.1系统概述详细设计阶段的关键
4、任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的“蓝图”。除了应该保证软件的可靠性之外,使将来编写出的程序可读性好、容易理解、容易测试和维护,是详细设计阶段最重要的目标。 设计的模块有出题、选题子系统、系统维护子系统和评阅答辩管理等。最初时管理员应对系统进行初始化,初始化完后,教师拥有权限进行出题操作,教师出题完毕,管理员应对该课题进行审核,审核通过后学生这时拥有权限进行选课操作,学生选课操作完毕,这时,教师可以从选择他所出课题的学生中选择适合该课题的学生,达到一种双向的自主选择。操作完毕后,可能存在某些学生没有选上题目,这时可以通过管理员的调剂操作来处理,把没选题的学生调剂到
5、缺少人数的课题或者重新出题来满足要求,是每个学生都有题可做。这时,指导教师应指导学生完成毕业设计,完成后应由评阅教师进行评阅。选题阶段首先由学生通过登录自己的界面,可以看到题目的全部信息并且进行选择。在达到限定时间后,由管理员通过人工干预的方式确定最终的选题结果。在确定的时间内和学生完成选题后,由管理员根据题目和学生的具体情况,通过人工干预的方式,进行处理,确定每一个学生的题目,协调学生和题目之间的关系。图4-4选题流程图3.2.2系统流程图图4-7 系统流程图四、系统测试(一) 管理员功能测试该按钮的使用方法,测试的具体步骤,测试用例的选取,测试的结果。(如图4.1-4.4)4.14.24.
6、3图4.4(二) 学生模块功能测试测试模块的使用方法,测试该按钮实现的功能,测试的结果。(如图4.2.1)4.2.1图4.2.24.2.3五、总结 系统完成了可画“三角形、四边形、圆形、直线、弧形”等;可选择画图线条颜色;可画图线条粗细;可按钮清除所画图形;可撤销,重做功能。系统唯一的缺点就是在鼠标指针点击画笔和橡皮擦工具时指针无法变成画笔和橡皮擦的图标。 在这两周的编程过程中,我的的确确学到了不少的东西,无论是从课外书,还是网上资料,或是同学给我的帮助,都大有收获。对于我们大一新生来说,学到的东西本来就不算不多,跟别谈运用了,这样的实习给我们的收获远远是书上所不能给的。只有当真真正正运用的时
7、候,才是查漏补缺的最佳时机,知道自己有哪些不足和知识点的遗漏。并且知识是需要自己去总结的,一本书上的知识是远远不够的,只有从多本书中总结出对自己有用的信息,才能最大的学习到知识。 在这周的实习课中我还总结出了,学习不单单是学习书本上的知识,更重要的是付诸于实践,实践能让我们学到更多更实用的东西,在实践中我能感受到学到的东西不一定会运用,所以,我希望我们能够把实践与学习相结合,让我们能够全面发展。六、附件(代码、部分图表)using System;using System.Collections.Generic;using System.ComponentModel;using System.D
8、ata;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing.Imaging;namespace 课设picturebox public partial class Form1 : Form public Form1() InitializeComponent(); private bool f = false; private Graphics ig; private int x1, y1, x2, y2, x3, y3, x4, y4;
9、 private Pen pen, eraser; private Bitmap bt, sbt; private int type = 0; private Color pencolor = Color.Black; private Color bgcolor = Color.White; private int penwidth =1; private Cursor curearser, curpen; private Stack history, now; private void Form1_Load(object sender, EventArgs e) Graphics g1 =
10、pictureBox1.CreateGraphics(); pen = new Pen(pencolor, penwidth); eraser = new Pen(bgcolor, 30); bt = new Bitmap(pictureBox1.Width, pictureBox1.Height, g1); ig = Graphics.FromImage(bt); pictureBox1.Cursor = curpen;/设置picturebox的光标为铅笔 history = new Stack(); now = new Stack private void 退出ToolStripMenu
11、Item_Click(object sender, EventArgs e) Application.Exit(); /打开图片格式的文件 private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) OpenFileDialog openPic = new OpenFileDialog(); openPic.InitialDirectory = C:userspublicpictures;/打开文件的途径 openPic.Filter = Image Files(*.jpg,*.png,*.gif,*.bmp)|*.jp
12、g;*.png;*.gif;*.bmp|All Files(*.*)|*.*/打开文件的格式 openPic.FilterIndex = 2; openPic.RestoreDirectory = true; if (openPic.ShowDialog() = DialogResult.OK) bt = new Bitmap(openPic.FileName); pictureBox1.Image = bt; /新建画板 private void 新建ToolStripMenuItem_Click(object sender, EventArgs e) pictureBox1.Refresh
13、(); Graphics g = pictureBox1.CreateGraphics(); g.Clear(bgcolor); ig.Clear(bgcolor); toolStripStatusLabel2.Text = “新建画板”; /保存文件 private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) SaveFileDialog svImg = new SaveFileDialog(); svImg.InitialDirectory = svImg.Filter = BMP文件(*.bmp)|*.bmp sv
14、Img.FilterIndex = 2; svImg.RestoreDirectory = true; if (svImg.ShowDialog() = DialogResult.OK) pictureBox1.Image.Save(svImg.FileName); private void pictureBox1_MouseMove(object sender, MouseEventArgs e) int x, y, w, h; if (toolStrip1.Enabled = true) toolStripStatusLabel3.Text = string.Format(x:0,y:1,
15、 e.X, e.Y);/显示鼠标位置 if (f) switch (type) /初始画笔 case 0: x2 = e.X; y2 = e.Y; ig.DrawLine(pen, x1, y1, x2, y2); x1 = x2; y1 = y2; break; /画三角形 case 1:y2=e.Y; x3 = x1 * 2 - x2;y3=y2; ig.DrawImage(sbt, 0, 0); ig.DrawLine(pen, x1, y1, x3, y3); ig.DrawLine(pen, x2, y2, x3, y3); /画矩形 case 2: x = x1 x2 ? x1 :
16、 x2; y = y1 y2 ? y1 : y2; w = Math.Abs(x1 - x2); h = Math.Abs(y1 - y2); ig.DrawRectangle(pen, x, y, w, h); /画圆 case 3: ig.DrawEllipse(pen, x, y, w, h); /画直线 case 4: /画弧线 case 5: x4 = x3;y4=y3*2-y2; ig.DrawBezier(pen, x1, y1, x2, y2, x3, y3, x4, y4); /橡皮 case 6 : eraser.Color = bgcolor; ig.DrawLine(e
17、raser, x1, y1, x2, y2); private void pictureBox1_MouseDown(object sender, MouseEventArgs e) Bitmap mjl = new Bitmap(bt); history.Push(mjl); f = true; x1 = e.X; y1 = e.Y;/给坐标变量赋值 if (type != 0) sbt = new Bitmap(bt); private void pictureBox1_MouseUp(object sender, MouseEventArgs e) f = false; /当stack中
18、包含的元素不为0时撤销和重做图标可用 if (now.Count ! 撤销ToolStripMenuItem.Enabled = true; 撤销toolStripButton.Enabled = true; if (history.Count ! 重做ToolStripMenuItem.Enabled = true; 重做toolStripButton.Enabled = true; private void toolStripButton1_Click(object sender, EventArgs e) /实先画三角形功能,并点击三角形图标后背景颜色为绿色 type = 1; tool
19、StripButton1.BackColor = Color.LawnGreen; toolStripButton2.BackColor = Color.Transparent; toolStripButton3.BackColor = Color.Transparent; toolStripButton4.BackColor = Color.Transparent; toolStripButton5.BackColor = Color.Transparent; toolStripButton11.BackColor = Color.Transparent; toolStripButton9.
20、BackColor = Color.Transparent; toolStripStatusLabel2.Text = 三角形”; private void toolStripButton2_Click(object sender, EventArgs e) /实现画矩形功能,并点击矩形图标后背景颜色为绿色 type = 2; toolStripButton2.BackColor = Color.LawnGreen; toolStripButton1.BackColor = Color.Transparent; toolStripStatusLabel2.Text = “矩形”; privat
21、e void toolStripButton3_Click(object sender, EventArgs e) /实现画圆功能,并点击圆图标后背景颜色为绿色 type = 3; toolStripButton3.BackColor = Color.LawnGreen;圆 private void toolStripButton4_Click(object sender, EventArgs e) /实现画直线功能,并点击直线图标后背景颜色为绿色 type = 4; toolStripButton4.BackColor = Color.LawnGreen;直线 private void toolStripButton5_Click(object sender, EventArgs e) /实现画弧线功能,并点击弧线图标后背景颜色为绿色 toolStripButton5.BackColor = Color.LawnGreen;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1