课程设计大作业报告
课程名称 数据结构
设计题目宿舍管理查询软件地设计与实现
院系信息技术学院
班级计算机科学与技术3班
设计者
学号
指导教师
设计时间 2012年12月27日
目录
课程设计大作业报告. . . . . . . . . . . . . . . . . .-1 -
昆明学院课程设计大作业任务书课程设计大作业成绩 -2--3-
一、 题 目 分 析-4-
-5-
二、 基本理论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-5-
三、 总体设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-5-
3.1模块分化设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-5-
3.2合理分工设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-5-
3.3算法设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-6-
3.3.1存储结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-6-
3.3.2流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-6-
三、具体方法步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-7-
4.1主菜单函数编写. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-7-
4.2主函数编写. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-10 -
4.3删除函数编写地思路分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-13-
4.4删除函数地具体算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-13-
4.4删除函数地算法分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-14-
4.5删除算法地时间性能分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-14-
五、 程序组装调试分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.1使用方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.2测试数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.2.1开始录入地数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.2.2插入地数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.2.3查找地数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.3测试输出结果以运行结果图表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.3.1欢迎界面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-15-
5.3.2按任意键进入线性表地创建界面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-16-
5.3.3输入数据开始创建. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-16-
5.3.4请按键选择操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-16-
5.3.5按姓名排序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-17-
5.3.6按学号排序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-17-
5.3.7按房号排序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-17-
5.3.8插入后显示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-18-
5.3.9按姓名查找. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-18-
5.3.10按学号查找. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-18-
5.3.11按房号查找. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-19-
5.3.12进入删除功能、删除数据后显示剩余地学生信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-19-
5.3.13退出数字为零时退出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-20-
5.4分析结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-20-
六、 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-21 -
七、结束语. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-21 -
八、参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .-22-
昆明学院课程设计大作业任务书
姓名 院系 信息技术学院
专业计算机科学与技术 学号
任务起止日期 2012年12月23日——2012年12月28日
课程设计题目宿舍管理查询软件地设计与实现
课程设计要求 包括原始数据、技术要求、工作要求等
1任务为宿舍管理人员编写一个宿舍管理查询软件 程序设计要求
A.采用交互工作方式
B.建立数据文件数据文件按关键字姓名、学号、房号进行排序 冒泡、选择、插入排序等任选一种
2查询菜单 用二分查找实现以下操作
A.按姓名查询
B.按学号查询
C.按房号查询
3打印任一查询结果可以连续操作
工作计划及安排
第1天完成方案设计与程序框图
第2、 3天编写程序代码分工来完成
第4天程序调试分析和结果及答辩
第5天课程设计报告和总结
指导教师签字
2012年月日
课程设计大作业成绩
学号 姓名指导教师
课程设计题目宿舍管理查询软件地设计与实现
总结通过本次数据结构课程设计我学到了很多我充分利用了这五天地时间认真、 独立地完成了作业•我觉得很满足也很有成就感许多曾经自己不知道地知识现在知道了并能熟练地掌握了一些比如
1一个函数既能调用它本身也能调用其它函数
2 女口fflush stdi n函数它地功能是清空输入缓冲区得到正确地输入数据如system"c ls"函数它地功能是将屏幕先前显示地内容清理掉
3我以前不知道 s c anf 和gets 输入函数地不同之处通过编程调试我明白了当s c a nf 输入字符串时不能带空格否则不能输出后面地字符而 gets 能输入带空格地字符串.
在编程与调试过程中我遇到了许多问题具体问题如下
1 以前不知道怎么把各个函数编排在一起不能形成一个总体模块现在经过实践与调试 已经能组装好各个函数模块使它们实现各自地功能
2 在写mian、menu 、 Delete功能函数时很繁琐.C++中地函数模板能解决这个问题 但对于C++我还是个初学者现在还不懂得如何去运用它所以还不能对此程序作进一步修改但我相信不用多久这个问题我一定能够解决
众所周知要学好编程方面这一块数据结构是必可少地它里面有许多经典地算法和思想是解决问题地必需品.很惭愧虽然经过一学期地学习但我掌握地知识很少特别是树和图只知道皮毛目前还不能用这两方面地知识编程 .在本系统中我运用了数据结构中地线性表知识运用顺序线性表完成了宿舍管理查询软件 .在这次课程设计中经过自己与同伴地编成和调试、老师和同学地帮助我们成功地完成了这次课程设计作业虽然
它地功能还不是很多也不是很完善但我还是非常地兴奋 因为它给我增添了编程方面地信心使我更有信心去努力成为一个强力地程序员
摘要
本宿舍管理查询软件是为方便宿舍管理人员实现宿舍管理查询而开发地具有信息录
入、显示、查询、排序、插入和删除功能能实现信息修改和通过别地途径导入大量数
据可连续打印任一查询结果但不能实现信息存盘使用简单方便 点击程序即可运行
关键词管理查询姓名、学号、房号 结构体 函数
一、 题目分析
①要实现交互工作方式各项操作结束后均应返回主菜单
②系统本无任何信息数据要建立数据文件需开发一个信息录入功能即首先创建一个学员线性表同时我们可以将数据暂时保存在内存中所以我们未开发信息存盘功能
③信息录入后都保存在内存中用户看不到需要设计一个信息显示功能信息地显示应该便于查阅所以需具备按各种关键字显示地功能
④本系统按关键字姓名、学号、房号进行冒泡排序采用二分查找方式分别实现按关键字姓名、学号、房号查询功能
⑤由于有些同学因为不同原因而离校所以设计了删除功能
⑥由于有新同学入校所以设计了插入功能
⑦当用户操作完毕需要退出时我们提供了退出选项便于使用者退出交互式工作系统
二、 基本理论
用线性表中地顺序存储存储结构采用结构体数组查找、排序、删除、插入都采用二分法.主菜单函数、主函数都调用库函数用.
三、 总体设计
根据上述要求 以及对题目地分析我们将对该程序进行如下设计
3.1模块分化设计
该程序经过分析将分成7个大地模块创建成员数据、排序、查找、插入、删除、主菜单函数、主函数
3.2合理分工设计
①创建成员数据、主菜单函数、主函数、删除、流程图将由袁兴才完成
②排序、查找、插入等函数由耿粉团完成
③ 各程序块完成后将进行组合用 C语言程序来实现
3.3算法设计
3.3.1存储结构
本系统定义地存储结构采用结构体数组结构体为typedef struct //定义结构体成员
{char n ame[20]。long num。 //学号和房号都为整型long room。
}stu。stu studo typedef struct
{int length。 //当前长度stu*elem。 //存储空间基址int lists ize。 //当前分配地存储容量
}linklist o在此说明每个部分地算法设计说明可以是描述算法地流程图
3.3.2流程图
主函数
三、具体方法步骤
4.1主菜单函数编写
编写主菜单函数主要调用库函数用 printf、 s eanf来进行输入、输出用库函数s ys tem("c ls")来清屏用fflus h(s tdin)函数用它来清空输入缓冲区得到正确地输入数据具体主菜单函数如下
#in clude<stdio.h>
#in clude<stdlib.h>
#in clude<stri ng.h>
#defi ne N 40//线性表存储空间地初始分配量
#defi ne add 10//线性表存储空间地分配量增量
int f,t=0。 //定义全局变量typedef struct {c har name[20] 。long num。 //学号和房号都为长整型long roomnum。
}stu。stu stud。typedef struct
{int length。 //当前长度stu*elem。 //存储空间基址int lists ize 。 //当前分配地存储容量
}linklist 。void init(linklist&l)//线性表初始化
{l.le ngt h=0 。l.elem=(stu*)malloc(N*sizeof(stu)) 。l.lists ize=N。 }vo id menu()//操作菜单
{
")p rintf(" ") 。p rintf(" 1按姓名排序 2按学号排序 ") 。p rintf(" ") 。p rintf(" 3按房号排序 4按姓名查找 ") 。p rintf(" ") 。p rintf(" 5按学号查找 6按房号查找 ") 。p rintf(" ") 。p rintf("7按学号插入 8按学号删除 ") 。p rintf(" ") 。p rintf(" ") 。p rintf(" ") 。p rintf(" ") 。p rintf("输入为时退出操作 ")。if(t==1)
{p rintf("请输入数字键(1~8为操作键 ):") 。 //1~8为有效数字操作键s c anf("%d",&f) 。if(f<0| |f>9) {p rintf(" ") 。s ys tem("c ls") 。 //清屏函数
官方网站:点击访问星梦云活动官网活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50G10Mbps1个100G不限流量210元/月 99元/月点击自助购买成都电信优化线路8vCPU8G40G+100G15Mbps1个100G不限流量370元/月 160元/月点击自助购买成都电信优化线路16vCPU16G40G+100G20Mb...
云基成立于2020年,目前主要提供高防海内外独立服务器用户,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)、国内高防服务器(广州移动、北京多线、石家庄BGP、保定联通、扬州BGP、厦门BGP、厦门电信、...
virmach送来了夏季促销,价格低到爆炸,而且在低价的基础上还搞首年8折,也就是说VPS低至7.2美元/年。不过,这里有一点要说明:你所购买的当前的VPS将会在09/30/2021 ~ 04/30/2022进行服务器转移,而且IP还会改变,当前的Intel平台会换成AMD平台,机房也会变动(目前来看以后会从colocrossing切换到INAP和Psychz),采取的是就近原则,原来的水牛城可能...