欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新c语言课程设计学生宿舍系统.doc

    • 资源ID:33836712       资源大小:630.50KB        全文页数:44页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新c语言课程设计学生宿舍系统.doc

    精品资料C语言课程设计学生宿舍管理系统.HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言实训报告班 级 : k1223-5 姓 名: 赵 荷 学 号: 20129230518 目 录1.课程实训目的1) 通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2) 通过课程实训,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3) 通过课程实训,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4) 通过课程实训,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。5) 通过课程实训,加强了自己的程序分析能力。2.需求分析2.1要求1) 遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。2) 运用结构化程序设计方法,按照课程实训题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。3) 学会利用数组、结构体、链表进行相关信息表示。4) 功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述5) 各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。6) 所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。7) 界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。8) 程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。9) 学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。10) 掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。11) C语言课程实训报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。2.2任务描述此系统以计算机系的学生为背景,提供对学生个人住宿信息的录入、编辑、查找、统计等功能。具体功能实现如下:1) 信息录入:实现学生住宿信息的录入功能,并能将其以文件形式加以保存。2) 编辑功能:实现对学生住宿信息的添加,并对指定学生的住宿信息进行删除或修改等功能。3) 信息浏览功能:实现对指定学生的学生住宿信息浏览。4) 查询功能:实现按学生入住时间、按收费标准查询学生住宿信息的功能。5) 系统以菜单方式工作,界面清晰,易于操作。2.3运行环境1) WindowsXP/7系统2) VC+6.0编译环境2.4开发工具C语言3.总体设计3.1系统流程设计本系统的功能模块如图1所示,主要有以下模块:课程名称界面程序欢迎界面学生信息录入学生信息整体浏览学生信息查询学生信息修改学生信息删除退出系统按入住时间查询按收费标准查询主菜单界面图1系统功能模块图3.2系统模块设计1) 课程名称界面:运用printf函数,实现课程实训名称以及作者的显示。2) 系统欢迎界面:运用printf函数,实现欢迎使用学生简历管理系统的显示。3) 主菜单界面:构造函数menu_select();,实现系统主菜单的显示。4) 学生住宿信息录入:构造函数void create(),实现学生简历信息的录入。5) 学生住宿信息浏览:构造函数void xianshi();,实现对学生整体住宿情况的浏览。6) 学生住宿信息保存: 构造函数void baocun();,实现对学生整体住宿情况的保存。7) 学生住宿信息查询: int findByIndex(int index)函数,实现按入住时间查询, 调用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.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的结构体,其成员为学生的住宿信息。然后通过对结构体成员、文件等数据结构的操作,实现对学生住宿信息的录入,浏览,查询,存盘,修改,删除等一系列操作。其中,结构体定义如下:typedef 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);/*实现按入住时间查询*/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");将汉字界面置为黄色。然后调用menu_select();函数,进入主菜单界面。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。4.3 以下是几个主要模块的流程图:1) 主菜单函数:否打印主菜单接收用户选项是否合法调用对应选项函数进入下一级菜单退出系统是否是是否为0 2) 信息浏览函数:图3 信息浏览流程图需要修改的学生学号是否存在修改界面是选择修改内容实现修改回主菜单打印信息浏览子菜单接收用户选项是否合法是否为0否是是否是否为1整体情况浏览按姓名浏览是否回主菜单3) 信息修改函数:否图4 信息修改流程图5.运行结果5.1主菜单界面:图5主菜单界面输入功能选择,系统自动进入相应功能界面。图6 信息录入界面5.2息浏览界面: 图7 全部信息浏览 5.3信息查询界面: 从键盘中输入选择,可以按学号和姓名进行查询,并显示结果。 图8 按姓名查询的结果5.4修改界面:从键盘中输入需要修改的信息代码,自动提示输入新的信息。图9 按姓名查询的结果6.程序调试与测试6.1程序调试与分析(1) 各模块分别调试过程、出现的错误原因,纠正错误的方法及结果: 主菜单显示界面:刚开始主菜单显示的时候参差不齐,视觉效果混乱。 通过插入“n,t,空格等来使主菜单显示清爽,合理。宿舍整体情况浏览:开始试图用“空闲,居住”来表示某房间的空闲状态。但由于能力有限,无法用汉字表示,就分别用了“T” 和“F”表示某房间的空闲状态。可以表示出每个房间的空闲状态。按入住时间查询:最初对“for”循环的用法不熟悉,造成查询功能无法实现,通过上网查询相关资料解决了这一问题,使按入住时间查询这一功能实现。按入住时间查询:由于在输入入住时间时,限制了只能输入800/年或1200元/年,在测试查询功能时,老是出现程序错误,后来通过一步步的检查找出这一问题,按入住时间查询功能得以实现。修改功能:最初无用了“for”循环,造成数据无法修改。通过请教同学解决了这一问题。删除功能: 最初无用了“for”循环,造成数据无法删除。通过请教同学解决了这一问题。6.2程序测试及结果(1) 各模块测试用例数据的确定测试数据姓名层号房间号床位号学号收费标准缴费状态入住时间孙飞11111200是2011曹钰2222800否2012测试结果数据正确。(2) 测试中出现的问题的原因和分析在保存文件时,由于未及时关闭文件,造成下面的数据乱码,及时关闭文件的操作。7.问题与不足(1)需求分析中存在的问题和分析:因为不能很好的掌握主菜单的循环,无法实现再次录入学生信息。(2概要设计中存在的问题和分析 没能很好的结合实际情况,使程序的某些功能未能符合实际情况。(3详细设计中存在的问题和分析查询的功能太少,只有按入住时间和缴费状态查询。(4)代码编制中存在的问题和分析 在定义结构体时,姓名和缴费状态的数组定义过大,造成内存浪费。(5)调试和测试中存在的问题和分析在输入层号、房间号、床位号、学号、入住时间时未加以保护,输入不是数字时,程序也可运行,存在漏洞。8.建议课设内容的内容应更加符合实际,时间给的太过充裕,老师辅导最好在详细一点。建议老师能从根本上教会学生一些简单的编程。9.编程体会经过二周的课程设计,我学到了很多东西:巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。在此对老师和同学们表示感谢!10.程序源代码:#include<stdio.h>#define NUM 30int 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(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(n>30|n<1)printf("您的输入有误请重新输入:n");scanf("%d",&n);rewind(stdin); create();printf("n学生信息录入成功.n");flag=1;system("pause");system("cls");break; else printf("学生信息已录入,不需录入.n");system("pause");system("cls");break;case 2:if(flag=1)printf("您输入的学生信息为n");xianshi();system("pause");system("cls"); break; else printf("请先录入学生信息 再浏览!.n");system("pause");system("cls");break;case 3: if(flag=1) printf("学生信息查询(按入住时间查询)n");scanf("%d",&y);findByIndex(y);system("pause");system("cls"); break;else printf("请先录入学生信息 再查询!.n");system("pause");system("cls");break;case 4: if(flag=1) printf("学生信息查询(按收费标准查询)n");scanf("%d",&x);findBybiaozhun(x);system("pause");system("cls"); break;else printf("请先录入学生信息 再查询!.n");system("pause");system("cls");break;case 5:if(flag=1) printf("学生信息修改n");printf("请输入要被修改的姓名和新的入住时间,收费标准n");scanf("%s%d%d",name,&a1,&a2);replace(name,a1,a2);system("pause");system("cls"); break; else printf("请先录入学生信息 再修改!.n");system("pause");system("cls");break;case 6:if(flag=1) printf("学生信息删除");printf("请输入您要删除的学生的学号");scanf("%d",&g);removebyxuehao(g);system("pause");system("cls");break;else printf("请先录入学生信息 再删除.n");system("pause");system("cls");break;case 7: printf("程序退出,欢迎再次使用!n");exit(0);system("pause");system("cls");default :printf("您的输入有误请重新输入n");rewind(stdin);system("pause");system("cls");break;while(1);int menu_select()printf("tttttt注释:'F'代表该房间为空闲n");printf("tttttt注释:'T'代表该房间有学生居住n");printf("ttt 学生宿舍管理系统n");printf("ttt作者:赵荷n");printf("ttt指导老师:胡宁亚n");printf("tt*");printf("ttttt 1.录入学生住宿信息n");printf("ttt 2.宿舍信息整体浏览n");printf("ttt 3.按入住时间查询n");printf("ttt 4.按收费标准查询n");printf("ttt 5.修改功能n");printf("ttt 6.删除n");printf("ttt 7.退出n");printf("tt*nnn");printf("tt欢迎使用!nnn");void create()for(i=0;i<6;i+)for(j=0;j<12;j+) Aij='F' printf("请输入%d个学生的信息(姓名,层号,房间号,床位号,学号,收费标准,缴费状态,入住时间)n",n);for(i=0;i<n;i+)doscanf("%s%d%d%d%d%d%s%d",stui.name,&stui.cenghao,&stui.fanghao,&stui.chuanghao,&stui.xuehao,&stui.shoufei,stui.zhuangtai,&stui.shijian);if(stui.shoufei!=800)&&(stui.shoufei!=1200)printf("输入错误,请重新输入");while(stui.shoufei!=800&&stui.shoufei!=1200);Astui.cenghao-1stui.fanghao-1='T'flag=1;void xianshi()printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");for(i=0;i<n;i+)printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);printf("nnnn");printf(" ");for(j=0;j<12;j+)printf(" %d ",j+1);printf("n");for(i=0;i<6;i+)printf("第%d层",i+1); for(j=0;j<10;j+) printf("%3c",Aij);for(j=10;j<12;j+)printf("%4c",Aij);printf("n"); printf("保存文件");baocun();printf("nn");void baocun()char a100;FILE *fp;printf("请输入文件名:n");rewind(stdin);gets(a); if(fp=fopen(a,"w")=NULL)printf("文件不能打开n");exit(0);fp=fopen(a,"w");for(i=0;i<n;i+)fprintf(fp,"%s %d %d %d %d %d %s %d",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);printf("保存成功n");fclose(fp);int findByIndex(index)int i;for(i=0;i<n;i+)if(stui.shijian=y)printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);elseprintf("无此信息.n");return 0;int findBybiaozhun(int biaozhun)for(i=0;i<n;i+)if(stui.shoufei=biaozhun)printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);elseprintf("无此姓名.n");return 0;int replace(char name,int p,int q)int i;printf("该学生的原数据为:n");for(i=0;i<n;i+)if(strcmp(name,stui.name)=0)printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);stui.shijian=p; stui.shoufei=q; printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian); printf("修改后的信息为:n");return 0;int removebyxuehao(int sxh)printf("原数据为:n");for(i=0;i<n;i+)printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);printf("n");sxh-;for(b=sxh;b<n;b+)stub=stub+1;n-;printf("n");for(i=0;i<6;i+)for(j=0;j<12;j+) Aij='F' printf("删除后为:n");for(i=0;i<n;i+)printf("姓名 层号 房间号 床位号 学号 收费标准 缴费状态 入住时间n");printf("%s %d %d %d %d %d %s %dn",stui.name,stui.cenghao,stui.fanghao,stui.chuanghao,stui.xuehao,stui.shoufei,stui.zhuangtai,stui.shijian);Astui.cenghao-1stui.fanghao-1='T'printf(" ");for(j=0;j<12;j+)printf(" %d ",j+1);printf("n");for(i=0;i<6;i+)printf("第%d层",i+1); for(j=0;j<10;j+) printf("%3c",Aij);for(j=10;j<12;j+)printf("%4c",Aij);printf("n"); return 0;11.参考文献1 廖湖声C程序设计案例教程人民邮电出版社,2010.92 何钦铭C语言程序设计高等教育出版社,2009.53 谭浩强C程序设计(第2、3、4版)清华大学出版社,2000.1.4 C语言程序设计教程,杨路明著,北京邮电大学出版社.12.用户使用手册现有学生宿舍一栋,共6层,每层有房间12个,每间宿舍可以住6名学生,每层一半为为含卫生间宿舍,含卫生间的每年收费为1200元,其它为800元。现我设计一宿舍管理系统,使之能提供以下功能:(1) 系统以菜单方式工作(用键盘输入17之间的数来选择功能,其中7为退出)(2)学生住宿信息录入功能(录入信息用文件保存);(3)宿舍信息整体浏览功能(房间空闲情况)(4)查询功能:按收费标准、入住时间查询。(5)宿舍入住修改功能:用户通过输入要被修改的学生姓名及新的入住时间收费标准,实现对学生住宿信息的修改。(6)学生入住信息的删除功能:用户通过输入要被修改的学生学号进行删除,所有数据符合实际应用要求(1) 用户使用你设计的系统时,应些注意什么,如何操作。 在录入学生姓名时,学生的姓名可为英文或中文,只能从键盘按提示按输入。 在录入学生所居住的房号时,学生的房号必须为数字(112),只能从键盘按提示按输入。 在录入学生层号时,学生的层号必须为数字(16),只能从键盘按提示按输入。 在录入学生所居住的床位号时,学生的床位号必须是整数(16),只能从键盘按提示按输入。 在录入学生住宿收费标准时,学生的收费标准必须为1200/年或800/年,只能从键盘按提示按输入。 在录入学生的入住时间时,学生的入住时间必须为整数,且符合实际,只能从键盘按提示按输入。 在录入学生学号时,学生的学号必须为整数,只能从键盘按提示按输入。 在录入学生的缴费状态时时,学生的缴费状态必须为“是”或“否”,只能从键盘按提示按输入。 “T”表示该房间为有学生居住,“F” 表示该房间为空闲。 该系统最多只能输入30个学生的住宿信息,只能从键盘按提示按输入。 姓名:赵荷 日期:2013年1月11日

    注意事项

    本文(最新c语言课程设计学生宿舍系统.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开