首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 范文大全
  • 古典文学
  • 职场知识
  • 中国文学
  • 公文书信
  • 外国名著
  • 寓言童话
  • 百家讲坛
  • 散文/诗歌
  • 美文欣赏
  • 礼仪知识
  • 民俗风情
  • 谜语大全
  • 名言警句
  • C语言课程设计报告--物业管理系统

    时间:2021-03-16 00:16:34 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:管理系统 课程设计 物业

    C语言课程设计报告--物业管理系统 本文关键词:管理系统,课程设计,物业,语言,报告

    C语言课程设计报告--物业管理系统 本文简介:中国地质大学本科生课程论文封面课程名称计算机高级语言课程设计(C)教师姓名本科生姓名本科生学号本科生专业网络工程所在院系计算机学院类别:工科日期:16/1/2013课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总成绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅

    C语言课程设计报告--物业管理系统 本文内容:

    本科生课程论文封面

    课程名称

    计算机高级语言课程设计(C)

    教师姓名

    本科生姓名

    本科生学号

    本科生专业

    网络工程

    所在院系

    计算机学院

    类别:

    工科

    日期:

    16/1/2013

    课程设计评语

    对课程论文的评语:

    平时成绩:

    课程论文成绩:

    绩:

    评阅人签名:

    注:1、无评阅人签名成绩无效;

    2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

    3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

    摘要:

    本文完成了综合练习中第20题物业管理系统的编程,程序用于小区的管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理,并用文件存储相关信息。文中给出了需求分析、功能模块图、数据结构、详细设计、程序运行结果、总结和致谢。

    课程设计评语2

    作者简介及摘要3

    录4

    1.课程论文题目5

    2.总体设计6

    3.详细设计8

    4.程序运行结果12

    5.编程中遇到的困难及解决方法16

    6.总结心得及良好建议17

    7.致谢18

    8.参考文献19

    1.课程论文题目:物业管理系统

    1.1问题描述

    物业管理系统问题的描述是:用于小区的物业管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理。要求用文件存储相关信息。

    1.2基本要求

    (1)

    可随时浏览、录入和更改小区住户、收费项目等数据。

    (2)

    随时可增、删、改、查收费项目及其标准。

    (3)

    生成小区住户收费报表(包括全部、已交、欠交)。

    1.3需求分析

    住户信息、物业收费信息用一个文件存储,因而要提供文件的输入/输出操作;另外,还要提供键盘式选择菜单以实现功能选择。

    2.总体设计:

    2.1总体思路

    整个管理系统设计为住户信息、物业收费信息的浏览、增加、更改、删除等模块。

    2.2功能模块图

    物业管理系统

    更改

    删除

    增加

    浏览

    计算

    图2-2功能模块图

    2.3数据结构设计

    根据问题描述,将住户信息、物业收费信息放在一个resident结构体内。

    结点结构:

    fh

    name

    bjf

    baf

    tcf

    yj

    zj

    qj

    定义如下:

    #define

    N

    50

    int

    M;

    struct

    resident

    {

    int

    fh;/*房号*/

    char

    name[10];/*户主姓名*/

    int

    bjf;/*保洁费*/

    int

    baf;/*保安费*/

    int

    tcf;/*停车费*/

    int

    yj;/*已交*/

    int

    zj;/*总计*/

    int

    qj;/*欠交*/

    }s[N];/*s[N]中每个数组元素对应一个住户*/

    将住户信息储存在ZHSFBB.txt文本文件中

    内容及格式:

    101

    wang

    86

    50

    80

    120

    102

    zhang

    77

    50

    0

    127

    201

    zhao

    80

    50

    60

    150

    202

    shang

    70

    55

    10

    100

    301

    zhou

    88

    66

    55

    130

    302

    mei

    56

    89

    13

    90

    401

    sun

    46

    66

    79

    80

    402

    tian

    50

    80

    40

    140

    501

    fang

    60

    70

    30

    120

    502

    chen

    90

    60

    40

    88

    601

    bian

    40

    40

    40

    110

    602

    wu

    80

    80

    40

    80

    3.详细设计

    3.1数据读入模块:

    小区住户信息采用结构体形式,把一个住户的信息作为结构体成员,若要存放若干个住户信息就要用到结构体数组,一条记录对应一户住户的信息,既符合习惯也方便信息管理。

    代码:/************************数据读入模块***********************/

    void

    Re_file()

    {

    FILEfp;

    M=0;

    fp=fopen(“ZHSFBB.txt“,“r“);

    while(fscanf(fp,“%d%s%d%d%d%d“,fclose(fp);

    }

    3.2

    计算模块

    主函数中已读入原始数据,计算:总计=保洁费+保安费+停车费,欠交=总计-已交。

    开始

    定义循环计数器i

    i小于或等于总住户数?

    计算

    总计=保洁费+保安费+停车费

    计算

    欠交=总计-已交

    i=i++

    结束

    图3-2计算模块流程图

    3.3增加模块

    该模块的功能是增加新的小区住户记录,用户从键盘输入并逐条写到原来的输入文件中。

    代码:/************************增加模块***********************/

    void

    Append()

    {

    int

    n,i;

    printf(“可输入增加的住户数:“);

    scanf(“%d“,M=n+N;

    printf(“现在,请输入相关信息:/n“);

    for(i=1;i<=n;i++)

    {

    printf(“房号:“);

    scanf(“%d“,printf(“户主姓名:“);

    scanf(“%s“,s[M-n-1+i].name);

    printf(“保洁费:“);

    scanf(“%d“,printf(“保安费:“);

    scanf(“%d“,printf(“已交:“);

    scanf(“%d“,}

    }

    3.4修改模块:

    该模块的功能是根据房号或户主姓名找到要修改的记录,并提示用户修改该记录的哪部分信息(保安费、保洁费、停车费、已交),然后根据用户的选择修改相应信息并形成新的报表。

    开始

    1

    选择删除选项

    2

    输入房号d

    定义数组下标i=0

    i

    d=s[i].fh

    输入户主姓名m

    定义数组下标i=0

    i

    比较函数判断有无

    无strcmp(m,s[i].name)==0

    输出

    “没有找到”

    输出

    “没有找到”

    输入要修改信息

    1

    2

    3

    4

    修改已交

    修改停车费

    修改保安费

    修改保洁费

    结束

    图3-4修改模块流程图

    3.5删除模块

    用户输入要删除的房号或姓名,根据房号或户主姓名查找工资记录并删除,删除位置后面的记录往前移动。

    开始

    1

    选择删除选项

    2

    输入户主姓名m

    定义数组下标i=0

    i

    比较函数判断有无

    无strcmp(m,s[i].name)==0

    删除s[i]

    输出:“没有找到”

    输入房号d

    定义数组下标i=0

    i

    d=s[i].fh

    删除s[i]

    输出:“没有找到”

    结束

    图3-5删除模块流程图

    代码:/************************删除模块***********************/

    void

    Delete()

    {int

    i,j=-1,d;char

    m[20];

    printf(“删除模块:“);

    printf(“/n/n/n“);

    printf(“*******************************/n“);

    printf(“*/n“);

    printf(“*/n“);

    printf(“*/n“);

    printf(“*

    1:房号

    2:户主姓名/n“);

    printf(“*/n“);

    printf(“*/n“);

    printf(“*/n“);

    printf(“*******************************/n“);

    printf(“/n/n请输入删除选项:“);

    scanf(“%d“,if

    (i==1)

    {printf(“请输入房号:“);

    scanf(“%d“,for(i=0;i

    if(d=s[i].fh)

    j=i;

    }

    else

    if(i==2)

    {printf(“请输入户主姓名:“);

    scanf(“%s“,for(i=0;i

    if(strcmp(m,s[i].name)==0)

    j=i;

    }

    if(j!=-1)

    {

    M=M-1;

    for(i=j;i<-Ni++)

    s[i]=s[i+1];}

    else

    if(j==-1)

    printf(“没有找到!/n“);

    }

    3.6任务结束后的返回菜单

    void

    Menu()

    {int

    sele;

    sele=1;

    while(sele)

    {

    system(“cls“);

    printf(“/n/n“);

    printf(“*************************************/n“);

    printf(“*/n“);

    printf(“*

    1:浏览

    2:增加/n“);

    printf(“*

    3:更改

    4:删除/n“);

    printf(“*

    5:退出/n“);

    printf(“*/n“);

    printf(“*************************************/n“);

    printf(“/n/n请选择功能序号:“);

    scanf(“%d“,switch(sele)

    {

    case

    1:Calculate();Display();Menu();break;

    case

    2:Append();Display();Menu();break;

    case

    3:Modify();Display();Menu();break;

    case

    4:Delete();Display();Menu();break;

    case

    5:exit(0);break;

    }

    printf(“/n/n按任意键继续/n“);

    getch();

    }

    Wr_file();

    }

    4.

    程序运行结果

    4.1主函数界面(也称主界面)

    主界面如图所示。

    图4-1-1主函数界面

    4.2浏览模块

    在主界面中输入“1”,然后按Enter键,进入浏览模块,如图所示。

    图4-2-1浏览界面1

    图4-2-2浏览界面2

    4.3增加模块

    在主界面中输入“2”,然后按Enter键,进入增加模块,如图所示。

    图4-3-1增加界面1

    图4-3-2增加界面2

    4.4更改模块

    在主界面中输入“3”,然后按“Enter”键,进入更改模块,如图所示。

    图4-4-1更改界面1

    图4-4-2更改界面2

    4.5删除模块

    在主界面中输入“4”,然后按“Enter”键,进入删除模块,如图所示。

    图4-5-1删除界面

    5.编程中遇到的困难及解决方法

    (1)课程设计刚开始的时候,C语言的教学尚未结束,“用户自己建立数据类型”(包括结构体、链表、共用体、枚举类型、声明新类型等内容)及“对文件的输入输出”两大章重要内容还未进行学习,这样的条件下很难进行程序的编辑。在这种情况下,我采取“磨刀不误砍柴工”的策略,先深入研读并理解了《C程序设计(第四版)》一书中这两张的内容,并将相应的一些简单程序上机调试,做到基本熟练掌握这些内容后,才着手此程序的编译工作。

    (2)作为第一个刚C语言不到半年的“入门级”新手,第一次面对此种较大型的程序案例,刚开始着实不知道从何下手,所以我决定先练习《基于PBL的C语言课程设计及学习指导》一书上的实例,通过“庖丁解牛”,我开始懂得不管一个程序多么复杂,其实它都是由最基本的函数组成,只要我们弄清结构、一切都会迎刃而解。

    (3)初读题目时无法抽象出问题模型,而“举一反三”中的实例与本课题有很多相似之处,通过“举一反三”,我总结出了此题目的设计思路、功能模块、数据结构设计等。

    6.总结心得及良好建议

    这次课程设计共八次,时间不长,却感受很深。无论是在学习知识还是在解决问题的能力上,都有深刻的认识,总结如下:

    (1)程序设计思路一定要清晰,主函数尽量简洁,这样在调试过程中若出现错误,只要沿着主函数的思路逐个排查即可。一个条理清楚的框架结构有利于编译过程中查找并解决问题。

    (2)编译、调试时最好分模块进行。我第一次调试时是在整个程序编辑完后一次性编译,一下子出现了很多处错误。在老师及同学们的指导下,我新建了一个工作区并从主函数开始分模块进行编译调试,一个函数确认没有错误后在加入下一个函数,这样分步进行使每处错误便于查找和更改。

    (3)

    细节处一定要注意,我刚刚编程时很容易丢落“;”“}”等符号,而这会对程序的编译造成极大的不便。一个优秀的程序员应时刻注意细节,养成细心的良好品质。

    7.致谢

    在课程设计过程中经常遇到诸多问题,多亏有刘老师指导和班上同学的耐心帮助,才能坚持做下去,在此表示衷心感谢!

    8.参考文献

    [1]张冬梅,刘远兴,陈晶,王媛妮等.基于PBL的C语言课程设计及学习指导.北京:清华大学出版社,2011

    [2]谭浩强.C程序设计(第四版).北京:清华大学出版社,2012

    18

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识