C语言课程设计管理系统Word文档格式.docx

上传人:b****6 文档编号:16741794 上传时间:2022-11-25 格式:DOCX 页数:113 大小:158.34KB
下载 相关 举报
C语言课程设计管理系统Word文档格式.docx_第1页
第1页 / 共113页
C语言课程设计管理系统Word文档格式.docx_第2页
第2页 / 共113页
C语言课程设计管理系统Word文档格式.docx_第3页
第3页 / 共113页
C语言课程设计管理系统Word文档格式.docx_第4页
第4页 / 共113页
C语言课程设计管理系统Word文档格式.docx_第5页
第5页 / 共113页
点击查看更多>>
下载资源
资源描述

C语言课程设计管理系统Word文档格式.docx

《C语言课程设计管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计管理系统Word文档格式.docx(113页珍藏版)》请在冰豆网上搜索。

C语言课程设计管理系统Word文档格式.docx

7源代码清单7

7.1XXX.c文件7

7.2XXX.h文件7

1引言

1.1背景

水电费管理与我们生活息息相关。

我们做的水电费管理系统针对用户,因此人性化是最基本的要求。

C是一种既具有一般高级语言特性,又具有低级语言特性的语言,是世界上应用最广泛的几种计算机语言之一。

通过大一一学期的C语言知识的学习,我们掌握了一些最基本的知识。

然而,想要完成课程设计的任务,我们还必须自己找相关资料,并动手执行。

这对我们都是不小的考验。

另外,因为是团队合作,因此组员之间的协调与分工都是必须考虑的问题。

总之,这是一次对我们综合素质和能力的考察,通过二个人的分工合作,在实际中运用和训练程序设计的模块化和工程化思想和技术,努力掌握C语言精髓;

同时提高自己的交流与团队合作的能力.为以后的更专业更复杂的课程设计和实践活动打好基础。

1.2参考资料

1.王士元.C高级实用程序设计.北京:

清华大学出版社.1996

2.周纯杰,刘正林等.标准C语言程序及应用.武汉:

华中科技大学出版社.2005

3.姚远.高级C语言程序设计技巧与实例.北京:

机械工业出版社,1995

4.陈清华,朱红.C语言课程设计.南京:

东南大学出版社,2003

5.潭浩强.C语言程序设计.北京:

清华大学出版社,2000

6.刘振安,苏仕华.C语言图形设计北京:

人民邮电出版社,1995

7.潘建华,卫跃文.C语言实用软件界面设计西安:

西安电子科大出版社,1995

8.鸿健编译.c语言高级程序员编程指南北京:

北京希望电脑公司公司,1991

9.C语言程序设计科学出版社

2需求分析

2.1需求分析

2.1.1软件需求

界面要美观,操作方便并能高效的完成工作。

界面要求“人性化”。

即要引导用户操作的功能,不能是操作一有误就卡住什么都做不下去,又无任何提示来帮助用户如何进行操作,刚开始时是认为需要结构数组,还有文件,后来才了解需要链表,文件等。

2.1.2软件功能

水电费管理系统的对象包括管理员及一般用户。

管理员能够进行家庭用户月度数据录入,基础水电设置的功能,在基础水电费中,管理人员可以选择水电费单价,以及用水,用电的类型,在本系统中,管理人员可以增加用户,写上用户的基本信息,只有被管理人员分配好的用户才能够登陆系统。

用户只能登陆此系统,并进行自我的进行水电费查询等功能,其他的不可以。

2.2运行环境

1.DOS/windows98操作系统

2.BC++3.1环境

3.Tc30

3系统设计

3.1功能需求描述

水电费管理系统要求管理员能够抄表录入,查询用户各类信息,以及水电费的基础设置。

首先设计登录系统,分管理员与一般用户。

选择不同的用户后,分别进入相应的功能界面。

管理员能够录入用户基本信息,年度水电录入,以及对水电用量的统计和用户水电种类和价格的设置。

