用户注册,报修

一、需求分析

(1)还没有注册的客户,可以进入注册界面进行注册。

(2)新建一个报修表,名字为repair_info0,列有用户名、报修类型、报修地点、报修内容,报修日期和时间、用户报修次数。

(3)在报修界面中,当用户点击“报修”按钮时,软件会把用户报修的信息写入数据库中,还可以更新报修次数,同时会清空相应的文本框。


二、具体设计思路

(1)首先建一个报修表,然后在窗体上摆些所需的控件。

(2)我们需要做的有查询、插入、修改。当点击查询的时候,数据会从数据库里读取到相应的控件里,然后我们可以对报修次数进行更改;我们在相应的控件里填写信息,点击报修会把数据插入到数据库里,同时清空了相应的文本框。

(3)我们感觉如果插入日期用填写的方法没有多大意义,还容易出错,于是我们用NumericUpDown控件来获取当日的日期。获取的日期用Label显示,然后插入数据库里,为了不影响界面美观,我们把NumericUpDown控件隐藏起来。

(4)查询、插入、修改都要连接数据库,这样连接数据库的代码要重写多次,所以我们把查询、插入、修改的代码写在一个类里。

三、代码实现

封装代码

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Data;namespace zhuce
{class Class1{public string strCon = "data source=.;initial catalog=H:\\DATA\\REPAIR.MDF;integrated security=true";public SqlConnection sqlCon = new SqlConnection();public SqlDataReader sdr;public DataTable dt = new DataTable();public SqlDataAdapter sda = new SqlDataAdapter();public DataSet ds = new DataSet();public void dbcon(){try{sqlCon = new SqlConnection(strCon);}catch (Exception e){MessageBox.Show("数据库连接不成功:" + e.ToString());}}public void dbFill(string selstr){dt.Clear();sda = new SqlDataAdapter(selstr, strCon);sda.Fill(ds, "repair_info0");dt = ds.Tables["repair_info0"];}public void dbSelect(string showInfo){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(showInfo, sqlCon);sdr = sqlcmd.ExecuteReader();}public void dbInsert(string insertInfo){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(insertInfo, sqlCon);try{sqlcmd.ExecuteNonQuery();MessageBox.Show("报修成功!");}catch (Exception e){MessageBox.Show("报修失败" + e.ToString());}sqlCon.Close();}public void dbInsert1(string insertInfo){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(insertInfo, sqlCon);try{sqlcmd.ExecuteNonQuery();MessageBox.Show("注册成功!");}catch (Exception e){MessageBox.Show("注册失败" + e.ToString());}sqlCon.Close();}public void dbUpdate(string updStr){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(updStr, sqlCon);try{sqlcmd.ExecuteNonQuery();MessageBox.Show("更新成功!");}catch (Exception e){MessageBox.Show("更新失败" + e.ToString());}sqlCon.Close();}}}

 

 

 

注册代码

 

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;
using System.Data.SqlClient;namespace zhuce
{public partial class Zhuce : Form{public Zhuce(){InitializeComponent();}Class1 cl = new Class1();private void zc_Click(object sender, EventArgs e){cl.dbcon();string sql = "insert into user_info(userName,passWord) values('" + textBox1.Text +"','" + textBox2.Text + "')";cl.dbInsert1(sql); baoxiu b = new baoxiu();b.Show();}}}

 

 

 

