软件技术设计报告书题目:水电费管理系统设计系部:信工系专业:计算机系统维护班级:12级计维姓名:学号:2014年7月20日目录一.设计任务及内容………………………………………1二.设计说明………………………………………………1三.设计的优缺点…………………………………………2四.设计心得与体会………………………………………3五.程序部分及程序原代码………………………………3六.执行结果………………………………………………9水电费管理设计报告一.设计任务及内容【目的】:1.掌握C语言程序的综合运用2.了解系统设计的基本原理3.掌握结构化程序的基本思想【设计要求】1.编写一个菜单实现驱动水电管理系统程序(要求使用VC++6.0),实现相关功能。2.本系统的总体思想基于结构化的程序设计,运用高级语言程序设计中的基本控制结构,着重实现管理系统的增加、删除、修改、查看等典型的管理系统3.水电费管理系统是为管理员进行用户成员用水电量及缴费信息管理进行计算、统计、记录的运用软件,其功能如下:(1)给管理员提供功能选择界面,该系统只针对管理员,所以无需登录,直接进入功能选择界面,功能选择界面包括输入功能选项,调用相应程序两大需求。(2)管理用户信息:管理员可操作添加、查看、修改、删除用户信息,包括姓名、地址、用水量、用电量。(3)查看用户缴费信息:可以查看每个用户应缴费的水费、电费,系统默认水费为2元/吨,电费为0.8元/度。(4)统计总用费:可以统计总的电费、水费及总费用,便于收缴费用户进行检查、核实,以免出错。二.设计说明(一)、水电费管理可分为3大模块1.用户管理2.功能选择3.用户缴费查看1(二)、流程图三.设计的优缺点优缺点有:1.方便管理员管理用户的信息2.保密性强、检索迅速、查找方便等3.由于可以管理范围大,地址是应用输入,不能进行选择,所以加大管理员的工作量4.只能输入一个月的信息,如果多次输入同一个用户的信息,则显2开始用户管理退出显示用户信息增加用户修改用户信息删除用户信息退出总费用退出收费管理用户缴费信息查询总水费总电费示最后输入信息,因为先前输入的信息已被覆盖。虽然需要改进的地方很多,做的也不完美,但还可以对用户信息管理四、设计心得与体会:在科技高度发展的今天,计算机在人们生活的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。虽然我学的专业是与计算机相关,但对计算机不太了解,而且我C语言没学好,我只掌握了基本知识。只是基本而已,对于不感兴趣的东西没能坚持学完和没能深入的了解。而在课堂上讲过许多关于c语言的语法规则,但感觉听起来十分枯燥无味,也不容易记住,死记硬背也不知其原理和运用,这时真是感觉书到用时方觉少,好多都不懂,然后我只能逼自己去看教材上的例题,虽然文件链表之类的依然茫然,但基本有了思绪。于是我开始尝试用结构体、循环体、数组等。然而要使用c语言这个工具解决实际问题,困难重重。所以在这次的管理设计中,从编程到执行中,程序出现错误,而提醒错误的地方偏偏是英文,这可难为到我了,所以我找同学帮忙,最后在同学的帮助下最终完成了。虽然过程出现许多的障碍,但自己一次又一次的不放弃,终于调试出来,那种成功感是无法比拟的,课程设计结束了,但是这段时间里,我又学到了更多C知识,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。这次的学习让我知道了我太多的不足,但我会尽量的去改善,让自己变得更好。五.程序部分源程序代码1、C语言程序设计(第二版)2、C语言程序设计学习辅导2、#includestdio.h#includestring.h#includestdlib.h#definew2/*水2元/吨*/#definee0.8/*电0.8元/度*/structuser{charname[10],ID[20];/*用户的姓名和地址*/doublewater,electricity;/*用水(吨)、电(度)量*/doublemonney;/*总共的水电费用*/}u[200];/*用户最大容量为100*//*显示用户信息*/voiddisplay(){intn;/*确定当前用户的人数*/inti;for(n=0;n200;n++)if(u[n].monney==0)break;3if(n==0)printf(系统无用户,需要添加!^_^\n);elsefor(i=0;in;i++)printf(\n编号:%d\t姓名:%s\tID:%s\t用水量:%.1f吨\t用电量:%.1f度\n,i+1,u[i].name,u[i].ID,u[i].water,u[i].electricity);}/*添加用户*/voidadd(){intn;/*确定当前用户的人数*/for(n=0;n200;n++)if(u[n].monney==0)break;printf(请输入用户的姓名:);scanf(%s,u[n].name);printf(请输入用户的地址:);scanf(%s,u[n].ID);printf(请输入用户的用水量:);scanf(%lf,&u[n].water);printf(请输入用户的用电量:);scanf(%lf,&u[n].electricity);u[n].monney=(u[n].water)*w+(u[n].electricity)*e;printf(\n添加成功!\n);}/*修改用户信息*/voidalter(){charname[30];intn;/*确定当前用户的人数*/inti;printf(请输入您的姓名:);scanf(%s,name);for(n=0;n200;n++)if(u[n].monney==0)break;for(i=0;in;i++)if(strcmp(u[i].name,name)==0){intchoice=0;printf(1.修改地址2.修改用水量3.修改用电量4.退出\n);printf(请输入您的选择:);4GOTO1:scanf(%d,&choice);switch(choice){case1:printf(请输入地址:);scanf(%s,u[i].ID);break;case2:printf(请输入用水量:);scanf(%lf,&u[i].water);break;case3:printf(请输入用电量:);scanf(%lf,&u[i].electricity);break;case4:break;default:printf(输入错误,请重新输入:);gotoGOTO1;}printf(\n修改成功!\n);break;}if(i==n)printf(没有此用户,您可以选择注册新用户!\n);}/*删除用户*/voiddelete_(){intn,i=0,j;for(n=0;n100;n++)if(u[n].monney==0)break;display();printf(请输入要删除用户对应的编号:);scanf(%d,&i);for(j=i-1;jn;j++){strcpy(u[j].name,u[j+1].name);5u[j].electricity=u[j+1].electricity;strcpy(u[j].ID,u[j+1].ID);u[j].monney=u[j+1].monney;u[j].water=u[j+1].water;}u[n-1].monney=0;printf(删除成功!\n);}/*用户管理*/voidm_user(){intchoice=0;GOTO2:system(cls);printf(\t\t\t************************\n);printf(\t\t\t|用户管理|\n);printf(\t\t\t*************************\n\n\n);printf(1.显示用户信息2.添加用户3.修改用户信息4.删除用户信息5.退出);printf(\n\t\t\t请输入您的选择:);GOTO3:scanf(%d,&choice);switch(choice){case1:display();system(pause);gotoGOTO2;case2:add();system(pause);gotoGOTO2;case3:alter();system(pause);;gotoGOTO2;case4:delete_();system(pause);;6gotoGOTO2;case5:break;default:printf(输入有误,请重新输入:);gotoGOTO3;}}/*收费管理*/voidm_fee(){intn,i,choice=0;doublew_sum=0,e_sum=0;GOTO4:system(cls);printf(\t\t\t********************\n);printf(\t\t\t|收费管理|\n);printf(\t\t\t********************\n\n\n);for(n=0;n100;n++)if(u[n].monney==0)break;printf(1.用户费用信息查询2.总水费3.总电费4.总费用5.退出\n);printf(请输入您的选择:);GOTO5:scanf(%d,&choice);switch(choice){case1:if(n==00)printf(系统无注册用户!\n);elsefor(i=0;in;i++){printf(\n\t姓名:%s\t水费:%.2f元\t电费:%.2f元\t缴纳的总费用:%.2f元\n,u[i].name,(u[i].water)*w,(u[i].electricity)*e,u[i].monney);w_sum+=u[i].water*w;e_sum+=u[i].electricity*e;}system(pause);gotoGOTO4;7case2:printf(系统用户缴纳的总水费:%.2f元\n,w_sum);system(pause);gotoGOTO4;case3:printf(系统用户缴纳的总电费:%.2f元\n,e_sum);system(pause);gotoGOTO4;case4:printf(系统用户缴纳的总费用:%.2f元\n,w_sum+e_sum);system(pause);gotoGOTO4;case5:printf(管理完毕!\n);break;default:printf(输入错误,请重新输入:);gotoGOTO5;}}//注:上面部分程序是用户管理和收费管理的部分程序,这是给用户的缴水电费进行管理。voidmain(){intchoice=0;GOTO6:system(cls);printf(\t\t\t*********************************\n);printf(\t\t\t|欢迎进入水电费管理系统|\n);printf(\t\t\t***********************************\n\n\n);printf(\n\t\t\t1.用户管理\n\t\t\t2.收费管理\n\t\t\t3.退出\n);printf(\n\t\t\t请输入您的选择:);GOTO7:scanf(%d,&choice);switch(choice){case1:m_user();system(pause);8gotoGOTO6;case2:m_fee();system(pause);gotoGOTO6;case3:break;default:printf(\n您的输入有误,请重新输入:);gotoGOTO7;}}//注:开始运用for循环,可是换为for循环之后错误就出现很多。改了几次还是不行,只能找人帮忙,最后是用goto循环。六、运行结果1.水电费管理系统界面的显示2、用户管理界面显