1、能灵活应用,初步具备运用C程序解决实际问题的能力。2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。3)学会利用数组、结构体、链表进行相关信息表示。4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。6)所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。8)程序经上机调试通过,不应出现语
2、法型、功能型错误,并获得满意的结果。9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。11)C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。任务描述现学校要管理宿舍入住的学生,请设计一宿舍管理程序,以方便学校宿舍管理员对学生进行管理,该程序应该具有以下功能:1) 能从键盘录入床位信息。2) 指定学号,显示该学生的住宿的信息。3) 指定宿舍号,显示住宿信息。4) 给定宿舍号、床位号,修改住宿信息。5) 给定宿舍号、床位号,删除住宿信息。运行环境1)WindowsXP/7系
3、统2)VC+编译环境开发工具C语言3.总体设计系统模块设计1)欢迎及信息导入界面:构造函数int main(),显示欢迎及制作信息。构造函数 void loadRec(), 从磁盘文件导入住宿信息到内存。2)主菜单界面:构造函数int menu_select(),实现系统主菜单的显示。3)住宿信息新建:构造函数void createRec(),新建或录入学生住宿信息。4)住宿信息查询:构造函数void searchRec()查询指定学号的学生住宿信息。5)住宿信息修改:构造函数void modifyRec()修改指定宿舍号及床位号的学生住宿信息。6)住宿信息删除:构造函数void delete
4、Rec()实现对指定宿舍号及床位号的学生住宿信息记录的删除。并通过函数free(),释放内存空间。7)住宿信息浏览:构造函数void listRec(),实现对指定宿舍住宿信息浏览界面的显示。8)住宿信息统计:构造函数void countRec(),实现对床位信息中空床位数的统计。9)住宿信息保存:构造函数void writeInfo(),保存学生住宿信息。10)退出界面:构造函数void exit0()退出程序。系统功能模块图4.详细设计数据结构设计根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注姓名p1-name 字符串20学号id 班级cl
5、asss10入住时间整形床位信息,字符型5根据系统要求,系统中需要保存的类别信息,其结构如下:类别代号char name20char id20char classs10DATE intake类别名称INFO bed住宿情况基本信息结构体Typedef structint year;int month;int day;DATE;char dorm10;char bedid5;int k;INFO;struct studentchar name20;char id20;char classs20;DATE intake;INFO bed;struct student *next;模块接口设计1)所
6、有函数模块声明如下:void createRec(); /*新建住宿信息记录*/void loadRec(); /*从磁盘文件导入住宿信息到内存void searchRec(); /*查询住宿记录*/void modifyRec(); /*修改住宿记录*/void countRec(); /*统计空床位记录*/void deleteRec(); /*删除住宿记录*/void listRec(); /*显示住宿信息*/void writeInfo(); /*保存住宿记录*/void exit0(); /*退出*/int menu_select(); /*主菜单*/2)定义一个全局变量以及结构体指
7、针:struct student *head=NULL,*p1,*p2,*p3;定义结构体指针head 为头指针,p1 为输入数据缓存空间指针,p2 为尾指针,p3为中间指针int writeinfo_flag=0; 保存住宿信息标志的全局变量标志。3)主要模块的实现系统以主函数int main()为入口调用void loadRec()函数导入住宿信息,然后调用int menu_select();函数,进入主菜单界面。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。 以下是几个主要模块的流程图:1)主菜单函数: 否 是 否 是图1 主函数流程图2)查询指定学号学生住宿信息
8、函数: 图2显示指定宿舍学生住宿信息结构框图3)新建或添加学生住宿信息函数:图3 新建若干组学生住宿信息结构框图4)修改(删除)指定宿舍号及床位号的学生住宿信息函数: 图4修改(删除)指定宿舍号及床位号的学生住宿信息结构框图5)显示指定宿舍号学生住宿信息函数:图5 显示指定宿舍号学生住宿信息函数结构框图 6)保存学生住宿信息函数: 图6保存学生住宿信息函数结构框图5.运行结果欢迎界面及文件信息导入: 图1 欢迎界面及文件信息导入主菜单界面:图2主菜单界面 新建学生住宿信息:图3 新建学生住宿信息查询指定学号的学生住宿信息: 图4查询指定学号的学生住宿信息:修改指定宿舍号及床位号的学生住宿信息图
9、5 修改指定宿舍号及床位号的学生住宿信息删除指定宿舍号及床位号的学生住宿信息:图6 删除指定宿舍号及床位号的学生住宿信息显示指定宿舍号的学生住宿信息: 图7 显示指定宿舍号的学生住宿信息统计空床位数:图8 统计空床位数保存学生住宿信息图9 保存学生住宿信息退出界面图10 退出界面6.程序前后文本1 导入的文本路径:张强 1 11 2012-08-06 125 1 1王阳明 2 11 2012-08-06 125 2 0陈超 3 11 2012-08-06 125 3 0李可 4 11 2012-08-06 128 4 12 保存后的文本王阳明 2 11 2012-8-6 125 2 0陈超 3
10、 11 2012-8-6 125 3 0李可 4 11 2012-8-6 128 4 1陈东 5 11 2012-8-6 128 1 07.编程体会 本次课程设计总体感觉要较之去年的简单了不少。但由于C语言初学较差,基础薄弱,感觉还是存在较大的问题。所以这次的编程实现主要是对教师模板进行的在修改,使得其满足课设中所提众多要求。编程中大体要满足的一般都是新建、修改、删除、保存、查询、文件读入等功能,其中的删除和文件读入较为复杂。个人认为这次课设的一个难点是要求运用链表实现编程。不得不说链表的运用会提高程序的清晰度和可读性。但由于链表理解起来较难,这会在应用上存在极大的难度。课设中信息较为复杂,如
11、床位信息、入住时间,都是作为一个信息存在,但本省包含多个信息量。所以在定义结构体时,对结构体进行了另命名和结构体嵌套。在创建、删除等链表等功能的实现中,经常需要找到当前结点之前的结点,也就是前驱结点。随着程序的进展,也需要更新前驱结点指针。在真正的程序应用中,总是会有许多出错的地方,比如各函数对输入数据格式的限制。文件读入时,文件不存在,文件读取错误等。还有指针应用中,申请空间及对废弃指针存储内容的释放等。细节决定成败,程序编写中一个微小的错误就会引发一系列的错误,造成修改难度大,程序无法运行的诸多麻烦。所以在程序编写之初,便应保持良好的心态,认真对待,有条不紊。通过这次课程设计,我可以说是获
12、益匪浅,不仅使得我回顾了大量的C语言知识,巩固了已知,在此基础之上,我还了解理解了虚度哦故去不是很理解或根本不知道的东西。而且从另一侧面锻炼了我的心性,让我在对待事物上可以统筹,又可以对每一个部分进行充分的认识。以及耐心,认真,反复检查,精益求精等良好的品行等。总之,本次课设于我意义重大,受益良多。8.程序源代码/* 已知一个宿舍的信息为:床位信息(宿舍号、床位号、是否入住)、学号、姓名、班级、入住时间,从键盘输入 n 个宿舍的信息,并将其保存在 () 文件中。 */*所使用的有头文件*/#include#include #define LEN sizeof(struct student)/*结构体定义*/typedef struct int year; /*年*/ int month; /*月*/ int day; /*日*/typedef struct char dorm10; /*宿舍号*/ char bedid5; /*床位号*/ int k; /*入住情况k=(0/1)*/I
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1