设计 订阅
设计是把一种设想通过合理的规划、周密的计划、通过各种方式表达出来的过程。人类通过劳动改造世界,创造文明,创造物质财富和精神财富,而最基础、最主要的创造活动是造物。设计便是造物活动进行预先的计划,可以把任何造物活动的计划技术和计划过程理解为设计。 展开全文
设计是把一种设想通过合理的规划、周密的计划、通过各种方式表达出来的过程。人类通过劳动改造世界,创造文明,创造物质财富和精神财富,而最基础、最主要的创造活动是造物。设计便是造物活动进行预先的计划,可以把任何造物活动的计划技术和计划过程理解为设计。
信息
特    点
需要多种知识,需要不断改进
分    类
平面设计、装修设计、服装设计等
中文名
设计
外文名
Design
设计基本含义
设计,指设计师有目标有计划的进行技术性的创作与创意活动。设计的任务不只是为生活和商业服务,同时也伴有艺术性的创作。根据工业设计师Victor Papanek 的定义,设计(Design)是为构建有意义的秩序而付出的有意识的直觉上的努力。更详细的定义如下:第一步:理解用户的期望、需要、动机,并理解业务、技术和行业上的需求和限制。第二步:将这些所知道的东西转化为对产品的规划(或者产品本身),使得产品的形式、内容和行为变得有用、能用,令人向往,并且在经济和技术上可行。(这是设计的意义和基本要求所在)这个定义可以适用于设计的所有领域,尽管不同领域的关注点从形式、内容到行为上均有所不同。 随着现代科技的发展、知识社会的到来、创新形态的嬗变,设计也正由专业设计师的工作向更广泛的用户参与演变,以用户为中心的、用户参与的创新设计日益受到关注,用户参与的创新2.0模式正在逐步显现。用户需求、用户参与、以用户为中心被认为是新条件下设计创新的重要特征,用户成为创新2.0的关键词,用户体验也被认为是知识社会环境下创新2.0模式的核心。设计不再是专业设计师的专利,以用户参与、以用户为中心也成为了设计的关键词,Fab Lab、Living Lab等的创新设计模式的探索正在成为设计的创新2.0模式。最简单的关于设计的定义、就是一种“有目的的创作行为”。然而设计也是一种职业。例如在电影业中有场景设计一职,在印刷业中,有包装设计一职。与英文使用不同的是、英文的Designer一词、在中文使用时、设计与设计师两个词都能共同称呼。而由“设计”这个词,沿伸出来有相当多的理论和议题,以“设计”为职业的社会环境通常就叫做“设计界”。设计界因在欧美国家理论发展历史悠久,故设计史和相关理论,常以欧美的工业设计,建筑设计为两大主流。由于设计行为一般都解释为有明确目标的,因此在近代将与设计意涵相反的创作,称为乱数、随机等等。在西方,大型的设计系统,往往以Architecture建筑来称呼。这边指的建筑并非具体的建筑学、而是一种抽象的形容。设计在当代中国已成为一种新兴发展职业。
收起全文
精华内容
参与话题
问答
  • C语言程序设计第五版 谭浩强 第五版课后答案

    万次阅读 多人点赞 2019-06-16 00:27:29
    谭浩强 C语言程序设计第五版 第4章课后答案 3.求两个正整数m和n,求其最大公约数和最小公倍数。 #include<stdio.h> void main() { int m, n, t, i, a = 1; scanf("%d%d", &m, &n); if (m < n) ...

    谭浩强 C程序设计第五版 第五版课后答案

    c程序设计

    第一章

    在这里插入图片描述

    1.什么是程序?什么是程序设计?

    • 程序:就是一组能识别和执行的指令,每一条指令使计算机执行特定的操作

    • 程序设计:是指从确定任务到得到结果、写出文档的全过程

    2.为什么需要计算机语言?高级语言有哪些特点?

    • 为什么需要计算机语言:计算机语言解决了人和计算机交流是的语言问题,使得计算机和人都能识别

    • 高级语言有哪些特点:
      2.1 高级语言的数据结构要比汇编和机器语言丰富;
      2.2 高级语言与具体机器结构的关联没有汇编以及机器语言密切;
      2.3 高级语言更接近自然语言更容易掌握;
      2.4 高级语言编写的程序要经过编译或解释计算机才能执行;

    3.正确理解以下名词及其含义:

    (1)源程序,目标程序,可执行程序。

    • ​源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令

    • 目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名

    • 可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序

    (2)程序编辑,程序编译,程序连接。

    程序编辑:上机输入或者编辑源程序。

    程序编译:

    • 先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理
    • 对源程序进行语法检查, 判断是否有语法错误,直到没有语法错误未知
    • 编译程序自动把源程序转换为二进制形式的目标程序

    程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接

    (3)程序,程序模块,程序文件。

    • 程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具

    • 程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令

    • 程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序

    (4)函数,主函数,被调用函数,库函数。

    • 函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能

    • 主函数:又称main函数,是程序执行的起点

    • 被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数

    • 库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是

    ​ 编译器特定的库函数

    (5)程序调试,程序测试。
    • 程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程

    • 程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行

    4.编写一个C程序,运行时输出

    Hello World!
    这个程序是一些国外C教材中作为第一个程序例子介绍的,一般称为Hello程序。

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	printf("%s\n", "Hello World!");
    	return 0;
    }
    

    运行截图:

    C程序设计第五版谭浩强第4题答案

    5.编写一个C程序,运行时输出以下图形:

    ****

    ****

    ​ ****

    ​ ****

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < i; j++)
    		{
    			printf("%s", "  ");
    		}
    		printf("%s\n", "*****");
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强第5题答案

    6.编写一个C程序,运行时输人a,b,c三个值,输出其中值最大者。

    代码示例:

    #include<stdio.h>
    
    int main()
    {
    	int a, b, c, max;
    	printf("请输入三个数:\n");
    
    	scanf("%d%d%d", &a, &b, &c);
    	if (a > b)
    	{
    		max = a;
    	}
    	else
    	{
    		max = b;
    	}
    
    	if (c > max)
    	{
    		max = c;
    	}
    	printf("三个数中最大的数为:%d", max);
    	return 0;
    
    }
    

    运行截图:

    C语言程序设计第五版谭浩强第6题答案

    7.看懂《C程序设计(第五版)学习辅导》第16章中介绍的用Visual Studio 2010对C程序进行编辑、编译、连接和运行的方法,并进行以下操作:

    (1)建立一个新项目,定名为project1.

    C语言程序设计第五版谭浩强第6题答案

    (2)建立一个新文件,定名为test1。

    C语言程序设计第五版谭浩强课后答案 第二题

    (3)向test1 文件输人源程序(此源程序为读者自己编写的程序)。

    C语言程序设计第五版谭浩强课后答案 第三题

    (4)编译该源程序,如发现程序有错,请修改之,直到不出现“编译出错”为止。

    (5)连接并运行, 得到结果。分析结果。

    C程序设计第五版课后答案
    推荐一套B站讲的最好的C语言视频

    B站最火的C语言教程

    全部可运行答案下载地址:

    https://www.cnblogs.com/leetcodetijie/gallery/image/349548.html

    更多相关文章

    C程序设计第五版谭浩强课后习题答案 第一章
    C程序设计第五版谭浩强课后习题答案 第二章
    C程序设计第五版谭浩强课后习题答案 第三章
    C程序序设计第五版谭浩强课后习题答案 第四章
    C语言程序设计第五版谭浩强课后习题答案 第五章
    C语言程序设计第五版谭浩强课后习题答案 第六章
    C语言程序设计第五版谭浩强课后习题答案 第七章
    C语言程序设计第五版谭浩强课后习题答案 第八章
    C语言程序设计第五版谭浩强课后习题答案 第九章
    C语言程序设计第五版谭浩强课后习题答案 第十章

    展开全文
  • JAVA设计模式之单例模式

    万次阅读 多人点赞 2014-04-16 06:51:34
    本文继续介绍23种设计模式系列之单例模式。 概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类...

    本文继续介绍23种设计模式系列之单例模式。

    概念:
      java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。
      单例模式有以下特点:
      1、单例类只能有一个实例。
      2、单例类必须自己创建自己的唯一实例。
      3、单例类必须给所有其他对象提供这一实例。
      单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。


    一、懒汉式单例

     

    //懒汉式单例类.在第一次调用的时候实例化自己 
    public class Singleton {
        private Singleton() {}
        private static Singleton single=null;
        //静态工厂方法 
        public static Singleton getInstance() {
             if (single == null) {  
                 single = new Singleton();
             }  
            return single;
        }
    }

     

    Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。

    (事实上,通过Java反射机制是能够实例化构造方法为private的类的,那基本上会使所有的Java单例实现失效。此问题在此处不做讨论,姑且掩耳盗铃地认为反射机制不存在。)

    但是以上懒汉式单例的实现没有考虑线程安全问题,它是线程不安全的,并发环境下很可能出现多个Singleton实例,要实现线程安全,有以下三种方式,都是对getInstance这个方法改造,保证了懒汉式单例的线程安全,如果你第一次接触单例模式,对线程安全不是很了解,可以先跳过下面这三小条,去看饿汉式单例,等看完后面再回头考虑线程安全的问题:

     

    1、在getInstance方法上加同步

     

    public static synchronized Singleton getInstance() {
             if (single == null) {  
                 single = new Singleton();
             }  
            return single;
    }

     

     

     

    2、双重检查锁定

     

    public static Singleton getInstance() {
            if (singleton == null) {  
                synchronized (Singleton.class) {  
                   if (singleton == null) {  
                      singleton = new Singleton(); 
                   }  
                }  
            }  
            return singleton; 
        }

     

    3、静态内部类

     

    public class Singleton {  
        private static class LazyHolder {  
           private static final Singleton INSTANCE = new Singleton();  
        }  
        private Singleton (){}  
        public static final Singleton getInstance() {  
           return LazyHolder.INSTANCE;  
        }  
    }  

    这种比上面1、2都好一些,既实现了线程安全,又避免了同步带来的性能影响。

     

     

     

     

     

     

    二、饿汉式单例

     

    //饿汉式单例类.在类初始化时,已经自行实例化 
    public class Singleton1 {
        private Singleton1() {}
        private static final Singleton1 single = new Singleton1();
        //静态工厂方法 
        public static Singleton1 getInstance() {
            return single;
        }
    }

    饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

     

     

     

     

    三、登记式单例(可忽略)

    //类似Spring里面的方法,将类名注册,下次从里面直接获取。
    public class Singleton3 {
        private static Map<String,Singleton3> map = new HashMap<String,Singleton3>();
        static{
            Singleton3 single = new Singleton3();
            map.put(single.getClass().getName(), single);
        }
        //保护的默认构造子
        protected Singleton3(){}
        //静态工厂方法,返还此类惟一的实例
        public static Singleton3 getInstance(String name) {
            if(name == null) {
                name = Singleton3.class.getName();
                System.out.println("name == null"+"--->name="+name);
            }
            if(map.get(name) == null) {
                try {
                    map.put(name, (Singleton3) Class.forName(name).newInstance());
                } catch (InstantiationException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
            }
            return map.get(name);
        }
        //一个示意性的商业方法
        public String about() {    
            return "Hello, I am RegSingleton.";    
        }    
        public static void main(String[] args) {
            Singleton3 single3 = Singleton3.getInstance(null);
            System.out.println(single3.about());
        }
    }

     登记式单例实际上维护了一组单例类的实例,将这些实例存放在一个Map(登记薄)中,对于已经登记过的实例,则从Map直接返回,对于没有登记的,则先登记,然后返回。 

    这里我对登记式单例标记了可忽略,我的理解来说,首先它用的比较少,另外其实内部实现还是用的饿汉式单例,因为其中的static方法块,它的单例在类被装载的时候就被实例化了。

     

    饿汉式和懒汉式区别

    从名字上来说,饿汉和懒汉,

    饿汉就是类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了,

    而懒汉比较懒,只有当调用getInstance的时候,才回去初始化这个单例。

    另外从以下两点再区分以下这两种方式:

     

    1、线程安全:

    饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题,

    懒汉式本身是非线程安全的,为了实现线程安全有几种写法,分别是上面的1、2、3,这三种实现在资源加载和性能方面有些区别。


     

    2、资源加载和性能:

    饿汉式在类创建的同时就实例化一个静态对象出来,不管之后会不会使用这个单例,都会占据一定的内存,但是相应的,在第一次调用时速度也会更快,因为其资源已经初始化完成,

    而懒汉式顾名思义,会延迟加载,在第一次使用该单例的时候才会实例化对象出来,第一次调用时要做初始化,如果要做的工作比较多,性能上会有些延迟,之后就和饿汉式一样了。

    至于1、2、3这三种实现又有些区别,

    第1种,在方法调用上加了同步,虽然线程安全了,但是每次都要同步,会影响性能,毕竟99%的情况下是不需要同步的,

    第2种,在getInstance中做了两次null检查,确保了只有第一次调用单例的时候才会做同步,这样也是线程安全的,同时避免了每次都同步的性能损耗

    第3种,利用了classloader的机制来保证初始化instance时只有一个线程,所以也是线程安全的,同时没有性能损耗,所以一般我倾向于使用这一种。

     

    什么是线程安全?

    如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

    或者说:一个类或者程序所提供的接口对于线程来说是原子操作,或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题,那就是线程安全的。

     

    应用

    以下是一个单例类使用的例子,以懒汉式为例,这里为了保证线程安全,使用了双重检查锁定的方式:

     

    public class TestSingleton {
    	String name = null;
    
            private TestSingleton() {
    	}
    
    	private static volatile TestSingleton instance = null;
    
    	public static TestSingleton getInstance() {
               if (instance == null) {  
                 synchronized (TestSingleton.class) {  
                    if (instance == null) {  
                       instance = new TestSingleton(); 
                    }  
                 }  
               } 
               return instance;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public void printInfo() {
    		System.out.println("the name is " + name);
    	}
    
    }

    可以看到里面加了volatile关键字来声明单例对象,既然synchronized已经起到了多线程下原子性、有序性、可见性的作用,为什么还要加volatile呢,原因已经在下面评论中提到,

    还有疑问可参考http://www.iteye.com/topic/652440
    和http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

     

     

     

    public class TMain {
    	public static void main(String[] args){
    		TestStream ts1 = TestSingleton.getInstance();
    		ts1.setName("jason");
    		TestStream ts2 = TestSingleton.getInstance();
    		ts2.setName("0539");
    		
    		ts1.printInfo();
    		ts2.printInfo();
    		
    		if(ts1 == ts2){
    			System.out.println("创建的是同一个实例");
    		}else{
    			System.out.println("创建的不是同一个实例");
    		}
    	}
    }
    

     运行结果:

    结论:由结果可以得知单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。

    对于单例模式的几种实现方式,知道饿汉式和懒汉式的区别,线程安全,资源加载的时机,还有懒汉式为了实现线程安全的3种方式的细微差别。

    更多设计模式:23种设计模式系列

    作者:jason0539

    博客:http://blog.csdn.net/jason0539(转载请说明出处)

    展开全文
  • 教你玩转HTML(html5)h5网页设计,网站开
  • 电子设计从这开始——51单片机25个小作品

    万次阅读 多人点赞 2016-09-23 13:09:09
    这是大二我做某实验室管理员,为了方便自己管理整理,都是一些51单片机的小作品,适合给刚学完51单片机的新手练手 ...6基于51单片机的无线温湿度控制系统设计 7基于51单片机脉搏心率计 8.基于51单片机led音乐频谱

            这是我大二做某实验室管理员,为了方便自己管理整理,都是一些51单片机的小作品,适合给刚学完51单片机的新手练手!

                  时间好快,目前我已经研二了,没有想到底下会有这么多评论,谢谢各位学弟学妹捧场!我在这统一回复,这些是我总结的可以用来练手的关于51单片机的小项目,不过我自己没有做过,真的没有资料。          

    一目录

    1基于51单片机的火灾温度烟雾报警器

    2基于51单片机的声光电子琴

    3基于51单片机的音乐喷泉

    4基于51单片机的智能温控风扇

    5基于51单片机的超声波测距

    6基于51单片机的无线温湿度控制系统设计

    7基于51单片机脉搏心率计

    8.基于51单片机led音乐频谱

    9.基于51单片机的智能充电器

    10.基于51单片机的贪吃蛇游戏

    11.基于51单片机的电子秤

    12.基于51单片机的视力保护器

    13.基于51单片机防人水位检测报警系统

    14.基于51单片机的声光控制器设计

    15.基于51单片机的红外计数器

    16.基于51单片机的自行车码表设计

    17.基于51单片机的计算器的设计

    18.基于51单片机的酒精浓度测试仪设计

    19.基于51单片机的智能台灯设计

    20.基于51单片机的卫星定位

    21.基于51单片机防尘PM2.5灰尘设计

    22.基于51单片机的无线音乐门铃

    23基于51单片机的短信收发控制器

    24.基于51单片机的智能插座定时开关设计

    25.基于51单片机的4*4*4单片机的光立方设计

     

    二.作品参考图

     

    1基于51单片机的火灾温度烟雾报警器

     

     

     

     

     

    2基于51单片机的声光电子琴

     

     

     

     

    3基于51单片机的音乐喷泉

     

     

     

     

    4基于51单片机的智能温控风扇

     

     

     

     

    5基于51单片机的超声波测距

     

     

    6基于51单片机的无线温湿度控制系统设计

    7基于51单片机脉搏心率计

    8.基于51单片机led音乐频谱

    9.基于51单片机的智能充电器

    10.基于51单片机的贪吃蛇游戏

    11.基于51单片机的电子秤

    12.基于51单片机的视力保护器

    13.基于51单片机防人水位检测报警系统

    14.基于51单片机的声光控制器设计

    15.基于51单片机的红外计数器

    16.基于51单片机的自行车码表设计

    17.基于51单片机的计算器的设计

    18.基于51单片机的酒精浓度测试仪设计

    19.基于51单片机的智能台灯设计

    20.基于51单片机的卫星定位

    21.基于51单片机防尘PM2.5灰尘设计

    22.基于51单片机的无线音乐门铃

    23基于51单片机的短信收发控制器

     

    24.基于51单片机的智能插座定时开关设计

     

    25.基于51单片机的4*4*4单片机的光立方设计

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 学员可以通过视频进行软考软件设计师相应的基础知识培训,掌握软件开发与设计的基础知识包括:数据结构、软件工程、操作系统、数据库原理、软件设计、UML分析与设计等内容,为考试和自身能力提高打下坚实基础。...
  • 我的毕业设计就叫毕业设计管理系统的设计与实现,哈哈 目录 1.摘要 2.需求分析 3.数据库设计 4.功能模块的设计与实现 5.项目截图 6.项目源码 1.摘要 毕业设计是本科教育的最后一个环节,整个过程包括课题...

    我的毕业设计就叫毕业设计管理系统的设计与实现,哈哈

     

    目录

    1.摘要

    2.需求分析

    3.数据库设计

    4.功能模块的设计与实现

    5.项目截图

    6.项目源码


    1.摘要

    毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的工作量,还能较大地提高学生和教师的效率。本系统采用B/S模式,主要开发工具为Eclipse(Oxygen.1a Release),用到的编程语言有Java、JavaScript和JSP,数据库采用MySQL 5.7,服务器则用的Apache Tomcat 9.0。前端页面的编写基于bootstrap,整个项目基于SSM框架。

    2.需求分析

    系统的组织架构如图所示,三种用户根据自己不同的权限对课题、文档、成绩、公告、任务五种数据信息进行处理,不同用户角色再根据这些数据信息进行交互通过课题进行交互,并且围绕着文档进行数据的传递和处理等。

    系统的功能模块如图所示,每个模块各有几个子功能模块。

    本系统包含三种用户:学生、教师和管理员。通过本系统,学生可以获取指导教师和管理员发布的相关教学信息和教学资源;教师可以进行毕设进度的日常管理,发布任务、上传资料、审核文档等;管理员可以进行系统的管理和维护,并对教师、学生、课题和文档进行管理,确保系统的正常运行。系统总共分为3个模块:

    1.学生模块

    学生登录系统后进入该模块,在该模块中,学生能够修改个人资料和登录密码,选择感兴趣的课题及导师,下载导师上传的相关参考资料,上传自己已经完成的文档,查看发布的公告、任务和自己的阶段成绩等。

    2.教师模块

    教师登录系统后进入该模块,在该模块中,教师能够修改个人资料和登录密码,选择学生,上传拟好的课题题目给管理员审核,发布阶段任务,上传相关资料给学生参考,下载学生上传的阶段文档并审核和打分,查看公告及发布新公告等。

    3.管理员模块

    管理员登录系统后进入该模块,在该模块中,管理员可以增删查改导师和学生的信息,审核教师上传的课题,发布公告,查看各种信息,查看各种数据分析的结果和图表。

    3.数据库设计

    数据分析:

    本系统的主要数据表为存储学生、教师、文档、课题数据集的四个表。其余表大多作为外键关联用于完善四张表的信息。

    概念设计:

    数据库主要围绕学生、教师、 课题、文档4个实体进行数据处理。即系统只要处理好这4个实体的数据,就可以完成系统的绝大部分功能并让毕业设计管理的整个流程顺利进行下去。其余的数据表则是围绕这4个实体相应展开,进行一些扩展和补充,以完善整个数据库的结构并加快数据库对请求的响应速度。

    重要E-R图:

    数据库文档处理的E-R如图所示

    数据库文档处理的E-R如图所示。

    表列表:

    数据库中一共设计了15张表,和学生相关的表有6张(包括学生信息、开题报告、文档成绩、毕设进度、学生疑问等),和教师相关的表有4张(包括教师信息、任务书、阶段任务、课题申报等),文档有1张表,课题涉及2张表,还有2张表属于公共信息表,用于进行一些补充以完善数据库。数据库的表清单如下表。

    序号

    物理表名

    中文名称

    1

    t_announcement

    公告表

    2

    t_department

    学院表

    3

    t_doubt

    疑问表

    4

    t_major

    专业表

    5

    t_student

    学生表

    6

    t_student_opening_report_task_book

    学生开题报告表

    7

    t_student_progress

    学生进度通知填写表

    8

    t_student_score

    学生成绩表

    9

    t_teacher

    教师表

    10

    t_teacher_opening_report_task_book

    教师开题报告表

    11

    t_teacher_progress_notification

    教师阶段任务表

    12

    t_thesis_information

    文档提交表

    13

    t_thesis_title

    教师提交课题表

    14

    t_topic

    选题信息表

    15

    t_user

    用户表

    数据字典:

    公告表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    context

    公告内容

    varchar

     

    3

    inputMan

    发布人

    varchar

     

    4

    lastModifyTime

    上次修改时间

    datetime

     

    疑问表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    studentId

    学生id

    int

    3

    studentDoubt

    学生疑问

    varchar

     

    4

    answer

    疑问解答

    varchar

     

    学生表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    studentNo

    学生学号

    varchar

     

    3

    studentName

    学生姓名

    varchar

     

    4

    sex

    性别

    varchar

     

    5

    majorId

    专业id

    int

    6

    grade

    年级

    varchar

     

    7

    inputMan

    录入人

    varchar

     

    8

    lastModifyTime

    上次修改时间

    datetime

     

    9

    phone

    电话

    varchar

     

    学生开题报告表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    studentId

    学生id

    int

    3

    OpenResport

    学生开题报告

    varchar

     

    4

    TaskBook

    学生任务书

    varchar

     

    5

    description

    描述

    varchar

     

    6

    completion

    完成情况

    int

     

                   

    学生成绩表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    studentId

    学生id

    int

    3

    thesisResult

    分数结果

    int

     

    4

    inputMan

    打分人

    varchar

     

    5

    rank

    分数等级

    char

     

    6

    status

    状态

    int

     

    7

    condition

    审核资格

    int

     

    导师表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    teacherNo

    教师编号

    varchar

     

    3

    teacherName

    教师姓名

    varchar

     

    4

    departmentId

    所属学院id

    int

    5

    sex

    性别

    varchar

     

    6

    inputMan

    录入人

    varchar

     

    7

    lastModifyTime

    上次修改时间

    datetime

     

    8

    phone

    电话

    varchar

     

    教师开题报告表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    teacherId

    教师id

    varchar

    3

    openingReport

    开题报告

    varchar

     

    4

    taskBook

    任务书

    datetime

     

    5

    description

    描述

     

     

    6

    thesisTitleId

    课题id

     

    教师阶段任务表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    context

    任务内容

    varchar

     

    3

    inputMan

    发布人

    varchar

     

    4

    inputTime

    发布时间

    datetime

     

    5

    studentId

    学生id

    int

    6

    teacherId

    教师id

    int

    7

    state

    状态

    int

     

    8

    time

    任务时间

    int

     

    文档提交表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    studentId

    学生id

    int

    3

    thesisText

    文档信息

    varchar

     

    4

    status

    文档状态

    int

     

    5

    description

    描述

    varchar

     

    选题信息表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    thesisName

    课题名称

    varchar

     

    3

    teacherId

    教师id

    int

    4

    submitTime

    提交时间

    datetime

     

    5

    status

    状态

    int

     

    6

    inputMan

    提交人

    varchar

     

    7

    description

    课题描述

    varchar

     

    学院表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    departmentName

    学院名称

    varchar

     

    3

    description

    学院描述

    varchar

     

    专业表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    majorName

    专业名称

    varchar

     

    3

    departmentId

    所属学院id

    int

    4

    description

    专业描述

    varchar

     

    学生进度通知填写表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    progressId

    阶段id

    int

    3

    context

    阶段任务内容

    varchar

     

    教师提交课题表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    thesisName

    课题名称

    varchar

     

    3

    teacherId

    教师id

    int

    4

    submitTime

    提交时间

    datetime

     

    5

    status

    状态

    int

     

    6

    inputMan

    提交人

    varchar

     

    7

    description

    课题描述

    varchar

     

    用户表

    序号

    列名

    中文名称

    数据类型

    主键

    非空

    外键

    1

    id

     

    int

     

    2

    userNo

    用户账号

    varchar

     

    3

    password

    密码

    int

     

    4

    permission

    用户权限

    char(1)

     

    4.功能模块的设计与实现

    本系统依据学生、导师、管理员三种不同用户角色的需求,分为了三个大的功能模块,三种用户角色在各自的模块进行操作,可以通过课题进行与其他两种用户角色之间的交互,并且围绕着文档进行各种数据(用户信息、文档信息、课题信息)的传递和处理等,这就形成了系统的体系结构,管理员发布课题给学生,学生选择课题呈现给导师,导师自拟课题向管理员申报,如图所示。

    同时三种用户可对五种数据信息进行不同的处理(增删查改的权限不同),表现在系统上就是拥有不同的功能模块,所以分为三个大的模块,每个模块有相应的小的功能模块,系统的功能结构如图。

    5.项目截图

    学生模块部分页面

     

     

    教师模块部分页面

     

     

    管理员模块部分页面

     

     

    6.项目源码

    项目源码已上传,https://download.csdn.net/download/Ace_2/13061373

    下载好像需要积分,需要源码的可以关注公众号“编程江湖”,回复“毕业设计管理系统”领取源码。

    也提供CSDN其他资源的下载服务。

    后续会放到github上

    这是我大学写的,现在看来好多地方比较糙,还有些小问题。不过编程思想是体现出来了的,逻辑也比较清晰,学生看还是没啥问题的。有问题可以找我交流哦。

    截图:

     

     

     

    展开全文
  • 微信小程序毕业设计、微信小程序商城毕业设计

    万次阅读 多人点赞 2019-07-04 11:36:36
    【微信小程序毕业设计、商城小程序】 该微信小程序商城功能模块包含: 首页、分类、商品详情页面,包含加入购物车、收藏商品、商品评论功能、用户登录、微信登录、订单管理、地址管理;完整的购物流程,商品的加入、...
  • 也许所有的电子元器件我们都学过,我们也学习了一大把的理论知识,但是却...本视频我将从设计电路的思路入手,用不同于课本的知识从全新的角度对元器件进行讲解,及用我们设计电路的经验来教会大家随心所欲地设计电路。
  • 计算机专业毕业设计题目大全 一、ASP类计算机专业毕业设计题目 1.网络留言薄2.客户管理系统3.多媒体积件管理库的开发与应用4.基于WEB的多媒体素材管理库的开发与应用5.网络教学软件中的教学设计与应用6.小型教育...
  • 毕业设计——基于HTML5的洛阳旅游网站设计与实现

    万次阅读 多人点赞 2018-09-16 22:16:43
    题目:基于HTML5的旅游网站设计与实现 这是一个基于HTML5的旅游网站,论文、代码都很齐全。 获取源代码至GitHub:https://github.com/forguos/travel 欢迎您的star和fork 话不多,先看网站,链接如下 个人...
  • 领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是...
  • C语言图书管理系统设计报告

    万次阅读 多人点赞 2017-06-20 17:37:54
    源代码:https://blog.csdn.net/k_young1997/article/details/73480766 XXXX大学 ...C语言课程设计报告 题 目 图书管理系统设计 专业班级 XXXX级计算机科学与技术本科X班 组 别 计科第...
  • 前言:该系统作为本科毕业设计,可能还有很多的不足。只是当时做这个系统的时候,由于需要使用java语言作为后端实现与微信小程序界面数据交互,看遍网上很多的案例基本后台都是php语言用于编写接口,几乎没找到过...
  • 基于51单片机的交通灯控制系统设计

    万次阅读 多人点赞 2018-11-24 13:38:11
    设计为基于51单片机交通灯系统的设计,采用模块化、层次化设计。运用单片机AT89C51进行数据的分析和处理,为显示提供信号,显示部分采用8位数码管显示倒计时值。系统电路简单、集成度高、工作稳定、调试方便、检测...
  • 领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是...
  • 一、领域驱动设计两大设计:战略设计和战术设计 二、理解和分析领域+子域+核心域+通用域+支撑域 三、理解和分析界限上下文,定义领域边界 四、理解和分析实体和值对象 五、理解和分析聚合思想:聚合和聚合...
  • Android组件设计思想

    万次下载 热门讨论 2013-10-23 01:11:07
    Android的组件设计思想与传统的组件设计思想最大的区别在于,前者不依赖于进程。也就是说,进程即使由于内存紧张被强行杀掉了,但是运行在里面的组件还是存在的。这样就可以在组件再次需要使用时,原地满血复活,就...
  • 软件工程 毕业设计题目

    万次阅读 多人点赞 2019-05-23 14:45:04
    软件工程毕业设计 题目汇总 【不断更新中】 1.微信小程序 校园表白墙微信小程序 2.房屋租赁管理系统 3.航空售票管理系统 4.高校会议室管理系统 5.高校就业管理系统 6.失物招领系统 7.图书销售系统 8.微信小程序 ...
  • 史上最全设计模式导学目录(完整版)

    万次阅读 多人点赞 2013-12-24 23:15:16
    2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,现将所有与设计模式学习相关文章...
  • 备注:后面会慢慢做补充
  • 大话设计模式

    万次阅读 2019-10-27 21:54:33
    设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过...
  • 23种设计模式汇总整理

    万次阅读 多人点赞 2015-04-09 10:57:11
    设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 ...
  • 个人认为软件开发---大学生毕业设计的正常流程应该是这样的: 1.毕业设计选题(3小时),选择一个自己熟悉的,题目尽量新颖,避免最后查重过高,降重困难; 2.如果会java web开发,中间时间随便玩,或者出去找工作...
  • MATLAB设计模糊控制器并用simulink仿真

    万次阅读 多人点赞 2018-12-29 18:58:31
    一、设计模糊控制器 1.1 创建项目文件夹 1.2 打开MATLAB  1.3 设计模糊控制器 二、设置控制系统 三、simulink仿真 一、设计模糊控制器 1.1 创建项目文件夹 在此路径如图 1.2 打开MATLAB 打开MATLAB ...
  • 历届蓝桥杯C/C++程序设计省赛试题

    万次阅读 多人点赞 2016-01-26 00:25:29
    2012年第三届蓝桥杯C/C++程序设计本科B组省赛2013年第四届蓝桥杯C/C++程序设计本科B组省赛2014年第五届蓝桥杯C/C++程序设计本科B组省赛2015年第六届蓝桥杯C/C++程序设计本科B组省赛2016年第七届蓝桥杯C/C++程序设计...
  • 酒店管理系统-毕业设计

    千次阅读 2019-08-25 22:26:18
    酒店管理系统-毕业设计 主要分为两部分 后台管理 登录 注销 用户管理 员工管理 房间管理 商品管理 留言管理 开房/退房管理 权限管理 用户界面 登录 注册 首页 客房查看 客房商品 退订房管理 留言 个人信息 技术...
  • 毕业设计 微信小程序 音乐播放器

    万次阅读 多人点赞 2019-11-08 21:22:32
    大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板...
  • 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际...
  • C程序设计第五版 谭浩强 清华大学出版社 课后答案 习题解析 微信扫描小程序二维码查看答案 第一章 程序设计和C语言 第二章 算法—程序的灵魂 第三章 最简单的C程序设计—顺序程序设计 第四章 选择结构程序设计 第...
  • MVC设计模式和MVC框架的区别

    千次阅读 多人点赞 2017-11-20 09:34:14
    MVC框架和MVC设计模式的区别

空空如也

1 2 3 4 5 ... 20
收藏数 1,948,668
精华内容 779,467
关键字:

设计