用C语言开发小型数据库管理系统代码.docx
《用C语言开发小型数据库管理系统代码.docx》由会员分享,可在线阅读,更多相关《用C语言开发小型数据库管理系统代码.docx(24页珍藏版)》请在冰豆网上搜索。
![用C语言开发小型数据库管理系统代码.docx](https://file1.bdocx.com/fileroot1/2023-1/30/a96a40f9-26e2-4063-9342-d740c6fe4521/a96a40f9-26e2-4063-9342-d740c6fe45211.gif)
用C语言开发小型数据库管理系统代码
用C语言开发小型数据库管理系统代码
文库.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。
一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
#include
#include
typedefstructcount{
charname[10];
intnum;
}count;
typedefstructst{
charname[10];
longNumber;
intMath;
intC;
intAmount;
}st;
strecord[8];
countnum[1];
charfilename[10]={"0"};
charfilename2[10]={"0"};
intInputnum[8];
voidMainMenu(){
printf("\n\t\t\t\t**********\n");
printf("\t\t\t\t*主菜单*\n");
printf("\t\t\t\t*1.创建新文件*\n");
printf("\t\t\t\t*2.添加记录*\n");
printf("\t\t\t\t*3.删除记录*\n");
printf("\t\t\t\t*4.排序*\n");
printf("\t\t\t\t*5.查询记录*\n");
printf("\t\t\t\t*6.退出*\n");
printf("\t\t\t\t**********\n");
}
voidDelMenu(){
printf("\n\t\t\t\t************\n");
printf("\t\t\t\t*删除菜单*\n");
printf("\t\t\t\t*1.学号查询删除*\n");
printf("\t\t\t\t*2.返回到上级菜单*\n");
printf("\t\t\t\t************\n");
}
voidRankingMenu(){
printf("\n\t\t\t\t************\n");/*保存记录条数结构体*//*主菜单*/
/*删除菜单*//*排序菜单*/
printf("\t\t\t\t*排序菜单*\n");
printf("\t\t\t\t*1.数学成绩排序*\n");
printf("\t\t\t\t*2.C语言成绩排序*\n");
printf("\t\t\t\t*3.总分排序*\n");
printf("\t\t\t\t*4.返回到上级菜单*\n");
printf("\t\t\t\t************\n");}
voidInquireMenu(){
printf("\n\t\t\t\t************\n");
printf("\t\t\t\t*查讯菜单*\n");
printf("\t\t\t\t*1.学号查讯*\n");
printf("\t\t\t\t*2.姓名查讯*\n");
printf("\t\t\t\t*3.数学成绩查讯*\n");
printf("\t\t\t\t*4.C语言成绩查讯*\n");
printf("\t\t\t\t*5.总分查讯*\n");
printf("\t\t\t\t*6.返回到上级菜单*\n");
printf("\t\t\t\t************\n");
}
charInputfilename(){
xx文件名*/
charstr2[]={"B"};
printf("**请输入文件名**:
");
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(){
FILE*fp1;
if((fp1=fopen(filename,"wb"))==NULL)
{printf("\n文件创建错误!
!
\n");
fclose(fp1);/*查讯菜单*//*输入文件名同时产生
/*读取文档*//*xx文档*/}
return(fp1);
}
FILE*savefile(){
FILE*fp1;
if((fp1=fopen(filename,"ab"))==NULL)
{printf("\n文件追加错误!
!
\n");
fclose(fp1);
}
return(fp1);
}
intInputSave(){
inti=0,j;
charch='y';
while(ch!
='w')
{i=i+1;
printf("\n**请输入姓名(字符型)**:
");
scanf("%s",record[i].name);
Loop1:
printf("\n**请输入学号(长整型)**:
");
scanf("%ld",&record[i].Number);
if(i!
=1)
for(j=1;j
if(record[i].Number==record[j].Number)
{printf("\n\t警告!
输入了二个同样的学号!
第%d条和第%d学号相同!
\n",i,j);
printf("\n\t请重新输入!
\n");
gotoLoop1;
}
Loop2:
printf("\n**请输入数学成绩(整型)**:
");
scanf("%d",&record[i].Math);
if(record[i].Math>100||record[i].Math<0)
{printf("\n\t输入的分数不服合实际要求!
请重新录入!
\n");
gotoLoop2;
}
Loop3:
printf("\n**请输入C语言成绩(整型)**:
");
scanf("%d",&record[i].C);
if(record[i].C>100||record[i].C<0)
{printf("\n\t输入的分数不服合实际要求!
请重新录入!
\n");
gotoLoop3;
}
record[i].Amount=record[i].Math+record[i].C;
printf("\n'w'=结束录入's'=重新录入此条记录'n'=下一条:
");
/*添加数据*//*追加文档*/getchar();
回车符*/
if((ch=getchar())=='s')
i=i-1;
}
return(i);
}
/*
voidReadComputer(inti,FILE
*fp1){本方式)数据写入机器
intj;
for(j=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(int
*fp1){(文本方式)数据写到文件中
intj;
for(j=1;j
fprintf(fp1,"%s,%ld,%d,%d,%d",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);
}
*/
voidReadComputer2(int
*fp1){/*(2方式)数据写入机器*/i,FILE
i,FILE
intj;
for(j=1;j
if((fread(&record[j],sizeof(structst),1,fp1))!
=1)
{printf("\n主文件数据读取错误!
\n");
fclose(fp1);
}
}
voidSaveFile2(int
*fp1){/*(2方式)数据写到文件中*/i,FILE
intj;
for(j=1;j
if((fwrite(&record[j],sizeof(structst),1,fp1))!
=1)
{printf("\n主文件数据写入错误!
\n");
fclose(fp1);
}
}
/*************************************************************************************************************************/
FILE*readfile2(){
*/
FILE*fp1;
if((fp1=fopen(filename2,"rb"))==NULL)
{printf("\n付本文件读取错误!
\n");
fclose(fp1);
}
return(fp1);
}
FILE*foundfile2(){
本*/
FILE*fp1;
if((fp1=fopen(filename2,"wb"))==NULL)
{printf("\n付本文件创建错误!
\n");
fclose(fp1);
}
return(fp1);
}
FILE*savefile2(){
xx*/
FILE*fp1;
if((fp1=fopen(filename2,"ab"))==NULL)
{printf("\n付本文件追加错误!
\n");
fclose(fp1);
}
return(fp1);
}
/*
voidAdditive2(inti,FILE*fp1){
文件(文本方式)
intj;
charstr2={"0"};
if(strcmp(filenameF,str2)!
=0)
strcpy(num[0].name,filenameF);
else
strcpy(num[0].name,filenameA);/*读文件付本/*新建文件付
/*追加文件数据与入付本num[0].num=i;
fprintf(fp1,"%s,%d",num[0].name,num[0].num);
}
intReadComputer2(FILE*fp1){
的数据(文本方式)
intj,k;
fscanf(fp1,"%s,%d",num[0].name,&num[0].num);
k=num[0].num;
return(k);
}
*/
voidAdditive2Two(inti,FILE*fp1){
入付本文件(二进制方式)*/
charstr2[]={"0"};
if(strcmp(filename2,str2)!
=0)
strcpy(num[0].name,filename2);
else
strcpy(num[0].name,filename2);
num[0].num=i;
if((fwrite(&num[0],sizeof(structcount),1,fp1))!
=1)
{printf("\n付本文件数据写入错误!
\n");
fclose(fp1);
}
}
intReadComputer2Two(FILE*fp1){
付本中的数据(二进制方式)*/
intj;
if((fread(&num[0],sizeof(structcount),1,fp1))!
=1)
{printf("\n付本文件数据读取错误!
\n");
fclose(fp1);
}
j=num[0].num;
return(j);
}
/*************************************************************************************************************************/
voidNum_inquire(){/*学号查询*/
intnum,j,time;/*读出/*数据写读出付本中FILE*fp1,*fp2;
fp1=readfile();
档*/
fp2=readfile2();
式'读'**'引用读文件名')读文件付本*/
time=ReadComputer2Two(fp2);
中的数据(二进制方式)*/
ReadComputer2(time,fp1);
数据写入机器*/
fclose(fp1);fclose(fp2);
printf("输入学号:
");
scanf("%ld",&num);/*读取文/*(开打方/*读出付本/*(2方式)/*getchar();*/
for(j=1;j