《ASP.NET与Web程序开发》实习报告

时间:2024.4.13

《ASP.NET与Web程序开发》

教学实习报告


1  教学实习的内容

    随着Internet技术的发展,开发基于Web的管理信息系统,最大限度的利用高校现有资源,提高教学质量是高等院校教学上的新研究课题。目前,各高校校园网络已经建成,通过校园网可以实现点播教程、教师辅导、在线自测、在线考试等功能。

在ASP.NET课程设计案例为在线考试系统。该系统拟用微软公司的Visual Studio.NET的集成开发环境使用先进的ASP.NET技术,结合SQL Server数据库管理系统,开发基于Web的在线考试系统。

在线考试系统将传统教育理论与基于Web的计算机协同工作软件系统有机结合起来,以满足各种课程的考试需求:该系统将教育理论、经验和方法引入系统内部,在完成网络考试任务的同时还获得了科学的量化指标,可以协助考试组织结构对考试进行科学的评价和分析;在线考试系统将实现网络组卷、在线考试、网上判分、在线统计的那个各项相关的功能,以优化传统考试的运行模式,在确保考试系统安全性的前提下,将极大地提高考试的组织效率,节约考试成本。

2  教学实习的目的

完成《ASP.NET》课程学习后,通过本次教学实习,对所学专业知识进一步消化、理解并掌握,锻炼和提高综合运用所学知识解决实际问题的能力。进一步巩固和加深“ASP.NET”课程的基本知识,了解ASP.NET技术在项目开发中的应用。综合运用“ASP.NET”课程和“软件工程”理论去分析和解决课程设计问题,进行课程设计的训练。学习程序设计开发的一般方法,了解和掌握信息系统项目开发的过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。通过标准化、规范化文档和查阅有关技术资料等,培养项目设计开发能力,同时提倡团队合作精神。

3  教学实习设计介绍

3.1 系统的具体要求

本在线考试系统将采用ASP.NET技术,使用Visual Studio.NET的集成开发环境,使用微软的SQL Server 2000作为数据库系统,利用.NET提供的数据访问技术,使得数据驱动的web应用程序开发变得迅速而简单;基于Browser/Server模式的设计思想,便于扩充应用和升级维护,利用浏览器访问位于web服务器的纯web页面,实现网络组卷,在线考试,网上判分,在线统计等各项相关的功能.实现在线网络出试卷与考试等各项相关的功能.

3.2 系统角色与具体功能

3.2.1 系统角色

图一:学生模块二层数据流图

图二:教师模块二层数据流图

图三:管理员模块二层数据流图

3.2.2系统功能需求

在线考试系统分成三大系统功能模块:学生模块、教师模块、管理员模块。

学生通过主页登录后,可以修改密码,选择课程后,可以自由练习,通过选择试卷名及教师姓名可以调出考试试卷,进行在线考试,教师判完试卷后,学生可以重新登录,查询分数。

教师登录后可以修改密码,添加试题到题库。添加试题的同时可添加试题所属的知识点及难易程度,以便于阅卷。学生考试完毕,教师可以调出学生考试的试卷,实现网上判卷。

系统管理员具有最高权限,负责管理教师库及课程库的信息。

3.2.3系统应事先具有的数据信息如下

⑴ 系统管理员身份表。包括管理员的用户名、密码、管理员身份标识。

⑵ 学生信息表。包括学生学号、姓名、密码、班级等信息。

⑶ 教师账户信息。包括教师ID、用户名、密码等。

⑷ 教师授课信息。包括教师的编号、姓名、所授课程、所授班级等。

⑸ 题库。包括选择题、填空题、判断题等。

3.3 系统的设计与实现

3.3.1 数据库设计与实现

教师登录信息表:

学生登录信息表:

课程信息表:

学生成绩表:

选择题题库表:

选择题学生答题卡:

3.3.2 系统设计与实现

3.3.2.1系统的设计:

下图为在线考试的系统功能模块:

在线考试系统中,数据的产生有一定的时序关系,如学生需先进行考试,考试完成后教师才能网上判卷,统计分数;教师添加试题需在学生考试之前,教师添加试题到试题库之前,必须获得教师身份,即用户名及密码。因此,进行合理的数据流程分析对于系统的构造至关重要。

