学生宿舍管理系统c语言实习报告

上传人:ji****72 文档编号:25585535 上传时间:2017-12-15 格式:DOC 页数:20 大小:419.50KB
返回 下载 相关 举报
学生宿舍管理系统c语言实习报告_第1页
第1页 / 共20页
学生宿舍管理系统c语言实习报告_第2页
第2页 / 共20页
学生宿舍管理系统c语言实习报告_第3页
第3页 / 共20页
学生宿舍管理系统c语言实习报告_第4页
第4页 / 共20页
学生宿舍管理系统c语言实习报告_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《学生宿舍管理系统c语言实习报告》由会员分享,可在线阅读,更多相关《学生宿舍管理系统c语言实习报告(20页珍藏版)》请在金锄头文库上搜索。

1、西安邮电大学C 语言课程设计报告题 目: 学生宿舍管理系统院系名称: 计算机学院专业名称: 软件工程 班 级: 1205 班学生姓名: 邵欢学号(8 位): 04123157指导教师: 王小银一. 设计目的1. 掌握结构体的定义和使用。2理解链表工作原理,熟悉基本操作。3熟悉 C 语言中文件操作。4掌握文件的定义方法及文件指针的概念,掌握文件打开、关闭、读、写文件基本操作函数。5 掌握 C 语言数据类型,如何定义一个整型、字符型和实型的变量,以及它们赋值的方法。6.握函数的调用及嵌套,顺序结构、选择分支结构、循环结构及其嵌套的应用、结构体、指针以及综合应用,会使用文件的一些函数。7.会独自分析

2、问题解决问题,提高解决问题的能力。8提高分析问题和解决问题的能力,提高程序设计水平二. 设计内容1运用结构体及链表等编辑一个简单的学生宿舍基本信息管理系统,使之能够完成学生基本信息的输入、保存、读取、查找、插入、删除、修改、排序、统计、输出、退出。2利用密码对系统信息进行管理。2执行编译操作,并根据提示调试此程序,排除所有的错误和警告,直到编译成功为止。3执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。4接受老师的检查并回答老师所提出的问题,知道令老师点头为止。5根据自己的源程序及运行情况截取相应的图片,完成实验报告。三概要设计1功能模块图学生宿舍信息管理系统输入信息模块保存信

3、息模块读取信息模块查找信息模块插入信息模块修改信息模块信息排序模块统计信息模块输出信息模块删除信息模块主函数退出2各个模块详细的功能描述。登陆界面:需将在文件中设置好的密码与输入的密码进行比较,正确即可进入主界面,可选择要输入的信息,否则退出1输入模块 struct Node *creat_inf()进入输入信息模块,用 do-while 循环对学生信息进行输入。2保存信息模块 void save_inf(struct Node *head)对信息进行保存,保存到文件中。3读取信息模块 struct Node *read_inf()从指定文件中读取出保存的信息。4查找信息模块 struct N

4、ode * find(struct Node *p)在已保存的信息中按学号查找对应学号。5插入信息模块 int insert (struct Node *p0),将想要插入的信息添加到已有信息中,并保存。6删除信息模块 int del(struct Node *head),按学号找出要删除的学生信息,找到删除。7修改信息模块 void modify(struct Node *p),按学好着出要修改的学生信息,在输入要修改的内容,并保存。8信息排序模块 struct Node* sort(struct Node* head)按宿舍号对学生信息进行排序。9统计信息模块 int statis(str

5、uct Node *head),将保存的学生信息进行统计,并输出。10输出信息模块,void print(struct Node *p)将之前做过修改、排序、插入的所有信息输出。11退出。四详细设计1功能函数的调用关系图输入 choiceSwitch(choice)choice=1 choice=2 choice=3 choice=4 choice=0添加公寓学生信息结束开始choice=5choice=6choice=7choice=8choice=9 choice=保存公寓学生信息 读取公寓学生信息 查找公寓学生信息 插入公寓学生信息 删除公寓学生信息 修改公寓学生信息 排序公寓学生信息

6、统计公寓学生信息 输出公寓学生信息 退出出2各功能函数的数据流程图1密码登陆界面。.进入选择界面开始输入密码Sec与文件中对比结束否 是输入信息开始输入第 i+1 个学生信息是输入姓名输入学号输入年龄输入公寓输入宿舍号i+否输入性别输入楼层输入 choice(YN)2.输入信息模块:对学生公寓学生信息进行输入结束choice=Y? =Y?返回 i 的值进入下一模块块2 查找信息开始num= =0 ?是输出查询信息结束是否p-next!=NULLL NUNULLp=p-next;信息错误没找到!否否p-num=num3插入模块 Lp0-next!=NULL& p0-next-numnum)是p0

