.NET实训报告
项目名称: 地址簿
专 业: 软件技术
班 级: 09级 23班
姓 名: 范付明
学 号: 090123037
指导老师: 胡媛媛
20##年 11月 12 日
目 录
第一部分实训题目与要求
1.用户需求·········································(2)
2.系统功能的需求···································(2)
第二部分设计实训题目功能
1.总体设计·········································(2)
2.各模块的功能·····································(2)
3. 界面图像········································(3)
4.程序代码设计····································(4)
5.测试·············································(7)
第三部分实训总结
1.个人总结·········································(7)
2.结束语···········································(7)
参考文献···········································(8)
第一部分实训题目与要求
1.用户需求
用户可以通过此软件存储同学、朋友、亲人的家庭住址等信息。
2.系统的功能需求
实现信息的添加和查询等功能。
第二部分设计实训题目功能
1.总体设计
2.各模块的功能
1、"第一个"按钮功能实现代码
private void btnFirst_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetFirstCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
2、"上一个"按钮功能实现代码
private void btnPrior_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetPrevCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
3、"下一个"按钮功能实现代码
private void btnNext_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetNextCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
4、"最后一个"按钮功能实现代码
private void btnLast_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetLastCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
5、"添加"按钮功能实现代码
private void btnAdd_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = new CustomerInfo(TextCustomerID.Text, TextName.Text, TextAddress.Text);
CustomerInfo.AddCustomer(aCustomerInfo);
}
6、"删除"按钮功能实现代码
private void btnDelete_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = new CustomerInfo(TextCustomerID.Text, TextName.Text, TextAddress.Text);
CustomerInfo.DeleteCustomer(aCustomerInfo);
}
}
}
3. 界面图像
如图2所示程序效果图。
4.程序代码设计
1、类的构建
using System;
using System.Collections;
public class CustomerInfo
{
private static ArrayList CustomerList = new ArrayList();
private static int i = 0;
private String id;
private String name;
private String address;
public CustomerInfo() { }
public CustomerInfo(String myid, string myname, string myaddress)
{
id = myid;
name = myname;
address = myaddress;
}
public String ID
{
set {id = value;}
get { return id; }
}
public String Name
{
get { return name; }
set { name = value; }
}
public String Address
{
get { return address; }
set { address = value; }
}
public static CustomerInfo GetFirstCustomerInfo()
{
CustomerInfo aCustomerInfo = new CustomerInfo();
if (CustomerList.Count > 0)
{
i = 0;
aCustomerInfo = (CustomerInfo)CustomerList[i];
}
return aCustomerInfo;
}
public static CustomerInfo GetNextCustomerInfo()
{
if (i < CustomerList.Count - 1)
{
i = i + 1;
}
return (CustomerInfo)CustomerList[i];
}
public static CustomerInfo GetPrevCustomerInfo()
{
if (i > 0)
{
i = i - 1;
}
return (CustomerInfo)CustomerList[i];
}
public static CustomerInfo GetLastCustomerInfo()
{
if (CustomerList.Count > 0)
{
i = CustomerList.Count - 1;
}
return (CustomerInfo)CustomerList[i];
}
public static void AddCustomer(CustomerInfo aCustomerInfo)
{
CustomerList.Add(aCustomerInfo);
}
public static void DeleteCustomer(CustomerInfo aCustomer)
{
for (int i= 0;i<CustomerList.Count ;i++)
{
CustomerInfo aCustomerInfo = (CustomerInfo)CustomerList[i];
if (aCustomer.ID==aCustomerInfo.ID )
{
CustomerList.RemoveAt(i);
break ;
}
}
}
}
主函数及按钮功能实现
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ManegeCustomerInfo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void showaCustomerInfo(CustomerInfo aCustomerInfo)
{
TextCustomerID.Text = aCustomerInfo.ID ;
TextName.Text = aCustomerInfo.Name ;
TextAddress.Text = aCustomerInfo.Address;
}
private void btnFirst_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetFirstCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
private void btnPrior_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetPrevCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
private void btnNext_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetNextCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
private void btnLast_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = CustomerInfo.GetLastCustomerInfo();
showaCustomerInfo(aCustomerInfo);
}
private void btnAdd_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = new CustomerInfo(TextCustomerID.Text, TextName.Text, TextAddress.Text);
CustomerInfo.AddCustomer(aCustomerInfo);
}
private void btnDelete_Click(object sender, EventArgs e)
{
CustomerInfo aCustomerInfo = new CustomerInfo(TextCustomerID.Text, TextName.Text, TextAddress.Text);
CustomerInfo.DeleteCustomer(aCustomerInfo);
}
}
}
5.测试
一个程序需要经过多次的测试才能通过,本程序亦如此。
测试是一个程序投入使用之前必须的一部分,测试的主要工作是设置相应的测试用例找出程序的错误,对找到的错误查出原因,并排除错误。具体步骤:
(1)选定合适的测试用例;
(2)发现错误;
(3)查出错误原因,排除错误,直至正常运行。
第三部分实训总结
1.个人总结
编写一个程序,无论会实现什么功能,都必须掌握这门语言的要领、基本知识及工具的运用,同时别的辅助工具也要有一定的了解。因此要更好的运用C#语言编程还需更深入的学习,这样才能把一个程序的功能实现的淋漓尽致,界面才会更加美观。
通过这次实训,提高了我学习软件技术的兴趣,在学习C#语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。实训中老师给范例程序,然后通过自己的修改,实现。先做简单的,再做复杂的,最终写出完善的程序。在实际操作过程通过错误来提高自己的学习水平,C#语言的理论知识得到巩固,达到实训的基本目的。
2.结束语
在本次实训中,我们小组积极合作,互相学习,一步步的完成整个实训的制作,每个人为程序都付出了自己的汗水,同时又收获了自己的知识,在老师的带领下我们克服了一个个的难题。在大家的付出和老师的帮助下,使这个实训具有了巨大的意义,得到了知识同时又懂了团队的力量是巨大的,是成功的关键。在此谢谢同学们热心的帮助,也感谢老师耐心的解答和教诲。
参考文献
[1] 丁士锋、朱毅、杨明羽 《精通C#3.0与.NET3.5高级编程》.北京:清华大学出版社
[2] 江红、余青松 《C#.NET程序设计实验指导》.北京:清华大学出版社
[3] 邵鹏鸣 《C# 面向对象程序设计》.北京:清华大学出版社
第二篇:《ASP.NET与Web程序开发》实习报告
《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在生产生活中都有着无法估量的前景,并且能够熟练掌握网站建设中的各种技巧,提高学生的动手能力,加强编程技巧的训练,同时适应软件开发项目管理流程。