数据结构课程设计
好友通讯录
好友通讯录
一 实验题目
李刚是一爱折腾的人,当然爱折腾的人均有梦想,他想当中国的盖次呢。可不,现在个人好友信息多了,复杂了,他想制作一个个人通讯录的制作管理软件。刚好这个学期学了数据结构课,所以他准备使用数据结构知识来实现了。并考虑使用双向链表作数据结构。并制定了初步要求:
(1)每个好友信息包含姓名、性别、住址、邮编、几岁、电话、QQ、微信帐号、生日等。
(2)作为一个完整的系统,应具有友好的界面和较强的容错能力。
二 实验目的
算法是一个程序的核心,没有算法,没有一个明确清晰的逻辑思路,对于搞软件开发的人来说,是一个头痛的问题。而学校开设的这一门数据结构课程,就是专业地讲解了一些基本和重要的结构和算法,让我们接触最底层的逻辑开发。这一切都是一个好的开始。期末悄悄来临了,随着时间的消逝,我们慢慢地进步的吸收了这方面的知识,感觉受益匪浅,这都归功于我们老师的认真负责教学,在这里对易学明老师表示真诚的感谢。而这一次的课程设计报告就是验收我们学生成果的见证。
三 实验环境
本人在这之前只接触C++一门语言,在答辩课程设计前一个月,我就每天很努力地去学习java语法,接触tomcat,各种jar包,集成环境jdk,平台eclipse,学会如何查看问题和解决问题,总之林林总总的开始接触有关JAVA的知识,最终请教了师兄师姐,终于能做出了一个小小的程序。这一次课程设计我是java web来做的。
四 需求分析
顾题思义,好友通讯录,就是用来记录好友的信息,方便查找。同时要满足基本的增删改查才符合人性化。具体请看功能分析。
五 功能分析
这是首页:
1 在这里你会看到一个友好的界面,上面有四个按钮,分别是查增改删的功能,默认首页是查的功能,即是看到个人通讯录的所有好友。在这里还可以通过上一页,下一页,首页,尾页来导航看到众多的好友信息。每个好友都具备了九个属性,分别是姓名,性别,年龄,生日,号码,地址,编码,qq,微信。每个客户都会有一个id号,用来标识就算用户信息一样也存在两个客户。
2以下是添加好友的界面。进入添加好友界面,就填上好友的个人信息,如果你在添加的时候不知道好友的微信,你可以不填。这个时候程序不会报错,因为我在后台添加了初始默认值,这增强了程序的牢固性。对比上下两张图,你就会发现添加是否成功了。与此同时,你会在页面左上角收到是否插入成功的信息。
3 下面是编辑模块,首先请输入用户名ID号,后台就会自动获取次id号的好友,此时我们就可以对这个用户进行编辑,然后再次提交。看图。
4 删除功能:若果某个好友把我拉近黑名单了,我就会把此好友给删掉了。对比,以下两张图,就会发现此好友真的删掉了。
六 体会
做这个小程序,说简单,其实也挺简单的。但是,我很自豪,因为是自己做的,而且是在挑战自己,因为我用的是课本上还没讲授的一门语言。完全通过自学能力来实现的。但是,唯一不足的是,虽然分页上我实现了通过上一页来找到下一页,但这并非是数据结构老师讲授的知识。或许,当初我就应该用C++语言来实现。但是,老师不要担心,虽然这一次我没有用到这个知识,但其实我已掌握这个双向链表。
七 代码
以下是我的一些关键代码:
Menu.jsp
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ pageimport="java.util.*,index.*"%>
<%@ tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>menu</title>
<link href="css/menu.css"type="text/html" rel="stylesheet">
</head>
<body>
<div><span>hereis the message:</span>${message}
</div>
<center>
<formaction="" method="post" id="form_css">
<inputtype="button" name="button1" value="个人好友"id="all">
<!--<input type="button" name="button1" value="个人好友"id="all" οnclick="window.location.href='open?method=total'">-->
<inputtype="button" name="button2" value="添加好友"id="addbtn">
<inputtype="button" name="button3" value="编辑好友"id="edit">
<inputtype="button" name="button4" value="删除好友"id="delete">
<inputtype = "hidden" name = "method" value ="total"><br>
</form>
</center>
<%
List<User>lists = (List<User>)request.getAttribute("lists");
List<User>list = (List<User>)request.getAttribute("list");
%>
<divid="Person">
<center>
<br>
<tableid="grid" border="1px">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>生日</th>
<th>号码</th>
<th>地址</th>
<th>编码</th>
<th>QQ</th>
<th>微信</th>
</tr>
</thead>
<tbody>
<%if(lists!= null){
for(int i =0 ; i <lists.size(); i++){
Useruser = new User();
user= lists.get(i);
%>
<tr>