ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:48.20KB ,
资源ID:3305326      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3305326.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(1课程设计 题目十.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

1课程设计 题目十.docx

1、1课程设计 题目十学生宿舍管理系统 一设计内容及要求: 为宿舍管理人员编写一个宿舍管理查询软件。 要求:1)建立数据文件,数据文件按关键字(姓名,学号,房号)进行排序(冒泡,选择,插入排序等任意一种)2)查询菜单(用二分法实现以下操作) A按姓名查询 B按学号查询 C按房号查询二概要设计1)需要定义一个结构体:typedef struct pnode /*结构体定义 用于存放学生信息的节点*/用来存储学生的信息。2)create() /*初始条件:必须保证原有记录是空时方可建立*/ 操作结果:建立一个新的数据文件3) readfile() /*初始条件:数据文件已经建立*/ 操作结果:获取次文

2、件的信息 4)serch1()按姓名查找serch2()按学号查找serch3()按宿舍号查找初始条件:数据文件中含有纪录操作结果:不支持模糊查询必须查询项和关键字吻合情况下才可查询。调用按不同关键字查询的子函数若存在相应的查询结果则显示在屏幕上,若查找的纪录不存在则提示该纪录不存在,请建立相应的数据纪5)insert() /*添加数据纪录的函数*/初始条件:必须已经建立了数据文件操作结果:在数据文件中添加新的纪录若没有建立数据文件则添加失败。6) delete() /*删除数据纪录的函数*/初始条件:必须建立了数据库并且数据文件中含有数据纪录操作结果:删除输入学号的学生的一切相关纪录7)up

3、data() /*修改数据纪录的函数*/初始条件:必须建立了数据库并且数据文件中含有数据纪录操作结果:修改输入的学号相对应的学生的一切信息。如不存在相应的纪录则提示不存在8)output() /*输出函数*/ 初始条件:数据文件已经建立 操作结果:起泡法排序 按学号顺序输出记录2 本程序包含10个函数:1. 主函数main()2. 新建数据文件create()3. 查询函数serch1()4. 查询函数serch2()5. 查询函数serch3()6. 加数据纪录函数insert()7. 删除数据纪录函数delete() 8. 修改数据纪录函数updata()9. 数据文件读取函数readfi

4、le () 10. 查询当前所有纪录冰按学号升序输出的函数output()三设计思想:采用模块化编程思想,将程序划分为11个模块,在逐个模块细化编程,最后再将个个模块组装成软件。四测试测试结果及数据如下:五程序源代码如下:#include#include#includetypedef struct pnode char name 8; char xh16; char fh30; personnode;char filename20; FILE *fp; void creat() personnode *person; person=(personnode *)malloc(sizeof(per

5、sonnode); printf(n 请输入 the filename:n); scanf(%s,filename); if(fp=fopen(filename,w+)=NULL) printf(n 你还没有输入,不能建立档案); exit(0); printf(n 请输入姓名,学号 (the same length),寝室号,剩余空间,endwith #n); scanf(%s,person-name); while(strcmp(person-name,#) scanf(%s %s,person-xh,person-fh); fprintf(fp,%-10s%-20s%-50sn,pers

6、on-name,person-xh,person-fh); scanf(%s,person-name); fclose(fp);void readfile() printf(n please enter the fileroad:n); scanf(%s,filename); if(fp=fopen(filename,r+)=NULL) printf(n cant open thefile:n); exit(0); fclose(fp);void output() personnode *person; long offset1,offset2; char name18,name28,name

