宿舍管理系统课程设计 - 范文中心

宿舍管理系统课程设计

05/01

软件设计报告

院系名称 : 专业名称 : 班 级 : 班内序号 : 学生姓名 : 指导教师 : 时

题 目:

电子工程学院 电子信息工程

电子0902

间 : 2010年6月21日 至2010年7月2日

一、 课程设计目的

(一)通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。

(二)学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 (三)为后续各门计算机课程的学习打下坚实基础,为毕业设计和以后工作打下必要基础。 二、课程设计内容

编写一个宿舍管理系统。通过该系统完成对学生信息的录入、输出、删除、修改、添加、宿舍卫生情况排名,并给系统设置了密码,若密码输入错误,则不能进入系统。 三、需求分析

系统代码要能够对学生信息进行录入、输出、删除、修改、添加、宿舍卫生情况排名 四、概要设计

1

2(1)输入模块:输入学生信息

(2)输出模块:进行学生信息的输出

(3)修改模块:对需要修改的信息的学生信息进行修改 (4)删除模块:对需要删除的学生信息进行删除 (5)排序模块:对学生宿舍的卫生得分进行排名 (6)保存文件模块:退出系统时,保存学生信息

(7)密码设置模块:给系统设置密码,若密码错误,则不能进入系

统。

(8)添加信息模块:按要求在系统中进行学生信息的添加 五、详细设计及运行结果

各模块功能图示: 密码设置模块:给系统设置密码,若密码错误,则不能进入系统。

输入模块:输入学生信息

输出模块:

修改模块:对需要修改的信息的学生信息进行修改

删除模块:对需要删除的学生信息进行删除

排序模块:对学生宿舍的卫生得分进行排名

函数之间相互调用的图示:

运行结果:

六、调试情况,设计技巧及体会

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。 评价:

(1)优点:该系统能够快速完成对学生信息的录入、输出、删除、修改、添加、宿舍卫生情况排名,并给系统设置了密码,若密码输入错误,则不能进入系统。

(2)缺点:未对学生信息进行详细的统计

改进方案:在系统的代码中加入对学生信息进行统计的代码 2、在设计过程中的感受

做任何事都要有耐心,不能急躁。干任何事(包括学知识)都要注意细节。注意数组元素的定义。…… 七、参考文献

《C 语言程序设计》 王曙燕 曹锰 科学出版社 2005年2月 《C 语言程序设计》 谭浩强 清华大学出版社 1999年12月 《C 语言程序设计教程》 张毅坤 曹锰 张亚玲 西安交通大学 出版社

八、附录:源代码

(略,详见电子版实验报告) #include #include #include #include #include #define L #define N

200 1000

#define PAGE 100 /*日期结构体类型*/ struct d_type { };

int year; int month; int day;

/*学生信息结构体类型*/ struct st_type { };

struct st_type student[N];