报修代码

 

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;
using System.Data.SqlClient;namespace zhuce
{public partial class baoxiu : Form{public baoxiu(){InitializeComponent();}string selStr = "select * from repair_info0";Class1 cl = new Class1();private void bx_Click(object sender, EventArgs e){year.Value = Convert.ToDecimal(DateTime.Now.Year);month.Value = Convert.ToDecimal(DateTime.Now.Month);day.Value = Convert.ToDecimal(DateTime.Now.Day);cl.dbcon();string insrtInfo = "insert into repair_info0(userName,bxplace,bxtype,bxcontent,bxdate,bxtime) values('" + comboBox2.Text + "','" + textBox1.Text +"','" + comboBox1.Text + "','" + richTextBox1.Text + "','" + label1.Text + "','" + textBox3.Text + "')";cl.dbInsert(insrtInfo);textBox1.Text = "";comboBox2.Text = "";textBox3.Text = "";comboBox1.Text = "";richTextBox1.Text = "";}private void year_ValueChanged(object sender, EventArgs e){label1.Text = year.Value + "-" + month.Value + "-" + day.Value;}private void month_ValueChanged(object sender, EventArgs e){label1.Text = year.Value + "-" + month.Value + "-" + day.Value;}private void day_ValueChanged(object sender, EventArgs e){label1.Text = year.Value + "-" + month.Value + "-" + day.Value;}private void chaxun_Click(object sender, EventArgs e){cl.dbcon();cl.dbFill(selStr);comboBox2.ValueMember = "userName";comboBox2.DataSource = cl.dt.DefaultView;}private void button1_Click(object sender, EventArgs e){cl.dbcon();string strUpd = "update repair_info0 set bxtime='" + textBox3.Text + "' where userName='" + comboBox2.Text + "' ";cl.dbUpdate(strUpd);textBox1.Text = "";comboBox2.Text = "";textBox3.Text = "";comboBox1.Text = "";richTextBox1.Text = "";}private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){string selStr = "select * from repair_info0 where userName='" + comboBox2.Text + "'";cl.dbcon();cl.dbSelect(selStr);if (cl.sdr.Read()){comboBox2.Text = cl.sdr["userName"].ToString();textBox1.Text = cl.sdr["bxplace"].ToString();comboBox1.Text = cl.sdr["bxtype"].ToString();richTextBox1.Text = cl.sdr["bxcontent"].ToString();textBox3.Text = cl.sdr["bxtime"].ToString();label1.Text = cl.sdr["bxdate"].ToString();}}}
}

 

四、测试

五、PSP耗时分析

 

PSP2.1Personal Software Process StagesTime(h)
Planning计划10
  • Estimate估计这个任务需要多长时间10
Development开发7
  • Analysis需求分析1
  • Design Spec生成设计文档1
  • Coding Standard代码规范2
  • Design具体设计1
  • Coding具体代码1
  • Code Review代码复审0.5
  • Text测试0.5
Reporting报告3
  • Test Report测试报告1
  • Size Measurement计算工作量

1

  • Postmortem事后总结

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

六、团队分工

 这次团队作业是我们一个宿舍的七个人,有付媛媛、徐玉莹、王远离、卫文静、梁秋萍、胡田鸽、龚园苑。

    具体分工如下:

        团队负责人:付媛媛

      创建数据库:徐玉莹

      连接数据库:王远离

      外观设计人员:龚园苑

      写代码人员:徐玉莹、付媛媛

      测试人员:梁秋萍

      写文档人员:胡田鸽

       团队人员得分情况如下:

      付媛媛:3分

      徐玉莹:2分

      卫文静:1分

      王远离:1分

      梁秋萍:1分 

      胡田鸽:1分

      龚园苑:1分

七、总结

     这次增量作业比上次难一点,涉及的范围比较广,但我们是打不死的小强,再难也要坚持。当然这种题对我们班的学霸来说是小菜一碟,对我们来说就是学习的过程。其实我们这次完成的还有缺陷。比如更新报修次数,并没有达到我们预想的结果。我们在相应的文本框里填写用户报修信息后,当点击报修的时候,就自动在数据库里bxtime(报修次数)列添加1次报修次数,当我们再读取到这一用户时,再点击报修,就自动更改了数据库里报修次数列为2;而不是我们手动来更改报修次数。不知道老师这次增量的要求是不是表达这个意思。

     我们想实现这种结果,但是代码写了又改,总是出错,于是就添加了一个更新按钮来手动更新报修次数。

 

     纸上得来终觉浅,绝知此事要躬行!当我们看到书上写的一些程序时,总觉得实现的功能太过于简单,而且那些都是别人的知识,纸上谈兵终究不行,但当我自己亲自写一些程序时,才发现即使想实现一个很小的功能也是不易的,但只要每一次都能实现小小的功能就算是有了很大的收获。

 

     想要实现一个完美的程序,需要很好的基础功底和思考能力,我们就特别缺少基础知识,希望老师每次布置的作业能让我们巩固基础知识,提高思考能力。

     

 

