1、 目录 一、系统开发背景 1 二、系统分析和设计 1 (一)系统功效要求 1 (二)系统模块结构设计 1 三、系统设计和实现 2 (一)学生基础信息浏览:basic_b() 2 (二)……………… 2 四、系统测试 2 (一)测试main_form()函数 2 (二)…………. 3 五、总结 3 六、附件(代码、部分图表) 3 必需自动生成目录。 宋体,二号,加粗。 毕业设计管理 一、系统开发背景 伴随计算机及计算机网络普及和全国各院校校园网络日益完善、健全,多种工作计算机网络化将逐步替换繁重传统办公模式。毕业
2、设计作为大学生四年学习关键步骤,也有必需实施计算机网络化管理,从而减轻设计指导老师承重负担,简化立题、选题、评分等过程,让繁冗课题设计信息采取计算机数据库统筹管理。所以,设计一个毕业设计综合管理系统是我校教学管剪发展一项任务,也是各院校教学发展趋势。该系统为学生、老师、管理员提供一个交互接口,大大方便了学生、老师及管理员管理人员。 毕业设计是学生在校期间最终一个教学步骤,是学习深化和提升一个关键过程,也是综合检验所学理论知识一个关键步骤。本设计从课题申报、课题审核、学生选题、调剂、指导、评阅、答辩、归档等步骤进行管理,实现了毕业设计整个步骤管理工作。系统实现了学生自主选题和老师自主选择学生网
3、上双向选择,并增加了留言板、文件上传和下载、新闻公布等功效,能够确保毕业设计期间管理员、老师、学生之间信息联通,对确保毕业设计质量有很关键现实意义。伴随网络化普及,全国高校校园网络日益健全,实现无纸化办公成为未来趋势,而且伴随天津城市建设学院教学体制改革不停加深,本系统建立为参与毕业设计老师、学生提供接口。 二、系统分析和设计 (一) 系统功效要求宋体,小三,加粗。 依据功效分为老师、学生前台操作和管理员综合管理。 系统有三个关键角色组成:学生、老师、管理人员。 1. 老师完成操作: 个人信息管理;课题申报、修改、选择学生,设计期间和学生交流和教导、实习/指导、评阅和答
4、辩成绩评定。 2. 学生完成操作: 个人信息管理,选择课题,查询成绩。 3. 管理人员: 对老师、学生信息查询,添加和删除;系统开放管理;选课期间调。 E-R图: (二) 系统模块结构设计 经过对系统功效分析,毕业设计管理系统功效图2.2所表示。 图宋体,小四。图名在图下方,表名在表上方。图、表不跨页。 2.2毕业设计管理系统功效图 经过上图功效分析,把整个系统划分为5个模块: 1、文件 1) 新建:新建窗口; 2) 打开:打开当地图片; 3) 保留:保留图形; 4) 退出:关闭窗体 2、编辑 1) 撤销 2) 重做 3
5、帮助 1) 相关 4、工具栏:如上图所表示。 5、状态栏:显示鼠标位置、显示当地时间、作者 三、系统设计和实现 (一) 概要设计 3.1.1系统数据步骤设计 概要设计阶段基础目标是用比较抽象方法确定系统怎样完成预定任务,也就是说,应该确定系统物理配置方案,而且进而确定组成系统每个程序结构。从数据流图出发设想完成系统功效若干种合理物理方案,从中选择一个最好方案。然后进行软件结构设计,确定软件由哪些模块组成和这些模块动态调用关系。 本设计包含管理员、学生模块功效设计。 首先管理员登录系统,对系统进行初始化,并可设置系统开放和关闭。系统初始化后老师能够出题
6、老师出题完成管理员审核课题,审核经过后学生才可进行选题,学生选题完后老师能够选择符合题目要求学生,形成双向选择。如当出题选题完成,老师和学生建立了双向关系后,进入到做题阶段。管理员和老师经过文件上传和下载、留言板、新闻公布和邮箱联络等方法对学生完成毕设情况进行监督。 指导老师指导学生完成设计后,进入到评阅阶段。管理员分配评阅老师后。 系统数据流图以下: 图3-1 系统数据流图 3.1.2数据字典设计 1. 管理员信息数据字典 表3-1 管理员信息数据字典 名字:管理员信息 别名:person 描述:管理员相关信息 定义:管理员信息=管理员id+管理员name+管
7、理员password 位置:存于数据库,在维护系统时应用 2. 老师信息数据字典 表3-2 老师信息数据字典 名字:老师信息 别名:teacher 描述:老师相关信息 定义:老师信息=老师id+老师姓名 位置:存于数据库,在出题和进程控制时应用 表3-3 学生信息数据字典 名字:学生信息 别名:student 描述:学生相关信息 定义:学生信息=学生id+学生姓名+学生性别+学生密码 位置:存于数据库,在选题和进程控制时应用 表3-4课题信息数据字典 名字:课题信息 别名:title 描述:课题相关信息 定义:课题信息=课题id+课题名+出题老师+
8、需求人数+课题要求 位置:存于数据库,在出题、选题时应用 (二) 具体设计 3.2.1系统概述 具体设计阶段关键任务是确定怎样具体地实现用户需要软件系统,也就是要设计出程序“蓝图”。除了应该确保软件可靠性之外,使未来编写出程序可读性好、轻易了解、轻易测试和维护,是具体设计阶段最关键目标。 设计模块有出题、选题子系统、系统维护子系统和评阅答辩管理等。最初时管理员应对系统进行初始化,初始化完后,老师拥有权限进行出题操作,老师出题完成,管理员应对该课题进行审核,审核经过后学生这时拥有权限进行选课操作,学生选课操作完成,这时,老师能够从选择她所出课题学生中选择适合该课题学生,达成
9、一个双向自主选择。操作完成后,可能存在一些学生没有选上题目,这时能够经过管理员调剂操作来处理,把没选题学生调剂到缺乏人数课题或重新出题来满足要求,是每个学生全部有题可做。这时,指导老师应指导学生完成毕业设计,完成后应由评阅老师进行评阅。 选题阶段首先由学生经过登录自己界面,能够看到题目标全部信息而且进行选择。在达成限定时间后,由管理员经过人工干预方法确定最终选题结果。在确定时间内和学生完成选题后,由管理员依据题目和学生具体情况,经过人工干预方法,进行处理,确定每一个学生题目,协调学生和题目之间关系。 开始 是否登录成功? 选题 选题成功? 结束 Y Y N N
10、 图4-4选题步骤图 3.2.2系统步骤图 图4-7 系统步骤图 查看课题信息 审核课题 提交课题 课题经过 确定课题 选择学生 N Y N Y 开始 登录成功? 结束 成功? Y N N Y 四、系统测试 (一) 管理员功效 测试该按钮使用方法,测试具体步骤,测试用例选择,测试结果。(图4.1-4.4) 4.1 \ 4.2 4.3 图4.4 (二) 学生模块功效测试 测试模块使用方法,测试该按钮实现功效,测
11、试结果。(图4.2.1) 4.2.1 4.2.1 图4.2..2 4.2.3 五、总结 系统完成了可画“三角形、四边形、圆形、直线、弧形”等;可选择画图线条颜色;可画图线条粗细;可按钮清除所画图形;可撤销,重做功效。 系统唯一缺点就是在鼠标指针点击画笔和橡皮擦工具时指针无法变成画笔和橡皮擦图标。 在这两周编程过程中,我确实确学到了不少东西,不管是从课外书,还是网上资料,或是同学给我帮助,全部大有收获。对于我们大一新生来说,学到东西原来就不算不多,跟别谈利用了,这么实习给我们收获远远是书上所不能给。只有当真真正正利用
12、时候,才是查漏补缺最好时机,知道自己有哪些不足和知识点遗漏。而且知识是需要自己去总结,一本书上知识是远远不够,只有从多本书中总结出对自己有用信息,才能最大学习到知识。 在这周实习课中我还总结出了,学习不单单是学习书本上知识,更关键是付诸于实践,实践能让我们学到更多更实用东西,在实践中我能感受到学到东西不一定会利用,所以,我期望我们能够把实践和学习相结合,让我们能够全方面发展。 六、附件(代码、部分图表) using System; using System.Collections.Generic; using System.ComponentModel; using Sy
13、stem.Data; 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(); }
14、private bool f = false; private Graphics ig; private int x1, y1, x2, y2, x3, y3, x4, y4; private Pen pen, eraser; private Bitmap bt, sbt; private int type = 0; private Color pencolor = Color.Black; private Color bgcolor = Color.White;
15、 private int penwidth =1;
private Cursor curearser, curpen;
private Stack
16、 eraser = new Pen(bgcolor, 30);
bt = new Bitmap(pictureBox1.Width, pictureBox1.Height, g1);
ig = Graphics.FromImage(bt);
pictureBox1.Cursor = curpen;//设置picturebox光标为铅笔
history = new Stack
17、); } private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } //打开图片格式文件 private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openPic = new Open
18、FileDialog(); openPic.InitialDirectory = "C:\\users\\public\\pictures";//打开文件路径 openPic.Filter = "Image Files(*.jpg,*.png,*.gif,*.bmp)|*.jpg;*.png;*.gif;*.bmp|All Files(*.*)|*.*";//打开文件格式 openPic.FilterIndex = 2; openPic.RestoreDirectory = true;
19、 if (openPic.ShowDialog() == DialogResult.OK) { bt = new Bitmap(openPic.FileName); pictureBox1.Image = bt; ig = Graphics.FromImage(bt); } } //新建画板 private void 新建ToolStripMenuItem_Click(
20、object sender, EventArgs e) { pictureBox1.Refresh(); Graphics g = pictureBox1.CreateGraphics(); g.Clear(bgcolor); ig.Clear(bgcolor); toolStripStatusLabel2.Text = “新建画板”; } //保留文件 private void 保留Too
21、lStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog svImg = new SaveFileDialog(); svImg.InitialDirectory = "C:\\users\\public\\pictures"; svImg.Filter = "BMP文件(*.bmp)|*.bmp"; svImg.FilterIndex = 2; svImg.RestoreD
22、irectory = true; if (svImg.ShowDialog() == DialogResult.OK) { pictureBox1.Image.Save(svImg.FileName); } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { int x, y, w, h;
23、 if (toolStrip1.Enabled == true) { toolStripStatusLabel3.Text = string.Format("x:{0},y:{1}", e.X, e.Y);//显示鼠标位置 } if (f) { switch (type) { //初始画笔 cas
24、e 0: x2 = e.X; y2 = e.Y; ig.DrawLine(pen, x1, y1, x2, y2); x1 = x2; y1 = y2; pictureBox1.Image = bt; break; //画三角形 case 1:
25、 x2 = e.X;y2=e.Y; x3 = x1 * 2 - x2;y3=y2; ig.Clear(bgcolor); ig.DrawImage(sbt, 0, 0); ig.DrawLine(pen, x1, y1, x2, y2); ig.DrawLine(pen, x1, y1, x3, y3);
26、 ig.DrawLine(pen, x2, y2, x3, y3); pictureBox1.Image = bt; break; //画矩形 case 2: x2 = e.X; y2 = e.Y; ig.Clear(bgcolor);
27、 ig.DrawImage(sbt, 0, 0); x = x1 < x2 ? x1 : x2; y = y1 < y2 ? y1 : y2; w = Math.Abs(x1 - x2); h = Math.Abs(y1 - y2); ig.DrawRectangle(pen, x, y, w, h); pictureBox1.Image = bt;
28、 break; //画圆 case 3: x2 = e.X; y2 = e.Y; ig.Clear(bgcolor); ig.DrawImage(sbt, 0, 0); x = x1 < x2 ? x1 : x2; y = y1 < y2 ? y1 : y2;
29、 w = Math.Abs(x1 - x2); h = Math.Abs(y1 - y2); ig.DrawEllipse(pen, x, y, w, h); pictureBox1.Image = bt; break; //画直线 case 4: x2 = e.X; y2 =
30、e.Y; ig.Clear(bgcolor); ig.DrawImage(sbt, 0, 0); ig.DrawLine(pen, x1, y1, x2, y2); pictureBox1.Image = bt; break; //画弧线 case 5:
31、 x2 = e.X; y2 = e.Y; x3 = x1 * 2 - x2;y3=y2; x4 = x3;y4=y3*2-y2; ig.Clear(bgcolor); ig.DrawImage(sbt, 0, 0); ig.DrawBezier(pen, x1, y1, x2, y2, x3, y3,
32、x4, y4); pictureBox1.Image = bt; break; //橡皮 case 6 : x2 = e.X; y2 = e.Y; eraser.Color = bgcolor; ig.DrawLine(eraser, x1, y1, x2,
33、 y2); x1 = x2; y1 = y2; pictureBox1.Image = bt; break; } } } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { Bitmap mjl
34、 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 = fals
35、e; //当stack中包含元素不为0时撤销和重做图标可用 if (now.Count != 0) { 撤销ToolStripMenuItem.Enabled = true; 撤销toolStripButton.Enabled = true; } if (history.Count != 0) { 重做ToolStripMenuItem.E
36、nabled = true; 重做toolStripButton.Enabled = true; } } private void toolStripButton1_Click(object sender, EventArgs e) { //实先画三角形功效,并点击三角形图标后背景颜色为绿色 type = 1; pictureBox1.Cursor = curpen; too
37、lStripButton1.BackColor = Color.LawnGreen; toolStripButton2.BackColor = Color.Transparent; toolStripButton3.BackColor = Color.Transparent; toolStripButton4.BackColor = Color.Transparent; toolStripButton5.BackColor = Color.Transparent;
38、toolStripButton11.BackColor = Color.Transparent; toolStripButton9.BackColor = Color.Transparent; toolStripStatusLabel2.Text = "三角形”; } private void toolStripButton2_Click(object sender, EventArgs e) { //实现画矩形功效,并点击矩形图标后背景颜色为绿色
39、 type = 2; pictureBox1.Cursor = curpen; toolStripButton2.BackColor = Color.LawnGreen; toolStripButton1.BackColor = Color.Transparent; toolStripButton3.BackColor = Color.Transparent; toolStripButton4.BackColor = Color.Transparent;
40、 toolStripButton5.BackColor = Color.Transparent; toolStripButton11.BackColor = Color.Transparent; toolStripButton9.BackColor = Color.Transparent; toolStripStatusLabel2.Text = “矩形”; } private void toolStripButton3_Click(object sen
41、der, EventArgs e) { //实现画圆功效,并点击圆图标后背景颜色为绿色 type = 3; pictureBox1.Cursor = curpen; toolStripButton3.BackColor = Color.LawnGreen; toolStripButton2.BackColor = Color.Transparent; toolStripButton1.BackColor = Color.
42、Transparent; toolStripButton4.BackColor = Color.Transparent; toolStripButton5.BackColor = Color.Transparent; toolStripButton11.BackColor = Color.Transparent; toolStripButton9.BackColor = Color.Transparent; toolStripStatusLabel2.Text =
43、"圆"; } private void toolStripButton4_Click(object sender, EventArgs e) { //实现画直线功效,并点击直线图标后背景颜色为绿色 type = 4; pictureBox1.Cursor = curpen; toolStripButton4.BackColor = Color.LawnGreen; toolStripButton2.BackC
44、olor = Color.Transparent; toolStripButton3.BackColor = Color.Transparent; toolStripButton1.BackColor = Color.Transparent; toolStripButton5.BackColor = Color.Transparent; toolStripButton11.BackColor = Color.Transparent; toolStripButton9
45、BackColor = Color.Transparent; toolStripStatusLabel2.Text = "直线"; } private void toolStripButton5_Click(object sender, EventArgs e) { //实现画弧线功效,并点击弧线图标后背景颜色为绿色 toolStripButton5.BackColor = Color.LawnGreen; toolStripButto
46、n2.BackColor = Color.Transparent; toolStripButton3.BackColor = Color.Transparent; toolStripButton4.BackColor = Color.Transparent; toolStripButton1.BackColor = Color.Transparent; toolStripButton11.BackColor = Color.Transparent; toolStri
47、pButton9.BackColor = Color.Transparent; toolStripStatusLabel2.Text = "曲线"; type = 5; pictureBox1.Cursor = curpen; } private void toolStripButton11_Click(object sender, EventArgs e) { //实现铅笔画任意线功效,并点击铅笔图标后背景颜色为绿色
48、 type = 0; pictureBox1.Cursor = curpen; toolStripButton11.BackColor = Color.LawnGreen; toolStripButton2.BackColor = Color.Transparent; toolStripButton3.BackColor = Color.Transparent; toolStripButton4.BackColor = Color.Transparent;
49、 toolStripButton1.BackColor = Color.Transparent; toolStripButton5.BackColor = Color.Transparent; toolStripButton9.BackColor = Color.Transparent; toolStripStatusLabel2.Text = "铅笔"; } private void toolStripButton9_Click(object s
50、ender, EventArgs e) { //实现橡皮功效,并点击橡皮图标后背景颜色为绿色 type = 6; pictureBox1.Cursor = curearser; toolStripButton9.BackColor = Color.LawnGreen; toolStripButton2.BackColor = Color.Transparent; toolStripButton3.BackColor = C