7、-next!=NULL& p0-next-num=p-num结束 是否否输入要添加的信息p0=p0-next;p-next=p0-next;p0-next=p;添加失败!否开始4.删除模块开始num= =0?删除失败!输入要删除学生学号p!=NULL是否p=NULL?否是p-num=num结束是否删除查找要删除的学号p0-next=p-next;p0=p;p=p-next;输出删除后学生信息5.修改模块开始num= =0?该数据不存在输入修改项目的内容输出修改后的信息结束是否输入要修改学生的学号查找此学生并输出其信息6.排序模块:temp=32767;p1-roomnext!=NULL? 否是

8、temp=p1-room;p3=p1p3=p1;p1=del(head,p3-room);p2-next=p3;p2=p3;p2-next=NULL是否7.统计模块开始p=head-next;p!=NULL;p=p-next结束输出信息总人数sum= =0?是否p-num0Sum+是否8.输出模块开始清屏否输出宿舍学生信息结束是p-next=0?3重点设计及编码程序的主要设计在各个模块的功能方面,其中密码部分及主界面各模块的调用是比较着重设计的环节printf(nnnnnttt 欢迎登陆学生宿舍信息管理系统n);printf(nnnntttt请输入密码:);for(i=0;inum,p-nam

9、e,p-sex,p-age,p-addr,p-room);else printf(未找到该学生!n); getchar();printf(请按任意键返回主菜单。);getchar();break; case 7:/从指定的磁盘文件中读取信息并存入单链表中head=read_inf();print(head);printf(请按任意键返回主菜单。);getchar();break;case 8:/打印head=read_inf();print(head);printf(请按任意键返回主菜单。);getchar();break;case 9: /统计printf(已存%d个学生信息!n,stati

10、s(head);getchar();printf(请按任意键返回主菜单。);getchar();break;case 10:sort(head);save_inf(head);getchar();printf(请按任意键返回主菜单。);getchar(); break;default: printf(nnnnnnnntttt 感谢您的使用。);printf(nnnttt 确定退出?(y/n):);/fflush(stdin);getchar();ch=getchar(); printf(nntt); if(ch=y|ch=Y) exit(0); break; /system(pause); w

11、hile(1); /end doelse printf(nnnnnttt 对不起,您的密码输入有误!nn);printf(nntttt 请按任意键退出。);getchar();四测试数据及运行结果1正常测试数据和运行结果要求提供 3 组正常测试数据和运行结果将学号为 3 的学生宿舍号修改为 135删除学号为 2 的学生查找学号为 1 的学生信息按年龄大小排序(从大到小)人数统计从指定文件中读取数据2异常测试数据及运行结果要求提供 2 组异常测试数据和运行结果删除学号为 2 的学生信息六调试情况,设计技巧及体会1用 Switch()语句时发现当用整型作为判断依据时,用户如果输入的为字符就会出现卡

12、屏的现象,而用字符型时有可能出现死循环。2语法错误容易发现,逻辑错误不易发现而且比较隐蔽,而且很难修改。3程序设计应分模块设计,在编写过程中不要一大块的区编译,当你完成整个程序的一小部分时,就进行编译查错,程序首先要保证没有语法错误,这样以便以后调试,函数名及变量名尽量要做到见名知意,方便自己调试,也方便他人阅读。4对于程序中的注释是我们一直不够重视的,很多人编程时不写注释,或者注释很少,这样也不利于自己修改程序,更不利于他人阅读程序。1改进方案利用 switch-case.制作主界面,供选择,利用两个链表来实现对信息的排序,使得在编写过程中的难度降低,再利用 do-while 循环,使得程序

13、的可读性也变好。2体会在设计过程中的体会:在开始的设计中我确实感到自己知识运用十分不灵活,有些概念理解不到位,有些子函数不会编,只是照着课本套,我也感觉到把这门课学好是十分有用的,还有这门课的逻辑思维是非常严密的,学好它能够很好的训练人的逻辑思维的。C 语言软件设计既然作为一门利用 C 语言理论课程的另一门学科必定有它的重要性,C 程序设计需要我们总结理论课所学知识,并熟练应用。它是学生的一种强化训练和智力的开发。我想其目的并不是要求我们能编写出高水平的程序,而是要求我们能独立进行实践,完成自己的工作,并培养我们大学生在动手方面的技能。C 程序设计对有些同学来说比较枯燥乏味,这就需要我们用顽强的意志去战胜每一个难关。从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。如果有机会我一定会继续学习计算机这门课的。经过这两周的上机编程,调试,让我对所学知识有了更进一步的了解和巩固。通过写报告册,我也学会了用 word 写东西。七附录:源代码(电子版)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号