收藏 分享(赏)

C语言课程设计——学生宿舍管理系统(ubuntu下).doc

上传人:精品资料 文档编号:8881449 上传时间:2019-07-15 格式:DOC 页数:22 大小:38.72KB
下载 相关 举报
C语言课程设计——学生宿舍管理系统(ubuntu下).doc_第1页
第1页 / 共22页
C语言课程设计——学生宿舍管理系统(ubuntu下).doc_第2页
第2页 / 共22页
C语言课程设计——学生宿舍管理系统(ubuntu下).doc_第3页
第3页 / 共22页
C语言课程设计——学生宿舍管理系统(ubuntu下).doc_第4页
第4页 / 共22页
C语言课程设计——学生宿舍管理系统(ubuntu下).doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、1*大学大学C 语言课程设计报告题 目: 学生宿舍管理系统 系部名称 :专业名称 :班级 :学 号 : 学生姓名 :指导教师 :时间 :2一、 课程设计目的1. 设计一个 ubuntu 下的学生宿舍管理系统2. 掌握用 C 语言定义单链表结构,并实现其创建、插入、删除等基本操作。二、课程设计内容用 C 语言编写“学生宿舍管理系统” ,要求如下:1. 创建链表,录入数据。2. 数据的读写操作。3. 数据的更新操作。4. 数据的删除和插入。5. 请你要求对数据进行查找。6. 按要求排序。7. 设计总体菜单界面。三、实验要求1、录入数据学生的基本信息,包括学号、姓名、性别、年龄、专业、班级等。 宿舍

2、楼的基本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。2、数据存储信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随时查看,也可供程序调用,方便操作人员不用重复输入数据。3、数据的更新更新包括插入、删除、修改。删除分根据学号删除和根据学生的楼层信息删除。5、数据的查询查询可以根据学号和宿舍信息不同方面进行查询,方便操作者使用。6、数据的排序操作者可以使所输入的信息按学号排序。7、数据的统计按整体统计,统计所有学生人数,男生人数和女生人数。 四、概要设计1系统结构图(功能模块图)3主函数录入存储数据操作输出信息输入统计查找修改删除插入显示排序2功能模块说明:(1). 数据录入

3、:创建单链表,调用 Initnode()函数申请头结点,在调用 append(),在调用 Write_to_File()函数将信息写入文件中,(2) 插入模块:先将文件信息读出,再调用 insert()函数,可以向文件中插入信息。(3) 插入模块:先将文件信息读出,再调用 del()函数,可以将输入错误或者需要的信息删除。(4) 修改模块:先将文件信息读出,再调用 modify()函数,将输入错误的信息修改。(5) 查询模块:先将文件信息读出,再调用 search(),在 search()中有调用两个数,一个按照宿舍信息查询 sushe_search(),需要楼号和宿舍号,一个按照生信息查询

4、xuehao_search()需要学生学号或者姓名。(6) 排序模块:先将文件信息读出,再调用 sort (),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().(7) 统计模块:先将文件信息读出,再调用 tongji()函数,统计了女生人数和男生人数,还统计了总人数.五详细过程和运行结果:4删除模块 !=插入模块 开始输入要删除学生的学号 nump-num:num删除该学生信息结束组织循环,扫描存储学生信息的链表开始头插入学生信息输入插入的学生信息结束将其入栈,即将插入的学生信息插到了最前面5查找模块 != != 开始选择查找方式按学生学

5、号查找输入要查找的学生学号 nump-num:num输出该学生的信息按宿舍信息查找输入要查找的学生lounum,sushenum,chuangnump-lounum:sushenup-sushenum:sushenup-chuangnum:chuangnum输出该学生信息结束组织循环,扫描存储学生信息的链表表6修改模块!=开始输入要修改的学生学号 num组织循环,扫描存储学生信息的链表表p-num:num修改学生信息结束7排序模块 开始组织循环,扫描存储学生信息的链表表选出学号最小的学生,与第一学生交换存储位置在余下的学生中选出学号最小的学生与第二个学生交换存储位置以此类推,直至排序完成结束8

6、统计模块 六参考文献:C 语言程序设计: 王曙燕开始组织循环,扫描存储学生信息的链表表p-sex=w p-sex=mCount1+ Count2+结束9七源代码#include #include #include /#include typedef struct Studentint num; /*学号*/char name15; /*姓名*/char sex; /*性别*/char zhuanye20; /*专业*/int lounum; /*楼号*/int sushenum; /*宿舍号*/ int chuangnum; /*床号*/ struct Student *next;Stu;vo