7、38; char xh116,xh216,xh316; char fh130,fh230,fh330; person=(personnode *)malloc(sizeof(personnode); if(fp=fopen(filename,r)=NULL) printf(n cant open the file); exit(0); while(!feof(fp) int a,b,c,d; if(fp=fopen(filename,r+)=NULL) printf(n cant open the file); exit(0); while(!feof(fp) while(!feof(fp)

8、offset1=ftell(fp); fscanf(fp,%s%s%sn,person-name,person-xh,person-fh); strcpy(name1,person-name); strcpy (xh1,person-xh); strcpy(fh1,person-fh); if(feof(fp) break; offset2=ftell(fp); fscanf(fp,%s%s%sn,person-name,person-xh,person-fh); strcpy (name2,person-name); strcpy(xh2,person-xh); strcpy(fh2,per

9、son-fh); b=strlen(xh1); c=strlen(xh2); d=strcmp(xh1,xh2); if(b=c&d0) strcpy(name3,name1); strcpy(name1,name2); strcpy(name2,name3); strcpy(xh3,xh1); strcpy(xh1,xh2); strcpy(xh2,xh3); strcpy(fh3,fh1); strcpy(fh1,fh2); strcpy(fh2,fh3); fseek(fp,offset1,SEEK_SET); strcpy(person-name,name1); strcpy(pers

10、on-xh,xh1); strcpy(person-fh,fh1); fprintf(fp,%-10s%-20s%-50sn,person-name,person-xh,person-fh); strcpy(person-name,name2); strcpy(person-xh,xh2); strcpy( person-fh,fh2); fprintf(fp,%-10s%-20s%-50sn,person-name,person-xh,person-fh); fseek(fp,offset2,SEEK_SET); rewind(fp); while(!feof(fp) offset1=fte

11、ll(fp); fscanf(fp,%s%s%sn,person-name,person-xh,person-fh); strcpy (xh1,person-xh); if(feof(fp) a=1; break; offset2=ftell(fp); fscanf(fp,%s%s%sn,person-name,person-xh,person-fh); strcpy(xh2,person-xh); b=strlen(xh1); c=strlen(xh2); d=strcmp(xh1,xh2); if(b=c&dname,person-xh,person-fh); printf(%-10s%-

12、20s%-50sn,person-name,person-xh,person-fh); fclose(fp); printf(*nn);void search1() int k=0; char namekey8; personnode *person; person=(personnode *)malloc(sizeof(personnode); printf(n please enter the namehead you need :); scanf(%s,namekey); if(fp=fopen(filename,rb)=NULL) printf(n cant open thefile)

13、; exit(0); while(!feof(fp) fscanf(fp,%s %s %sn,person-name,person-xh,person-fh); if(!strcmp(namekey,person-name) printf(nn have serched,the courrent is:); printf(%-10s%-20s%-50sn,person-name,person-xh,person-fh); k=1; if(!k) printf(nn sorry,there is not the current of thiss people n); fclose(fp);voi

14、d search2() int k=0; char xhkey16; personnode *person; person=(personnode *)malloc(sizeof(personnode); printf(n please enter the roomnumber you want to serch:); scanf(%s,xhkey); if(fp=fopen(filename,rb)=NULL) printf(n cant open the file ); exit(0); while(!feof(fp) fscanf(fp,%s %s %sn,person-name,per

15、son-xh,person-fh); if(!strcmp(xhkey,person-xh) printf(nn have got it,the current is:); printf(%-10s%-20s%-50sn,person-name,person-xh,person-fh); k=1; if(!k) printf(nn对不起,目前没有没有这个人 n); fclose(fp);void search3() int k=0; char fhkey30; personnode *person; person=(personnode *)malloc(sizeof(personnode);

16、 printf(n 请输入你想要查找的寝室号:); scanf(%s,fhkey); if(fp=fopen(filename,rb)=NULL) printf(n 不能打开该档案); exit(0); while(!feof(fp) fscanf(fp,%s %s %sn,person-name,person-xh,person-fh); if(!strcmp(fhkey,person-fh) printf(nn 有该信息,该信息是:); printf(%-10s%-20s%-50sn,person-name,person-xh,person-fh); k=1; if(!k) printf(

17、nn 对不起,这没有该人当前的信息n); fclose(fp);void append() personnode *person; person=(personnode *)malloc(sizeof(personnode); if(fp=fopen(filename,a)=NULL) printf(n cant open the file); exit(0); printf(n 请输入姓名,学号和寝室号 n); scanf(%s %s %s,person-name,person-xh,person-fh); fprintf(fp,%-10s%-20s%-50sn,person-name,pe

18、rson-xh,person-fh); fclose(fp);void modify() int k=0; long offset; char namekey8; personnode *person; person=(personnode *)malloc(sizeof(personnode); printf(n 请输入你想更新的学号:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(n 不能打开该档案); exit(0); while(!feof(fp) offset=ftell(fp); fscanf(fp,%s %s

19、 %sn,person-name,person-xh,person-fh); if(!strcmp(namekey,person-name) k=1; break; if(k) printf(n 有,目前是:); printf(%-10s%-20s%-50sn,person-name,person-xh,person-fh); printf(n 请输入姓名,学号和寝室号 :); scanf(%s %s %s,person-name,person-xh,person-fh); fseek(fp,offset,SEEK_SET); fprintf(fp,%-10s%-20s%-50sn,perso

20、n-name,person-xh,person-fh); else printf(n sorry,there is not the current of this people n); fclose(fp);void deleted() int k=0; char m; long offset; char namekey8; personnode *person; person=(personnode *)malloc(sizeof(personnode); printf(n please enter the name you want to delete :); scanf(%s,namek

21、ey); if(fp=fopen(filename,r+)=NULL) printf(n 不能打开该档案 ); exit(0); while(!feof(fp) offset=ftell(fp); fscanf(fp,%s%s%sn,person-name,person-xh,person-fh); if(!strcmp(namekey,person-name) k=1; break; if(k) printf(n hava got it,the current is:); printf(%-10s%-20s%-50sn,person-name,person-xh,person-fh); pr

22、intf(n are you sure to delete it?y/n?); scanf(%s,&m); if(m=y) fseek(fp,offset,SEEK_SET); fprintf(fp,%-10s%-20s%-50sn,); else rewind(fp); else printf(n 对不起,这没有该学生的数据 。n); fclose(fp);void main() int m,flag=1; while(flag) printf(%33sn,thefile); printf(-n); printf(tt0-创建一个新的数据档案n); printf(tt1-读取以前的数据n);

23、 printf(tt2- 查找姓名n); printf(tt3- 查找学号n); printf(tt4- 查找寝室号n); printf(tt5-更新n); printf(tt6-删除n); printf(tt7-修改n); printf(tt8-输出n); printf(tt9-退出n); printf(-n); printf(t please choice(0-9)n); scanf(%d,&m); switch(m) case 0:creat(); break; case 1:readfile(); break; case 2:search1(); break; case 3:searc

24、h2(); break; case 4:search3(); break; case 5:modify(); break; case 6: deleted(); break; case 7:append(); break; case 8:output(); break; case 9:exit(0); 六自我评价:总体上看基本完成了课题任务,但程序的许多细节上差强人意不够好。比如操作界面不够美观,使用过程中方法繁琐不精练,保密性差等。运用得较好的是利用主函数调用其他的各个函数,新建数据文件函数create()是其它各个函数的基础,有了它其它函数才能够使用。查询函数insert1.2.3()添加

25、数据纪录函数insert()删除数据纪录函数delete ()修改数据纪录函数updata ()这些函数都是在同一等级上的函数,是平行关系。查询当前所有纪录的函数output()以学号为关键字查询函数serch1()以姓名为关键字查询函数serch2()以床号为关键字查询函数serch3()以宿舍号)这些函数都是查询函数中的子函数,他们之间是平行的关系。在课程设计的同时不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的掌握,从而提高自己的实际动手能力和独立思考的能力。要学好数据结构这门课程,不仅要认真的阅读课本知识,更重要的是要通过上机实践才能增强和巩固对课本知识的理解。首先通过实践我发现了自己许多的不足,尤其是露出了对C语言知识基础的掌握不好,许多简单的东西都不知道。在课本上看到各种算法感觉很简单,但是真正的让自己去写一个算法感觉很困难。即使是课本上的原程序算法,自己写起来都感觉有点生疏。在调试过程中经常出现的错误也不是很熟悉。通过实践,使我在这几个方面的认识有所

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1