最新c语言课程设计学生宿舍系统.doc
《最新c语言课程设计学生宿舍系统.doc》由会员分享,可在线阅读,更多相关《最新c语言课程设计学生宿舍系统.doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料C语言课程设计学生宿舍管理系统.HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言实训报告班 级 : k1223-5 姓 名: 赵 荷 学 号: 20129230518 目 录1.课程实训目的1) 通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2) 通过课程实训,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3) 通过课程实训,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4) 通过课程实训,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,
2、培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。5) 通过课程实训,加强了自己的程序分析能力。2.需求分析2.1要求1) 遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。2) 运用结构化程序设计方法,按照课程实训题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。3) 学会利用数组、结构体、链表进行相关信息表示。4) 功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述5) 各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。6) 所设计的C程序较好的可读性和可靠
3、性;程序书写风格规范,注释清晰。7) 界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。8) 程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。9) 学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。10) 掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。11) C语言课程实训报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。2.2任务描述此系统以计算机系的学生为背景,提供对学生个人住宿信息的录入、编辑、查找、统计等功能。具体功能实现如下:1) 信息录入:实现学生住宿信息的录入
4、功能,并能将其以文件形式加以保存。2) 编辑功能:实现对学生住宿信息的添加,并对指定学生的住宿信息进行删除或修改等功能。3) 信息浏览功能:实现对指定学生的学生住宿信息浏览。4) 查询功能:实现按学生入住时间、按收费标准查询学生住宿信息的功能。5) 系统以菜单方式工作,界面清晰,易于操作。2.3运行环境1) WindowsXP/7系统2) VC+6.0编译环境2.4开发工具C语言3.总体设计3.1系统流程设计本系统的功能模块如图1所示,主要有以下模块:课程名称界面程序欢迎界面学生信息录入学生信息整体浏览学生信息查询学生信息修改学生信息删除退出系统按入住时间查询按收费标准查询主菜单界面图1系统功
5、能模块图3.2系统模块设计1) 课程名称界面:运用printf函数,实现课程实训名称以及作者的显示。2) 系统欢迎界面:运用printf函数,实现欢迎使用学生简历管理系统的显示。3) 主菜单界面:构造函数menu_select();,实现系统主菜单的显示。4) 学生住宿信息录入:构造函数void create(),实现学生简历信息的录入。5) 学生住宿信息浏览:构造函数void xianshi();,实现对学生整体住宿情况的浏览。6) 学生住宿信息保存: 构造函数void baocun();,实现对学生整体住宿情况的保存。7) 学生住宿信息查询: int findByIndex(int ind
6、ex)函数,实现按入住时间查询, 调用int findBybiaozhun(int biaozhun);函数,实现按收费标准查询。8) 学生住宿信息修改:构造函数int replace(char name,int p,int q);,实现对指定学生的学号对其入住时间、收费标准。9) 学生住宿信息删除:构造函数int findBybiaozhun(int biaozhun);,实现对学生整体住宿情况的删除。4.详细设计4.1数据结构设计根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称数据项系统表示数据类型数据长度(字节)备注学生姓名stui.name字符串50学生住宿层号stui.
7、cenghao整型4学生住宿房号stui.fanghao整型4学生住宿床位号stui.chuanghao整型4学生学号stui.xuehao整型4住宿收费标准stui.shoefei整型4缴费状态stui.zhuangtai字符串20学生入住时间stui.shijian整型4根据系统要求,系统中需要保存的类别信息,其结构如下:类别代号文本文档类别名称a.txt先声明一个类型为typedef struct student的结构体,其成员为学生的住宿信息。然后通过对结构体成员、文件等数据结构的操作,实现对学生住宿信息的录入,浏览,查询,存盘,修改,删除等一系列操作。其中,结构体定义如下:typed
8、ef struct student char name50;int cenghao;int fanghao;int chuanghao;int xuehao;int shoufei;char zhuangtai20;int shijian;STUDENT; 4.2模块接口设计1) 所有函数模块声明如下:menu_select();/*主菜单函数*/void create();/*录入学生简历信息*/void xianshi();/*显示浏览界面*/int findByIndex(int index);*实现按学号查询*/int findBybiaozhun(int biaozhun);/*实现
9、按入住时间查询*/void baocun();/*向磁盘写入学生信息加以保存*/int removebyxuehao(int sxh);/*实现指定学生的信息删除*/int replace(char name,int p,int q); /*实现学生信息的修改*/2) 并定义需要使用的全局变量:3) #define NUM 30 int flag=0;STUDENTstuNUMchar name20;int i,n,m,b,c,d,e,f,j,g,p,q,y,x,a1,a2;char A612;4) 主要模块的实现系统以主函数int main()为入口,首先通过system(color 1e)
10、;将汉字界面置为黄色。然后调用menu_select();函数,进入主菜单界面。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。4.3 以下是几个主要模块的流程图:1) 主菜单函数:否打印主菜单接收用户选项是否合法调用对应选项函数进入下一级菜单退出系统是否是是否为0 2) 信息浏览函数:图3 信息浏览流程图需要修改的学生学号是否存在修改界面是选择修改内容实现修改回主菜单打印信息浏览子菜单接收用户选项是否合法是否为0否是是否是否为1整体情况浏览按姓名浏览是否回主菜单3) 信息修改函数:否图4 信息修改流程图5.运行结果5.1主菜单界面:图5主菜单界面输入功能选择,系统自动进
11、入相应功能界面。图6 信息录入界面5.2息浏览界面: 图7 全部信息浏览 5.3信息查询界面: 从键盘中输入选择,可以按学号和姓名进行查询,并显示结果。 图8 按姓名查询的结果5.4修改界面:从键盘中输入需要修改的信息代码,自动提示输入新的信息。图9 按姓名查询的结果6.程序调试与测试6.1程序调试与分析(1) 各模块分别调试过程、出现的错误原因,纠正错误的方法及结果: 主菜单显示界面:刚开始主菜单显示的时候参差不齐,视觉效果混乱。 通过插入“n,t,空格等来使主菜单显示清爽,合理。宿舍整体情况浏览:开始试图用“空闲,居住”来表示某房间的空闲状态。但由于能力有限,无法用汉字表示,就分别用了“T
12、” 和“F”表示某房间的空闲状态。可以表示出每个房间的空闲状态。按入住时间查询:最初对“for”循环的用法不熟悉,造成查询功能无法实现,通过上网查询相关资料解决了这一问题,使按入住时间查询这一功能实现。按入住时间查询:由于在输入入住时间时,限制了只能输入800/年或1200元/年,在测试查询功能时,老是出现程序错误,后来通过一步步的检查找出这一问题,按入住时间查询功能得以实现。修改功能:最初无用了“for”循环,造成数据无法修改。通过请教同学解决了这一问题。删除功能: 最初无用了“for”循环,造成数据无法删除。通过请教同学解决了这一问题。6.2程序测试及结果(1) 各模块测试用例数据的确定测
13、试数据姓名层号房间号床位号学号收费标准缴费状态入住时间孙飞11111200是2011曹钰2222800否2012测试结果数据正确。(2) 测试中出现的问题的原因和分析在保存文件时,由于未及时关闭文件,造成下面的数据乱码,及时关闭文件的操作。7.问题与不足(1)需求分析中存在的问题和分析:因为不能很好的掌握主菜单的循环,无法实现再次录入学生信息。(2概要设计中存在的问题和分析 没能很好的结合实际情况,使程序的某些功能未能符合实际情况。(3详细设计中存在的问题和分析查询的功能太少,只有按入住时间和缴费状态查询。(4)代码编制中存在的问题和分析 在定义结构体时,姓名和缴费状态的数组定义过大,造成内存
14、浪费。(5)调试和测试中存在的问题和分析在输入层号、房间号、床位号、学号、入住时间时未加以保护,输入不是数字时,程序也可运行,存在漏洞。8.建议课设内容的内容应更加符合实际,时间给的太过充裕,老师辅导最好在详细一点。建议老师能从根本上教会学生一些简单的编程。9.编程体会经过二周的课程设计,我学到了很多东西:巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确
15、绘制系统和程序框图。通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。在此对老师和同学们表示感谢!10.程序源代码:#include#define NUM 30
16、int flag=0;typedef struct studentchar name50;int cenghao;int fanghao;int chuanghao;int xuehao;int shoufei;char zhuangtai20;int shijian;STUDENT; STUDENTstuNUM;void create();void xianshi();void baocun();int findByIndex(int index);int removebyxuehao(int sxh);int findBybiaozhun(int biaozhun);int replace
17、(char name,int p,int q);char name20;int i,n,m,b,c,d,e,f,j,g,p,q,y,x,a1,a2;char A612;int main() int menuchoice;system(color 1e);domenu_select();printf(请输入你的选择:);scanf(%d,&menuchoice);switch(menuchoice) case 1: if(flag=0)printf(请输入要录入的学生个数);scanf(%d,&n);rewind(stdin);while(n30|n1)printf(您的输入有误请重新输入:n)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 课程设计 学生宿舍 系统
限制150内