转载于:https://www.cnblogs.com/twinkle-0908/p/5043664.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在HTML中使用css3实现雪人动画效果

背景:圣诞节又到了,拿什么来哄女朋友开心? 项目结构: html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht…

圣诞节又到了,作为程序猿的我用代码给女朋友送了一个礼物

圣诞节又到了&#xff0c;拿什么来哄女朋友开心&#xff1f;我们先来做一个简单的雪人动画&#xff1a;项目结构&#xff1a;html:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.d…

【Linux】权限篇(二)

权限目录 1. 前言2. 权限2.1 修改权限2.2 有无权限的对比2.3 另外一个修改权限的方法2.3.1 更改用户角色2.3.2 修改文件权限属性 3. 第一个属性列4. 目录权限5. 默认权限 1. 前言 在之前的一篇博客中分享了关于权限的一些知识&#xff0c;这次紧接上次的进行&#xff0c;有需要…

孙叫兽重磅推荐Chrome插件——CSDN浏览器助手

导读:解决你在浏览器上遇到的各种问题,无论你是学生小白、还是职场老鸟,都可以借助这个插件,打造个性化浏览器,提升工作学习效率。 此插件经过多轮迭代,体积小,内存占用少,便于开发者快速安装和使用。 官方地址:https://plugin.csdn.net/ 目录 安装方法:

【APICloud系列|21】使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。

导读:APICloud是柚子(北京)科技有限公司创建的低代码开发平台,总部位于北京, 通过生产力工具与混合开发技术,为企业与开发者构建高效的IT环境;在APICloud平台已有80万注册用户,平台每日生成安装包超6000个。业务团队延伸至上海、深圳、重庆、青岛等10余个城市。 APICloud是…

数据湖 多维数据集_按汇总分组/多维数据集

数据湖 多维数据集时不时地&#xff0c;您会遇到一个使您达到SQL限制的要求。 我们中的许多人可能会早早放弃并使用Java / [或您的语言]计算内容。 相反&#xff0c;使用SQL可能是如此简单快捷。 如果您使用的是高级数据库&#xff0c;例如DB2 &#xff0c; Oracle &#xff0c…

FlexyPool如何同时支持连接代理和装饰器

代理人 FlexyPool监视连接池使用情况&#xff0c;因此需要拦截连接关闭方法调用。 为了简单起见&#xff0c;第一个版本为此目的依赖动态代理&#xff1a; private static class ConnectionInvocationHandler implements InvocationHandler {public static final String CLOS…

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍...

1 创建集合视图&#xff0c;设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器&#xff0c;系统默认管理着一个集合视图UICollectionView&#xff0c;功能几乎和UITableViewController差不多&#xff0c;能够以多行多列的…

【APICloud系列|24】 MNNavigationMenu模块(导航菜单)的实现

导读:MNNavigationMenu 是一个导航栏菜单,开发者可自定义其中的样式和按钮个数,超出屏幕部分可左右拖动查看。 模块详情:http://www.apicloud.com/mod_detail/12417 index.html <!doctype html> <html> <head><meta charset="utf-8">&…

mysql2教程_mySQL 教程 第2章 安装和介绍mySQL

设置mySQL字符集支持中文的字符集是utf8&#xff0c;该设置可以更改mySQL配置文件进行全局设置&#xff0c;也可以针对数据库设置&#xff0c;也可以针对表设置&#xff0c;也可以针对列设置。字符集更改后新插入的数据生效&#xff0c;对以前不生效。练习1&#xff1a;更改MyS…