数据流程图可以帮助开发者进行数据流程的分析,即把数据在组织内部的流动情况抽象的独立出来,从数据流动过程来考察实际业务的实际处理模式。

在线考试系统中,外部实体包括三个角色,即学生,教师及管理员;数据的存储以数据库中表的形式存储在数据库中;数据需要进行如登录、登录验证、自由练习、在线考试等处理过程。

下图为在线考试系统的数据流程图:

在计算机软件系统的分析与设计中首先需要准确地描述用户需求中的功能需求,以便进一步确定系统中应该建立那些对象。所谓Use Case是指系统的外部事物与系统的交互,他表达了系统的功能,即系统所提供的服务。

下图为在线考试系统的Use Case图:

在以上工作的基础上,我们对有输出要求的全部数据进行属性分析、存储分析、关联分析、查询统计分析、数据分类与处理功能分析,进一步研究整个系统的人机接口,提出了系统细化后的数据流图和系统的层次结构图。

3.3.2.2系统的实现:

? 学生登录及修改密码模块:

实现程序:

4  总结与体会

通过此次教学实习,使我们更深刻的了解到ASP.NET在生产生活中都有着无法估量的前景,并且能够熟练掌握网站建设中的各种技巧,提高学生的动手能力,加强编程技巧的训练,同时适应软件开发项目管理流程。


第二篇:软件开发生产实习报告


软件开发生产

实习报告

信息科学与工程学院

2012 年   05 月   12日

软件开发生产实习报告

1.       实习目的

1.1使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本素质和技术能力要求。

1.2 使学生掌握ASP.net及C#基本编程技术,能够综合运用SQL server数据库及visual studio .NET2008开发环境进行小型项目的开发。

1.3 重点培养学生的团队精神和协作意识,提高其口头和书面的沟通能力。

1.4使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力

1.5重点提高学生的编程能力,使学生建立正确的编程理念,养成规范的编程习惯。

2.       实习计划

2.1项目成员

a.组长:房微微

b.组员:张婷婷 郭威

2.2任务分工

a.共同任务:用户登录、员工基本信息添加及变更、删除

b.各自任务: 张婷婷-------工程评价及新增

        房微微-------公司评价及新增

        郭  威-------招聘管理

c.额外任务: 房微微-------在籍者移动信息查询

2.3 时间安排

a.基础学习

4月30——5月6日 在老师的指导下进行基础学习            内容包括用户登录、登录验证、选择项设置、控件使用、页面浏览量统计等技术,为以后的项目设计做基础。

b.项目设计:

5月7日——5月12日 自行设计项目模块

按照小组分工及个人对整体的把握,编辑相应模块。

c.实训答辩:5月13日 对实训结果检测

3.       实习过程

3.1基础学习

3.1.1时间规划

时间为期一周,每天老师每隔2小时会有40分钟的授课时间,通过广播的方式交给我们如何使用控件、如何通过编程实现我们要实现的效果。之后我们要在规定的时间学会授课的方式并制作出相应成品。如果不能按时完成在茶余饭后要自己加班,基础学习阶段相对任务较轻,没有太大压力,加班时间及强度相比于项目制作期要小。

3.1.2教学模式

采用公司环境、广播授课、两天一例会的方式。

a. 工作间

类似于在普通的IT企业使用的工作台,同学们遇到问题方便交流,给人一种积极学习的动力。

b. 广播授课

很喜欢这种授课方式,个人很支持推广这种授课方式。因为传统的教学即使通过多媒体,由于视线不清楚很多同学把握不住细节。即使是上机学习一会看老师的思路,一会遇到问题跟不上老师的思路,或者纯上机的时候同学们更多的是效率低下。

c. 两天一例会制度

由小组成员及老师参与,学生提问,老师回答。及早发现学生在学习上存在的问题,对教学方式的建议以便及时改正提高授课效率及效果。也是实训中感觉一个很好的制度,尤其是又一次专门叫每个组中编程相对比较弱的同学开例会,对学习中存在的问题进行提问,对教学存在的问题提出建议,有利于教学的有效进行。平时的老师授课中也可以及时了解同学的授课的反应,有利于教学整体水平的提高

