用C语言开发小型大数据库管理系统代码文库 1Word文件下载.docx
《用C语言开发小型大数据库管理系统代码文库 1Word文件下载.docx》由会员分享,可在线阅读,更多相关《用C语言开发小型大数据库管理系统代码文库 1Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
\t\t\t\t*1.创建新文件*\n"
\t\t\t\t*2.添加记录*\n"
\t\t\t\t*3.删除记录*\n"
\t\t\t\t*4.排序*\n"
\t\t\t\t*5.查询记录*\n"
\t\t\t\t*6.退出*\n"
\t\t\t\t**********\n"
}
voidDelMenu(){/*删除菜单*/
\n\t\t\t\t************\n"
\t\t\t\t*删除菜单*\n"
\t\t\t\t*1.学号查询删除*\n"
\t\t\t\t*2.返回到上级菜单*\n"
\t\t\t\t************\n"
voidRankingMenu(){/*排序菜单*/
\t\t\t\t*排序菜单*\n"
\t\t\t\t*1.数学成绩排序*\n"
\t\t\t\t*2.C语言成绩排序*\n"
\t\t\t\t*3.总分排序*\n"
\t\t\t\t*4.返回到上级菜单*\n"
voidInquireMenu(){/*查讯菜单*/
\t\t\t\t*查讯菜单*\n"
\t\t\t\t*1.学号查讯*\n"
\t\t\t\t*2.查讯*\n"
\t\t\t\t*3.数学成绩查讯*\n"
\t\t\t\t*4.C语言成绩查讯*\n"
\t\t\t\t*5.总分查讯*\n"
\t\t\t\t*6.返回到上级菜单*\n"
charInputfilename(){/*输入文件名同时产生付本文件名*/
charstr2[]={"
B"
**请输入文件名**:
"
scanf("
%s"
filename);
getchar();
strcpy(filename2,filename);
strcat(filename2,str2);
FILE*readfile(){/*读取文档*/
FILE*fp1;
if((fp1=fopen(filename,"
rb"
))==NULL)
{printf("
\n文件读取错误!
!
\n"
fclose(fp1);
}
return(fp1);
FILE*foundfile(){/*新建文档*/
wb"
\n文件创建错误!
FILE*savefile(){/*追加文档*/
ab"
\n文件追加错误!
intInputSave(){/*添加数据*/
inti=0,j;
charch='
y'
;
while(ch!
='
w'
)
{i=i+1;
\n**请输入(字符型)**:
"
record[i].name);
Loop1:
\n**请输入学号(长整型)**:
%ld"
&
record[i].Number);
if(i!
=1)
for(j=1;
j<
i;
j++)
if(record[i].Number==record[j].Number)
\n\t警告!
输入了二个同样的学号!
第%d条和第%d学号相同!
i,j);
\n\t请重新输入!
gotoLoop1;
}
Loop2:
\n**请输入数学成绩(整型)**:
%d"
record[i].Math);
if(record[i].Math>
100||record[i].Math<
0)
\n\t输入的分数不服合实际要求!
请重新录入!
gotoLoop2;
Loop3:
\n**请输入C语言成绩(整型)**:
record[i].C);
if(record[i].C>
100||record[i].C<
gotoLoop3;
record[i].Amount=record[i].Math+record[i].C;
\n'
=结束录入'
s'
=重新录入此条记录'
n'
=下一条:
/*吃掉上一个回车符*/
if((ch=getchar())=='
i=i-1;
return(i);
/*
voidReadComputer(inti,FILE*fp1){(文本方式)数据写入机器
intj;
i+1;
j++)
fscanf(fp1,"
%s,%ld,%d,%d,%d"
record[j].name,&
record[j].Number,&
record[j].Math,&
record[j].C,&
record[j].Amount);
voidSaveFile(inti,FILE*fp1){(文本方式)数据写到文件中
fprintf(fp1,"
record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);
*/
voidReadComputer2(inti,FILE*fp1){/*(2方式)数据写入机器*/
if((fread(&
record[j],sizeof(structst),1,fp1))!
\n主文件数据读取错误!
\n"
voidSaveFile2(inti,FILE*fp1){/*(2方式)数据写到文件中*/
if((fwrite(&
\n主文件数据写入错误!
/*************************************************************************************************************************/
FILE*readfile2(){/*读文件付本*/
if((fp1=fopen(filename2,"
\n付本文件读取错误!
FILE*foundfile2(){/*新建文件付本*/
\n付本文件创建错误!
FILE*savefile2(){/*追加文件付本*/
\n付本文件追加错误!
voidAdditive2(inti,FILE*fp1){数据与入付本文件(文本方式)
charstr2={"
if(strcmp(filenameF,str2)!
=0)
strcpy(num[0].name,filenameF);
else
strcpy(num[0].name,filenameA);
num[0].num=i;
%s,%d"
num[0].name,num[0].num);
intReadComputer2(FILE*fp1){读出付本中的数据(文本方式)
intj,k;
num[0].name,&
num[0].num);
k=num[0].num;
return(k);
*/
voidAdditive2Two(inti,FILE*fp1){/*数据写入付本文件(二进制方式)*/
if(strcmp(filename2,str2)!
strcpy(num[0].name,filename2);
num[0],sizeof(structcount),1,fp1))!
\n付本文件数据写入错误!
intReadComputer2Two(FILE*fp1){/*读出付本中的数据(二进制方式)*/
\n付本文件数据读取错误!
j=num[0].num;
return(j);
voidNum_inquire(){/*学号查询*/
intnum,j,time;
FILE*fp1,*fp2;
fp1=readfile();
/*读取文档*/
fp2=readfile2();
/*(开打方式'
读'
**'
引用读文件名'
)读文件付本*/
time=ReadComputer2Two(fp2);
/*读出付本中的数据(二进制方式)*/
ReadComputer2(time,fp1);
/*(2方式)数据写入机器*/
fclose(fp2);
输入学号:
num);
/*getchar();
time+1;
{if(record[j].Number==num)
\nName:
%-10sNum:
%3ldMath:
%3dC:
%3dAmount:
%3d\n"
voidName_inquire(){/*查询*/
intj,time;
charName[10];
输入:
Name);
{if(strcmp(Name,record[j].name)==0)
voidMath_inquire(){/*数学查询*/
intMath,j,time;
输入数学成绩:
Math);
{if(record[j].Math>
=Math)
voidC_inquire(){/*C查询*/
intC,j,time;
输入C语言成绩:
C);
{if(record[j].C>
=C)
voidAmount_inquire(){/*总分查询*/
intAmount,j,time;
输入总分:
Amount);
{if(record[j].Amount>
=Amount)
voidNum_inquire_Del(){/*学号查询删除*/
charch;
intnum,j,k,time;
/*读文件付本*/
=time;
if(record[j].Number==num)
k=j;
\n\t**删除='
不删除='
**:
{
if(k==time)
time=time-1;
elsefor(j=k;
time;
{record[j]=record[j+1];
fp1=foundfile();
/*新建文档*/
SaveFile2(time,fp1);
/*(2方式)数据写到文件中*/
fp2=foundfile2();
/*新建文件付本*/
Additive2Two(time,fp2);
/*数据与入付本文件(二进制方式)*/
\n删除成功!
目前共有%d条记录!
time);
elseprintf("
\n没有执行删除操作!
voidMath_ranking(inti){/*数学排序函数*/
sttime;
for(k=1;
k<
=i-j;
k++)
if(record[k].Math>
record[k+1].Math)
{time=record[k];
record[k]=record[k+1];
record[k+1]=time;
voidC_ranking(inti){/*C排序函数*/
if(record[k].C>
record[k+1].C)
%3ldMa