目录一系统开发的背景 ......................................... 错误!未定义书签。
二系统分析与设计 ......................................... 错误!未定义书签。
(一)系统功能要求 ....................................... 错误!未定义书签。
(二)系统模块结构设计 ................................... 错误!未定义书签。
三系统的设计与实现................................................... 错误!未定义书签。
(一)学生基本信息浏览:BASICB() ........................... 错误!未定义书签。
(二)……………… ....................................... 错误!未定义书签。
四系统测试............................................................. 错误!未定义书签。
(一)测试MAINFORM()函数 .................................. 错误!未定义书签。
(二)…………. .......................................... 错误!未定义书签。
五总结错误!未定义书签。
六附件(代码部分图表) ................................... 错误!未定义书签。
必须自动生成目录。
毕业设计管理一系统开发的背景随着计算机及计算机网络的普及和全国各院校的校园网络的日益完善健全,各种工作的计算机网络化将逐步取代繁重的传统办公模式。
毕业设计作为大学生四年学习的重要环节,也有必要实行计算机网络化管理,从而减轻设计指导老师的承重负担,简化立题选题评分等过程,让繁冗的课题设计信息采用计算机数据库统筹管理。
因此,设计一种毕业设计综合管理系统是我校教学管理发展的一项任务,也是各院校教学发展的趋势。
该系统为学生教师管理员提供一个交互的接口,大大方便了学生老师及管理员的管理人员。
毕业设计是学生在校期间的最后一个教学环节,是学习深化和提高的一个重要过程,也是综合检验所学理论知识的一个重要环节。
本设计从课题的申报课题的审核学生选题调剂指导评阅答辩归档等环节进行管理,实现了毕业设计的整个流程的管理工作。
系统实现了学生自主选题和教师自主选择学生的网上双向选择,并增加了留言板文件上传与下载新闻发布等功能,能够保证毕业设计期间管理员老师学生之间信息的联通,对保证毕业设计的质量有非常重要的现实意义。
随着网络化的普及,全国高校的校园网络日益健全,实现无纸化办公成为未来的趋势,并且随着天津城市建设学院的教学体制改革不断加深,本系统的建立为参加毕业设计的教师学生提供接口。
二系统分析与设计(一)系统功能要求根据功能分为教师学生的前台操作和管理员的综合管理。
系统有三个主要的角色组成:学生教师管理人员。
1. 教师完成的操作:个人信息的管理;课题的申报修改选择学生,设计期间与学生的交流与辅导实习/指导评阅和答辩成绩的评定。
2. 学生完成的操作:个人信息的管理,选择课题,查询成绩。
3. 管理人员:对教师学生的信息查询,添加和删除;系统开放管理;选课期间调。
ER图:(二)系统模块结构设计通过对系统功能的分析,毕业设计管理系统功能如图2.2所示。
图2.2毕业设计管理系统功能图通过上图的功能分析,把整个系统划分为5个模块:1文件1)新建:新建窗口;2)打开:打开本地图片;3)保存:保存图形;4)退出:关闭窗体2编辑1)撤销2)重做3帮助1)关于4工具栏:如上图所示。
5状态栏:显示鼠标位置显示本地时间作者三系统的设计与实现(一)概要设计3.1.1系统数据流程设计概要设计阶段的基本目标是用比较抽象的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。
从数据流图出发设想完成系统功能的若干种合理的物理方案,从中选择一个最佳方案。
然后进行软件结构设计,确定软件由哪些模块组成以及这些模块的动态调用关系。
本设计包括管理员学生模块功能的设计。
首先管理员登录系统,对系统进行初始化,并可设置系统的开放与关闭。
系统初始化后教师可以出题,教师出题完毕管理员审核课题,审核通过后学生才可进行选题,学生选题完后教师可以选择符合题目要求的学生,形成双向选择。
如当出题选题完毕,教师和学生建立了双向的关系后,进入到做题阶段。
管理员和教师通过文件上传与下载留言板新闻发布和邮箱联系等方式对学生完成毕设的情况进行监督。
指导教师指导学生完成设计后,进入到评阅阶段。
管理员分配评阅教师后。
系统数据流图如下:图31 系统数据流图 3.1.2数据字典设计1.管理员信息数据字典表31 管理员信息数据字典名字:管理员信息别名:person描述:管理员的相关信息定义:管理员信息=管理员id+管理员name+管理员password位置:存于数据库,在维护系统时应用2. 教师信息数据字典表32 教师信息数据字典名字:教师信息别名:teacher描述:教师的相关信息定义:教师信息=教师id+教师姓名位置:存于数据库,在出题和进程控制时应用表33 学生信息数据字典名字:学生信息别名:student描述:学生的相关信息定义:学生信息=学生id+学生姓名+学生性别+学生密码位置:存于数据库,在选题和进程控制时应用表34课题信息数据字典名字:课题信息别名:title描述:课题的相关信息定义:课题信息=课题id+课题名+出题教师+需求人数+课题要求位置:存于数据库,在出题选题时应用(二)详细设计3.2.1系统概述详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的“蓝图”。
除了应该保证软件的可靠性之外,使将来编写出的程序可读性好容易理解容易测试和维护,是详细设计阶段最重要的目标。
设计的模块有出题选题子系统系统维护子系统和评阅答辩管理等。
最初时管理员应对系统进行初始化,初始化完后,教师拥有权限进行出题操作,教师出题完毕,管理员应对该课题进行审核,审核通过后学生这时拥有权限进行选课操作,学生选课操作完毕,这时,教师可以从选择他所出课题的学生中选择适合该课题的学生,达到一种双向的自主选择。
操作完毕后,可能存在某些学生没有选上题目,这时可以通过管理员的调剂操作来处理,把没选题的学生调剂到缺少人数的课题或者重新出题来满足要求,是每个学生都有题可做。
这时,指导教师应指导学生完成毕业设计,完成后应由评阅教师进行评阅。
选题阶段首先由学生通过登录自己的界面,可以看到题目的全部信息并且进行选择。
在达到限定时间后,由管理员通过人工干预的方式确定最终的选题结果。
在确定的时间内和学生完成选题后,由管理员根据题目和学生的具体情况,通过人工干预的方式,进行处理,确定每一个学生的题目,协调学生和题目之间的关系。
图44选题流程图3.2.2系统流程图图47 系统流程图四系统测试(一) 管理员功能 测试该按钮的使用方法,测试的具体步骤,测试用例的选取,测试的结果。
(如图)\开始 是否登录成功?选题选题成功?结束YY NN确定课题选择学生YY结束 成功? Y N图(二)学生模块功能测试测试模块的使用方法,测试该按钮实现的功能,测试的结果。
(如图.1).1.1图..2.3五总结系统完成了可画“三角形四边形圆形直线弧形”等;可选择画图线条颜色;可画图线条粗细;可按钮清除所画图形;可撤销,重做功能。
系统唯一的缺点就是在鼠标指针点击画笔和橡皮擦工具时指针无法变成画笔和橡皮擦的图标。
在这两周的编程过程中,我的的确确学到了不少的东西,无论是从课外书,还是网上资料,或是同学给我的帮助,都大有收获。
对于我们大一新生来说,学到的东西本来就不算不多,跟别谈运用了,这样的实习给我们的收获远远是书上所不能给的。
只有当真真正正运用的时候,才是查漏补缺的最佳时机,知道自己有哪些不足和知识点的遗漏。
并且知识是需要自己去总结的,一本书上的知识是远远不够的,只有从多本书中总结出对自己有用的信息,才能最大的学习到知识。
在这周的实习课中我还总结出了,学习不单单是学习书本上的知识,更重要的是付诸于实践,实践能让我们学到更多更实用的东西,在实践中我能感受到学到的东西不一定会运用,所以,我希望我们能够把实践与学习相结合,让我们能够全面发展。
六附件(代码部分图表)using System;using System.Collections.Generic;using ponentModel;using System.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();}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;private int penwidth =1;private Cursor curearser, curpen;private Stack<Bitmap> history, now;private void Form1Load(object sender, EventArgs e){Graphics g1 = 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<Bitmap>();now = new Stack<Bitmap>();}private void退出ToolStripMenuItemClick(object sender, EventArgs e){Application.Exit();}//打开图片格式的文件private void打开ToolStripMenuItemClick(object sender, EventArgs e){Open openPic = new Open();openPic.InitialDirectory = "C:\\users\\public\\pictures";//打开文件的途径 openPic.Filter = "ImageFiles(*.jpg,*.png,*.gif,*.bmp)|*.jpg;*.png;*.gif;*.bmp|All Files(*.*)|*.*";//打开文件的格式openPic.FilterIndex = 2;openPic.RestoreDirectory = true;if (openPic.ShowDialog() == DialogResult.OK){bt = new Bitmap(openPic.);pictureBox1.Image = bt;ig = Graphics.FromImage(bt);}}//新建画板private void新建ToolStripMenuItemClick(object sender, EventArgs e){pictureBox1.Refresh();Graphics g = pictureBox1.CreateGraphics();g.Clear(bgcolor);ig.Clear(bgcolor);toolStripStatusLabel2.Text = “新建画板”;}//保存文件private void保存ToolStripMenuItemClick(object sender, EventArgs e){Save svImg = new Save();svImg.InitialDirectory = "C:\\users\\public\\pictures";svImg.Filter = "BMP文件(*.bmp)|*.bmp";svImg.FilterIndex = 2;svImg.RestoreDirectory = true;if (svImg.ShowDialog() == DialogResult.OK){pictureBox1.Image.Save(svImg.);}}private void pictureBox1MouseMove(object sender, MouseEventArgs e){int x, y, w, h;if (toolStrip1.Enabled == true){toolStripStatusLabel3.Text = string.Format("x:{0},y:{1}", 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;pictureBox1.Image = bt;break;//画三角形case 1: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);ig.DrawLine(pen, x2, y2, x3, y3);pictureBox1.Image = bt;break;//画矩形case 2:x2 = e.X; y2 = e.Y;ig.Clear(bgcolor);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;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;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 = e.Y;ig.Clear(bgcolor);ig.DrawImage(sbt, 0, 0);ig.DrawLine(pen, x1, y1, x2, y2);pictureBox1.Image = bt;break;//画弧线case 5:x2 = e.X; y2 = e.Y;x3 = x1 * 2 x2;y3=y2;x4 = x3;y4=y3*2y2;ig.Clear(bgcolor);ig.DrawImage(sbt, 0, 0);ig.DrawBezier(pen, x1, y1, x2, y2, x3, y3, x4, y4); pictureBox1.Image = bt;break;//橡皮case 6 :x2 = e.X; y2 = e.Y;eraser.Color = bgcolor;ig.DrawLine(eraser, x1, y1, x2, y2);x1 = x2; y1 = y2;pictureBox1.Image = bt;break;}}}private void pictureBox1MouseDown(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 pictureBox1MouseUp(object sender, MouseEventArgs e) {f = false;//当stack中包含的元素不为0时撤销和重做图标可用if (now.Count != 0){撤销ToolStripMenuItem.Enabled = true;撤销toolStripButton.Enabled = true;}if (history.Count != 0){重做ToolStripMenuItem.Enabled = true;重做toolStripButton.Enabled = true;}}private void toolStripButton1Click(object sender, EventArgs e) {//实先画三角形功能,并点击三角形图标后背景颜色为绿色type = 1;pictureBox1.Cursor = curpen;toolStripButton1.BackColor = wnGreen;toolStripButton2.BackColor = Color.Transparent;toolStripButton3.BackColor = Color.Transparent;toolStripButton4.BackColor = Color.Transparent;toolStripButton5.BackColor = Color.Transparent;toolStripButton11.BackColor = Color.Transparent;toolStripButton9.BackColor = Color.Transparent;toolStripStatusLabel2.Text = "三角形”;}private void toolStripButton2Click(object sender, EventArgs e) {//实现画矩形功能,并点击矩形图标后背景颜色为绿色type = 2;pictureBox1.Cursor = curpen;toolStripButton2.BackColor = wnGreen;toolStripButton1.BackColor = Color.Transparent;toolStripButton3.BackColor = Color.Transparent;toolStripButton4.BackColor = Color.Transparent;toolStripButton5.BackColor = Color.Transparent;toolStripButton11.BackColor = Color.Transparent;toolStripButton9.BackColor = Color.Transparent;toolStripStatusLabel2.Text = “矩形”;}private void toolStripButton3Click(object sender, EventArgs e) {//实现画圆功能,并点击圆图标后背景颜色为绿色type = 3;pictureBox1.Cursor = curpen;toolStripButton3.BackColor = wnGreen;toolStripButton2.BackColor = Color.Transparent;toolStripButton1.BackColor = Color.Transparent;toolStripButton4.BackColor = Color.Transparent;toolStripButton5.BackColor = Color.Transparent;toolStripButton11.BackColor = Color.Transparent;toolStripButton9.BackColor = Color.Transparent;toolStripStatusLabel2.Text = "圆";}private void toolStripButton4Click(object sender, EventArgs e) {//实现画直线功能,并点击直线图标后背景颜色为绿色type = 4;pictureBox1.Cursor = curpen;toolStripButton4.BackColor = wnGreen;toolStripButton2.BackColor = Color.Transparent;toolStripButton3.BackColor = Color.Transparent;toolStripButton1.BackColor = Color.Transparent;toolStripButton5.BackColor = Color.Transparent;toolStripButton11.BackColor = Color.Transparent;toolStripButton9.BackColor = Color.Transparent;toolStripStatusLabel2.Text = "直线";}private void toolStripButton5Click(object sender, EventArgs e) {//实现画弧线功能,并点击弧线图标后背景颜色为绿色toolStripButton5.BackColor = wnGreen;toolStripButton2.BackColor = Color.Transparent;toolStripButton3.BackColor = Color.Transparent;toolStripButton4.BackColor = Color.Transparent;toolStripButton1.BackColor = Color.Transparent;toolStripButton11.BackColor = Color.Transparent;toolStripButton9.BackColor = Color.Transparent;toolStripStatusLabel2.Text = "曲线";type = 5;pictureBox1.Cursor = curpen;}private void toolStripButton11Click(object sender, EventArgs e){//实现铅笔画任意线功能,并点击铅笔图标后背景颜色为绿色type = 0;pictureBox1.Cursor = curpen;toolStripButton11.BackColor = wnGreen;toolStripButton2.BackColor = Color.Transparent;toolStripButton3.BackColor = Color.Transparent;toolStripButton4.BackColor = Color.Transparent;toolStripButton1.BackColor = Color.Transparent;toolStripButton5.BackColor = Color.Transparent;toolStripButton9.BackColor = Color.Transparent;toolStripStatusLabel2.Text = "铅笔";}private void toolStripButton9Click(object sender, EventArgs e){//实现橡皮功能,并点击橡皮图标后背景颜色为绿色type = 6;pictureBox1.Cursor = curearser;toolStripButton9.BackColor = wnGreen;toolStripButton2.BackColor = Color.Transparent;toolStripButton3.BackColor = Color.Transparent;toolStripButton4.BackColor = Color.Transparent;toolStripButton1.BackColor = Color.Transparent;toolStripButton11.BackColor = Color.Transparent;toolStripButton5.BackColor = Color.Transparent;toolStripStatusLabel2.Text = "橡皮";}//实现撤销功能,上一步private void撤销ToolStripMenuItemClick(object sender, EventArgs e) {Bitmap mjl = new Bitmap(bt);now.Push(mjl);//将对象移动到stack的顶部bt = history.Pop();//移除并返回位于Stack顶部的对象pictureBox1.Image = bt;ig = Graphics.FromImage(bt);pictureBox1.Refresh();//如果stack中的元素为0,则撤销图标不可用if (history.Count == 0){撤销ToolStripMenuItem.Enabled = false;}}//实现重做功能,下一步private void重做ToolStripMenuItemClick(object sender, EventArgs e) {Bitmap mjl = new Bitmap(bt);history.Push(mjl);bt = now.Pop();pictureBox1.Image = bt;ig = Graphics.FromImage(bt);pictureBox1.Refresh();if (now.Count == 0){重做ToolStripMenuItem.Enabled = false;}}//撤销快捷按钮private void toolStripButton12Click(object sender, EventArgs e){Bitmap mjl = new Bitmap(bt);now.Push(mjl);bt = history.Pop();pictureBox1.Image = bt;ig = Graphics.FromImage(bt);pictureBox1.Refresh();if (history.Count == 0){撤销toolStripButton.Enabled= false;}}//重做快捷按钮private void重做toolStripButtonClick(object sender, EventArgs e) {Bitmap mjl = new Bitmap(bt);history.Push(mjl);bt = now.Pop();pictureBox1.Image = bt;ig = Graphics.FromImage(bt);pictureBox1.Refresh();if (now.Count == 0){重做toolStripButton.Enabled= false;}}//用于铅笔颜色选择private void toolStripButton10Click(object sender, EventArgs e)if (colorDialog1.ShowDialog() == DialogResult.OK){pen.Color = colorDialog1.Color;if (colorDialog1.Color != Color.Black)toolStripButton10.BackColor = colorDialog1.Color;elsetoolStripButton10.BackColor = Color.Silver;}}private void toolStripButton6Click(object sender, EventArgs e){pen.Color = Color.Red;}private void toolStripButton7Click(object sender, EventArgs e){pen.Color = Color.Green;}private void toolStripButton8Click(object sender, EventArgs e){pen.Color = Color.Yellow;}//铅笔粗细选择private void磅ToolStripMenuItemClick(object sender, EventArgs e){pen.Width = 1;}private void磅ToolStripMenuItem1Click(object sender, EventArgs e) {pen.Width= 2;}private void磅ToolStripMenuItem2Click(object sender, EventArgs e) {pen.Width = 3;}private void磅ToolStripMenuItem3Click(object sender, EventArgs e) {pen.Width = 4;}private void磅ToolStripMenuItem4Click(object sender, EventArgs e) {pen.Width= 5;}private void关于ToolStripMenuItemClick(object sender, EventArgs e)MessageBox.Show("作者:高文昇");}//鼠标移出画板时不显示坐标位置private void Form1MouseMove(object sender, MouseEventArgs e){toolStripStatusLabel3.Text = "x: y: ";}private void menuStrip1MouseMove(object sender, MouseEventArgs e){toolStripStatusLabel3.Text = "x: y: ";}【感谢您的阅览,下载后可自由编辑和修改,关注我每天更新】。