课程设计大作业报告
课程名称 数据结构
设计题目宿舍管理查询软件地设计与实现
院系信息技术学院
班级计算机科学与技术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") 。 //清屏函数
ucloud美国云服务器怎么样?ucloud是国内知名云计算品牌服务商家,目前推出全球多地机房的海外云服务器。UCloud主打的优势是海外多机房,目前正在进行的2021全球大促活动参与促销的云服务器机房就多达18个。UCloud新一代旗舰产品快杰云服务器已上线洛杉矶节点,覆盖北美和亚太地区,火热促销中, 首月低至7元,轻松体验具备优秀性能与极高性价比的快杰云服务器。点击进入:ucloud美国洛杉矶...
imidc对日本独立服务器在搞特别促销,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制流量。注意,本次促销只有一个链接,有2个不同的优惠码,你用不同的优惠码就对应着不同的配置,价格也不一样。88美元的机器,下单后默认不管就给512G SSD,要指定用HDD那就发工单,如果需要多加一个/28(13个)IPv4,每个月32美元...官方网站:https:...
香港服务器多少钱一个月?香港服务器租用配置价格一个月多少,现在很多中小型企业在建站时都会租用香港服务器,租用香港服务器可以使网站访问更流畅、稳定性更好,安全性会更高等等。香港服务器的租用和其他地区的服务器租用配置元素都是一样的,那么为什么香港服务器那么受欢迎呢,香港云服务器最便宜价格多少钱一个月呢?阿里云轻量应用服务器最便宜的是1核1G峰值带宽30Mbps,24元/月,288元/年。不过我们一般选...