3.1.3基础学习期代码

基础学习中学到很多,在这里选择其中几项代码说明(主要是自己在项目中没有用到,在学习期间学习到得技术)。由于我在项目中做的为工程评价,没有涉及选择项的知识,在这里较多介绍了选项的使用。

a. 登陆验证

登陆验证用于用户登陆权限

b. 选择项控件使用

控件截图:

选择项主要的使用主要是在属性中设置。

>>1 单项选择  提交按键代码

protected void Button1_Click(object sender, EventArgs e)

    {

        if (RadioButton1.Checked == false & RadioButton2.Checked == false & RadioButton3.Checked == false & RadioButton4.Checked == false)

            Label1.Text = "请输入您的选项";

        else

        {

            if (RadioButton1.Checked == true)

                Label1.Text = RadioButton1.Text;

            else

            {

                if (RadioButton2.Checked == true)

                    Label1.Text = RadioButton2.Text;

                else

                {

                    if (RadioButton3.Checked == true)

                        Label1.Text = RadioButton3.Text;

                    else

                    {

                        if (RadioButton3.Checked == true)

                            Label1.Text = RadioButton4.Text;

                    }

                }

            }

        }

}

>>2 Dropdownlist按键代码

protected void Button7_Click(object sender, EventArgs e)

    {

        Label1.Text = DropDownList1.SelectedValue;

    }

>>3 Listbox 页面代码(含按键)

public partial class ListBox : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (ListBox1.SelectedIndex == 0)

            ListBox2.SelectionMode = ListSelectionMode.Single;

        else

            ListBox2.SelectionMode = ListSelectionMode.Multiple;

    }

    protected void Button7_Click(object sender, EventArgs e)

    {

        Label1.Text = "";

        foreach (ListItem li in ListBox2.Items)

        {

            if (li.Selected == true)

                Label1.Text += li.Text;

        }

    }

}

>>4 单项列表按键代码

    protected void Button1_Click(object sender, EventArgs e)

    {

        //if (!IsPostBack)

        //{

        //    RadioButtonList1.Items.

        //}

        Label1.Text = string.Empty;

        Label1.Text = RadioButtonList1.SelectedItem.Text;

    }

>>5 多项选择提交按键

    protected void Button1_Click(object sender, EventArgs e)

    {

        Label1.Text = string.Empty;

        if (CheckBox1.Checked == true)

            Label1.Text += CheckBox1.Text;

        if (CheckBox2.Checked == true)

            Label1.Text += CheckBox2.Text;

        if (CheckBox3.Checked == true)

            Label1.Text += CheckBox3.Text;

        if (CheckBox4.Checked == true)

            Label1.Text += CheckBox4.Text;

        if (CheckBox5.Checked == true)

            Label1.Text += CheckBox5.Text;

     }

>>6 多项列表提交按键

  protected void Button1_Click(object sender, EventArgs e)

    {

        Label1.Text = string.Empty;

        foreach(ListItem li in  CheckBoxList1.Items)

        {

            if (li.Selected == true)

                Label1.Text +=li.Text;

        }

    }

c. 页面刷新次数统计

使用控件

public partial class Default2 : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        int cnt;

        if (!IsPostBack)

        {

            TextBox1.Text = "0";

        }

        else

        {

            cnt = Convert.ToInt16(TextBox1.Text);

            cnt++;

            TextBox1.Text = cnt.ToString();

        }

    }

d.跳转页面代码

Response.Redirect("~/Default2.aspx");

        Session["username"] = TextBox1.Text;

        Session["password"] = TextBox2.Text;

Label3.Text = Session["username"].ToString();

3.2项目实践

3.2.1时间规划

时间为期一周,3天自己做项目,2天完善项目,1天系统测试,最后一天答辩。老师偶尔真题计提问题进行广播指正,通过广播的方式交给我们改正缺陷,实现我们要实现的效果。有了自己的任务,自己需要完成的模块,如果不能按时完成在茶余饭后要自己加班,相对任务较多,追求个人完美,加班时间及强度相比于学习期要大。

3.2.2项目规划

详见项目介绍

4.       项目介绍

4.1 技术准备

a. C# 编程规范