7、id Write_to_File(Stu *L) /*将信息写入文件*/FILE *fp;Stu *p;fp=fopen(“sushe.txt“,“w“);if(fp=NULL)printf(“打开失败!“);getchar();getchar();exit(0);p=L-next;while(p)fprintf(fp,“%d %s %c %s %d %d %dn“,p-num,p-name,p-sex, p-zhuanye,p-lounum,p-sushenum,p-chuangnum);p=p-next;10fclose(fp);void InitStu(Stu *h) /*创建头结点*/

8、(*h)=(Stu *)malloc(sizeof(Stu);if(h=NULL)printf(“创建失败!“);getchar();getchar();exit(0);(*h)-next=NULL;void append( ) /*录入学生信息*/Stu *head;Stu *p,*q;char ch; InitStu(q=head;while(1)system(“clear“); printf(“请录入学生信息n“);p=(Stu *)malloc(sizeof(Stu);printf(“n 学号:“);scanf(“%d“,printf(“n 姓名:“);scanf(“%s“,p-nam

9、e);printf(“n 性别:“); scanf(“ %c“,printf(“n 专业:“);scanf(“%s“,p-zhuanye);printf(“n 楼号:“);scanf(“%d“,11printf(“n 宿舍号:“);scanf(“%d“,printf(“n 床号:“);scanf(“%d“,p-next=q-next;q-next=p;q=p;printf(“按任意键继续录入,按 0 结束录入“);getchar();ch=getchar();if(ch=0)break;Write_to_File(head); void Read_from_File(Stu *h) /*读出文

10、件信息*/FILE *fp;Stu *p,*q;int i;fp=fopen(“sushe.txt“,“r“);if(fp=NULL)printf(“打开失败“);exit(0);q=h;while(!feof(fp)p=(Stu *)malloc(sizeof(Stu);i=fscanf(fp,“%d %s %c %s %d %d %dn“,if(i = EOF)break;q-next=p;q=p;q-next = NULL;fclose(fp);12int display() /*显示文件信息*/Stu *head = NULL;Stu *p;InitStu(Read_from_File

11、(head);/printf(“ok!n“);p=head-next;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-sex,p-zhuanye,p-lounum,p-sushenum,p-chuangnum);p=p-next;printf(“n 按任意键返回n“);getc

12、har();getchar();return 1;void del() /*删除学生信息*/Stu *head;Stu *p,*q;char ch,h;int N;int lounum,sushenum,chuangnum;InitStu(Read_from_File(head);q=head;p=head-next;13dosystem(“clear“);printf(“n1. 根据学生学号删除n“);printf(“n2. 根据宿舍信息删除n“);printf(“n 请选择删除方式:“);scanf(“ %c“, while(1)if(ch=1)printf(“n 请输入学生学号:“);s

13、canf(“%d“,while(p)if(p-num=N)q-next=p-next;printf(“删除成功!“);break;q=p;p=p-next;if(p=NULL)printf(“n 未找到此学生“);break;elsefree(p);else if(ch=2)printf(“n 请输入宿舍信息(楼号 宿舍 床号):“);scanf(“%d %d %d“,while(p!=NULL)if(p-lounum=lounum printf(“删除成功!“);14break;q=p;p=p-next;if(p=NULL)printf(“未找到此学生“);break;elsefree(p)

14、;break;printf(“nn 是否继续 :Y/N ?“);scanf(“ %c“, while(h=Y |h=y);Write_to_File(head);void insert() /*用头插法插入学生信息*/Stu *p , *head;char ch;InitStu(Read_from_File(head);system(“clear“);do p=(Stu*)malloc(sizeof(Stu);p-next=NULL;printf(“tt 请输入插入的学生信息 :n “);printf(“t 学号:“);scanf(“%d“,printf(“nt 姓名:“);15scanf(“

15、%s“,p-name);printf(“nt 性别:“); scanf(“ %c“,printf(“nt 专业:“);scanf(“%s“,p-zhuanye);printf(“nt 楼号:“);scanf(“%d“,printf(“nt 宿舍号:“);scanf(“%d“,printf(“nt 床号:“);scanf(“%d“,p-next = head-next;head-next = p;printf(“nn 是否继续插入?Y/N“);scanf(“ %c“,while(ch=y|ch=Y); Write_to_File(head);void modify( ) /*修改学生信息(按学号

16、修改)*/Stu *head;Stu *p;char ch;int N;InitStu(Read_from_File(head);system(“clear“);16printf(“nn 请输入修改的学生学号: “);scanf(“%d“,p=head-next;dowhile(p!=NULL)if(p-num=N)system(“clear“); printf(“n 请输入新的学生信息 :n “);printf(“n 学号:“);scanf(“%d“,printf(“n 姓名:“);scanf(“%s“,p-name);printf(“n 性别:“); scanf(“ %c“,printf(

17、“n 专业:“);scanf(“%s“,p-zhuanye);printf(“n 楼号:“);scanf(“%d“,printf(“n 宿舍号:“);scanf(“%d“,printf(“n 床号:“);scanf(“%d“,break;p=p-next;if(p=NULL)printf(“n 未找到此学生“);elseprintf(“修改成功n“);printf(“nn 继续修改 ?Y/N“);scanf(“ %c“,while(ch=y|ch=Y);17Write_to_File(head);void xuehao_search(Stu * head) /*按照学生学号查找*/int nu

18、m;Stu *p;char ch;p=head-next ;dosystem(“clear“);printf(“n 请输入要查找的学生学号 : “);scanf(“%d“,while(p!=NULL)if(p-num = num )printf(“学号 姓名 性别 专业 楼号 宿舍号 床号nn“);printf(“%-8d%-8s%-4c%-8s%-8d%-8d%-5dn“,p-num,p-name,p-sex,p-zhuanye,p-lounum,p-sushenum,p-chuangnum);break;p=p-next;if(p=NULL)printf(“n 未找到此学生“);print

19、f(“nn 继续查找 ?Y/N“);scanf(“%s“,while(ch=Y | ch=y);void sushe_search(Stu *head) /*按照宿舍信息查找*/int lounum,sushenum,chuangnum;Stu *p;char ch;p=head-next;do18system(“clear“);printf(“n 请输入要查找的学生宿舍信息(楼号 宿舍 床号) : “);printf(“n 楼号 :“);scanf(“%d“,printf(“n 宿舍号 :“);scanf(“%d“,printf(“n 床号 :“);scanf(“%d“,while(p!=N

20、ULL)if(p-lounum=lounum printf(“%-8d%-8s%-4c%-8s%-8d%-8d%-5dn“,p-num,p-name,p-sex,p-zhuanye,p-lounum,p-sushenum,p-chuangnum);break;p=p-next;if(p=NULL)printf(“n 未找到此学生“);printf(“nn 是否继续 ?Y/N“);scanf(“%s“,while(ch=y | ch=Y);void Search( ) /*查找学生信息*/ int choose;Stu *head;InitStu(Read_from_File(head);sys

21、tem(“clear“);printf(“n1.根据宿舍信息查找.“);printf(“n2.根据学生学号查找.“);printf(“n3.退出.nn“);printf(“n 请选择查找方式:“);scanf(“%d“,switch(choose)case 1:19sushe_search(head);break;case 2:xuehao_search(head);break;case 3:break;void sort( ) /*将学生信息按学号排序*/Stu *head;Stu *i,*j,*k;Stu *m,*n;Stu *temp;int l=0;InitStu(Read_from_

22、File(head); /冒泡排序法for(m=head,i=head-next;i;m=i,i=i-next)k=i;for(n=i,j=i-next;j;n=j,j=j-next)if(j-numnum)k=j;break;if(i!=k)m-next=j;n-next=i;temp=i-next;i-next=j-next;j-next=temp;i=head;system(“clear“);printf(“nn 输入学生信息 : nn“);20i=head-next;printf(“学号 姓名 性别 专业 楼号 宿舍号 床号nn“);while(i)printf(“%-8d%-8s%-

23、4c%-8s%-8d%-8d%-5dn“,i-num,i-name,i-sex,i-zhuanye,i-lounum,i-sushenum,i-chuangnum);i=i-next;printf(“n 按任意键返回!“);getchar();getchar();void tongji( ) /*统计学生信息*/Stu *head,*p;int Count1,Count2;InitStu(Read_from_File(head);system(“clear“);p=head-next;Count1=0;Count2=0;while(p!=NULL)if(p-sex=w | p-sex=W)Co

24、unt1+;else Count2+;p=p-next;21printf(“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

25、“);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“,switch(choice)case 1:append();break;case 2:22del();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“, if(ch=Y|ch=y)exit(0);if(ch=N | ch=n)system(“clear“);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报