用户进入用户功能界面后,能够查看自己的基本信息,水电用量以及水电费。

3.2软件结构

主函数模块

账号管理模块

管理人员功能模块

一般用户模块

3.3程序模块划分

1.开机动画模块

2.登陆系统模块

3.管理员各项功能模块

3.1基本信息模块

3.1.1管理人员基本信息模

3.1.2一般用户信息模块

3.2抄表模块

3.2.1管理人员抄表模块

3.2.2一般用户抄表模块

3.3收费管理模块

3.31管理人员收费管理模块

3.32一般用户收费模块

3.4历史数据查询模块

3.41管理人员历史记录查询模块

3.42一般用户历史记录查询模块

3.5基础设置模块

3.51管理人员基础设置模块

3.52用户帮助模块

4.结束动画模块

4组员分工及时间安排

4.1组员分工

张进拓1400行

主要负责登录界面,管理员中的用户信息界面,基础设置和一般用户界面中基本信息,抄表和用户帮助,鼠标实现,汉化实现密码登陆系统的建立。

戴开恒2300行

软件的总体构思,完成开机与结束动画,管理人员用户信息链表的建立,管理员界面中的抄表录入功能及其界面,收费的管理及其界面,查询和用户界面中的查询功能,图片调用等

4.2时间安排

第1-2周系统需求分析与设计报告

第3-5周图形界面设计,键盘、鼠标接口设计,文件的读与写及相关的编码实现

第6-8周调试,链表的使用及相关的编码实现

第9周调试,排错,优化基本完成程序设计

5系统详细设计

5.1主要数据结构说明

structNumber{//定义一个结构负责接收录入用户名信息及其数据数据

charname[6];

charpassword[6];

chardanwei[5];

charphone[15];

charbeizhu[10];

intd;

charmonth1[4];

charmonth2[4];

charmonth3[4];

charmonth4[4];

charmonth5[4];

charmonth6[4];

charmonth7[4];

charmonth8[4];

charmonth9[4];

charmonth10[4];

charmonth11[4];

charmonth12[4];

};

/*定义一个管理用户信息的链表

typedefstructxin_xi{

charname[6];

charpassword[6];

chardanwei[5];

charphone[15];

charbeizhu[10];

intd;

structxin_xi*next;

}num;

/*定义一个十人的用户,负责接收输入的月份数据*/

structMonth{

charnum1[4];

charnum2[4];

charnum3[4];

charnum4[4];

charnum5[4];

charnum6[4];

charnum7[4];

charnum8[4];

charnum9[4];

charnum10[4];

};

5.2主要函数说明

1.Manager模块函数

intm_caidan(structNumber*pt);

intm_chaobiao(structNumber*t);

intyhxinxi(structNumber*yy);

intchaxun(structNumber*pt);

intshoufei(structNumber*pt);

intm_xing(structNumber*pt);

intm_tu();

intzhongjian();

intshezhi(structNumber*pt);

intc_user(structNumber*pt,intv);

intc_xuan(structNumber*pt,structLt*p);

intc_put(structButt*p,structNumber*pt,intv);

intluru(char*a1,char*a2,char*a3,char*a4,char*a5,char*a6,char*a7,char*a8,char*a9,char*a10);

intshuru(char*z,intx1,inty1,intx2,inty2);

voidshuju(structNumber*t);

intsave(structMonth*pp,intb);