b. .net七大内置对象

c. ADO.NET与数据库概述

d. ADO.NET类和对象概述

e. ADO.NET基本数据库编程

f. MVC三层架构

以上技术大多是以前没有接触或很少接触,但是可以基于从前的知识较快简单掌握的,比如三层架构,可以讲代码多次利用,利于项目改进,虽然已开始感觉比较烦,其实对整体的改进还是很好的。

4.2 项目实施

4.2.1 功能需求

a.功能设计

  工程评价,工程评价新增,公司评价,公司评价新增,招聘管理,在籍移动查询。

 b.工程评价:

     b1.根据员工查询条件,生成员工信息一览表

     b2.对各员工进行“评价”操作

     b3.报表打印

c.工程评价新增

     c1.新增员工工程评价信息

     c2.一览员工工程评价履历信息

d.公司评价

     d1.根据条件检索员工的公司评价相关信息

     d2.根据检索的结果查看员工的公司评价的明细信息或对员工  进行评价

     d3.新增员工的公司评价信息

e.公司评价新增

     e1.新建员工公司评价信息

     e2.一览员工公司评价履历信息

f.招聘管理

     f1.根据条件检索应聘员工的基本信息

     f2.为应聘员工设定应聘是否合格

     f3.导入招工表

     f4.打印报表

 g.在籍者移动查询

     g1.查询公司人员流动情况

     g2.导出在籍者移动信息表

 4.2.2 总体设计

4.2.3 详细设计与编码——工程评价

a. 查询 button

protected void btnQuery_Click(object sender, EventArgs e) { }

//条件查询

DataSet ds = new Emps().GetEvalution(engineer);

//调用business层的Emps类的GetEvalution(engineer)方法查询符合条件的记录

b. 代码添加空白项

protected void selTime_DataBound(object sender, EventArgs e)

       {  selTime.Items.Insert(0, "");

        selTime.SelectedIndex = 0; }

//给选项添加一个空白项,代码方法

c. 新增linkbutton:

LinkButton lnkAddNew = (LinkButton)e.Row.FindControl("lnkAddNew");

        lnkAddNew.Attributes.Add("onclick", "fPopUpPj_E('" + e.Row.Cells[0].Text + "')"); //添加新评价  

d. 打印button,当打印表为空时进行提醒

问题描述:

这个问题在答辩时老师提出,这个功能只是下载,并不是打印,与打印还有本质的区别。

  protected void lnkPrint_Click(object sender, EventArgs e)

    {

        if (GridView1.Rows.Count > 0)        {   Response.Redirect("~/ExportToExcel.aspx?ds=empinfo&template=" + "engineerEvaluate");//调用已有的ExportToExcel.aspx文件,输出查询结果

         }

        else

            ClientScript.RegisterStartupScript(GetType(), null, "<script language=\"javascript\">alert('报表为空');</script>");

}//对报表是否为空的检验

e. 比较评价时间与当前时间,如果大于当前时间则不能评价

  if (!IsPostBack)//判断日期不能大于当前日期

        {

            CompareValidator1.ValueToCompare = DateTime.Now.ToShortDateString();//比较当前日期

        }

f. 评价人姓名带入,不可以匿名或代替他人评价 

问题描述:

      在工程评价中,评价人是否可以自己随便输入,即评价人是否要带回登录人的Name。带回登录人则可以避免他人恶意评价,但也同样给评价人不敢按照真实意愿来评价。

方案:

     1、可以不带回登录人姓名,给评价人自由评价的权力

     2、带回登录人姓名,避免恶意评价。

我在做最后的项目的时候选择将登陆姓名直接带入,设为只读,代码如下:

   txtEmpName.Text = Convert.ToString(Session["userCd"]);

//将用户名带入作为评价人,将用户名带入评价人,且不可更改。允许用户评价,并将评价信息由gridview显示

txtEmpName.Attributes.Add("readonly", "readonly");//设为只读

g.查询实例_评价历史信息是否在评价前可见:

问题描述:

在工程评价中,只有在评价后才可以看到其他人对该员工的评价,这样的结果好处是不受其他人意见的参考,不好的地方无法单纯的看别人对此人多的评价。

方案:

