欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    宿舍管理方案计划系统C语言学习知识实验报告.doc

    • 资源ID:2597555       资源大小:294.08KB        全文页数:22页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    宿舍管理方案计划系统C语言学习知识实验报告.doc

    -!C语言程序设计报告题 目:宿舍管理系统院系名称:电子工程学院 专业名称:计算机科学与技术班 级:1001 学生姓名:XXX学号(8位):13指导教师:XXX设计起止时间:2011年6月22日2011年6月30日一. 设计目的学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工一条条去查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的而世界,原始的记录方式已经被社会所淘汰,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。故随着宿舍需要管理的信息快速增长,建立一个宿舍管理系统可使宿舍管理人员的管理工作系统化、规范化、自动化,大大提高管理效率。二. 设计内容1.录入学生信息2.显示学生信息3.插入学生信息4.修改学生信息5.删除学生信息6.排序学生信息7.统计学生信息8.管理员密码三概要设计1.录入学生信息将信息保存至文件中2.从文件中读取信息显示出学生信息3. 从文件中读取信息存至单链表中,传递头指针从而修改学生信息,再将修改完成的学生信息保存至文件中4. 从文件中读取信息存至单链表中,传递头指针从然后用冒泡法排序学生信息,再将修改完成的学生信息保存至文件中5.统计学生信息按照宿舍号、楼层、楼号分别统计出人数6.管理员进入此系统需输入密码,而学生进入则不需要1功能模块图;主函数密码管理员文件存入单链表录入显示插入删除修改排序存入文件统计学生2各个模块详细的功能描述。1.录入学生信息录入学生信息将信息保存至文件中2.显示学生信息从文件中读取信息显示出学生信息3.插入学生信息从文件中读取信息存至单链表中,传递头指针从而插入学生信息,再将修改完成的学生信息保存至文件中4.修改学生信息从文件中读取信息存至单链表中,传递头指针从而修改学生信息,再将修改完成的学生信息保存至文件中5.删除学生信息从文件中读取信息存至单链表中,传递头指针从而删除学生信息,再将修改完成的学生信息保存至文件中6.排序学生信息从文件中读取信息存至单链表中,传递头指针从然后用冒泡法排序学生信息,再将修改完成的学生信息保存至文件中7.统计学生信息统计学生信息按照宿舍号、楼层、楼号分别统计出人数四测试数据及运行结果1正常测试数据和运行结果要求提供3组正常测试数据和运行结果排序查找2异常测试数据及运行结果要求提供2组异常测试数据和运行结果五调试情况,设计技巧及体会1改进方案对自己的设计进行评价,指出合理和不足之处,提出改进方案; 管理员密码不精致,会被管理员以外的人看到保密性不好。插入、删除、修改等函数太过繁琐。2体会对设计及调试过程的心得体会:在这一周多的实习中,让我对C语言有了更深刻的认识,不但复习了原来所学的知识,更对新的知识有了了解。在调试过程中,通过自己学习,寻求老师、同学的帮助解决了许多不懂的问题。六参考文献C语言程序设计(第二版)七附录:源代码(电子版)#include<io.h>#include<stdio.h>#include<conio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#define P "学号:%-8ld姓名:%-8s班级:%-10s楼号:%-3s楼层:%-3s宿舍号:%-3sn",p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum#define N sizeof(struct stud)manager();main();student();struct stud long num; char name20; char classes20; char bnum5; char fnum5; char rnum5; struct stud *next;struct node char mima10; struct node *next;/*/ 录入学生信息/*/struct stud *input_message() struct stud *p1,*p2,*head; FILE *fp; fp=fopen("student_message.txt","wt"); head=p2=(struct stud *)malloc(N); /*head p2指向头结点*/ printf("请输入 学号 姓名 班级 楼号 楼层 宿舍号(输入0结束)n"); p1=(struct stud *)malloc(N); /*p1指向第一个结点*/scanf("%ld %s %s %s %s %s",&p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);if(p1->num!=0) fprintf(fp,"%ld %s %s %s %s %sn",p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);while(p1->num!=0) p2->next=p1; /*将新结点连接到表尾*/p2=p1; /*p2指向新的表尾*/p1=(struct stud *)malloc(N); /*p1指向新申请的结点*/ scanf("%ld %s %s %s %s %s",&p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum); if(p1->num!=0)fprintf(fp,"%ld %s %s %s %s %sn",p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum); fclose(fp); p2->next=NULL; /*表尾结点next置空*/ free(p1); /*释放无效结点*/ return head;/*/ 将文件中的信息存入单链表/*/struct stud *inread() /*将文件中的信息存入单链表*/ struct stud *head,*p,*p1; FILE *fp; fp=fopen("student_message.txt","rt"); if(fp=NULL) printf("读出文件出错,按任意键退出"); exit(1); head=(struct stud *)malloc(N); head->next=NULL; p=head; while(!feof(fp) p1=(struct stud*)malloc(N); fscanf(fp,"%ld %s %s %s %s %sn",&p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum); p->next=p1; /*连接结点*/ p=p1; p->next=NULL; fclose(fp); return head; /*/ 显示学生信息/*/revise_message() FILE *fp; struct stud *p; int n=0,a,fsize; p=(struct stud *)malloc(N); fp=fopen("student_message.txt","rt"); if(fp=NULL)printf("n 打开文件失败!");exit(1); while(!feof(fp) /*文件未结束执行循环*/a=fileno(fp);fsize=filelength(a); /*判断文件大小 */ if(fsize=0)break;fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);printf(P);n=1; fclose(fp);if(n=0) printf("无记录!n");/*/ 将单链表的信息保存至文件中/*/baocun(struct stud *p) struct stud *p1; FILE *fp; fp=fopen("student_message.txt","wt"); if(fp=NULL) printf("写入文件出错,按任意键退出"); exit(1); for(p1=p->next;p1!=NULL;p1=p1->next) fprintf(fp,"%ld %s %s %s %s %sn",p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum); fclose(fp);/*/ 查询学生信息/*/find_message() long nnum;int a,b,n,m;FILE *fp; struct stud *p; fp=fopen("student_message.txt","rt"); p=(struct stud *)malloc(N);system("cls");printf("nnnn"); printf(" * n"); printf(" 欢迎进入宿舍管理系统 n"); printf(" * n"); printf("n 1.返回上一级 n");printf("n 1.按学生学号查找 n"); printf("n 2.按学生姓名查找 n"); printf("n 3.按宿舍号查找 n"); printf("nnn"); printf("请选择:"); scanf("%d",&b); printf("nnn");/ 按学生学生学号 if(b=1)printf("n请输入要查找的人的学号:n"); scanf("%ld",&nnum);while(!feof(fp) fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum); if(p->num=nnum) printf(P); a=1; /*标志*/if(a!=1)printf("n没有找到此人!n"); / 按学生姓名查找 if(b=2) char nname20;printf("n请输入要查找的人的姓名:"); scanf("%s",&nname); while(!feof(fp) fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);n=strcmp(p->name,nname);if(n=0)printf(P); a=1;/*标志*/ if(a!=1)printf("n没有找到此人!n"); if(b=3) char nrnum20;printf("n请输入要查找的宿舍号:"); scanf("%s",&nrnum); while(!feof(fp) fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);m=strcmp(p->rnum,nrnum);if(m=0)printf(P); a=1;/*标志*/ if(a!=1)printf("n没有找到此宿舍!n"); if(b=0)manager();/*/ 删除学生信息/*/delete_message(struct stud *p0) struct stud *p; long nnum; int a; p=p0->next; printf("请输入要删除的人的学号:"); scanf("%ld",&nnum); while(p!=NULL) if(p->num=nnum) p0->next=p->next; /*后续结点接到前面的结点上*/ printf("已删除此人!"); a=1; /*标志常量*/ p0=p; /*推移指针*/ p=p->next; if(a!=1) printf("没有找到要删除的人!");/*/ 插入和修改学生信息/*/change_message(struct stud *p0) long nnum;int a,b;system("cls");printf("nnnn"); printf(" * n"); printf(" 欢迎进入宿舍管理系统 n"); printf(" * n"); printf("n 0.返回上一级 n"); printf("n 1.插入学生信息 n"); printf("n 2.修改学生信息 n"); printf("nnn"); printf("请选择:"); scanf("%d",&b); printf("nnn"); if(b=1) struct stud *p; p=(struct stud *)malloc(N); printf("请输入要插入的学号 姓名 班级 楼号 楼层 宿舍号n"); scanf("%ld %s %s %s %s %s",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum); p->next=p0->next; /*后续结点连接到新结点后*/ p0->next=p; /*此时新接点处在头的位置*/ if(b=2)printf("请输入要修改的人的学号:"); scanf("%ld",&nnum);while(p0->next!=NULL) p0=p0->next; /*指针后移*/if(p0->num=nnum)printf("请修改此人的姓名 班级 楼号 楼层 宿舍号:"); scanf("%s %s %s %s %s",p0->name,p0->classes,p0->bnum,p0->fnum,p0->rnum);printf("n修改成功!n");a=1; /*标志*/ if(a!=1)printf("n没有找到此人!n"); if(b=0)manager(); /*/ 统计学生信息/*/dorm_message() int a,b,m; FILE *fp;struct stud *p; fp=fopen("student_message.txt","rt"); p=(struct stud *)malloc(N);a=0;system("cls"); printf("nnnn"); printf(" * n"); printf(" 欢迎进入宿舍管理系统 n"); printf(" * n"); printf("n 0.返回上一级 n"); printf("n 1.输入楼号统计人数 n"); printf("n 2.输入楼层号统计人数 n"); printf("n 3.输入宿舍号统计人数 n"); printf("nnn"); printf("请选择:"); scanf("%d",&b); printf("nnn");/ 按楼号统计 if(b=1) char nbnum20; printf("n请输入要统计的楼号:n"); scanf("%s",&nbnum); while(!feof(fp) fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum); m=strcmp(p->bnum,nbnum); if(m=0) printf(P); a+; /*标志*/ printf("n该楼共有%d人n",a); / 按楼层号统计 if(b=2) char nfnum20; printf("n请输入要统计的楼层号:n"); scanf("%s",&nfnum); while(!feof(fp) fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum); m=strcmp(p->fnum,nfnum); if(m=0) printf(P); a+; /*标志*/ printf("n该楼层共有%d人n",a); / 按宿舍号统计 if(b=3) char nrnum20; printf("n请输入要统计的宿舍号:n"); scanf("%s",&nrnum); while(!feof(fp) fscanf(fp,"%ld %s %s %s %s %sn",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum); m=strcmp(p->rnum,nrnum); if(m=0) printf(P); a+; /*标志*/ printf("n该宿舍共有%d人n",a); if(b=0)manager();/*/ 排序学生信息/*/ paixu(struct stud *p0, struct stud *p1, struct stud *p2) p0->next = p2; p1->next = p2->next; p2->next = p1;sort_message(struct stud *p0) /*传递头指针*/ int i,a; int flag; struct stud *p=NULL; system("cls"); printf("nnnn"); printf(" * n"); printf(" 欢迎进入宿舍管理系统 n"); printf(" * n"); printf("n 0.返回上一级 n"); printf("n 1.升序排序 n"); printf("n 2.降序排序 n"); printf("nnn");printf("请选择:");scanf("%d",&a);printf("nnn");if(a=1) for (i=0; ; i+) flag = 0; for (p=p0; p->next->next != NULL; p=p->next) /*冒泡排序*/ if (p->next->num > p->next->next->num) flag = 1; paixu(p, p->next, p->next->next); if (flag = 0) printf("n排序成功!n");break; if(a=2) for (i=0; ; i+) flag = 0; for (p=p0; p->next->next != NULL; p=p->next) if (p->next->num < p->next->next->num) flag = 1; paixu(p, p->next, p->next->next); if (flag = 0) printf("n排序成功!n");break; if(a=0) manager();/*/ 管理员密码/*/mima() int n; int a=3; struct node *p; char rmima10; FILE *fp; fp=fopen("mima_message.txt","rt"); p=(struct node *)malloc(sizeof(struct node); while(!feof(fp)for(;a!=0;)printf("请输入密码:n"); scanf("%s",rmima);fscanf(fp,"%sn",&p->mima);n=strcmp(p->mima,rmima);if(n=0) manager(); if(n!=0) printf("n密码错误,还有%d次机会n",a-1); a-;void nmima()FILE *fp;char nmima10;struct node *p;p=(struct nod

    注意事项

    本文(宿舍管理方案计划系统C语言学习知识实验报告.doc)为本站会员(一***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开