1课程设计 题目十Word格式.docx
- 文档编号:16210861
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:16
- 大小:48.20KB
1课程设计 题目十Word格式.docx
《1课程设计 题目十Word格式.docx》由会员分享,可在线阅读,更多相关《1课程设计 题目十Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
不支持模糊查询必须查询项和关键字吻合情况下才可查询。
调用按不同关键字查询的子函数
若存在相应的查询结果则显示在屏幕上,若查找的纪录不存在则提示该纪录不存在,请建立相应的数据纪
5)insert()
/*添加数据纪录的函数*/
必须已经建立了数据文件
在数据文件中添加新的纪录
若没有建立数据文件则添加失败。
6)delete()
/*删除数据纪录的函数*/
必须建立了数据库并且数据文件中含有数据纪录
删除输入学号的学生的一切相关纪录
7)updata()
/*修改数据纪录的函数*/
修改输入的学号相对应的学生的一切信息。
如不存在相应的纪录则提示不存在
8)output()
/*输出函数*/
初始条件:
数据文件已经建立
起泡法排序按学号顺序输出记录
2>
本程序包含10个函数:
1.主函数main()
2.新建数据文件create()
3.查询函数serch1()
4.查询函数serch2()
5.查询函数serch3()
6.加数据纪录函数insert()
7.删除数据纪录函数delete()
8.修改数据纪录函数updata()
9.数据文件读取函数readfile()
10.查询当前所有纪录冰按学号升序输出的函数output()
三设计思想:
采用模块化编程思想,将程序划分为11个模块,在逐个模块细化编程,最后再将个个模块组装成软件。
四测试
测试结果及数据如下:
五程序源代码如下:
#include<
stdio.h>
stdlib.h>
string.h>
typedefstructpnode
{
charname[8];
charxh[16];
charfh[30];
}personnode;
charfilename[20];
FILE*fp;
voidcreat()
personnode*person;
person=(personnode*)malloc(sizeof(personnode));
printf("
\n请输入thefilename:
\n"
);
scanf("
%s"
filename);
if((fp=fopen(filename,"
w+"
))==NULL)
{
\n你还没有输入,不能建立档案"
exit(0);
}
\n请输入姓名,学号(thesamelength),寝室号,剩余空间,endwith#\n"
person->
name);
while(strcmp(person->
name,"
#"
))
%s%s"
xh,person->
fh);
fprintf(fp,"
%-10s%-20s%-50s\n"
name,person->
fclose(fp);
}
voidreadfile()
{printf("
\npleaseenterthefileroad:
if((fp=fopen(filename,"
r+"
))==NULL)
\ncan'
topenthefile:
voidoutput()
longoffset1,offset2;
charname1[8],name2[8],name3[8];
charxh1[16],xh2[16],xh3[16];
charfh1[30],fh2[30],fh3[30];
r"
topenthefile"
while(!
feof(fp))
inta,b,c,d;
offset1=ftell(fp);
fscanf(fp,"
%s%s%s\n"
strcpy(name1,person->
strcpy(xh1,person->
xh);
strcpy(fh1,person->
if(feof(fp))break;
offset2=ftell(fp);
strcpy(name2,person->
strcpy(xh2,person->
strcpy(fh2,person->
b=strlen(xh1);
c=strlen(xh2);
d=strcmp(xh1,xh2);
if(b==c&
&
d>
0)
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);
xh,xh1);
fh,fh1);
name,name2);
xh,xh2);
strcpy(person->
fh,fh2);
fseek(fp,offset2,SEEK_SET);
rewind(fp);
if(feof(fp)){a=1;
break;
d<
=0)a=1;
else{a=0;
if(a)break;
\n*************************************************************\n"
%35s\n"
"
thefile(thefilehavaprintfasstudentnumber)"
name"
studentnumber"
roomnumber"
**************************************************************\n\n"
voidsearch1()
intk=0;
charnamekey[8];
\npleaseenterthenameheadyouneed:
"
namekey);
rb"
topenthefile"
feof(fp))
%s%s%s\n"
if(!
strcmp(namekey,person->
name))
\n\nhaveserched,thecourrentis:
k=1;
k)printf("
\n\nsorry,thereisnotthecurrentofthisspeople\n"
voidsearch2()
charxhkey[16];
\npleaseentertheroomnumberyouwanttoserch:
xhkey);
topenthefile"
strcmp(xhkey,person->
xh))
\n\nhavegotit,thecurrentis:
\n\n对不起,目前没有没有这个人\n"
voidsearch3()
charfhkey[30];
\n请输入你想要查找的寝室号:
fhkey);
\n不能打开该档案"
strcmp(fhkey,person->
fh))
\n\n有该信息,该信息是:
\n\n对不起,这没有该人当前的信息\n"
voidappend()
a"
\n请输入姓名,学号和寝室号\n"
%s%s%s"
voidmodify()
longoffset;
\n请输入你想更新的学号:
offset=ftell(fp);
if(k)
\n有,目前是:
\n请输入姓名,学号和寝室号:
fseek(fp,offset,SEEK_SET);
elseprintf("
\nsorry,thereisnotthecurrentofthispeople\n"
voiddeleted()
charm;
\npleaseenterthenameyouwanttodelete:
\n不能打开该档案"
name))
if(k)
\nhavagotit,thecurrentis:
\nareyousuretodeleteit?
y/n?
&
m);
if(m=='
y'
)
elserewind(fp);
\n对不起,这没有该学生的数据。
voidmain()
intm,flag=1;
while(flag)
%33s\n"
thefile"
--------------------------------------------------------------------------------\n"
\t\t0-------------创建一个新的数据档案\n"
\t\t1-------------读取以前的数据\n"
\t\t2------------查找姓名\n"
\t\t3------------查找学号\n"
\t\t4------------查找寝室号\n"
\t\t5-------------更新\n"
\t\t6-------------删除\n"
\t\t7-------------修改\n"
\t\t8-------------输出\n"
\t\t9-------------退出\n"
\tpleasechoice(0-----------9)\n"
%d"
switch(m)
{case0:
creat();
case1:
readfile();
case2:
search1();
case3:
search2();
case4:
search3();
case5:
modify();
case6:
deleted();
case7:
append();
case8:
output();
case9:
exit(0);
六自我评价:
总体上看基本完成了课题任务,但程序的许多细节上差强人意不够好。
比如操作界面不够美观,使用过程中方法繁琐不精练,保密性差等。
运用得较好的是利用主函数调用其他的各个函数,新建数据文件函数create()是其它各个函数的基础,有了它其它函数才能够使用。
查询函数insert1.2.3()添加数据纪录函数insert()删除数据纪录函数delete()修改数据纪录函数updata()这些函数都是在同一等级上的函数,是平行关系。
查询当前所有纪录的函数output()以学号为关键字查询函数serch1()以姓名为关键字查询函数serch2()以床号为关键字查询函数serch3()以宿舍号)这些函数都是查询函数中的子函数,他们之间是平行的关系。
在课程设计的同时不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的掌握,从而提高自己的实际动手能力和独立思考的能力。
要学好数据结构这门课程,不仅要认真的阅读课本知识,更重要的是要通过上机实践才能增强和巩固对课本知识的理解。
首先通过实践我发现了自己许多的不足,尤其是露出了对C语言知识基础的掌握不好,许多简单的东西都不知道。
在课本上看到各种算法感觉很简单,但是真正的让自己去写一个算法感觉很困难。
即使是课本上的原程序算法,自己写起来都感觉有点生疏。
在调试过程中经常出现的错误也不是很熟悉。
通过实践,使我在这几个方面的认识有所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1课程设计 题目十 课程设计 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)