1、可以继续这样,不受他人评价的干扰

2、在Page_Load中添加一次查询代码,将要评价的员工编号传入,在数据库中查出历史评价信息,由gridview显示。

在执行查询后,在查询一次,这样就可以看到他人的评价,也可以即时刷新自己的评价。

我在做项目的时候开始时评价后才可以看到其他人的评价信息,之后添加了代码,将功能改为评价前也可以看到其他人的评价。

上图为功能是评价前看到其他人评价的截图

上图为评价钱不可以看到其他人的评价信息截图。

 protected void Page_Load(object sender, EventArgs e)

    {

        Evaluation evaluation = new Evaluation();

        ContractRecord con = new ContractRecord();

        Emps emps = new Emps();

        evaluation.Emp_cd = Request.QueryString["emp_cd"];

        DataSet ds = new DataSet();

        ds = new Emps().GetEvaluationByEmp_cd(Request.QueryString["emp_cd"]);

        GridView1.DataSource = ds;

        GridView1.DataKeyNames = new string[] { "evaluation_date" };

        GridView1.DataBind();

//获取评价人的编号信号,从数据库中获取对应的评价人、评价时间、备注信息,Gridview列表与数据库绑定,将数据库信息在列表中显示。

h.数据库即时刷新,方便用户使用

      //刷新

                DataSet ds = new DataSet();

                ds = new Emps().GetEvaluationByEmp_cd(Request.QueryString["emp_cd"]);

i. 多余页面弹出问题

问题描述

     在书写网页时,经常会弹出一些不需要的页面,多为空白页,可以通过在源文件中加入<base target=“_self”/>,来解决。

知识链接——Base (基链接)
插入网页基链接属性
Base href=“http://www.A.net/” target=“_blank”>
网页上的所有相对路径在链接时都将在前面加上“http://www.a.com/”。其中target=“_blank”是链接文件在新的窗口中打开,你可以做其他设置。

     将“_blank”改为“_parent”是链接文件将在当前窗口的父级窗口中打开;改为“_self”链接文件在当前窗口(帧)中打开;改为“_top”链接文件全屏显示。

4.2.4 测试

  

测试Excel有详细介绍

4.总结与建议

4.1总结

4.1.1  三层架构

代码高效利用,将模块化。

4.1.2  利用各种资源

不会的可以自己上网搜、看书、问同学,问老师。在实训中感谢周围的同学,他们很主动的帮助相对较弱的同学。让我们在学习的过程中体会到互助的快乐。

4.1.3  多练多总结

实训只要有时间,就喜欢用文字记录我们走过的点点滴滴,包括今天又学习了什么控件。什么功能可以不写代码用属性实现,什么函数又包含什么内容,很有意义的总结。现在在后他看那10篇日记,20几页的功能总结,很享受的感觉。

4.2 建议

4.2.1   式样书

有部分错误,如果每次实训都有的话,对实训效果有影响。可以让每届实训学生将式样书改善。

4.2.2  例会制度

感觉一个很好的制度,由小组成员及老师参与,学生提问,老师回答。及早发现学生在学习上存在的问题,对教学方式的建议以便及时改正提高授课效率及效果。尤其是又一次专门叫每个组中编程相对比较弱的同学开例会,对学习中存在的问题进行提问,对教学存在的问题提出建议,有利于教学的有效进行。

在我们自己做项目的时候我认为例会制度也是很好的选择,可以及早的知道同学们在自己锻炼的过程中有哪些地方欠缺。平时的老师授课中也可以及时了解同学的授课的反应,有利于教学整体水平的提高。

4.2.3  实训时间

可以提前,比如大三上,这样可以让同学们及早接触这样的氛围,有利于同学们学习态度的改善及能力的提高。

4.2.4  广播授课

这种广播的方式克服了传统课堂教学、多媒体教学的缺点,实训之后我就一直在想,我们的机房为什么不添加这样的设备来支持广播教学来提高课堂效率?广播教学可以自行视频录制,效果很好,方便同学复习,难道是成本过高的原因吗。

4.2.5  经验分享

   每期的同学都会有这样或那样的总结经验,希望有平台可以分享。比如广播授课的时候一开始我们只是用笔记录需要的内容,往往把老师上课的重点给放过去了,影响挺快效果。后来我们发现有截屏软件,可以全程把老师上课的内容录制下来(屏幕分辨率高的情况下更好)。还有好多小小的分享,比如对实训的态度,我们很期待,也很认真,我们对知识渴求,对功能的实现向往。因为一个专业我们一起订餐、一起吃饭、一起加班、一起晚归,让实训更加值得留念。

   一直想,如果实训时间提前,我们会成长更多,我们会有机会抓住更多机遇,会有更多的时间与实践让自己成长。

更多相关推荐:
百度实习生web前端开发工程师面试经历

想不到自己这么快就开始写面经了这次的面试谈不上失败也谈不上成功也就写出来给大家一个参考和教训吧我这次是通过一个学长内推到百度的商务搜索部的web前端开发方面的HR部门提前通知了我什么时候面试因为我学校不在北京所...

腾讯实习生web前端JS开发工程师面试经历

在腾讯面试之前我申请了淘宝的前端可是笔试就被淘宝鄙视了这之前还有一个百度内推的二面已经结束了不过还真的不知道结果人家给我答案是这周之内如果没有过的话还有三面如果过了的话直接就可以拿offer相比之下腾讯是很人性...

ASPNET与Web程序开发实习报告

天津农学院ASPNET与Web程序开发教学实习报告题目XXXXXXXXXXXXXXXXXXXXXXXXXX学号姓名系别专业班级成绩报告正文部分文稿中将此段文字删除要求正文部分一律用小四号字宋体15倍行距一级大标...

20个实用的webApp前端开发技巧

自Iphone和Android这两个牛逼的手机操作系统发布以来在互联网界从此就多了一个新的名词WebApp意为基于WEB形式的应用程序运行在高端的移动终端设备开发者们都知道在高端智能手机系统中有两种应用程序一种...

百度web前端开发实习生面试经历

前几天面了百度的前端实习职位一面时间大概是50分钟面试官是位很帅气的小伙子非常友好的一个人进门的时候他让我等一会我瞄了一眼他的电脑屏幕发现他在coding9点50开始的面试面试官自我介绍一下我blablabla...

Web项目案例综合实训-实习报告模板

Web项目案例综合实训实习报告班级姓名学号学期周次指导教师计BG11120xx20xx学年第2学期16171819周20xx年月日1概述大标题黑体小二实习目的及意义小标题黑体四号Web应用实习是计算机科学与技术...

大巧不工——web前端设计修炼之道学习笔记

Html5新结构元素nav标记一些链接的集合体常用的是导航条边栏常用链接等具有导向链接的地方都可以引用nav元素aside可以用来表示标记侧栏摘要引用等一些常用的补充内容Canvas同级组合选择器divimg伪...

J2EE Web开发实验报告

信息工程学院J2EE技术实习报告学院信息工程学院班级信息091姓名高育娟学号20xx012864成绩一实习题目实验1在Eclipse中开发Web应用二实习过程实验1在Eclipse中开发Web应用一实验内容在这...

Web开发技课程设计报告

安徽农业大学课程实践(设计)报告实践项目名称图书管理系统的设计项目组成人员院系信年级专业0指导教师目录1课程设计背景(包括:现状、研究目的等).32需求分析(包括:功能分析、操作流程分析等).32.1需求分析.…

Java Web 开发技术实验报告模版

项目综合实践报告题目htmlcss旅游门户网站设计班级计算机20xx1姓名丁一学号954211完成日期20xx914一分析设计用文字图表等说明设计思路及设计结果二主要源代码HtmlCss三效果图屏幕抓图四调试过...

Java Web 开发技术实验报告

项目综合实践报告题目新疆行知书网站设计班级网络工程121姓名何彬学号12910112完成日期20xx1017一分析设计主要排版分为这三个层次中间层分为leftmiddlerightleft中分为天气查询和今日推...

Java Web应用程序开发实验指导书

JavaWeb应用程序开发实验指导书1目录实验1HTML网页编程41实验目的与要求42实验条件43实验内容与步骤44实验报告要求及实验成果的收集4实验2Javascript网页事件处理51实验目的与要求52实验...

web前端开发实习报告(5篇)