1、电费管理系统 课程设计报告C+ 课程设计报告课 题: 电费管理系统 专业班级: 网络工程*班 学 号: * 姓 名: * 指导教师: * 评阅意见:评定成绩: 指导老师签名: 年 月 日一 课程设计的目的和意义C+与面向对象程序设计是计算机专业的一门专业基础课,主要内容是介绍C+语言中的数据类型,运算,语句结构及其程序设计的基本方法。C+是当今最流行的高级程序设计语言之一,应用十分广泛。它也是一门复杂的语言,与C语言兼容,既支持结构化的程序设计方法,也支持面向对象的程序设计方法。C+课程设计是在学生学习完上述课程以后进行的设计性试验课程,面向对象的思想只有通过具体的程序才能真正掌握,故在我们学
2、习完C+与面向对象程序设计课程后,开设C+课程设计实验课程。目的是使学生能够更好地掌握C+课程设计语言,更深地理解面向对象程序设计的基本概念与方法,要求我们达到熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,提高动手编程解决实际问题的能力,并为后续专业课程的学习奠定程序设计基础。 通过做课程实验,我们应能加深对讲授内容的理解,积累经验,学会独立上机调试程序;并且逐步达到综合运用封装,继承和多态等C+难点知识,真正掌握C+语言的精华,从而熟练应用C+程序设计语言。 本次课程设计要求使用C+编译有关链表的程序。完
3、成我们所选的课题。我们小组选的课题是电费管理系统。我们通过链表完成对用户基本信息的一般性管理工作:用户及用户基本信息的增加、修改和删除和对用户用电情况与显示用户所缴电费情况的记录等功能。在我的链表中是对用户的缴费情况记录的一个链表,要求将用户的基本信息、用电情况、所缴电费及电费余额以数据文件的形式存储,所有的用户基本情况均以文件操作的方式进行。在查找时,以记录的“用户姓名”或“身份证”为关键字进行查找。但由于我们知识的有限性,我们只能对信息进行简单的处理,希望我们能在以后的学习中进一步改善。二 需求分析2.1 电费管理系统功能分析电费管理系统总共分三个链表,用户基本信息链表,用电量的链表,缴费
4、情况链表。电费管理系统功能分六个模块:添加用户,显示所有用户,修改用户信息,保存用户信息,读取用户信息,查询用户信息;此系统将要能够实现后台对用户的设置包括(增、删、查、改)以及前台用户的查询; 2.2 电费管理系统流程图 图2-1电费管理系统流程图三 系统设计3.1 个人负责模块功能分析 图3-1电费管理系统层次图模块:此模块为缴费链表此程序中我主要负责此链表的编写,此模块将实现客户的缴费管理和余额查询,同时用户的基本资料也一并显示; 1、添加用户:录入用户的基本信息,包括用户姓名和账号; 2、显示所有用户缴费情况:自动列出所有保存过的用户缴费信息; 3、修改用户缴费信息:可对系统中已录入的
5、用户缴费信息进行修改; 4、保存用户缴费信息:将录入的用户缴费信息保存在文件中,以便下次再打开系统时,录入的用户缴费信息还在。 5、读取用户缴费信息:将保存在文件中的用户缴费信息读取出来。 6、查询用户缴费信息:每个用户可以匿名查询所有用户缴费情况,可以按不同的条件进行查询,如输如账号进行查询,或者输入姓名进行查询。 3.2 类、函数及说明定义的类:1、class pay /定义一个缴费的类private: char name20; /用户姓名char num20; /用户身份证号码char jine20; /缴费金额 char balance20; /电费余额 char ydl20; /用电
6、量public: pay *next; /定义一个指针public: void SetName(char); /设置用户名char *GetName(); void SetNum(char); / 设置用户账号 char *GetNum(); void Setjine(char); / 录入用户缴费金额 char *Getjine(); void Setydl(char); / 录入用户用电量 char *Getydl(); void Setbalance(char); / 计算并显示用户余额 char *Getbalance(); void Input(); void Display();
7、;2、class paylist /定义一个用户缴费菜单类public: pay *pHead; /定义一个头指针public: paylist(); /无参数构造函数 void Addpays(); /添加多个用户 void Display(); /显示所有用户信息 void Save(char fileName); /保存所有用户信息到文件 void Load(char fileName); /从文件中读取用户信息 paylist(); /析构函数,释放资源 void Menu(); /处理用户信息模块菜单 void Menu_1(); void MainMenu_1(); void Me
8、nu_2(); void Menu_3(); void payMenu(); void MainMenu();private: void Addpay(); /添加一个用户 int Menu_1Select(); /显示和处理用户信息模块菜单 int MainMenu_1Select(); int MainMenuSelect(); ;四 系统测试4.1 功能演示1 程序主界面图4-1 程序主界面选择1进入管理员界面图4-2 管理员进入界面2 用户缴费管理界面选择4进入缴费管理界面图4-3用户缴费管理界面3 添加用户信息及缴费金额界面,在用户缴费信息管理界面选择1图4-4 添加用户信息及缴费金
9、额界面4 保存录入信息图 4-5保存录入信息5 读取所保存的信息图4-6 读取所保存的信息6 显示所保存用户的缴费信息 选择2图4-7显示所保存用户的缴费信息7在主菜单中选择2,用户登录就可以匿名查询所有用户的缴费情况.图4-8 用户登录界面4.2 存在的问题与不足 其实此系统与实际生活中所用到的电费管理系统还是有蛮大的差距的,我们一直都在努力,来缩小与之的差距。譬如,在实际生活中,电费的价格是波动的,而我们的电费价格是规定死了的,一旦电费价格有变动,我们的这个系统将毫无意义。另外,此系统未进行任何安全设置,管理员应该验证信息后才能登陆,这样才有实用性。五 心得体会在为期不到两周的课程设计中,
10、我体会颇多,学到很多东西。我懂得了如何用 MFC编写可视化界面的应用程序,利用C+课程设计这次机会,我加强了对C+的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少。从而对Microsoft Visual C+ 6.0又有了更深入的认识!在这次课程设计中,我还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体设计、数据结构设计、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等。总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂得理论知识变成能做得一些小型程序,让我
11、对编程更加热爱了。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。特别是学会了在Visual C+ 集成开发环境中如何调试程序的方法。当然,老师的悉心指导和同学的帮助也是不可忽视的,在此感谢本次课程设计中所有辅导老师对我们的关心和帮助,诚心诚意感谢你们对我的鼓励与教导,是你们在我迷茫的时候给了我们许多提示,激发了我编程的灵感;还有,我在此也十分感谢本次课程设计中同学们对我的帮助,由于此次我们是团队合作完成电费管理系统这个程序,是我深刻
12、的体会到团队重要性。尽管此次课程设计很累,基本上我们都是在凌晨3、4点钟才睡,但是我们还是坚持了下来,到最后程序终于能够运行了,尽管不分功能没有实现,但这也是对我们努力后的一种回报吧课程设计后,我将和我的团队继续努力,把其中的一些缺陷和不足给弥补上,使整个程序更加的完善,更加具有实用性。六 参考文献1 张昕.C语言课程设计:Visual C+环境.北京:中国水利水电出版社,20052 陈维兴,林小茶.C+面向对象程序设计教程(第三版).北京:清华大学出版社,20053 严蔚敏 吴伟明 数据结构(C语言版).清华大学出版社,2007七 附录 源程序(只包括主函数和用户缴费信息管理这条链表)Pay
13、.h#if !defined (PAY_H)# define PAY_H class payprivate: char name20;/用户姓名 char num20;/用户身份证号码 char jine20;/缴费金额 char balance20;/电费余额 char ydl20;/用电量public: pay *next;public: void SetName(char); char *GetName(); void SetNum(char); char *GetNum(); void Setjine(char); char *Getjine(); void Setydl(char);
14、 char *Getydl(); void Setbalance(char); char *Getbalance(); void Input(); void Display();#endifPaylist.h#if !defined(USERLIST_H)#define USERLIST_H#include pay.hclass paylist public: pay *pHead;public: paylist(); /无参数构造函数 void Addpays(); /添加多个用户 void Display(); /显示所有用户信息 void Save(char fileName); /保存
15、所有用户信息到文件 void Load(char fileName); /从文件中读取用户信息 paylist(); /析构函数,释放资源 void Menu(); /处理用户信息模块菜单 void Menu_1(); void MainMenu_1(); void Menu_2(); void Menu_3(); void payMenu(); void MainMenu();private: void Addpay(); /添加一个用户 int Menu_1Select(); /显示和处理用户信息模块菜单 int MainMenu_1Select(); int MainMenuSelect
16、(); ;#endifPay.cpp#include pay.h#include using namespace std;void pay:SetName(char n) strcpy(name,n);char*pay:GetName() return name;void pay:SetNum(char n) strcpy(num,n);char*pay:GetNum() return num;void pay:Setjine(char n) strcpy(jine,n);char *pay:Getjine() return jine; void pay: Setydl(char n) str
17、cpy(ydl,n); char *pay:Getydl() return ydl; void pay:Setbalance(char n) strcpy(balance,ydl);char *pay:Getbalance() return 0;void pay:Setbalance(char n) strcpy(balance,ydl);char *pay:Getbalance() return 0;void pay:Input() char ch20; cout姓名:; cin.getline(ch,n); SetName(ch); cout账号:; cin.getline(ch,n);
18、SetNum(ch); cout预存电费:; cin.getline(ch,n); Setjine(ch); cout用电量:; cin.getline(ch,n); Setydl(ch); cout电费余额:;cin.getline(ch,n); Setbalance(ch);void pay:Display() couttGetName()tGetNum()tGetjine()ttGetydl()tt Setbalance()endl;Paylist.cpp#include paylist.h#include #include using namespace std;paylist:pay
19、list() pHead= NULL;void paylist:Addpay() pay *pCurrent; if(pHead= NULL) pHead= new pay(); pHead-Input(); pHead-next = NULL; else pCurrent = pHead;while(pCurrent-next != NULL) pCurrent = pCurrent-next; pCurrent-next = new pay(); pCurrent = pCurrent-next; pCurrent-Input(); pCurrent-next = NULL; ;void
20、paylist:Addpays() int n; coutn; getchar(); if(n=0) return; for(int i=1;i=n;i+) Addpay(); ;void paylist:Display() coutt-endl; coutt姓名t身份证号t预存电费 (元)t用电量(度)t余额 (元) endl; coutt-Display(); pCurrent=pCurrent-next; coutt-next!=NULL) pHead=pHead-next; free(pCurrent); pCurrent=pHead; free(pCurrent); ;void pa
21、ylist:Save(char fileName) ofstream oFile(fileName,ios:out|ios:binary); if(!oFile) coutt文件“fileName”打开失败!next; coutt用户信息保存成功!endl; oFile.close();void paylist:Load(char fileName) ifstream iFile(fileName,ios:in|ios:binary); if(!iFile) coutt文件“fileName”打开失败!next = new pay(); iFile.read(char *)&(*(pCurre
22、nt-next),sizeof(*(pCurrent-next); pCurrent=pCurrent-next; pCurrent-next = NULL; coutt读取成功!endl; iFile.close();int paylist:MainMenuSelect() char s2; int cn; coutendl; coutendl; cout+-+endl; cout| |endl; cout| 用户缴费信息管理 |endl; cout| |endl; cout|-|endl; cout|1.添加用户信息及缴费金额 |endl; cout|-|endl; cout|2.显示所有
23、用户余额情况 |endl; cout|-|endl; cout|3.保存用户缴费记录 |endl; cout|-|endl; cout|4.读取用户缴费记录 |endl; cout|-|endl; cout|5.修改用户缴费信息 |endl; cout|-|endl; cout|0.返回主菜单 |endl; cout+-+endl; cout请选择0-5:5) coutnt您的输入有误,请重选0-5:; else break; return cn;int paylist:MainMenu_1Select() char ss2; int cn; cout+-+endl; cout| 欢迎进入管理员界面 |endl; cout|-+-|endl; cout+-+-+endl; cout| 查询用户信息:1 |用户基本信息管理:2 |endl; cout+-+-+endl; cout+ 用户用电量管理:3 |用户缴费管理:4 |endl; cout+-+-+endl; cout| 返回主菜单:0 |endl; cout
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1