c语言课程设计——学生宿舍系统(ubuntu下).doc
《c语言课程设计——学生宿舍系统(ubuntu下).doc》由会员分享,可在线阅读,更多相关《c语言课程设计——学生宿舍系统(ubuntu下).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxC语言课程设计学生宿舍管理系统(ubuntu下)【精品文档】*大学C语言课程设计报告题 目: 学生宿舍管理系统 系部名称:专业名称:班级:学 号: 学生姓名 :指导教师:时间: 一、 课程设计目的1.设计一个ubuntu下的学生宿舍管理系统2.掌握用C语言定义单链表结构,并实现其创建、插入、删除等基本操作。二、课程设计内容 用C语言编写“学生宿舍管理系统”,要求如下:1. 创建链表,录入数据。2. 数据的读写操作。3. 数据的更新操作。4. 数据的删除和插入。5. 请你要求对数据进行查找。6. 按要求排序。7. 设计总体菜单界面。三、实验要求1、录入数据 学生的基本
2、信息,包括学号、姓名、性别、年龄、专业、班级等。 宿舍楼的基本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。2、数据存储 信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随时查看,也可供程序调用,方便操作人员不用重复输入数据。3、数据的更新 更新包括插入、删除、修改。 删除分根据学号删除和根据学生的楼层信息删除。5、数据的查询 查询可以根据学号和宿舍信息不同方面进行查询,方便操作者使用。6、数据的排序 操作者可以使所输入的信息按学号排序。7、数据的统计 按整体统计,统计所有学生人数,男生人数和女生人数。 四、概要设计1系统结构图(功能模块图)主函数录入存储数据操作输出信息输
3、入统计查找修改删除插入显示排序2功能模块说明: (1). 数据录入:创建单链表,调用Initnode()函数申请头结点,在调用append(),在调用Write_to_File()函数将信息写入文件中,(2) 插入模块:先将文件信息读出,再调用insert()函数,可以向文件中插入信息。(3) 插入模块:先将文件信息读出,再调用del()函数,可以将输入错误或者 需要的信息删除。(4) 修改模块:先将文件信息读出,再调用modify()函数,将输入错误的信息修改。(5) 查询模块:先将文件信息读出,再调用search(),在search()中有调用两个数,一个按照宿舍信息查询sushe_sea
4、rch(),需要楼号和宿舍号,一个按照生信息查询xuehao_search()需要学生学号或者姓名。(6) 排序模块:先将文件信息读出,再调用sort (),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().(7) 统计模块:先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.五详细过程和运行结果:删除模块 开始 输入要删除学生的学号num 组织循环,扫描存储学生信息的链表 p-num:num != =删除该学生信息结束开始插入模块 头插入学生信息输入插入的学生信息将其入栈,即将插入的学生信息插到了最前面
5、 结束 查找模块 开始选择查找方式 按宿舍信息查找按学生学号查找组织循环,扫描存储学生信息的链表表输入要查找的学生lounum,sushenum,chuangnum输入要查找的学生学号nump-lounum:sushenup-sushenum:sushenup-chuangnum:chuangnump-num:num != != 输出该学生的信息 输出该学生信息 结束 开始修改模块输入要修改的学生学号num组织循环,扫描存储学生信息的链表表p-num:num != =修改学生信息结束 开始排序模块 组织循环,扫描存储学生信息的链表表选出学号最小的学生,与第一学生交换存储位置在余下的学生中选出学
6、号最小的学生与第二个学生交换存储位置以此类推,直至排序完成结束开始统计模块 组织循环,扫描存储学生信息的链表表p-sex=mp-sex=wCount2+Count1+结束六参考文献: C语言程序设计: 王曙燕七源代码#include #include #include /#include typedef struct Student intnum; /*学号*/ charname15; /*姓名*/ charsex; /*性别*/ charzhuanye20; /*专业*/ intlounum; /*楼号*/ intsushenum; /*宿舍号*/ intchuangnum; /*床号*/
7、struct Student *next;Stu;void 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; fclose(fp);v
8、oid InitStu(Stu *h) /*创建头结点*/ (*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(&head); q=head; while(1) system(clear); printf(请录入学生信息n);p=(Stu *)malloc(sizeof(Stu); printf(n学号:); sc
9、anf(%d,&p-num); printf(n姓名:); scanf(%s,p-name); printf(n性别:); scanf( %c,&p-sex); 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-next=q-next; q-next=p; q=p; printf(按任意键继续录入,按0结束录入);getchar(); ch=getch
10、ar(); if(ch=0) break; Write_to_File(head); void Read_from_File(Stu *h) /*读出文件信息*/ 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,&p-num,p-name,&p-sex,p-zhuanye,&p-lounum,&p-sush
11、enum,&p-chuangnum);if(i = EOF)break; q-next=p; q=p; q-next = NULL; fclose(fp);int display() /*显示文件信息*/ Stu *head = NULL; Stu *p; InitStu(&head); Read_from_File(head);/printf(ok!n); p=head-next; system(clear); if(!p) printf(无内容!); printf(n按任意键键返回n); getchar();getchar(); return 0; printf(学号 姓名 性别 专业 楼
12、号 宿舍号 床号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); getchar();getchar(); return 1;void del() /*删除学生信息*/ Stu *head; Stu *p,*q; char ch,h; int N; int lounum,sushenum,chuangnum; InitStu(&head); Read_fro
13、m_File(head); q=head; p=head-next;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-next=p-next;printf(删除成功!);break;q=p;p=p-next;if(p=NULL)printf(n未找到此学生);break;elsefree(p);else if(ch=2)p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生宿舍 系统 ubuntu
限制150内