java 更新订单状态_Java 8状态更新

java 更新订单状态即将到来的Java SE 8发行版的两大新语言功能是Lambda Expressions和Modularity。 这两天的状态更新都已经发布。 我会与您分享链接&#xff0c;因此您可能会在假期中通读它们 Oracle计划在2013年中期发布Java SE 8。 Lambda项目 Lambda项目以及JSR-335希望提…

基于JBoss Fuse 6.2的JBoss BPM微服务集成指南

今年年初&#xff0c;我们宣布了JBoss BPM Suite令人兴奋的示例项目&#xff0c;该项目围绕一个正在运行的在线Travel Agency项目展开。 最初是利用Web服务&#xff0c;后来我们在JBoss Fuse的帮助下迁移到微服务 。 随着JBoss Fuse 6.2的发布&#xff0c;我们希望重新访问该…

mysql zip 还原_mysql 压缩还原数据库

MySQL数据库备份和还原的常用命令其实很多情况下mysql备份就是采用了这些命令&#xff0c;例如&#xff1a;mysql导入和导出数据linux自动定时备份web程序和mysql数据库备份MySQL数据库的命令mysqldump -hhostname -uusername -ppassword databasename > backup...文章无声胜…

jvm调试工具_调试JVM

jvm调试工具在某些&#xff08;极少数&#xff09;情况下&#xff0c;您可能会遇到使JVM本身崩溃的情况。 我最近通过将ThreadGroup的名称设置为null来进行管理 。 在这些情况下&#xff0c;调试JVM本身很有用&#xff0c;这样可以更精确地定位崩溃。 这是执行此操作的步骤&…

遮罩窗体弹出登录页面代码实现

先上效果图(本人喜欢胡巴&#xff0c;背景用了胡巴)&#xff0c;鼠标滑过页面&#xff0c;图片变暗&#xff0c;透明度为0.4&#xff0c;同时弹出登录窗口。 接下来先看css代码(写的可能不是很规范&#xff0c;根据调整样式顺序写的) body{background-color: black;width: 100%…

【APICloud系列|27】 UICalendar模块(日历)的实现

导读:UICalendar 是一个日历选择模块;可自定义日历的样式,添加特殊日期标注,切换月份,设置指定日期;用于实现常用的日期选择,日历展示功能 模块地址 UICalendar 是一个日历选择模块;可自定义日历的样式,添加特殊日期标注,切换月份,设置指定日期;用于实现常用的日期…

使用Camel从WildFly 8向WebLogic 12发送JMS消息

系统集成是一个很好的挑战。 特别是当您在寻找通信标准和可靠的解决方案时。 在当今的微服务世界中&#xff0c;每个人都在谈论REST服务和基于http的协议。 实际上&#xff0c;对于大多数企业项目来说&#xff0c;这往往是远远不够的&#xff0c;而这些项目通常具有更复杂的要求…

【APICloud系列|28】 UIChatBox 模块(聊天输入框)的实现

导读:UIChatBox 模块是一个聊天输入框模块,开发者可自定义该输入框的功能 项目结构: config.xml <?xml version="1.0" encoding="UTF-8"?><widget id="A6909001303255" version="0.0.1"> <name>UIChatbox<…

mysql索引参数_MySQL索引介绍

索引由数据库表中一列或者多列组合而成&#xff0c;其作用是提高对表中数据的查询速度。创建索引是指在某个表的一列或者多列上建立一个索引&#xff0c;用来提高对表的访问速度&#xff0c;创建索引由三种方法&#xff1a;在创建表的时候创建&#xff0c;在已存在的表上创建和…

【APICloud系列|31】百度导航功能的实现

导读:百度导航基础功能。d用到了bMap模块,baiduNavigation模块,UIListView模块。样式完全来自AUI。js用到了zepto.j 效果图: 项目结构: index.html <!doctype html> <html> <head><meta charset="utf-8"><meta name="viewport…