




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计报告题 目学生宿舍管理系统系部名称: 专业名称: 班级:学号:学生姓名:指导教师:一、课程设计目的1. 设计一个ubuntu下的学生宿舍管理系统2. 掌握用C语言定义单链表结构,并实现其创建、插入、删除等基本操作。二、课程设计容用C语言编写“学生宿舍管理系统”,要求如下:1. 创建链表,录入数据。2. 数据的读写操作。3. 数据的更新操作。4. 数据的删除和插入。5. 请你要求对数据进行查找。6. 按要求排序。7. 设计总体菜单界面。三、实验要求1、录入数据学生的基本信息,包括学号、姓名、性别、年龄、专业、班级等。宿舍楼的基本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。2
2、、数据存储信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随 时查看,也可供程序调用,便操作人员不用重复输入数据。3、数据的更新更新包括插入、删除、修改。删除分根据学号删除和根据学生的楼层信息删除。5、数据的查询查询可以根据学号和宿舍信息不同面进行查询,便操作者使用。6、数据的排序操作者可以使所输入的信息按学号排序。7、数据的统计按整体统计,统计所有学生人数,男生人数和女生人数。四、概要设计1系统结构图(功能模块图)2.功能模块说明:(1).数据录入:创建单链表,调用Initnode()函数申请头结点,在调用append(), 在调用Write_to_File()函数将信息写入文
3、件中,插入模块:先将文件信息读出,再调用insert()函数,可以向文件中插入信息。(3) 插入模块:先将文件信息读出,再调用 del()函数,可以将输入错误或者需要的信息删除。(4) 修改模块:先将文件信息读出,再调用modify()函数,将输入错误的信息修改。 查询模块:先将文件信息读出,再调用search。在search()中有调用两个数,一个按照宿舍信息查询 sushe_search()需要楼号和宿舍号, 一个按照生信息查询xuehao_search()需要学生学号或者姓名。(6)排序模块:先将文件信息读出,再调用sort (),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入
4、调用文件读入函数 Write_to_File().统计模块:先将文件信息读出,再调用 tongji()函数,统计了女生人数和男 生人数,还统计了总人数.五详细过程和运行结果:删除模块Z.插入模块输入插入的学生信息将其入栈,即将插入的学 生信息插到了最前面查找模块按学生学号查找输入要查找的学生学号num修改模块输入要修改的学生学号num组织循环,扫描存储学 生信息的链表表排序模块组织循环,扫描存储学生信息的链表选出学号最小的学生,与第学生交换存储位置在余下的学生中选出学号最小的学生与第二个学生交换存储位置以此类推,直至排序完成统计模块开始组织循环,扫描存储学 生信息的链表表p_sex=wp_se
5、x=mCou nt1+Cou nt2+z.六.参考文献C语言程序设计: 曙燕七.源代码#include vstdio h#i nclude #in elude #in elude typedef struct Stude ntintnum;char n ame15;char sex;char zhua ny e20;intlounum;intsushe num;intchua ngnum;struct Stude nt *n ext;Stu;/*学号*/*姓名*/*性别*/*专业*/*楼号*/*宿舍号*/*床号*/void Write_to_File(Stu *L)FILE *fp;Stu *
6、p;fp=fope n(sushe.txt,w); if(fp=NULL)printf(打开失败!); getchar();getchar(); exit(0);/*将信息写入文件*/p=L-n ext;while(p)fprin tf(fp,%d %s %c %s %d %d p-zhua nye,p-l ounu m,p-sushe nu m,p-chua ngnu m);p=p-n ext;%dn “,p_ n um,p_ n ame,p-sex,fclose(fp);void Ini tStu(Stu *h)/*创建头结点*/(*h)=(Stu *)malloc(sizeof(Stu)
7、; if(h=NULL)printf(” 创建失败!);getchar();getchar(); exit(0);(*h)- next=NULL;/*录入学生信息*/ void appe nd()Stu *head;Stu *p,*q;char ch;In itStu(&head); q=head;while(1)system(clear);printf(请录入学生信息n); p=(Stu *)malloc(sizeof(Stu);prin tf(n 学号:); sca nf(%d,&p- nu m);printf(n 姓名:); sca nf(%s,p-n ame);printf(n 性别:
8、); scanf( %c,&p-sex);printf(n 专业:); sca nf(%s,p-zhua ny e);prin tf(n 楼号:); sca nf(%d,&p-lou nu m);printf(n 宿舍号:); sca nf(%d,&p-sushe nu m);prin tf(n 床号:); sca nf(%d,&p-chua ngnu m);p_n ext=q _n ext;q_n ext=p;q=p;printf(”按任意键继续录入,按0结束录入”);getchar();ch=getchar();if(ch=0)break;Write_to_File(head);void
9、Read_from_File(Stu *h)/* 读出文件信息 */FILE *fp;Stu *p,*q;int i;fp=fope n(sushe.txt,r);if(fp=NULL)printf(打开失败);exit(0);q=h;while(!feof(fp)p=(Stu *)malloc(sizeof(Stu);i=fsca nf(fp,%d %s %c %s %d %d %dn,&p-n um,p- name,&p-sex,p-zhua nye,& p-l ounum,& p-sushe num,&p-chua ngnu m);if(i = EOF)break;q_n ext=p;q
10、=p;q-next = NULL;fclose(fp);int display()/*显示文件信息*/Stu *head = NULL;Stu *p;In itStu(&head);Read_from_File(head);/prin tf(ok!n);p=head-n ext;system(clear);if(!p)printf(无容!);printf(n按任意键键返回n);getchar();getchar();return 0;printf(学号 姓名 性别 专业楼号 宿舍号 床号nn);while(p)prin tf(%-8d%-10s%-6c%-14s%-8d%-8d%-5dn,p-
11、 num,p- name,p-sex,p-zhua nye,p-l ounu m,p-sushe nu m,p-chua ngnu m);p=p-n ext;printf(n按任意键返回n);getchar();getchar();return 1;void del()/*删除学生信息*/Stu *head;Stu *p,*q;char ch,h;int N;int lounu m,sushe nu m,chua ngnum;In itStu(&head);Read_from_File(head);q=head;p=head-n ext;dosystem(clear);printf(n1.根据
12、学生学号删除n);printf(n2.根据宿舍信息删除n);printf(n请选择删除式:);scanf(” c, & ch);while(1)if(ch=1)printf(n请输入学生学号:);scan f(%d,&N);while(p)if(p-num=N)q_n ext=p-n ext;printf(”删除成功!);break;q=p;p=p-n ext;if(p=NULL)printf(n未找到此学生”);break;elsefree(p);else if(ch=2)printf(n请输入宿舍信息(楼号宿舍床号):);sca nf(%d %d %d,&lounum,& sushe nu
13、m,& chua ngnu m);while(p!=NULL)&if(p-l ounum=lounum&p-sushe num=sushe nump-chua ngnum)q_n ext=p-n ext;printf(删除成功!); break;q=p;p=p-n ext;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 in sert()/*用头插法插入学生信息*/Stu *p , *
14、head;char ch;In itStu(&head);Read_from_File(head);system(clear);dop=(Stu*)malloc(sizeof(Stu);p- next=NULL;prin tf(tt请输入插入的学生信息:n ”);prin tf(t学号:);scan f(%d,&p-n um);printf(nt 姓名:);sca nf(%s,p-n ame);printf(nt性别:);scanf(” %c,&p-sex);printf(nt专业:”);sca nf(%s,p-zhua ny e);printf(nt楼号:);scan f(%d,&p-lou
15、 nu m);printf(nt宿舍号:);sca nf(%d,&p-sushe nu m);printf(nt床号:);sca nf(%d,&p-chua ngnu m);p-next = head-n ext;head-n ext = 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;In itStu(&head);Read_from_File(head);sys
16、tem(clear);prin tf(nn请输入修改的学生学号 :);scan f(%d,&N);p=head-n ext;dowhile(p!=NULL) if(p-num=N)system(clear);prin tf(n请输入新的学生信息:n);printf(n 学号:);sca nf(%d,&p- nu m);printf(n 姓名:); sca nf(%s,p-n ame);printf(n 性别:);scanf( %c,&p-sex);printf(n 专业:);sca nf(%s,p-zhua ny e);printf(n 楼号:);sca nf(%d,&p-lou nu m);
17、printf(n 宿舍号:);sca nf(%d,&p-sushe nu m);printf(n 床号:);sca nf(%d,&p-chua ngnu m);break;p=p-n ext;if(p=NULL)printf(n未找到此学生”);elseprintf(修改成功 n);prin tf(nn继续修改?Y/N);scanf(” %c,&ch);while(ch=y|ch=Y);Write_to_File(head);void xuehao_search(Stu * head)/* 按照学生学号查找 */int num;Stu *p;char ch;p=head-n ext ;dosy
18、stem(clear);prin tf(n请输入要查找的学生学号:”);sca nf(%d,&n um);while(p!=NULL)if(p-num = num )床号printf(”学号姓名 性别专业 楼号 宿舍号nn);prin tf(%-8d%-8s%-4c%-8s%-8d%-8d%-5dn,p- nu m,p- name,p-sex,p-zhua nye,p-l ounu m,p-sushe nu m,p-chua ngnu m);break;p=p-n ext;if(p=NULL)printf(n未找到此学生”);prin tf(nn继续查找?Y/N);sca nf(%s,&ch)
19、;while(ch=Y | ch=y);void sushe_search(Stu *head)/* 按照宿舍信息查找 */int lounu m,sushe nu m,chua ngnum;Stu *p;char ch;p=head-n ext;dosystem(clear);printf(n请输入要查找的学生宿舍信息(楼号 宿舍 床号):);printf(n楼号:);sea nf(%d,&lou num);prin tf(n宿舍号:”);sea nf(%d,& sushe nu m);printf(n床号:);sca nf(%d,&chua ngnu m);while(p!=NULL)if
20、(p-l ounum=lounum & p-sushe num=sushe num&p-chua ngnum=chua ngnum)printf(”学号姓名 性别 专业 楼号 宿舍号床号nn);prin tf(%-8d%-8s%-4c%-8s%-8d%-8d%-5dn,p- nu m,p- name,p-sex,p-zhuanye,p-l ounu m,p-sushe nu m,p-chua ngnu m);break;p=p-n ext;if(p=NULL)printf(n未找到此学生”);prin tf(nn是否继续?Y/N);scan f(%s,&ch);while(ch=y | ch=
21、Y);void Search( )/*查找学生信息*/int choose;Stu *head;In itStu(&head);Read_from_File(head);system(clear);printf(n1.根据宿舍信息查找.);printf(n2.根据学生学号查找.);printf(n3.退出.nn”);printf(n请选择查找式:);scan f(%d,&choose);switch(choose)case 1:sushe_search(head); break;case 2:xuehao_search(head);break;case 3:break;void sort( )
22、/*将学生信息按学号排序Stu *head;Stu *i,*j,*k;Stu *m,* n;Stu *temp;int 1=0;In itStu(&head);Read_from_File(head);for(m=head,i=head-n ext;i;m=i,i=i-n ext)k=i;for(n=i,j=i-n ext;j; n=j,j=j- next)if(j-numnum)k=j;break;if(i!=k)m- next=j;n-n ext=i;temp=i-n ext;i-n ext=j-n ext;j-n ext=temp;i=head;system(clear);prin tf
23、(nn 输入学生信息:nn);i=head-n ext;printf(学号 姓名 性别 专业 楼号*/冒泡排序法宿舍号 床号nn);while(i)prin tf(%-8d%-8s%-4c%-8s%-8d%-8d%-5dn,i- num,i- name,i-sex,i-zhua nye,i-l ounu m,i-sushe nu m,i-chua ngnu m);i=i-n ext;printf(n按任意键返回!);getchar();getchar();void tongji( )/*统计学生信息*/Stu *head,*p;int Cou nt1,Cou nt2;In itStu(&head);Read_from_File(head);system(clear);p=head-n ext;Cou nt1=O;Cou nt2=0;while(p!=NULL)if(p-sex=w | p_sex=W)Cou nt1+;elseC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创意画面包机课件
- 《设施主动性检修》课件
- 《组织行为优化》课件
- 后来文案情绪管理
- 公司工艺培训
- 先天性胆汁酸合成障碍的临床护理
- 乘梯安全案例分析
- 2025年第一学期小学学校工作总结模版
- 凌峰培训基础会计
- 新教师上岗培训心得体会模版
- 小学政治 (道德与法治)人教部编版二年级下册14 学习有方法教学设计
- 广东省2024-2025学年佛山市普通高中教学质量检测英语试卷及答案(二)高三试卷(佛山二模)
- 高端定制店面管理制度
- 2024年扬州大学辅导员考试真题
- 2025年上半年广州市海珠区海幢街道招考康园工疗站工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 预设理论在人工智能中的应用-深度研究
- CNAS-CL01:2018 检测和校准实验室能力认可准则
- 工业机器人在建筑行业的应用考核试卷
- 人体发育学 第十章 婴幼儿情绪情感的发育
- 文化交流及艺术展览合作合同
- 中国产教融合行业市场发展现状及前景趋势与投资分析研究报告(2024-2030版)
评论
0/150
提交评论