东莞理工学院。
课程设计。课程数据结构
题目宿舍管理软件。
院系名称计算机学院。
班级 11信息与计算科学1班。
学生姓名。学号。
组员。指导教师。
时间 2013/1/4
1 问题要求及任务描述。
1.1 题目要求
1)问题描述。
设某宿舍有:101,102,201,202四个房间,每个房间有4个床位,学生信息包括学号、姓名、房间号,为学生宿舍管理人员编写一个宿舍管理软件。
2) 基本要求。
该程序应该具有下列功能:
1) 学生的入住处理;
2) 学生退房处理;
3) 输出学生入住信息(按房间号和床号有序);
4) 修改入住信息;
5) 学生调换宿舍或床位处理;
6) 按给定学号、姓名、房号查询;
7) 查询房间使用情况。
1.2 主要任务。
1) 分析理解构思,定义结构体,定义主函数,设定菜单函数;
2)添加学生入住信息时首先要判断该床位是否为空,进行判断后再输入姓名学号。因为我们直接用str【16】表示101至104四个宿舍的房间号和床号,所以添加学生人数不超过16;
3)学生退房的功能为在已经添加的表中寻找是否存在该学生的信息,查询到后,将该str【16】的学号和姓名项定义为0;
4)str【16】数组中已经按照顺序将房间号和床位号逐个排列的,输出学生入住信息的功能为寻找str【16】中学号不为0的项,并有序输出该项的所有相关信息,以便了解已经入住的学生信息;
5)学生调换宿舍的功能为两个学生互换宿舍的相应的床位。
6)根据不同的关键词与表中已经添加的信息进行比较若存在对应要查找的关键词则输入其相关的数据信息;
7)查询房间的使用情况为输出所有的str【16】项;
8)我们在此次的课程设计基本是分开来做,然后两个对比选出部分比较合适和方便的**,在宿舍管理软件的设计中我们不断的寻找问题和改进,在参数分析和**可发生的情况中不断思考和查找资料,最后完成宿舍管理软件的设计。
2 解决问题的主要思路和方法。
2.1 关键问题。
开始结构体的定义就遇到了挫折,因为一开始是完全根据中文将数据元素翻译过来导致**的可读性较弱,后来便定义一些简单易懂的结构体。在学生入住信息处理的时候我们因为要进行参数的判断和判断是否该学生已经入住的问题进行较长时间的思考。
2.2 拟采用解决问题的方法。
因为入住信息有房间号,床号,学号和姓名,且在实现功能(3)时要有序的输出该学生的信息,在定义结构体时str【】就有room,bed,sstudent和snumber以便后续程序能更好的执行。在学生信息输入的过程中:
第一步:在主函数中,调用菜单函数。
第二部:在switch开关语句中进行选择。
第三步:执行add函数,判断床位是否为空,同时判断输入的人数是否合法。
第四步:如果参数合法,床位为空,则输入学号再输入姓名。
第五步:输入完毕,返回。
2.3 主要算法和处理流程图。
3 程序实现。
3.1 程序实现时应考虑的问题。
main函数调用menu函数。
menu函数里面有switch开关语句。
menu函数调用add函数。
menu函数调用delete函数。
menu函数调用display_all函数。
menu函数调用alter函数。
menu函数调用change函数。
menu函数调用query函数。
menu函数调用useofroom函数。
最后退出系统。
3.2 主要源**及说明。
源**:#include <>
#include<>这个与exit()有关*/
#include<>这与字符串处理函数有关*/
#include<>
#define m 100
int dirty=0; /用来判断是否已保存操作。
struct student
long snumber学生学号。
char sname[10学生姓名。
int room房间号。
int bed床号。
int total学生总数。
str[m];
void add() 添加学生信息,学生的入住处理。
int n,j=0,total=0; /录入学生个数为n
printf("请问要录入几位学生:")
scanf("%d",&n);
if(n>m)
for(j=0;j
printf("");
printf("输出完毕!按任意键返回主菜单!")
getchgetch有停顿作用*/
/删除学生的入住信息。
void delete()
int i,n,j;
int flag=0; /判断有无需要删除的学生。
char name[20];
printf("请问你要删除几个人:")
scanf("%d",&n);
for(j=0;j
for(i=0;i
if(strcmp(name,str[i].sname)==0)
str[i]. snumber=0;
strcpy(str[i]. sname,"
printf("已删除!");
flag=i+1;
if(flag==0)
printf("不存在该学生!");
printf("");
printf("输出完毕!按任意键返回主菜单!")
getch( )
/显示学生的入住信息。
void display_all
int i;
printf("输出学生入住信息:");
for(i=0;i<16;i++)
printf("");
printf("输出完毕!按任意键返回主菜单!")
getch( )
/修改学生的入住信息。
void alter()
int i,j,n=1,a[16],h;
for(i=0;i
printf("请问你要修改哪一个:")
scanf("%d",&j);
h=a[j];
printf("新学号:")
scanf("%d",&str[h]. snumber);
printf("新姓名:")
scanf("%s",str[h].sname);
printf("");
printf("输出完毕!按任意键返回主菜单!")
getch( )
void change() 两个学生调换宿舍或床位。
int i,a,b,temp;
int k=0,l=0;
long temp1;
char temp2[20];
for(i=0;i
printf("请输入需要调换的两个学号第一个学号:")
scanf("%d",&a);
printf("第二个学号:")
scanf("%d",&b);
for(i=0;i
if(str[k].room==str[l].room)
temp1=str[k].snumber;
str[k].snumber=str[l].snumber;
str[l].snumber=temp1;
strcpy(temp2,str[k]. sname);
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...
课程设计格式
工程估价课程设计。指导教师 专业 小组成员 成员1 张三 201311111成员2 李四。成员3 王五 成员4 赵六 组长 班级 重庆大学继续教育学院。工程 工程量清单。招标人 盖章。法定代表人 签字或盖章。中介机构法定代表人 签字盖章。造价工程师及注册证号。签字加盖执业专用章。编制时间 总说明。工...