欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    C语言课程设计报告学生宿舍管理系统.doc

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

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

    C语言课程设计报告学生宿舍管理系统.doc

    -C语言课程设计报告题目:学生宿舍管理系统系部名称:专业名称:班级:学生姓名:指导教师:时间:一、 课程设计目的1.设计一个ubuntu下的学生宿舍管理系统2.掌握用C语言定义单链表构造,并实现其创立、插入、删除等根本操作。二、课程设计容用C语言编写“学生宿舍管理系统,要求如下:1. 创立链表,录入数据。2. 数据的读写操作。3. 数据的更新操作。4. 数据的删除和插入。5. 请你要求对数据进展查找。6. 按要求排序。7. 设计总体菜单界面。三、实验要求1、录入数据学生的根本信息,包括*、*、性别、年龄、专业、班级等。宿舍楼的根本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。2、数据存储信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随时查看,也可供程序调用,便操作人员不用重复输入数据。3、数据的更新更新包括插入、删除、修改。删除分根据*删除和根据学生的楼层信息删除。5、数据的查询查询可以根据*和宿舍信息不同面进展查询,便操作者使用。6、数据的排序操作者可以使所输入的信息按*排序。7、数据的统计按整体统计,统计所有学生人数,男生人数和女生人数。四、概要设计1系统构造图功能模块图主函数录入存储数据操作输出信息输入统计查找修改删除插入显示排序2功能模块说明:(1). 数据录入:创立单链表,调用Initnode()函数申请头结点,在调用append(),在调用Write_to_File()函数将信息写入文件中,(2) 插入模块:先将文件信息读出,再调用insert()函数,可以向文件中插入信息。(3) 插入模块:先将文件信息读出,再调用del()函数,可以将输入错误或者需要的信息删除。(4) 修改模块:先将文件信息读出,再调用modify()函数,将输入错误的信息修改。(5) 查询模块:先将文件信息读出,再调用search(),在search()中有调用两个数,一个按照宿舍信息查询sushe_search(),需要楼号和宿舍号,一个按照生信息查询*uehao_search()需要学生*或者*。(6) 排序模块:先将文件信息读出,再调用sort (),按照学生*排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().(7) 统计模块:先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.五详细过程和运行结果:删除模块开场输入要删除学生的*num组织循环,扫描存储学生信息的链表p->num:num!= =删除该学生信息完毕开场插入模块头插入学生信息输入插入的学生信息将其入栈,即将插入的学生信息插到了最前面完毕查找模块开场选择查找方式按宿舍信息查找按学生*查找组织循环,扫描存储学生信息的链表表输入要查找的学生lounum,sushenum,chuangnum输入要查找的学生*nump->lounum:sushenup->sushenum:sushenup->chuangnum:chuangnump->num:num!= != 输出该学生的信息输出该学生信息 完毕 开场修改模块输入要修改的学生*num组织循环,扫描存储学生信息的链表表p->num:num!= =修改学生信息完毕 开场排序模块组织循环,扫描存储学生信息的链表表选出*最小的学生,与第一学生交换存储位置在余下的学生中选出*最小的学生与第二个学生交换存储位置以此类推,直至排序完成完毕开场统计模块组织循环,扫描存储学生信息的链表表p->se*=mp->se*=wCount2+Count1+完毕六参考文献:"C语言程序设计": 曙燕七源代码*include <stdio.h>*include <stdlib.h>*include <string.h>/*include <conio.h> typedef struct Student intnum; /*/ charname15; /*/ charse*; /*性别*/ charzhuanye20; /*专业*/ intlounum; /*楼号*/ intsushenum; /*宿舍号*/ intchuangnum; /*床号*/ struct Student *ne*t;Stu;void Write_to_File(Stu *L) /*将信息写入文件*/ FILE *fp; Stu *p; fp=fopen("sushe.t*t","w"); if(fp=NULL) printf("翻开失败!"); getchar();getchar(); e*it(0); p=L->ne*t; while(p) fprintf(fp,"%d %s %c %s %d %d %dn",p->num,p->name,p->se*, p->zhuanye,p->lounum,p->sushenum,p->chuangnum); p=p->ne*t; fclose(fp);void InitStu(Stu *h) /*创立头结点*/ (*h)=(Stu *)malloc(sizeof(Stu); if(h=NULL) printf("创立失败!"); getchar();getchar(); e*it(0); (*h)->ne*t=NULL;void append( ) /*录入学生信息*/ Stu *head; Stu *p,*q; char ch; InitStu(&head); q=head; while(1) system("clear"); printf("请录入学生信息n");p=(Stu *)malloc(sizeof(Stu); printf("n*:"); scanf("%d",&p->num); printf("n*:"); scanf("%s",p->name); printf("n性别:"); scanf(" %c",&p->se*); printf("n专业:"); scanf("%s",p->zhuanye); printf("n楼号:"); scanf("%d",&p->lounum); printf("n宿舍号:"); scanf("%d",&p->sushenum); printf("n床号:"); scanf("%d",&p->chuangnum); p->ne*t=q->ne*t; q->ne*t=p; q=p; printf("按任意键继续录入,按0完毕录入");getchar(); ch=getchar(); if(ch='0') break; Write_to_File(head); void Read_from_File(Stu *h) /*读出文件信息*/ FILE *fp; Stu *p,*q; int i; fp=fopen("sushe.t*t","r"); if(fp=NULL) printf("翻开失败"); e*it(0); q=h; while(!feof(fp) p=(Stu *)malloc(sizeof(Stu); i=fscanf(fp,"%d %s %c %s %d %d %dn",&p->num,p->name,&p->se*,p->zhuanye,&p->lounum,&p->sushenum,&p->chuangnum);if(i = EOF)break; q->ne*t=p; q=p; q->ne*t = NULL; fclose(fp);int display() /*显示文件信息*/ Stu *head = NULL; Stu *p; InitStu(&head); Read_from_File(head);/printf("ok!n"); p=head->ne*t; system("clear"); if(!p) printf("无容!"); printf("n按任意键键返回n"); getchar();getchar(); return 0; printf("*性别专业楼号宿舍号床号nn"); while(p) printf("%-8d%-10s%-6c%-14s%-8d%-8d%-5dn",p->num,p->name,p->se*,p->zhuanye, p->lounum,p->sushenum,p->chuangnum); p=p->ne*t; printf("n按任意键返回n"); getchar();getchar(); return 1;void del() /*删除学生信息*/ Stu *head; Stu *p,*q; char ch,h; int N; int lounum,sushenum,chuangnum; InitStu(&head); Read_from_File(head); q=head; p=head->ne*t;dosystem("clear");printf("n1. 根据学生*删除n");printf("n2. 根据宿舍信息删除n");printf("n 请选择删除式:");scanf(" %c", &ch);while(1)if(ch='1')printf("n请输入学生*:");scanf("%d",&N);while(p)if(p->num=N)q->ne*t=p->ne*t;printf("删除成功!");break;q=p;p=p->ne*t;if(p=NULL)printf("n未找到此学生");break;elsefree(p);else if(ch='2')printf("n请输入宿舍信息(楼号宿舍床号):");scanf("%d %d %d",&lounum,&sushenum,&chuangnum);while(p!=NULL)if(p->lounum=lounum && p->sushenum=sushenum && p->chuangnum)q->ne*t=p->ne*t;printf("删除成功!");break;q=p;p=p->ne*t;if(p=NULL)printf("未找到此学生");break;elsefree(p);break;printf("nn是否继续:Y/N.");scanf(" %c", &h);while(h='Y' |h='y');Write_to_File(head);void insert()/*用头插法插入学生信息*/Stu *p , *head;char ch;InitStu(&head);Read_from_File(head);system("clear");do p=(Stu*)malloc(sizeof(Stu);p->ne*t=NULL;printf("tt请输入插入的学生信息 :n ");printf("t *:");scanf("%d",&p->num);printf("nt *:");scanf("%s",p->name);printf("nt性别:"); scanf(" %c",&p->se*);printf("nt 专业:");scanf("%s",p->zhuanye);printf("nt 楼号:");scanf("%d",&p->lounum);printf("nt 宿舍号:");scanf("%d",&p->sushenum);printf("nt 床号:");scanf("%d",&p->chuangnum);p->ne*t = head->ne*t;head->ne*t = p;printf("nn是否继续插入"Y/N");scanf(" %c",&ch);while(ch='y'|ch='Y'); Write_to_File(head);void modify( ) /*修改学生信息按*修改*/Stu *head;Stu *p; char ch; int N; InitStu(&head); Read_from_File(head);system("clear");printf("nn请输入修改的学生*: ");scanf("%d",&N);p=head->ne*t;dowhile(p!=NULL)if(p->num=N)system("clear"); printf("n请输入新的学生信息 :n ");printf("n*:"); scanf("%d",&p->num); printf("n*:"); scanf("%s",p->name); printf("n性别:"); scanf(" %c",&p->se*); printf("n专业:"); scanf("%s",p->zhuanye); printf("n楼号:"); scanf("%d",&p->lounum); printf("n宿舍号:"); scanf("%d",&p->sushenum); printf("n床号:"); scanf("%d",&p->chuangnum);break;p=p->ne*t;if(p=NULL)printf("n未找到此学生");elseprintf("修改成功n"); printf("nn 继续修改 "Y/N");scanf(" %c",&ch);while(ch='y'|ch='Y');Write_to_File(head);void *uehao_search(Stu * head) /*按照学生*查找*/ int num; Stu *p; char ch; p=head->ne*t ; do system("clear"); printf("n请输入要查找的学生* : "); scanf("%d",&num); while(p!=NULL) if(p->num = num )printf("*性别专业楼号宿舍号床号nn"); printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5dn",p->num,p->name,p->se*,p->zhuanye,p->lounum,p->sushenum,p->chuangnum);break;p=p->ne*t; if(p=NULL)printf("n未找到此学生"); printf("nn 继续查找 "Y/N"); scanf("%s",&ch); while(ch='Y' | ch='y');void sushe_search(Stu *head) /*按照宿舍信息查找*/ int lounum,sushenum,chuangnum; Stu *p; char ch; p=head->ne*t; do system("clear"); printf("n请输入要查找的学生宿舍信息(楼号宿舍床号) : "); printf("n 楼号 :"); scanf("%d",&lounum); printf("n 宿舍号 :"); scanf("%d",&sushenum); printf("n 床号 :"); scanf("%d",&chuangnum); while(p!=NULL) if(p->lounum=lounum && p->sushenum=sushenum&&p->chuangnum=chuangnum)printf("*性别专业楼号宿舍号床号nn"); printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5dn",p->num,p->name,p->se*,p->zhuanye,p->lounum,p->sushenum,p->chuangnum);break;p=p->ne*t;if(p=NULL)printf("n未找到此学生"); printf("nn 是否继续 "Y/N");scanf("%s",&ch); while(ch='y' | ch='Y');void Search( ) /*查找学生信息*/ int choose; Stu *head; InitStu(&head); Read_from_File(head); system("clear"); printf("n1.根据宿舍信息查找."); printf("n2.根据学生*查找."); printf("n3.退出.nn"); printf("n请选择查找式:"); scanf("%d",&choose); switch(choose) case 1: sushe_search(head); break;case 2:*uehao_search(head);break; case 3: break; void sort( ) /*将学生信息按*排序*/ Stu *head; Stu *i,*j,*k; Stu *m,*n; Stu *temp; int l=0; InitStu(&head); Read_from_File(head); /冒泡排序法 for(m=head,i=head->ne*t;i;m=i,i=i->ne*t) k=i; for(n=i,j=i->ne*t;j;n=j,j=j->ne*t) if(j->num< k->num)k=j;break; if(i!=k)m->ne*t=j;n->ne*t=i;temp=i->ne*t;i->ne*t=j->ne*t;j->ne*t=temp;i=head; system("clear");printf("nn输入学生信息 : nn"); i=head->ne*t; printf("*性别专业楼号宿舍号床号nn"); while(i) printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5dn",i->num,i->name,i->se*,i->zhuanye,i->lounum,i->sushenum,i->chuangnum); i=i->ne*t; printf("n按任意键返回!"); getchar();getchar();void tongji( ) /*统计学生信息*/Stu *head,*p;int Count1,Count2;InitStu(&head); Read_from_File(head);system("clear");p=head->ne*t;Count1=0;Count2=0;while(p!=NULL)if(p->se*='w' | p->se*='W')Count1+;else Count2+;p=p->ne*t;printf("t女生总数 : %dn ",Count1);printf("t男生总数 : %dn ",Count2);printf("t学生总数 : %dn ",Count1+Count2);printf("t按任意键返回!");getchar();getchar();void main() int choice; char ch; while(1) system("clear"); printf("n 学生宿舍管理系统n");printf("=n");printf(" 1.录入学生信息nn");printf(" 2.删除学生信息nn");printf(" 3.插入学生信息nn");printf(" 4.修改学生信息nn");printf(" 5.显示学生信息nn");printf(" 6.查找学生信息nn");printf(" 7.排序学生信息nn");printf(" 8.统计学生信息nn");printf(" 0.退出系统n");printf("=n");printf(" 请选择0-8:n"); printf("n 请选择要进展的操作 : "); scanf("%d",&choice); switch(choice) case 1: append(); break; case 2: del(); break;case 3: insert(); break;case 4: modify(); break; case 5: display(); break;case 6:Search();break;case 7:sort();break;case 8:tongji();break; case 0: printf("ntt确定退出. (Y/N)"); scanf(" %c", &ch); if(ch='Y'|ch='y')e*it(0); if(ch='N' | ch='n') system("clear"); . z.

    注意事项

    本文(C语言课程设计报告学生宿舍管理系统.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开