付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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()函数,可以向文件中插入信del()函数,可以将输入错误或者modifyO函数,将输入错误的信息search(),在search()中有调用两个 sushe_search(),需要楼号和宿舍号,一个按照生信息查询xuehao_search()需要学生学号或者姓名。先将文件信息读出,再调用 sort (),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_
4、to_File().统计模块:先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.五详细过程和运行结果删除模块开始输入要删除学生的学号 num组织循环,扫描存储学生 信息的链表结束插入模块头插入学生信息输入插入的学生信息将其入栈,即将插入的学 生信息插到了最前面查找模块修改模块输入要修改的学生学号num组织循环,扫描存储学 生信息的链表表修改学生信息排序模块组织循环,扫描存储学生信息的链表选出学号最小的学生,与第学生交换存储位置在余下的学生中选出学号最小的学生与第二个学生交换存储位置以此类推,直至排序完成统计模块Cou nt1+Cou nt2+六.参考文献:
5、C语言程序设计:王曙燕七.源代码#in elude <stdio.h>#in elude <stdlib.h>#in elude <stri ng.h>/#in elude <coni o.h>typ edef struct Stude ntintnum;/*学号*/charn ame15;/*姓名*/charsex;/*性别*/charzhua nye20;/*专业*/intlounum;/*楼号*/intsushenum;/*宿舍号intchuangnum;/*床号*/struct Stude nt *n ext;*/Stu;printf(&
6、quot;打开失败!");void Write_to_File(Stu *L)/*将信息写入文件*/FILE *fp;Stu *p;fp=fo pen( "sushe.txt","w");if(fp=NULL)getcharO;getcharO;exit(O);p=L->n ext;while( p)fprin tf(fp,"%d%s %c %s %d %d %dn", p->n um, p-> name, p->sex,p->zhua nye,p->lounum,p->sushe
7、num,p->chua ngnu m);p=p->n ext;/*创建头结点*/fclose(fp);void Ini tStu(Stu *h)(*h)=(Stu *)malloc(sizeof(Stu);if(h=NULL)printf("创建失败!");getcharO;printf("n学号:");getcharO;exit(O);(*h)-> next=NULL;void append()/*录入学生信息*/Stu *head;Stu *p,*q;char ch;In itStu(&head);q=head;while(
8、1)system("clear");printf(”请录入学生信息n”);p=(Stu *)malloc(sizeof(Stu);scan f("%d", &p-> num);printf("n姓名:”);sea nf("%s", p->n ame);printf("n性别:");scanf(” %e",&p->sex);printf("n专业:");sea nf("%s", p->zhua nye);printf(
9、"n楼号:");scan f("%d", &p->lou num);printf("n宿舍号:");scan f("%d", &p->sushe nu m);printf("n床号:");sca nf("%d", &p->chua ngnu m);p->n ext=q->n ext;q->n ext=p;q=p;printf(”按任意键继续录入,按0结束录入”);getcharO;ch=getchar();if(ch
10、='0')break;Write_to_File(head);void Read_from_File(Stu *h)/*读出文件信息*/FILE *fp;Stu *p,*q;int i;fp=fo pen ("sushe.txt","广);if(fp=NULL)exit(0);printf("打开失败");q=h;while(!feof(fp)p=(Stu *)malloc(sizeof(Stu);i=fsca nf(fp,"%d %s %c %s %d %d %dn", &p->nu m, p
11、-> name,&p->sex.p->zhua nye,&p->lounum,&p->sushe num,&p->chua ngnu m);if(i = EOF)break;q->n ext=p;q=p;q->next = NULL;fclose(fp);printf("n 按任意键返回n");intdis play()/*显示文件信息*/Stu *head = NULL;Stu *p;In itStu(&head);Read_from_File(head);/prin tf("
12、;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->nu m, p-> name, p->sex, p->zh uanye.p-&
13、gt;lounum,p->sushe num,p->chua ngnu m);p=p->n ext;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");prin tf("n1.根据学生学号删除n&qu
14、ot;);prin tf("n2.根据宿舍信息删除n");prin tf("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)break;elsep
15、rintf("n未找到此学生");free( p);else if(ch=2)printf("n请输入宿舍信息(楼号宿舍床号):”);sca nf("%d %d %d",&lounum,& sushe num,& chua ngnu m);while( p!=NULL)p->chua ngnum)if(p->lounum=lounum&& p->sushe num=sushe num&&q=p;q->n ext =p->n ext;printf("删
16、除成功!");break;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 , *head;char ch;In itStu(&head);Read_from_File(head);system(&qu
17、ot;clear");do p=(Stu*)malloc(sizeof(Stu);p-> next=NULL;prin tf("tt 请输入插入的学生信息 :n");printf("t 学号:”);scan f("%d",&p->n um);printf("nt姓名:");sca nf("%s", p->n ame);printf("nt性别:");scanf(” %c", &p->sex);printf("nt专业
18、:”);sea nf("%s", p->zhua ny e);printf("nt楼号:");scan f("%d",&p->lou num);printf("nt宿舍号:");sea nf("%d",&p->sushe nu m);printf("nt床号:");sca nf("%d",&p->chua ngnu m);p->next = head->n ext;head->n ext =
19、 p;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);system("clear");prin tf("nn请输入修改的学生学号:");scan f("%d",&N);p=head->n ext;dowhile( p!=NULL)if(p->num=
20、N)system("clear");prin tf("n请输入新的学生信息:n");prin tf("n学号:”);sca nf("%d",&p->nu m);printf("n姓名:");sca nf("%s", p->n ame);printf("n性别:");sca nf(” %c",&p->sex);printf("n专业:");sca nf("%s", p->zhua
21、 ny e);prin tf("n楼号:");sca nf("%d",&p->lou nu m);printf("n宿舍号:");sca nf("%d",&p->sushe nu m);prin tf("n床号:”);sea nf("%d",&p->chua ngnu m);break;p=p->n ext;if(p=NULL)printf("n未找到此学生");elseprintf("修改成功 n"
22、;);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 ;dosystem("clear");prin tf("n请输入要查找的学生学号:");scan f("%d", &nu m);wh
23、ile( p!=NULL)if(p->num = num )printf(” 学号姓名性别专业 楼号 宿舍号 床号nn");prin tf("%-8d%-8s%-4c%-8s%-8d%-8d%-5dn", p-> num, p-> name ,p->sex, p->zhua nye,p->lounum,p->sushe num,p->chua ngnu m);break;p=p->n ext;if(p=NULL)printf("n未找到此学生");prin tf("nn继续查找?Y
24、/N");scan f("%s",&ch);/*按照宿舍信息查找*/while(ch='Y' II 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楼号:");scan f("%d&quo
25、t;, &lou nu m);printf("n宿舍号:");scan f("%d", &sushe nu m);printf("n床号:”);sea nf("%d", &chua ngnu m);while( p!=NULL)if(p->lounum=lounum && p->sushe num=sushe num&&p->chua ngnum=chua ngnum)printf(” 学号姓名 性别 专业 楼号 宿舍号床号nn");prin
26、 tf("%-8d%-8s%-4c%-8s%-8d%-8d%-5dn", p->n um, p-> name, p->sex,p->zhuanye, p->lounum,p->sushe num,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' II
27、ch='Y');void Search()int choose;Stu *head;In itStu(&head);Read_from_File(head);system("clear");prin tf("n1.根据宿舍信息查找."prin tf("n2.根据学生学号查找."prin tf("n3.退出.nn");prin tf("n请选择查找方式:”);scan f("%d",&choose);switch(choose););case 1:sush
28、e_search(head);break;case 2:xuehao_search(head);break;case 3:break;void sort()/*将学生信息按学号排序*/Stu *head;Stu *i,*j,*k;Stu *m,* n;Stu *te mp;int 1=0;In itStu(&head);/冒泡排序法Read_from_File(head);for(m=head,i=head-> next;i;m=i,i=i->n ext)k=i;for(n=i,j=i->n ext;j; n=j,j=j->n ext)if(j->num&
29、lt; k->num)k=j;break;if(i!=k)m->n ext=j;n->n ext=i;temp=i->n ext;i->n ext=j->n ext;j->n ext=te mp;i=head;system("clear");prin tf("nn输入学生信息:nn");i=head->n ext;printf(” 学号姓名 性别 专业 楼号 宿舍号床号nn");while(i)prin tf("%-8d%-8s%-4c%-8s%-8d%-8d%-5dn",i-
30、> nu m,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按任意键返回r);getchar();/*统计学生信息*/getchar();void ton gji()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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公厕工作制度
- 冻品店工作制度
- 化粪池工作制度
- 三监测工作制度
- 交管站工作制度
- 三福工作制度
- 办税厅工作制度
- 土管局工作制度
- 助浴室工作制度
- 住院总工作制度
- 人教统编版六年级语文下册第二单元《习作:写作品梗概》公开课教学课件
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库附参考答案详解(典型题)
- 2026内蒙古环投集团社会招聘17人笔试备考试题及答案解析
- 2026年高考物理二轮复习:专题16 热学(复习讲义)(全国适用)(原卷版)
- TSG 08-2026 特种设备使用管理规则
- 2026年安徽粮食工程职业学院单招职业技能考试题库附答案详细解析
- DBJ-T36-073-2026 江西省装配式建筑评价标准
- 2026年全国教育工作会议精神学习传达与贯彻落实指南
- 劳务工奖惩制度
- 投资项目《项目建议书》《可性研究报告》等编制服务方案投标文件(技术方案)
- 压铸机常见故障分析课件
评论
0/150
提交评论