精华内容
下载资源
问答
  • matlab期末大作业

    千次阅读 2021-04-24 14:46:44
    《数字图像处理》期末作业大作业题目及要求:一、题目: 本门课程的考核以作品形式进行。作品必须用 Matlab 完成。并提交相 关文档。 二、作品要求: 1、用 ......MATLAB期末大作业_远程、网络教育_成人教育_教育专区...

    《MATLAB 语言及应用》期末大作业报告 1.数组的创建和访问(20 分,每小...

    《数字图像处理》期末大作业大作业题目及要求:一、题目: 本门课程的考核以作品形式进行。作品必须用 Matlab 完成。并提交相 关文档。 二、作品要求: 1、用 ......

    MATLAB期末大作业_远程、网络教育_成人教育_教育专区。1. 龟兔赛跑 本题...

    MATLAB 仿真期末大作业 姓班学 名: 级: 号: 指导教师: 1 2014 春期末大作业题目 1:设单位负反馈控制系统前向通道传递函数由 G1 (s)和G2 (s) 串联,其......

    实验源程序: I=imread('E:\\MATLAB 大作业\\图片\\ca...

    MATLAB期末作业(MATLAB应用)_理学_高等教育_教育专区。MATLAB期末作业(MATLAB应用) Matlab 程序设计与应用 Matlab 在汽车振动分析中的应用 XXX (昆明理工大学交通工程......

    期末大作业报告 课程名称: 数字图像处理 设计题目: 车牌识别 学 院: 信息工...

    “MATLAB 基础及工程应用”课程期末大作业一、作业内容在 MATLAB / ...

    数学建模期末大作业论文题目:A 题 美好的一天组长:何曦(2014112739) 组员:李颖(...陈崇双 美好的一天摘要关键字:Dijkstra 算法 多目标规划 有向赋权图 MATLAB ......

    兰州理工大学线性系统理论期末MATLAB大作业_理学_高等教育_教育专区。线性系统理论的 Matlab 实践 1、在造纸流程中,投料箱应该把纸浆流变成 2cm 的射流,并均匀喷洒......

    = = 0.7200 = = 0.72 42.86 = 0.01680 = = 0.72×6.938 = 4.995 将理论 PID 参数带入 MATLAB 仿真框图: 显示结果: 可以看出,曲线超调量虽然很......

    《数字图像处理》期末大作业大作业题目及要求:一、题目: 本门课程的考核以作品形式进行。作品必须用 Matlab 完成。并提交相 关文档。 二、作品要求: 1、用 ......

    (二)原系统的稳定性和相关指标分析 2 计算机仿真期末大作业通过 matlab 绘制未校正系统的伯德图和单位阶跃响应曲线,对相关的性能 指标进行分析。未校正系统的伯德图......

    测试技术期末大作业_远程、网络教育_成人教育_教育专区。编辑文本 动态测试信号采...

    线性系统理论MATLAB大作业_工学_高等教育_教育专区。兰州理工大学线性系统理论MATLAB期末大作业完整版 兰州理工大学 2015 级线性系统理论大作业 线性系统理论 Matlab ......

    2014MATLAB大作业题目 1页 免费 Matlab大作业题目2016 4页 1下载券 2011MATLAB大作业-题目-... 7页 免费 MATLAB期末大作业 1页 5下载券 matlab程序大......

    二、要求: 1、期末大作业暨课程考核占期评成绩的 60%,请大家认真对待。 2、用 matlab 设计 GUI 界面(界面上要注明班级学号名字),调用后台 函数完成设计,函数......

    《网络教育应用基础》课程 2014-1 级期末大作业 友情提醒:本课程考试为大作...

    matlab数字图像处理 课程设计论文 期中大作业要点_其它_职业教育_教育专区。《数字图像处理》期中大作业 姓名: 学号: 序号: 钟涛 24102200147 23 南湖学院机电系 ......

    展开全文
  • matlab期末大作业.doc

    2021-04-23 14:12:25
    matlab期末大作业.doc MATLAB语言及控制系统仿真期末大作业姓名:熊睿班级:K0312417学号:K031241742日期:2014/10/18大作业题目:一、已知单位负反馈系统的开环传递函数为,K分别取0.5)10(5)(sKsG和3两种情况。...

    41528d3028836879cd698677c3999917.gifmatlab期末大作业.doc

    MATLAB语言及控制系统仿真期末大作业姓名:熊睿班级:K0312417学号:K031241742日期:2014/10/18大作业题目:一、已知单位负反馈系统的开环传递函数为,K分别取0.5)10(5)(sKsG和3两种情况。1、分别在MATLAB命令窗口或Simulink模型窗口,建立K取不同值时控制系统的模型;2、在第1问建立的模型基础上,要求分别在MATLAB命令窗口或Simulink模型窗口中绘制并观察该系统的单位阶跃响应曲线、单位斜坡响应曲线和单位加速度响应曲线;(注意:要求将K取不同值时系统的单位阶跃响应绘制在一张图中并进行必要的标注)3、计算两种K值所对应系统的时域性能指标(包括调节时间、上升时间、超调量、峰值时间);4、绘制系统的伯德图和奈奎斯特曲线;5、判断当K取7.8时系统的稳定性,如果不稳定,进行校正直到系统稳定为止。(提示:可使用rltool工具)要求:有详细的建模过程、绘图过程和分析过程,最后要求进行总结。二、写一份800字左右的MATLAB学习体会和总结。1、已知单位负反馈系统的开环传递函数为,K分别取0.5)10(5)(sKsG1、分别在MATLAB命令窗口或Simulink模型窗口,建立K取不同值时控制系统的模型;根据题目,在simulink中建立程序图,如图,利用Toworkspace将数据导入○1workspace中,在cammondwindow中用plot函数画出两个不同增益的系统的阶跃响应。如图○2命令窗口中的程序:plot(tout,Y,’r’,tout’Y2,’k’)图○101234567891000.511.5上上上上上上上上上上上上上K=0.5K=3图○22、在第1问建立的模型基础上,要求分别在MATLAB命令窗口或Simulink模型窗口中绘制并观察该系统的单位阶跃响应曲线、单位斜坡响应曲线和单位加速度响应曲线;(注意:要求将K取不同值时系统的单位阶跃响应绘制在一张图中并进行必要的标注)根据题目:在1中所创建的程序图的基础下,对K=0.5的系统分别接入单位阶跃、单位斜坡和单位加速度输入。得到图.○3图○3运行仿真后在commandwindow中键入:plot(tout,Y, r ,tout,Y2, b ,tout,Y3, k )即可得到图,在图中标注横纵坐标以及曲线标注。○4012345678910-5051015202530354045上上上上)上上上上上上上上上上上上上图○4同样当K=3时,得到的程序图和响应图为图、图。○5○6图○5012345678910-1001020304050上上上上上上上上上上上上上上上上上上图○63、计算两种K值所对应系统的时域性能指标(包括调节时间、上升时间、超调量、峰值时间);根据题意:画出阶跃响应曲线后(现将K=0.5和3的画在同一张图中),利用移动鼠标的方法,找到各个时间对应的时间点。然后求出上升时间、调节时间、峰值时间和超调量。01234567891000.511.5X:1.86Y:0.904X:0.1476Y:0.101X:0.678Y:1.429X:0.3253Y:0.109X:0.4317Y:0.909X:5.252Y:1K=3K=0.5上上上上上上上上上上上图○701234567891000.511.5X:2.234Y:0.9508X:2.853Y:0.9503图○8根据图、图中的信息,算出上升时间:K=0.5时,1.5347;K=3时,○7○80.2842调节时间:K=0.5时,2.234;K=3时,2.853峰值时间K=0.5时,5.252;K=3时,0.6678超调量K=0.5时,0;K=3时,42.9%。4、绘制系统的伯德图和奈奎斯特曲线;根据所给的传递函数以及增益,在commandwindow中写入下面的程序:>>G=zpk([],[0-5-10],50)G=50--------------s(s+5)(s+10)Continuous-timezero/pole/gainmodel.>>nyquist(G)>>holdon>>nyquist(6*G, r: )>>bode(G)>>holdon>>bode(6*G, r: )运行程序,然后我们得到bode图(图)、nyquist图(图)。○9○10-150-100-50050Magnitude(dB)10-1100101102103-270-225-180-135-90Phase(deg)BodeDiagramFrequency(rad/s)K=0.5K=3图○9-1.8-1.6-1.4-1.2-1-0.8-0.6-0.4-0.20-25-20-15-10-50510152025NyquistDiagramRealAxisImaginaryAxisK=0.5K=3图○105、判断当K取7.8时系统的稳定性,如果不稳定,进行校正直到系统稳定为止。(提示:可使用rltool工具)根据题意:当K=7.8时,我们在simulink中建立程序图,在示波器中观察可知系统不稳定,程序图和阶跃响应图如下。用Toworkspace将数据导入workspace中,然后画出校正前后的响应曲线。如图,可以看出在加入0.3*(1+0.23s)后系统由不稳定变得比较稳定。○1102468101214161820-1.5-1-0.500.511.522.533.5上上上上上上上上上上上上上上上上上上上图○11对于怎样找到比较好的校正条件,我们利用的是rltool根轨迹设计工具。具体过程如下:(1)、在commandwindow中写入以下程序:>>G=zpk([],[0-5-10],780)G=780--------------s(s+5)(s+10)Continuous-timezero/pole/gainmodel.>>rltool(G)运行程序将会出现根轨迹设计工具窗口,如图,然后点击Analysis,打○12开阶跃响应曲线,打开后我们发现响应曲线是发散的。那么为了使其稳定就要加入一个零点使其变得稳定。系统稳定后在控制窗口中打开compenstorEditor用鼠标拖动极点或着零点,观察compenstor栏的数值变化,并同时观察阶跃响应曲线的变化,当阶跃响应达到你想要的要求时,校正条件即为compentor栏显示的表达式。这里我选择0.3*(1+0.23s)。图○12总结:MATLAB的基本数列单位是矩阵,它的指令表达形式与数学,工程中常用的形式非常相似。故此用MATLAB来解决问题要比用C,C++等软件来的直接和方便。MATLAB突出的优点就是简洁。MATLAB相对于其他软件来说还有语言简洁紧凑,使用方便灵活,库函数运算符极其丰富,语法限制不严格,自由度高。图形功能强大。说到其超群的图形处理能力,就不得不说集成在MATLAB里的Sumulink仿真。Sumulink仿真为我们工科学生,特别是我们电气工程及其自动化学生提供非常大的便利,也让我们形象的认识系统的工作流程和计算方式,同时也形象便捷地展示了系统函数的图形。例如我们实验二中的封装等操作,

    展开全文
  • JAVA期末大作业

    2021-02-26 12:01:15
    JAVA期末大作业1.圆柱体:import java.util.*;public class cylinder {public static void main(String[] args) {double radius,height;final double PI=3.14;double area,volume;Scanner s=new Scanner(System.in);...

    JAVA期末大作业

    1.圆柱体:

    import java.util.*;

    public class cylinder {

    public static void main(String[] args) {

    double radius,height;

    final double PI=3.14;

    double area,volume;

    Scanner s=new Scanner(System.in);

    radius=s.nextDouble();

    height=s.nextDouble();

    area=2*PI*radius*radius+2*PI*radius*height;

    volume=PI*radius*radius*height;

    System.out.println("area="+area);

    System.out.println("volume="+volume);

    }

    }

    结果:

    9631b9568f9b1acdd25c2e125793df69.png

    2.heap:

    import java.util.*;

    public class heap {

    public static boolean isYearHeap(int x){

    if(x%4==0||x%400==0){

    return true;

    }else{

    return false;

    展开全文
  • 爬虫期末大作业

    2021-06-22 00:23:21
    期末大作业要求: 本次作业基于期中作业里面所爬出来的数据,主要是网页的展示界面,但是前端的要求变高了,就把上次的前端重新修改了下~ <!DOCTYPE html> <...meta name="viewport" content="width=...

    期末大作业要求:

    在这里插入图片描述

    本次作业基于期中作业里面所爬出来的数据,主要是网页的展示界面,但是前端的要求变高了,就把上次的前端重新修改了下~

    注册登录

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>注册界面</title>
        <style>
    * {
        margin: 0;
        padding: 0;
    }
    
    body {
        height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
        background: linear-gradient(45deg, rgb(181, 154, 254), rgb(245, 189, 253)) fixed;
    }
    
    .container {
        position: relative;
        width: 70rem;
    }
    
    .switch span {
        color: #ccc;
        font-size: 4rem;
        cursor: pointer;
    }
    
    .switch span.active {
        color: rgb(181, 154, 254);
    }
    
    .panel {
        width: 100%;
        position: absolute;
        right: 0;
        top: 0;
    
        display: flex;
        justify-content: center;
    }
    
    .form {
        width: 12rem;
        margin: 3rem 0 0;
    }
    
    .form .input {
        position: relative;
        opacity: 1;
        height: 2rem;
        width: 100%;
        margin: 2rem 0;
        transition: .4s;
    }
    
    .input input {
        outline: none;
        width: 100%;
        border: none;
        border-bottom: .1rem solid rgb(181, 154, 254);
        position: relative;
        line-height: 35px;
        background: transparent;
        z-index: 1;
    }
    
    .input label {
        position: absolute;
        left: 0;
        top: 20%;
        font-size: 1.2rem;
        color: rgb(129, 101, 207);
        transition: .3s;
    }   
    
    .hasValue ~ label, input:focus ~ label {
        top: -50%;
        font-size: .9rem;
    }
    
    .form span {
        display: block;
        color: rgb(110, 89, 167);
        font-size: .8rem;
        cursor: pointer;
    }
    
    .form button {
        border: none;
        outline: none;
        margin: 2.5rem 0 0;
        width: 100%;
        height: 3rem;
        border-radius: 3rem;
        background: linear-gradient(90deg, rgb(181, 154, 254), rgb(245, 189, 253));
        box-shadow: 0 0 8px rgb(181, 154, 254);
        cursor: pointer;
        color: white;
    }
    
    #live2dcanvas {
        border: 0 !important;
    }
        </style>
        <script src="https://cdn.staticfile.org/vue/2.6.9/vue.js"></script>
    </head>
    
    <body>
        <div id='app' class="container">
            <div class="panel">
                <div class="content login">
                    <div class="switch">
                        <span :class='{"active": active === "login"}' @click='go("login")'>登陆</span>
                        <span>/</span>
                        <span :class='{"active": active === "register"}' @click='go("register")'>注册</span>
                    </div>
                    <div class='form' id="fromLogin">
                        <template v-if='active === "register"'>
                            <div class="input"><input :class='{ hasValue: registerForm.email }' v-model='registerForm.email' type="text" name="email" id='email' /><label for="email">邮箱</label></div>
                            <div class="input"><input :class='{ hasValue: registerForm.Username }' v-model='registerForm.Username' type="text" name="Username" id="username" /><label for="username">用户名</label></div>
                            <div class="input"><input :class='{ hasValue: registerForm.Password }' v-model='registerForm.Password' type="password" name="Password" id="Password" /><label for="Password">密码</label></div>
                            <div class="input"><input :class='{ hasValue: registerForm.repeat }' v-model='registerForm.repeat' type="password" name="repeat" id="Passwordrepeat" /><label for="Passwordrepeat">重复密码</label></div>
                        </template>
    
                        <template v-if='active === "login"'>
                            <div class="input"><input :class='{ hasValue: loginForm.Username }' v-model='loginForm.Username' type="text" name="Username" id="username" /><label for="username">用户名</label></div>
                            <div class="input"><input :class='{ hasValue: loginForm.Password }' v-model='loginForm.Password' type="password" name="Password" id="Password" /><label for="Password">密码</label></div>
                        </template>
    
                        <span>忘记?</span>
    
                        <button type="submit" @click='submit'>登陆</button>
                    </div>
                </div>
            </div>
        </div>
    </body>
    
    <script>
    var vue = new Vue({
        el: '#app',
        data: {
            active: 'login',
            registerForm: { email: '', Username: '', Password: '', repeat: '', },
            loginForm: { Username: '', Password: '', },
        },
        methods: {
            go (type) {
                this.active = type
            },
            submit() {
                if (type === 'login') {
                    console.log('login', this.loginForm)
                } 
    
                if (type === 'register') {
                    console.log('register', this.registerForm)
                }
            }
        },
        beforeMount () {}
    })
    </script>
    
    </html>

    上面的代码是原来自己做的,后来老师发出来了示例,就把大部分改成了示例模板的样子。 

    <!DOCTYPE html>
    <html ng-app="login">
    <head>
        <meta charset="utf-8" />
        <title>Login</title>
        <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
        <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
        <script src="https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"></script>
        <script src="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/js/bootstrap.min.js"></script>
    <!--    <script src="../node_modules/angular/angular.min.js"></script>-->
        <script src="/angular/angular.min.js"></script>
    
    <!--    引入自己的样式与js-->
        <link rel="stylesheet" type="text/css" href="stylesheets/index.css">
        <script type="text/javascript" src="javascripts/index.js"></script>
        <script>
            var app = angular.module('login', []);
            app.controller('loginCtrl', function ($scope, $http, $timeout) {
    
                // 登录时,检查用户输入的账户密码是否与数据库中的一致
                $scope.check_pwd = function () {
                    var data = JSON.stringify({
                        username: $scope.username,
                        password: $scope.password
                    });
                    $http.post("/users/login", data)
                        .then(
                        function (res) {
                            if(res.data.msg=='ok') {
                                window.location.href='/news.html';
                            }else{
                                $scope.msg=res.data.msg;
                            }
                        },
                            function (err) {
                            $scope.msg = err.data;
                        });
    
                };
                //增加注册用户
                $scope.doAdd = function () {
                    // 检查用户注册时,输入的两次密码是否一致
                    if($scope.add_password!==$scope.confirm_password){
                        // $timeout(function () {
                        //     $scope.msg = '两次密码不一致!';
                        // },100);
                        $scope.msg = '两次密码不一致!';
                    }
                    else {
                        var data = JSON.stringify({
                            username: $scope.add_username,
                            password: $scope.add_password
                        });
                        $http.post("/users/register", data)
                            .then(function (res) {
                                if(res.data.msg=='成功注册!请登录') {
                                    $scope.msg=res.data.msg;
                                    $timeout(function () {
                                        window.location.href='index.html';
                                    },2000);
    
                                } else {
                                    $scope.msg = res.data.msg;
                                }
                            }, function (err) {
                                $scope.msg = err.data;
                            });
                    }
                };
            });
        </script>
    </head>
    <body>
    <div class="container" ng-controller="loginCtrl">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">
                <div class="panel panel-login">
                    <div class="panel-heading">
                        <div class="row">
                            <div class="col-xs-6">
                                <a href="#" class="active" id="login-form-link">Login</a>
                            </div>
                            <div class="col-xs-6">
                                <a href="#" id="register-form-link">Register</a>
                            </div>
                        </div>
                        <hr>
                    </div>
                    <div class="panel-body">
                        <div class="row">
                            <div class="col-lg-12">
                                <form id="login-form" method="post" role="form" style="display: block;">
    <!--                                登陆部分-->
                                    <div class="form-group">
                                        <input ng-model="username" tabindex="1" class="form-control" placeholder="Username" value=""/>
                                    </div>
                                    <div class="form-group">
                                        <input type="password" ng-model="password" tabindex="2" class="form-control" placeholder="Password">
                                    </div>
    <!--                                <div class="form-group text-center">-->
    <!--                                    <input type="checkbox" tabindex="3" class="" name="remember" id="remember">-->
    <!--                                    <label for="remember"> Remember Me</label>-->
    <!--                                </div>-->
    
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-sm-6 col-sm-offset-3">
                                                <button id="login-submit" tabindex="4" class="form-control btn btn-login" ng-click="check_pwd()">LOG IN</button>
                                            </div>
                                        </div>
                                    </div>
                                </form>
                                <form id="register-form" method="post" role="form" style="display: none;">
                                    <div class="form-group">
                                        <input ng-model="add_username" tabindex="1" class="form-control" placeholder="Username" value=""/>
                                    </div>
    
                                    <div class="form-group">
                                        <input type="password" ng-model="add_password" tabindex="2" class="form-control" placeholder="Password">
                                    </div>
    
                                    <div class="form-group">
                                        <input type="password" ng-model="confirm_password" tabindex="2" class="form-control" placeholder="Confirm Password">
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-sm-6 col-sm-offset-3">
                                                <button tabindex="4" class="form-control btn btn-register" ng-click="doAdd()">Register Now</button>
                                            </div>
                                        </div>
                                    </div>
    
                                </form>
    
                            </div>
                        </div>
                    </div>
    <!--                <div class="alert alert-warning alert-dismissible fade show">-->
    <!--                    <button type="button" class="close" data-dismiss="alert">&times;</button>-->
    <!--                    <strong>警告!</strong>{{msg}}-->
    <!--                </div>-->
                </div>
                <div class="alert alert-warning" ng-if="msg && msg!='ok'">
                    <a href="#" class="close" data-dismiss="alert">&times;</a>
                    <strong>警告!</strong>{{msg}}
                </div>
            </div>
        </div>
    </div>
    </body>
    

    整个是一个注册和登录界面的前端代码,本来想贴图但是发现怎么也贴不上去,就罢了。

    下面是成果展示:(原来自己的)

    修改老师的之后:

    (上面显示格式有点小错误,但是功能都可以实现) 

    为了使登录用户有效,非注册用户不能查询,我们就要再建立一个用来储存用户信息的表格来调用,在vscode里面创建的代码如下:

    CREATE TABLE `user` (
      `mail` varchar(200) DEFAULT NULL,
      `name` varchar(200) DEFAULT NULL,
      `password` varchar(200) DEFAULT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    还有一个记录用户操作的表格:

    CREATE TABLE `crawl`.`user_s_action` (
      `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
      `username` VARCHAR(45) NOT NULL,
      `request_time` VARCHAR(45) NOT NULL,
      `request_method` VARCHAR(20) NOT NULL,
      `request_url` VARCHAR(300) NOT NULL,
      `status` int(4),
      `remote_addr` VARCHAR(100) NOT NULL,
        PRIMARY KEY (`id`))
    ENGINE=InnoDB DEFAULT CHARSET=utf8;

    后端的注册和登录路由(几乎不用改):

    var mysql = require('mysql');
    var mysqlConf = require('../conf/mysqlConf');
    var userSqlMap = require('./userSqlMap');
    var pool = mysql.createPool(mysqlConf.mysql);
    // 使用了连接池,重复使用数据库连接,而不必每执行一次CRUD操作就获取、释放一次数据库连接,从而提高了对数据库操作的性能。
     
    module.exports = {
        add: function (user, callback) {
            pool.query(userSqlMap.add, [user.username, user.password], function (error, result) {
                if (error) throw error;
                callback(result.affectedRows > 0);
            });
        },
        getByUsername: function (username, callback) {
            pool.query(userSqlMap.getByUsername, [username], function (error, result) {
                if (error) throw error;
                callback(result);
            });
        },
     
    };
    var express = require('express');
    var router = express.Router();
    var userDAO = require('../dao/userDAO');
     
    router.post('/login', function(req, res) {
      var username = req.body.username;
      var password = req.body.password;
      // var sess = req.session;
     
      userDAO.getByUsername(username, function (user) {
        if(user.length==0){
          res.json({msg:'用户不存在!请检查后输入'});
     
        }else {
          if(password===user[0].password){
            req.session['username'] = username;
            res.cookie('username', username);
            res.json({msg: 'ok'});
            // res.json({msg:'ok'});
          }else{
            res.json({msg:'用户名或密码错误!请检查后输入'});
          }
        }
      });
    });
     
    /* add users */
    router.post('/register', function (req, res) {
      var add_user = req.body;
      // 先检查用户是否存在
      userDAO.getByUsername(add_user.username, function (user) {
        if (user.length != 0) {
          // res.render('index', {msg:'用户不存在!'});
          res.json({msg: '用户已存在!'});
        }else {
          userDAO.add(add_user, function (success) {
            res.json({msg: '成功注册!请登录'});
          })
        }
      });
     
    });
     
    // 退出登录
    router.get('/logout', function(req, res, next){
      // 备注:这里用的 session-file-store 在destroy 方法里,并没有销毁cookie
      // 所以客户端的 cookie 还是存在,导致的问题 --> 退出登陆后,服务端检测到cookie
      // 然后去查找对应的 session 文件,报错
      // session-file-store 本身的bug
     
      req.session.destroy(function(err) {
        if(err){
          res.json('退出登录失败');
          return;
        }
     
        // req.session.loginUser = null;
        res.clearCookie('username');
        res.json({result:'/index.html'});
      });
    });
     
    module.exports = router;

     后端新闻页的接口路由:

    var mysql = require('mysql');
    var mysqlConf = require('../conf/mysqlConf');
    var pool = mysql.createPool(mysqlConf.mysql);
    // 使用了连接池,重复使用数据库连接,而不必每执行一次CRUD操作就获取、释放一次数据库连接,从而提高了对数据库操作的性能。
     
    module.exports = {
        query_noparam :function(sql, callback) {
            pool.getConnection(function(err, conn) {
                if (err) {
                    callback(err, null, null);
                } else {
                    conn.query(sql, function(qerr, vals, fields) {
                        conn.release(); //释放连接
                        callback(qerr, vals, fields); //事件驱动回调
                    });
                }
            });
        },
        search :function(searchparam, callback) {
            // 组合查询条件
            var sql = 'select * from fetches ';
     
            if(searchparam["t2"]!="undefined"){
                sql +=(`where title like '%${searchparam["t1"]}%' ${searchparam['ts']} title like '%${searchparam["t2"]}%' `);
            }else if(searchparam["t1"]!="undefined"){
                sql +=(`where title like '%${searchparam["t1"]}%' `);
            };
     
            if(searchparam["t1"]=="undefined"&&searchparam["t2"]=="undefined"&&searchparam["c1"]!="undefined"){
                sql+='where ';
            }else if(searchparam["t1"]!="undefined"&&searchparam["c1"]!="undefined"){
                sql+='and ';
            }
     
            if(searchparam["c2"]!="undefined"){
                sql +=(`content like '%${searchparam["c1"]}%' ${searchparam['cs']} content like '%${searchparam["c2"]}%' `);
            }else if(searchparam["c1"]!="undefined"){
                sql +=(`content like '%${searchparam["c1"]}%' `);
            }
     
            if(searchparam['stime']!="undefined"){
                if(searchparam['stime']=="1"){
                    sql+='ORDER BY publish_date ASC ';
                }else {
                    sql+='ORDER BY publish_date DESC ';
                }
            }
     
            sql+=';';
            pool.getConnection(function(err, conn) {
                if (err) {
                    callback(err, null, null);
                } else {
                    conn.query(sql, function(qerr, vals, fields) {
                        conn.release(); //释放连接
                        callback(qerr, vals, fields); //事件驱动回调
                    });
                }
            });
        },
     
     
    };
    var newsDAO = require('../dao/newsDAO');
    var express = require('express');
    var router = express.Router();
     
    var mywordcutModule = require('./wordcut.js');
    var myfreqchangeModule = require('./freqchange.js');
     
     
    router.get('/search', function(request, response) {
        console.log(request.session['username']);
        //sql字符串和参数
        if (request.session['username']===undefined) {
            // response.redirect('/index.html')
            response.json({message:'url',result:'/index.html'});
        }else {
            var param = request.query;
            newsDAO.search(param,function (err, result, fields) {
                response.json({message:'data',result:result});
            })
        }
    });
     
    router.get('/column', function(request, response) {
        //sql字符串和参数
        console.log(request.session['username']);
     
        //sql字符串和参数
        if (request.session['username']===undefined) {
            // response.redirect('/index.html')
            response.json({message:'url',result:'/index.html'});
        }else {
            var fetchSql = "select publish_date as x,count(publish_date) as y from fetches group by publish_date order by publish_date;";
            newsDAO.query_noparam(fetchSql, function (err, result, fields) {
                response.writeHead(200, {
                    "Content-Type": "application/json",
                    "Cache-Control": "no-cache, no-store, must-revalidate",
                    "Pragma": "no-cache",
                    "Expires": 0
                });
                response.write(JSON.stringify({message:'data',result:result}));
                response.end();
            });
        }
    });
     
     
    router.get('/pie', function(request, response) {
        //sql字符串和参数
        console.log(request.session['username']);
     
        //sql字符串和参数
        if (request.session['username']===undefined) {
            // response.redirect('/index.html')
            response.json({message:'url',result:'/index.html'});
        }else {
            var fetchSql = "select author as x,count(author) as y from fetches group by author;";
            newsDAO.query_noparam(fetchSql, function (err, result, fields) {
                response.writeHead(200, {
                    "Content-Type": "application/json",
                    "Cache-Control": "no-cache, no-store, must-revalidate",
                    "Pragma": "no-cache",
                    "Expires": 0
                });
                response.write(JSON.stringify({message:'data',result:result}));
                response.end();
            });
        }
    });
     
    router.get('/line', function(request, response) {
        //sql字符串和参数
        console.log(request.session['username']);
     
        //sql字符串和参数
        if (request.session['username']===undefined) {
            // response.redirect('/index.html')
            response.json({message:'url',result:'/index.html'});
        }else {
            var keyword = '价格'; //也可以改进,接受前端提交传入的搜索词
            var fetchSql = "select content,publish_date from fetches where content like'%" + keyword + "%' order by publish_date;";
            newsDAO.query_noparam(fetchSql, function (err, result, fields) {
                response.writeHead(200, {
                    "Content-Type": "application/json",
                    "Cache-Control": "no-cache, no-store, must-revalidate",
                    "Pragma": "no-cache",
                    "Expires": 0
                });
                response.write(JSON.stringify({message:'data',result:myfreqchangeModule.freqchange(result, keyword)}));
                response.end();
            });
        }
    });
     
                response.write(JSON.stringify({message:'data',result:mywordcutModule.wordcut(result)}));//返回处理过的数据
                response.end();
            });
        }
    });
     
     
    module.exports = router;

    这些需要在mysql里面再次进行操作,这个我在期中作业里面已经展示过了,这里就不再赘述。具体可以参考:(5条消息) 2021-04-27_A singirle。的博客-CSDN博客 

    其中还有很多是直接应用了老师的代码然后稍加修改的。

    查询词(满足bool表达式)

     增加的代码如下:

    满足布尔类型

    if(typeof title1=="undefined" && typeof title2!="undefined" && title2.length>0){
                title1 = title2;
            }
            if(typeof content1=="undefined" && typeof content2!="undefined" && content2.length>0){
                content1 = content2;
            }
    

    用户直接搜索:

    var myurl = `/news/search?t1=${title1}&ts=${selectTitle}&t2=${title2}&c1=${content1}&cs=${selectContent}&c2=${content2}&stime=${sorttime}`;
    

    搜索界面的网页展示如下(在期中前端代码上做了一些小的修改,具体参考上面的期中作业链接):

     最后通过搜索的界面展示(包括分页):

    老师的示例给出来后就重新弄了个:

    前端代码:

    <form class="form-horizontal" role="form">
        <div class="row" style="margin-bottom: 10px;">
            <label class="col-lg-2 control-label">标题关键字</label>
            <div class="col-lg-3">
                <input type="text" class="form-control" placeholder="标题关键字" ng-model="$parent.title1">
            </div>
            <div class="col-lg-1">
                <select class="form-control" autocomplete="off" ng-model="$parent.selectTitle">
                    <option selected="selected">AND</option>
                    <option>OR</option>
    
                </select>
            </div>
            <div class="col-lg-3">
                <input type="text" class="form-control" placeholder="标题关键字" ng-model="$parent.title2">
            </div>
        </div>
    
    
    
        <div class="row" style="margin-bottom: 10px;">
            <label class="col-lg-2 control-label">内容关键字</label>
            <div class="col-lg-3">
                <input type="text" class="form-control" placeholder="内容关键字" ng-model="$parent.content1">
            </div>
            <div class="col-lg-1">
                <select class="form-control" autocomplete="off" ng-model="$parent.selectContent">
                    <option selected="selected">AND</option>
                    <option>OR</option>
                </select>
            </div>
            <div class="col-lg-3">
                <input type="text" class="form-control" placeholder="内容关键字" ng-model="$parent.content2">
            </div>
        </div>
    
    
        <div class="form-group">
            <div class="col-md-offset-9">
                <button type="submit" class="btn btn-default" ng-click="search()">查询</button>
            </div>
        </div>
    
    </form>
    
    <!--显示查询结果-->
    <div ng-show="isisshowresult">
    
        <table class="table table-striped">
            <thead>
                <tr>
                    <td>序号</td>
                    <td>标题</td>
                    <td>作者</td>
    <!--                <td>内容</td>-->
                    <td>关键词</td>
                    <td>链接</td>
                    <td>发布时间</td>
                </tr>
    
            </thead>
            <tbody>
            <tr ng-repeat="(key, item) in items">
                <td>{{index+key}}</td>
                <td>{{item.title}}</td>
                <td>{{item.author}}</td>
    <!--            <td>{{item.content}}</td>-->
                <td>{{item.keywords}}</td>
                <td>{{item.url}}</td>
                <td>{{item.publish_date}}</td>
            </tr>
    
            </tbody>
        </table>
    
        <div class="row">
    <!--        <div class="form-group">-->
            <div class="pull-left" style="margin-top: 12px;">
                <button type="submit" class="btn btn-primary" ng-click="searchsortASC()" >发布时间升序</button>
                <button type="submit" class="btn btn-primary" ng-click="searchsortDESC()">发布时间降序</button>
            </div>
    <!--        </div>-->
            <div class="pull-right">
                <nav>
                    <ul class="pagination">
                        <li>
                            <a ng-click="Previous()" role="button"><span role="button">上一页</span></a>
                        </li>
                        <li ng-repeat="page in pageList" ng-class="{active:isActivePage(page)}" role="button">
                            <a ng-click="selectPage(page)" >{{ page }}</a>
                        </li>
                        <li>
                            <a ng-click="Next()" role="button"><span role="button">下一页</span></a>
                        </li>
                    </ul>
                </nav>
            </div>
        </div>
    </div>
    

    分页js代码:

        $scope.initPageSort=function(item){
            $scope.pageSize=5;  //每页显示的数据量,可以随意更改
            $scope.selPage = 1;
            $scope.data = item;
            $scope.pages = Math.ceil($scope.data.length / $scope.pageSize); //分页数
            $scope.pageList = [];//最多显示5页,后面6页之后不会全部列出页码来
            $scope.index = 1;
            // var page = 1;
            // for (var i = page; i < $scope.pages+1 && i < page+5; i++) {
            //     $scope.pageList.push(i);
            // }
            var len = $scope.pages> 5 ? 5:$scope.pages;
            $scope.pageList = Array.from({length: len}, (x,i) => i+1);
     
            //设置表格数据源(分页)
            $scope.items = $scope.data.slice(0, $scope.pageSize);
     
        };
     
        //打印当前选中页
        $scope.selectPage = function (page) {
            //不能小于1大于最大(第一页不会有前一页,最后一页不会有后一页)
            if (page < 1 || page > $scope.pages) return;
            //最多显示分页数5,开始分页转换
            var pageList = [];
            if(page>2){
                for (var i = page-2; i <= $scope.pages && i < page+3; i++) {
                    pageList.push(i);
                }
            }else {
                for (var i = page; i <= $scope.pages && i < page+5; i++) {
                    pageList.push(i);
                }
            }
     
            $scope.index =(page-1)*$scope.pageSize+1;
            $scope.pageList = pageList;
            $scope.selPage = page;
            $scope.items = $scope.data.slice(($scope.pageSize * (page - 1)), (page * $scope.pageSize));//通过当前页数筛选出表格当前显示数据
            console.log("选择的页:" + page);
        };
     
        //设置当前选中页样式
        $scope.isActivePage = function (page) {
            return $scope.selPage == page;
        };
        //上一页
        $scope.Previous = function () {
            $scope.selectPage($scope.selPage - 1);
        };
        //下一页
        $scope.Next = function () {
            $scope.selectPage($scope.selPage + 1);
        };
     
        $scope.searchsortASC = function () {
            $scope.sorttime = '1';
            $scope.search();
        };
        $scope.searchsortDESC = function () {
            $scope.sorttime = '2';
            $scope.search();
        };

    用Echarts实现数据分析表:

    词云:

    词云的实现我参考了很多代码,最后还是没做出来,但是基本过程总结如下:

    首先要安装一些库,例如 jieba、matplotlib、wordcloud等等,在命令提示行里面输入pip install 下载就可以了!

    参考网页:https://www.cnblogs.com/djdjdj123/p/12153603.html

    我挑出了一则新闻内容做了关键字(自己挑选出来)的词云,内容如下:

    英国泰特美术馆所藏意大利艺术家阿梅迪奥·莫迪利亚尼( Amedeo Modigliani)一幅1917年作品《女孩肖像》背后,最近通过研究后被认为藏着另一位女子的肖像。虽然画布表面所绘模特身份未知,但被覆盖的肖像基本被认为是莫迪利亚尼的前情人、英国女诗人比阿特丽斯·黑斯廷斯(Beatrice Hastings)。
    伦敦大学的两位博士候选人利用X射线和人工智能对莫迪利亚尼画作的分析,试图借助“算法”和3D技术,以油画的纹理和笔触还原被覆盖的肖像。这再次勾起了人们对莫迪利亚尼和黑斯廷斯的兴趣,他反复画她,尽管这对情侣因为酒后争吵和凶狠的厮打在巴黎艺术圈臭名昭著,但不得不说她既是他的魔鬼,也是他的缪斯。
    1906年,22岁的莫迪利亚尼初抵巴黎,这时候的巴黎正是艺术蓬勃发展的时候,以毕加索为首的立体派、马蒂斯的野兽派、超现实主义、表现主义、未来派……各种艺术流派热闹非凡,巴黎的激情激发了他的创作欲望,却也让他埋没在这诸多天才中。
    由于体弱多病,加之巴黎生活的困难,莫迪利亚尼渐渐形成了酗酒的习惯,在穷苦和麻醉中过着颓废的生活。

     利用凡科的最终制作展示成果如下:(聊表观赏)

    折线图:

    $scope.line = function () {
            $scope.isShow = false;
            $http.get("/news/line").then(
                function (res) {
                    if(res.data.message=='url'){
                        window.location.href=res.data.result;
                    }else {
                        var myChart = echarts.init(document.getElementById("main1"));
                        option = {
                            title: {
                                text: '"疫情"该词在新闻中的出现次数随时间变化图'
                            },
                            xAxis: {
                                type: 'category',
                                data: Object.keys(res.data.result)
                            },
                            yAxis: {
                                type: 'value'
                            },
                            series: [{
                                data: Object.values(res.data.result),
                                type: 'line',
                                itemStyle: {normal: {label: {show: true}}}
                            }],
    
                        };
    
                        if (option && typeof option === "object") {
                            myChart.setOption(option, true);
                        }
                    }
    
                });
        };

    柱状图:

    $scope.histogram = function () {
            $scope.isShow = false;
            $http.get("/news/column")
                .then(
                    function (res) {
    
                        if(res.data.message=='url'){
                            window.location.href=res.data.result;
                        }else {
    
                            // var newdata = washdata(data);
                            let xdata = [], ydata = [], newdata;
    
                            var pattern = /\d{4}-(\d{2}-\d{2})/;
                            res.data.result.forEach(function (element) {
                                // "x":"2020-04-28T16:00:00.000Z" ,对x进行处理,只取 月日
                                xdata.push(pattern.exec(element["x"])[1]);
                                ydata.push(element["y"]);
                            });
                            newdata = {"xdata": xdata, "ydata": ydata};
    
                            var myChart = echarts.init(document.getElementById('main1'));
    
                            // 指定图表的配置项和数据
                            var option = {
                                title: {
                                    text: '新闻发布数(以时间为基准)'
                                },
                                tooltip: {},
                                xAxis: {
                                    data: newdata["xdata"]
                                },
    
                                yAxis: {},
                                series: [{
                                    name: '新闻数目',
                                    type: 'bar',
                                    data: newdata["ydata"]
                                }]
                            };
                            // 使用刚指定的配置项和数据显示图表。
                            myChart.setOption(option);
                        }
                    },
                    function (err) {
                        $scope.msg = err.data;
                    });
    
        };

     饼图:

    
        $scope.pie = function () {
            $scope.isShow = false;
            $http.get("/news/pie").then(
                function (res) {
                    if(res.data.message=='url'){
                        window.location.href=res.data.result;
                    }else {
                        let newdata = [];
    
                        var pattern = /责任编辑:(.+)/;//匹配名字
                        res.data.result.forEach(function (element) {
                            // "x":  责任编辑:李夏君 ,对x进行处理,只取 名字
                            newdata.push({name: pattern.exec(element["x"])[1], value: element["y"]});
    
                        });
    
                        var myChart = echarts.init(document.getElementById('main1'));
                        var app = {};
                        option = null;
                        // 指定图表的配置项和数据
                        var option = {
                            title: {
                                text: '作者发布新闻数量',
                                x: 'center'
                            },
                            tooltip: {
                                trigger: 'item',
                                formatter: "{a} <br/>{b} : {c} ({d}%)"
                            },
                            legend: {
                                orient: 'vertical',
                                left: 'left',
                                // data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
                            },
                            series: [
                                {
                                    name: '访问来源',
                                    type: 'pie',
                                    radius: '55%',
                                    center: ['50%', '60%'],
                                    data: newdata,
                                    itemStyle: {
                                        emphasis: {
                                            shadowBlur: 10,
                                            shadowOffsetX: 0,
                                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                                        }
                                    }
                                }
                            ]
                        };
                        // myChart.setOption(option);
                        app.currentIndex = -1;
    
                        setInterval(function () {
                            var dataLen = option.series[0].data.length;
                            // 取消之前高亮的图形
                            myChart.dispatchAction({
                                type: 'downplay',
                                seriesIndex: 0,
                                dataIndex: app.currentIndex
                            });
                            app.currentIndex = (app.currentIndex + 1) % dataLen;
                            // 高亮当前图形
                            myChart.dispatchAction({
                                type: 'highlight',
                                seriesIndex: 0,
                                dataIndex: app.currentIndex
                            });
                            // 显示 tooltip
                            myChart.dispatchAction({
                                type: 'showTip',
                                seriesIndex: 0,
                                dataIndex: app.currentIndex
                            });
                        }, 1000);
                        if (option && typeof option === "object") {
                            myChart.setOption(option, true);
                        }
                        ;
                    }
                });
        };

    只能根据代码来修改一下做出来了,但是最后实现不了,所以自己输入了数据做了其它两个图

    option = {
        tooltip: {
            trigger: 'item',
            formatter: '{a} <br/>{b}: {c} ({d}%)'
        },
        legend: {
            orient: 'vertical',
            left: 10,
            data: [ '北京','广东','河北','河南','黑龙江','湖北','湖南','江苏','山东','山西','上海','四川','云南','浙江','重庆']
        },
        series: [
            {
                name: '报名人数',
                type: 'pie',
                radius: ['50%', '70%'],
                avoidLabelOverlap: false,
                label: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    label: {
                        show: true,
                        fontSize: '30',
                        fontWeight: 'bold'
                    }
                },
                labelLine: {
                    show: false
                },
                data: [
                    {value: 4.9, name: '北京'},
                    {value: 78.3, name: '广东'},
                    {value: 63.4, name: '河北'},
                    {value: 125, name: '河南'},
                    {value: 21.1, name: '黑龙江'},
                    {value: 37.4, name: '湖北'},
                    {value: 56.8, name: '湖南'},
                    {value: 34.2, name: '江苏'},
                    {value: 79.5, name: '山东'},
                    {value: 32.56, name: '山西'},
                    {value: 7, name: '上海'},
                    {value: 69, name: '四川'},
                    {value: 32.59, name: '陕西'},
                    {value: 31.5, name: '浙江'},
                    {value: 24.75, name: '重庆'},
                ]
            }
        ]
    };

    option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'cross',
                crossStyle: {
                    color: '#999'
                }
            }
        },
        toolbox: {
            feature: {
                dataView: {show: true, readOnly: false},
                magicType: {show: true, type: ['line', 'bar']},
                restore: {show: true},
                saveAsImage: {show: true}
            }
        },
        legend: {
            data: ['当地接种比率', '接种新冠疫苗人数']
        },
        xAxis: [
            {
                type: 'category',
                data: ['广东', '北京', '海南', '安徽', '山东', '河南', '云南'],
                axisPointer: {
                    type: 'shadow'
                }
            }
        ],
        yAxis: [
            {
                type: 'value',
                name: '百分比(%)',
                min: 0,
                max: 100,
                interval: 10,
                axisLabel: {
                    formatter: '{value} %'
                }
            },
            {
                type: 'value',
                name: '人数(万人)',
                min: 0,
                max: 3000,
                interval: 500,
                axisLabel: {
                    formatter: '{value} 万人'
                }
            }
        ],
        series: [
            {
                name: '当地接种比率',
                type: 'bar',
                data: [32.97, 81.31, 82.58, 31.01, 13.19, 18.01, 97.4]
            },
            {
                name: '接种新冠疫苗人数',
                type: 'line',
                yAxisIndex: 1,
                data: [2339.11, 1557.8, 637.48, 1172.7381, 801.48, 1020.4, 396.3]
            }
        ]
    };

    到这里我的期末展示就全部结束啦~

    web的设计还是很有趣的,只是学不会罢了哎!

    展开全文
  • web编程期末大作业

    2021-06-26 20:06:09
    web编程期末大作业
  • 本学期选了java选修,期末大作业面向GitHub编程写了个中国跳棋。代码中还有写小bug,不过懒得调了...1.游戏介绍中国跳棋,简称跳棋,是一种可以让二至六人一起玩的棋,棋盘为六角星形状,棋子一般分为六种颜色,每种...
  • 大数据期末大作业

    2020-12-20 22:32:46
    106邱子津 大数据期末大作业 把本地文件系统的“/home/hadoop/lgw.txt”上传到HDFS中的当前用户目录的input目录下,也就是上传到HDFS的“/user/hadoop/input/”目录下: ./bin/hdfs dfs -put /home/hadoop/lgw.txt ...
  • Linux天室系统期末大作业NANCHANG UNIVERSITY《Linux系统编程》课程设计题 目: Linux聊天室报告学 院: 软件学院专 业: 计算机软件班 级: 计软121班姓 名: 李俊楠起讫日期: 2014. 12. 22—2015.1. 10任课教师: ...
  • PAGE2013—2014第2学期《Linux操作系统》期末大作业题目:Linux进程控制专业:班级: 姓名: 学号: 序号评分项目满分得分1设计分析合理性152设计方案正确性、可行性、创造性303设计结果正确性404设计报告的规范性15...
  • 拖了好久终于想起来把WEB的期末作业传上来,系统里面的所有图片素材都来自于阴阳师官网。 大一上金老师的前端开发技术做的作业就是阴阳师主题了,大三的WEB开发还是阴阳师主题,真是不忘初心呢(虽然已经把阴阳师...
  • 《Java语言程序设计期末大作业》由会员分享,可在线阅读,更多相关《Java语言程序设计期末大作业(3页珍藏版)》请在人人文库网上搜索。1、Java语言程序设计公选课期末大作业学号: 姓名: 分数: 一、 程序分析题1、...
  • Web编程期末大作业

    2021-06-10 09:03:54
    Web编程期末大作业 作业要求 一、实现用户登录和注册的功能 用户只有注册账号登录系统之后才能得到新闻爬虫网站中的数据。
  • 网页设计期末大作业报告.南开大学滨海学院本 科 生 论 文(设 计)中文题目:外文题目:Website design and implementation based on Web development学 号:姓 名:年 级: 级系 别: 计算机科学系专 业:(数字仿真与...
  • HTML期末大作业 ~ 学生HTML个人网页作业作品下载 ~ 个人主页博客网页设计制作 ~大学生个人网站作业模板 ~ 简单个人网页制作 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手...
  • UML期末大作业——《UML系统分析与设计》

    千次阅读 多人点赞 2021-05-29 22:26:30
    步入正题,简单介绍一下自己的UML期末作业: 作业要求: (这是本小白UML期末作业的要求,不过,好像不同的老师有不同的要求…) 内容 以一个实际的应用系统为对象,完成以下内容: 对系统进行概述 该系统是...
  • 问题描述 (对项目背景、内容进行详细阐述) 概要设计 (本部分)(本部分)(本部分)(本部分)() java Progrmming – final Report 2014学年-java程序设计-期末大作业报告 2 School of Software, Yunnan ...
  • HTML5期末大作业:学校网站设计——安徽开放大学(16页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 ...
  • HTML期末大作业 ~ 大学生网页设计作业成品 ~ HTML+CSS+JS网页设计期末课程大作业 ~ web前端开发技术 ~ web课程设计网页规划与设计 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业...
  • 一、单选题(共50 道试题,共100 分。)1. 如果从第2张幻灯片跳转到第8张幻灯片应使用“幻灯片放映”选项卡中的(A)A. 自定义幻灯片放映B. 录制幻灯片演示C. 广播幻灯片D. 排练计时满分:2 分2. 使用Word拆分窗口的功能...
  • HTML期末大作业~ 学生HTML个人网页作业作品下载 ~个人主页博客网页设计制作 ~大学生个人网站作业模板 ~简单个人网页制作 ~ 简洁的个人博客网站前台页面HTML模板7个页面 临近期末, 你还在为HTML网页设计结课作业,...
  • 网页设计期末大作业小结

    千次阅读 多人点赞 2020-12-28 14:56:51
    学校学的是基础的网页设计知识,对这次期末大作业作一个梳理用到html和css,涉及到少部分的js。 首页轮播图无箭头 /*图片轮播*/ *{ margin:0; /*清除默认边距*/ padding:0; } ul,li{ list-style: none;/*无修饰*/...
  • Linux期末大作业.doc

    2021-05-16 07:18:28
    Linux期末大作业简单的IRC聊天程序—— Linux课程期末实验第一章 概述【实验目的】综合应用Linux系统下的网络编程技术,使用C语言,结合软件工程思想,设计并实现一个简单的IRC聊天程序,具有服务器端和客户端,可以...
  • HTML5期末大作业:个人摄影网站设计——婚纱摄影(28页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 ...
  • 网页期末大作业

    千次阅读 多人点赞 2020-12-26 12:33:40
    p> <img src="images/mdl6.jpg" alt="" class="article_img"> ❸ 比口感h3> 吃起来,麦麦脆汁鸡明显要比麦辣鸡更“汁”span>,但这不排除因为个头更肉更多的原因,鸡腿肉本身就会比鸡翅肉的肉汁更多。p> 麦麦脆汁...
  • web期末大作业

    2021-06-30 18:02:55
    建新项目 建立两个两个MySQL表,user和user_action,分别储存用户信息和操作日志。 所有项目总览 DAO文件:对数据库进行访问 Public中,index.html是登陆和注册页面,news.html是登陆后跳转的页面,search.html是... ... ...
  • 安卓期末大作业Android studio

    万次阅读 热门讨论 2021-07-19 19:00:38
    安卓期末大作业Android studio (资源下载链接在文末) 1.用户点击加号按钮输入单词,键盘会自动弹出并焦点在输入框,用户输入英文和中文释义,单词本上将在最上面显示这个单词,并会有下拉动画。用户可以通过上方放...
  • 微信小程序期末大作业-蔬菜商城 在这个小程序可以 购买各种蔬菜,有四个底部导航栏,轮播图,动态文字,首页,订单,个人中心,分类,购物车五个导航,时候初学者学习使用,如下图所示: 资源下载链接:...
  • HTML5期末大作业:管理系统网站设计——企业网站后台管理系统(35页) HTML+CSS+JS网页设计期末课程大作业 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,017
精华内容 10,806
关键字:

期末大作业