/*读文件模块*/ int read_file(struct st_type student[]) {

FILE *fp; int i=0;

if((fp=fopen("D:\\student.txt","rt"))==NULL) {

printf("\n\n*******库存文件不存在!请新建:\n"); exit(0);

int num;

/*学号*/

/*姓名*/ /*入学时间*/

char name[10];

struct d_type date; int num1; int num2;

/*宿舍楼号*/ /*宿舍号*/

/*所属院系*/

char *acad;

}

while(feof(fp)!=1) { } fclose(fp); return i; fread(&student[i],sizeof(student),1,fp); if(student[i].num ==0) break; else i++;

/*保存文件模块*/

void save_file(struct st_type student[],int sum)

{

FILE *fp; int i; if((fp=fopen("D:\\student.txt","wt"))==NULL) { printf("读文件错误!\n");

}

} for(i=0;i

/*求总的宿舍数*/

int max_st(int m)

{

int x,y; int count; x=m/6; y=m%6; if(y!=0) count=x+1; else count=x;

}

/*输入学生信息模块*/

int input(struct st_type student[])

{

int i=0; system("cls"); printf("\n\n printf(" do { printf("\n printf("\n 第%d个学生",i+1); 学号:"); 输入学生信息(最多%d个)\n",N); ------------\n"); scanf("%d",&student[i].num); if(student[i].num==0) break; flushall(); printf("\n 姓名:"); scanf("%s",&student[i].name); flushall();

printf("\n 入学时间(如:2010-6-6):"); scanf("%d-%d-%d",&student[i].date.year,&student[i].date.month,

&student[i].date.day);

flushall();

printf("\n 宿舍楼号:");

scanf("%d",&student[i].num1);

flushall();

printf("\n 宿舍号:");

scanf("%d",&student[i].num2);

flushall();

printf("\n 所属院校:");

scanf("%s",&student[i].acad);

flushall();

i++;

}

while(i

printf("\n ------%d个学生信息输入完毕!

printf("\n 按任意键返回主菜单!");

getch();

return i;

--------\n",i);

/*输出学生信息模块*/

void output(struct st_type student[],int sum)

{

FILE *fp; int i=0,j=0,page=1; if((fp=fopen("D:\\student.txt","wt"))==NULL) { } for(i=0;i

printf("--------------------------------------------\n"); do

if(student[i].num!=0) { j++; if((j%PAGE)!=0) { printf(" %d %4s %4d-%d-%d %6d %6d %7c",student[i].num,student[i].name,

student[i].date.year,student[i].date.month, student[i].date.day,student[i].num1,student[i].num2, student[i].acad); printf("\n"); printf("----------------------------------------------------------\n"); } else { printf("按任意键继续!"); getch(); system("cls");

printf("\n\n-----学生信息表------ 第%d页\n\n",++page);

printf("--学号--姓名--入学时间--宿舍楼号--宿舍号--所属院系--\n");

printf("--------------------------------------------\n"); printf(" %d %4s %4d-%d-%d %6d %6d %7c",student[i].num,student[i].name,

}

student[i].date.year,student[i].date.month, student[i].date.day,student[i].num1,student[i].num2, } } while(student[i].num !=0); printf("按任意键返回主菜单!"); getch(); } i++; } student[i].acad); printf("--------------------------------------------\n");

/*添加学生信息模块*/

void add(struct st_type student[],int sum)

{

int i,choice,add_num,flag; do { scanf("%d-%d-%d",&student[i].date.year,&student[i].date.mont

printf("\n 输入要添加信息学生的学号:"); scanf("%d",&add_num); i=sum+1; if(i

} if(i>=N) { } printf("\n----------------------学生信息------------------------\n"); printf("--学号--姓名----入学时间----宿舍楼号--宿舍号--所属printf("\n getch(); 系统信息已满!不能继续添加!"); &student[i].date.day); flushall(); printf("\n 宿舍楼号:"); scanf("%d",&student[i].num1); flushall(); printf("\n 宿舍号:"); scanf("%d",&student[i].num2); flushall(); printf("\n 所属院校:"); scanf("%s",&student[i].acad); flushall(); printf("已完成一个学生的信息添加!"); 院系--\n");

printf(" %d %4s %4d-%d-%d %6d %6d %7c",student[i].num,student[i].name,

}

student[i].date.year,student[i].date.month,student[i].date.day, } while(flag==1); printf("\n 按任意键返回主菜单!"); student[i].num1,student[i].num2,student[i].acad); 是否继续添加?(Y/N)"); printf("\n\n choice=getch(); if(choice=='Y'||choice=='y') { } else flag=0; flag=1; printf("\n 继续添加!\n"); getch();

/*修改学生信息模块*/

void modify(struct st_type student[],int sum) {

int i=0,modify_num,flag; int choice; do {

/* system("cls");*/

printf("\n

输入要修改信息学生的学号:");

scanf("%d",&modify_num); for(i=0;i

if(student[i].num==modify_num) {

printf("\n--------------------------学

----------------------\n");

printf("--学号--姓名------入学时间----宿舍楼号--宿舍号--

所属院系--\n");

printf(" %d %4s %4d-%d-%d %6d %6d %7c",stud

printf("--------------------------------------------\n");

ent[i].num,student[i].name, student[i].date.year,student[i].date.month,

student[i].date.day,student[i].num1,student[i].num2,

student[i].acad);

printf("\n 请问你要修改哪一项?\n"); printf("\n 1. 姓名\n"); printf("\n 2. 学号\n"); printf("\n 3. 入学时间\n"); printf("\n 4. 宿舍楼号\n"); printf("\n 5. 宿舍号\n"); printf("\n 6. 所属院系\n"); printf("\n

请选择(1-6):");

scanf("%d",&choice); switch(choice) { case 1: printf("\n 输入修改后的姓名:");

scanf("%d",&student[i].name);

break;

case 2: printf("\n 输入修改后的学号:");

scanf("%d",&student[i].num);

break;

case 3: printf("\n

输入修改后的入学时间:");

,

scanf("%d%d%d",&student[i].date.year,&student[i].date.month

}

&student[i].date.day);

break;

输入修改后的宿舍楼号:");

case 4: printf("\n

scanf("%d",&student[i].num1); break;

输入修改后的宿舍号:");

case 5: printf("\n

scanf("%d",&student[i].num2);

break;

输入修改后的所属院系:");

case 6: printf("\n

scanf("%s",&student[i].acad); break;

printf("\n--------------------学生信息----------------------\n"); printf("--学号--姓名--入学时间--宿舍楼号--宿舍号--所属

院系--\n");

printf(" %d %4s %4d-%d-%d %6d %6d %7c",stud

printf("--------------------------------------------\n");

ent[i].num,student[i].name,

}

}

student[i].date.day,student[i].num1,student[i].num2, student[i].acad);

break;

if(i==sum) { }

printf("\n\n choice=getch();

if(choice=='Y'||choice=='y') { } else

flag=0; flag=1; printf("\n

继续修改!\n");

是否继续修改?(Y/N)");

printf("\n getch();

该学生信息不存在!");

while(flag==1);

printf("\n

按任意键返回主菜单!");

}

/*删除学生信息模块*/

void dell(struct st_type student[]) {

FILE *fp; int i=0,dell_num;

fp=fopen("D:\\code\\student.txt","r"); if(fp == NULL) { }

while(feof(fp)!=1) {

fread(&student[i],sizeof(student),1,fp); if(student[i].num ==0)

break;

printf("\n\n*****库存文件不存在!"); exit(0);

else i++;

}

printf("\n请输入要删除学生信息的学生的学号:"); scanf("%d",&dell_num); if(dell_num==student[i].num)

printf("请删除该学生的信息!");

system("cls"); fclose(fp);

printf("information deleted!\n"); getch();

/*学生宿舍卫生情况信息排名模块*/ void sort(struct st_type student[],int count) {

int i,j,t;

int score[L]; for(i=1;i

printf(" %d ",score[i]); scanf("%d",score+i);

}

for(i=1;i

}

for(i=1;i

printf("output %d",score[i]);

}

/*主函数*/ void main() { int sum,count; int choice; char num[10];

printf(" ^_^你好!^_^^_^请输入密码!^_^\n");

欢迎登陆本系统!

^_^\n^_^

scanf("%s",num);

if(strcmp(num,"05091050")!=0)

{ printf("^_^^_^^_^密码输入错误!请重新输入!谢谢!

^_^^_^^_^\n");

goto END; } else

printf("^_^密码输入正确!^_^进入系统!^_^系统登陆中!

^_^");

sum=read_file(student); if(sum==0) {

printf("*********^_^请录入基本库存信息!

^_^*********\n");

printf("*********^_^按任意键开始录入学生基本信息!

^_^*********\n"); }

count=max_st(sum); do

getch();

sum=input(student);

system("cls");

printf("*************************************************

**********************\n");

printf("^_^^_^^_^^_^^_^^_^你好!欢迎进入学生宿舍管理

系统!^_^^_^^_^^_^^_^^_^^_^\n");

printf("*************************************************

**********************\n");

printf("^_^ printf("^_^ printf("^_^ printf("^_^ printf("^_^

1. 添加学生信息^_^\n"); 2. 修改学生信息^_^\n"); 3. 删除学生信息^_^\n"); 4. 查询并输出学生信息^_^\n"); 5. 学生宿舍卫生情况信息排名

^_^\n");

printf("\n\n*************^_^^_^^_^^_^^_^^_^^_^^_^^_^^_

printf("^_^

0. 退出该系统^_^\n");

^^_^^_^^_^*************\n\n");

printf("

请选择(0-5):");

scanf("%d",&choice);

switch(choice) { case 1: add(student,sum);

case 2: modify(student,sum); case 3: dell(student);

case 4: output(student,sum);

case 5: sort(student,count);

case 0:

}

}while(choice!=0); save_file(student,sum);

}

break;

break;

break;

break; break;

break;


相关内容

  • 教师管理制度
    篇一:小学教师管理制度范文 1.学习制度.准时参加学校政治.业务学习,认真做好会议记录.经常读书看报,每学期阅读一本教育专著,做好读书笔记.每学期课改实验老师撰写5篇教学反思或随笔, 2.研讨制度.乐意承担公开课教学,主动搜集教学信息和改进 ...
  • 软件文档写作宿舍管理系统
    辽 宁 工 业 大 学 实训报告 题目: 宿舍管理系统软件文档 院(系): 软件学院 专业班级: 电子商务112班 学 号: 111401049 学生姓名: 傅 瑶 指导教师: 闫海龙 教师职称: 助 教 起止时间: 2013.12.03- ...
  • 20**年教育督导自查报告
    清河镇中学二0一三年教育督导 汇 报 材 料 二0一三年十二月 清河镇中学二0一三年教育督导汇报材料 清河镇中学现有教学班18个,在校生712人,在岗教职工75人.我校在各级领导的关怀和支持下,以"全面贯彻党的教育方针,切实推行素 ...
  • 宿舍文化建设之我见
    宿舍文化建设之我见 安塞县化子坪中学 胡军安 摘要:宿舍是在校学生生活.学习.娱乐.社交及其他活动于一体的综合场所,也是学生形成良好的行为规范,造就有理想.有文化.有道德.有纪律的一代新人的精神文明建设阵地.宿舍文化是校园文化的一个重要组成 ...
  • 浙大20**年学生手册题库答案
    1:未报名可以修读辅修专业 对 2:各专业确认选拔标准全校统一 错 3:大一上25学分 大一下30学分 大二上7学分 退学警告 错 4:跨校修读课程 成绩 他校修读本校审核予以承认 对 5:学校可以对人才需求发展变化 学生同意时可以调整学生 ...
  • 一位项目经理多年总结下来的[消防工程现场施工与管理方案]
    进场前需要向甲方.监理递交消防公司开工报告,给监理单位.甲方.安全员递交消防公司专业公司资质.管理人员花名册(专业证件.身份证.保险单复印件)及主持项目经理委托书.施工人员的花名册(特种作业证件.身份证.人身意外保险单复印件).施工组织设计 ...
  • 运用人际交往理论和方法处理宿舍关系
    课号: BK6G01A 课程名称: 企业管理与营销实务 阅卷教师: 金超剑 班级: 11会计3 学号: 114171527 姓名: 阮容容 成绩: 如何运用人际交往理论和方法处理宿舍关系 [摘要]本文通过对大学生宿舍中人际交往过程中出现的问 ...
  • 石家庄长安区小学招生范围
    范西路小学 特点:四轨制学校.学校基础不错,周边文化氛围浓厚,学校以艺术特色为发展方向,学校民乐队.足球队成绩斐然. 地址:位于范西路78号 招生范围:西大街至建设南大街,裕华东路至中山东路. 附近楼盘或社区:省糖烟酒公司宿舍,范华小区,范 ...
  • 大二学年自我总结
    篇一:大二学年小结 大二学年小结 时间如梭,光阴似箭,转眼我已经度过了大二生活,现在已经大三了,已经是学校里大多数人的学长了,已经是学校里元老级人物了.在大学生活过去半截,停下来总结总结,是一种心境,亦是一种情趣.回顾大二这一年,收获多多, ...
  • 土木专业施工组织住宅楼课程设计
    第一章 编制说明 一.合同 与业主签订的本工程的施工合同,合同编号为:GF-2011-0607. 二.地勘报告 岩土工程勘察研究所地质报告, 本工程基础采用人工挖孔灌注桩,单 桩承载力标准值桩径 800Pk>2200KN, 桩径 12 ...