structShuju{

intx1;

inty1;

intx2;

inty2;

intmonth(inta,structNumber*t);

intxuanze(structMt*pp,structNumber*t);

intmanager(structNumber*pt);

//定义一个按钮的结构

structMt{

intyhtu();

intdizhi();

charname[6];

charpassword[6];

chardanwei[5];

charphone[15];

charbeizhu[10];

intd;

structxin_xi*next;

}num;

voidcreat_xin(num**head,structNumber*yy);

voidload(num**hp);

intsave(num*head);

intmanager(structNumber*pt);

tanchu();

intzhanghao(char*z);

intmima(char*z);

intshuru1(char*z,intx1,inty1,intx2,inty2);

intshuru2(char*z,intx1,inty1,intx2,inty2);

intuser(structNumber*pt,intv);

intchange(structMonth*qq);

renzheng(structNumber*pt);

voidload1(num**hp);

load();

intsz_tu();

intsz_work(structNumber*pt);

sz_save(char*z1,char*z2,char*s,char*d);

user模块函数

u_tu();

intu_caidan(structNumber*pt,intv);

intu_shuchu(structNumber*pt,intv);

intu_shou(structNumber*pt,intv);

intu_biao();

intu_xin(structNumber*pt,intv);

voidbangzhu();

sum(structNumber*pt,intv);

inttuxing(structNumber*pt,intv);

intmx_xian(int*s);

intoutput(structButt*p,structNumber*pt,intv);

//定义一个按钮结构

structButt{

intx1;

inty1;

intx2;

inty2;

};

Mouse模块函数

voidinitmouse(void);

voidgetmouse(int*button,int*x,int*y);

voidshowmouse(intx,inty);

voidmousesetX(intlx,intrx);

voidmousesetY(intuy,intdy);

voidmousesetXY(intx,inty);

intmouseon();

inthidemouse();

intread_input(int*mx,int*my,int*mbutt);

hz模块函数

voidopen_hz();

voidget_hz(charincode[],charbytes[]);

voidxianshi16(intx0,inty0,charcode[],intcolor);

voidprintfhz16(char*s,intx,inty,intcolor);

voidxianshi15(intx0,inty0,charcode[],intcolor);

voidprintfhz15(char*s,intx,inty,intcolor);

5.3主要算法说明

主要算法是链表接收的用户信息以及系统初始化时用于管理用户信息数据的结

链表如:

结构如:

structNumber{//定义一个结构负责接收录入的数据

6:

总结

张进拓:

从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固.比如说结构体……经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。

我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。

总的来讲,这次的C语言课程设计让我受益匪浅。

通过自己先看书,找资料,然后再动手做,我知道了到万事看起来容易做起来难。

然而,在同学的相互交流中,我对汉字鼠标的使用,各种控制语句的使用,图形界面等都有了更深的了解。

虽然这次的成果依然还是简单粗糙的,但是作为第一次尝试,我相信我以后会走得更远。

戴开恒:

当我接到这个题目时,说实话真的是束手无策,不知道从哪里动手,别是听说要写到2000行以上时,但是都晕了,以前的上机调试,一个小题目就调了几个小时,有时还调不出来,上学期c也学不好,就70分而已,所以可以想象当时的接到题目时的困境了。

暑假在家可以说是一个很好准备的时机,我也拿书回家了,但又因为有计算机等级考试,所以两头都得准备,而且当时还不知道准备什么,就在家看标准c的指针,数组啊,不知道有图形界面鼠标汉化什么的,就这样看着标准c发呆。

哎,现在回想起来真是伤心,因为在家基本上没有准备什么,所以来学校时就得加快速度了。

回学校时,赶紧去图书馆借书,又向同学要了王士元的c语言高级程序设计,还有高级程序设计。

因为刚开始,所以也不知道看什么,就找着书编,把书上得界面看完了,就自己构造自己的菜单界面了,看到书上有下拉式菜单,就决定要下拉式菜单。

当我快编好时才发现书上例题是在文本界面下运行的。

所以我编的也是在文本界面下运行吗,这与老师的要求背道相驰啊。

真是很悲剧,看着自己的努力白费了,当时很是伤心。

后来跟组员商量把菜单交给他做了。

我就开始做密码系统。

界面画出来了,就只剩下核心了,但当时不知道怎么用键盘输入,这个问题困扰我很久,后来在跟一同学的聊天中,得到一些经验,回来照着他说的去实现,编了一天实现了,当时可是激动人心啊,这可是我做课设以后最高兴地第一件事,成功,看来离我不远,但是有遇到新的问题,还有把输入的数据传输再保存。

一个一个问题接踵而来,解决好传输,还有保存。

有同学说程序运行完了那数据就不见了,如果这样的话我们不是做不出来了?

为解决这个问题我看了看书,我觉得应该可以解决它,无意中看到有文件的概念,文件我们上学期没有学啊。

看来有得自学了,起初还以为文件很难的,后来看书,去实践后发现,文件还是很好掌握的。

解决文件后还有密码的校验,如何调用管理人员分配的密码,我决定用结构,但是结构只能存有限个人,没办法,只能用它了,当我结构弄好后就开始建立系统的雏形了,要把所有的东西一下子连在一起这可是个挑战啊。

我弄了一个星期,雏形终于建好了,管理人员可以分配用户及密码了,用户也可以登录了,那时候真是开心,都以为要完成任务了,只要往系统添砖加瓦就行了在接下来两周里我也是这么做的。

直到上周才发现很多人做水电费管理都是用链表….那时链表为何物,我都不清楚啊,那时数据结构也没有开课,完全不了解,发现别人用链表可以增加用户,可以删除用户,将用户信息完全管理,而我们的却不可以,那时真是紧张,担心自己要挂科了。

跟组员商量后决定,他画界面我负责实现核心链表,跟计算机同学借本科学出版社的c语言,就开始啃书籍了,看不懂啊,唉。

直到我照着书写后,发现其中的意思,再步步为营,奋战两个晚上,终于建成一个初级的单链表,再弄一个晚上,才把链表的存储,遍历,读取弄好,但是由于时间关系,不能把整个系统都弄成十字链表,只能用链表管理用户信息,因为再过几天就要验收了,而系统还有很多漏洞啊。

因为我们是第一次做这样大型的课设,真不知道从何做起,走了很多弯路,以至于现在只能把自己的课设做得很粗糙,还有很多优化的地方,都没时间做了,能够实现老师的要求目标,但是我觉得还不够完美,我知道有链表后就很想用链表来做,但是没办法,不够时间啊。

可惜我当时没有看到链表啊。

通过这次课设,我终于知道了,什么是吃苦,真的很累,有时候一个很小的bug要调很长时间,脾气在这段时间也是很暴躁,很烦,但是我也学到了很多,至少可以编一些小中型程序,当我看到上学期的c作业本时,我笑了,因为,那个太简单了,呵呵。

这次课设学到很多,对结构也有很深的了解了,链表,只懂建一个和很简单的单链表,但是知识明显增加了不少。

以后当我面对这样的题目课设时,我可以说自己不会是从零开始了。

※软件漏洞

7.源代码

一.Laod模块

/*函数名称:

load

**功能:

实现文件的读取

*/

intload()

{

FILE*fp;

structMonthmon[12],*qq;

qq=mon;

if((fp=fopen("

January.dat"

"

rb"

))!

=NULL)//打开一月份数据的文件

rewind(fp);

fread(qq,sizeof(structMonth),1,fp);

fclose(fp);

}

February.dat"

=NULL)//打开二月份数据的文件

fread((qq+1),sizeof(structMonth),1,fp);

March.dat"

=NULL)//打开三月份数据的文件

fread((qq+2),sizeof(structMonth),1,fp);

April.dat"

=NULL)//打开四月份数据的文件

fread((qq+3),sizeof(structMonth),1,fp);

May.dat"

=NULL)//打开五月份数据的文件

fread((qq+4),sizeof(structMonth),1,fp);

June.dat"

=NULL)//打开六月份数据的文件

fread((qq+5),sizeof(structMonth),1,fp);

July.dat"

=NULL)//打开七月份数据的文件

fread((qq+6),sizeof(structMonth),1,fp);

August.dat"

=NULL)//打开八月份数据的文件

rewi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1