用C语言开发小型数据库管理系统代码.docx

上传人:b****6 文档编号:8430901 上传时间:2023-01-31 格式:DOCX 页数:24 大小:18.51KB
下载 相关 举报
用C语言开发小型数据库管理系统代码.docx_第1页
第1页 / 共24页
用C语言开发小型数据库管理系统代码.docx_第2页
第2页 / 共24页
用C语言开发小型数据库管理系统代码.docx_第3页
第3页 / 共24页
用C语言开发小型数据库管理系统代码.docx_第4页
第4页 / 共24页
用C语言开发小型数据库管理系统代码.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

用C语言开发小型数据库管理系统代码.docx

《用C语言开发小型数据库管理系统代码.docx》由会员分享,可在线阅读,更多相关《用C语言开发小型数据库管理系统代码.docx(24页珍藏版)》请在冰豆网上搜索。

用C语言开发小型数据库管理系统代码.docx

用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

{if(record[j].Number==num)

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

}

}

voidName_inquire(){

询*/

intj,time;

charName[10];

FILE*fp1,*fp2;

fp1=readfile();

fp2=readfile2();

式'读'**'引用读文件名')读文件付本*/

time=ReadComputer2Two(fp2);

中的数据(二进制方式)*/

ReadComputer2(time,fp1);

数据写入机器*/

fclose(fp1);fclose(fp2);

printf("输入姓名:

");

scanf("%s",Name);

/*getchar();*/

for(j=1;j

{if(strcmp(Name,record[j].name)==0)

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

}

}/*姓名查/*(开打方/*读出付本/*(2方式)voidMath_inquire(){

询*/

intMath,j,time;

FILE*fp1,*fp2;

fp1=readfile();

fp2=readfile2();

式'读'**'引用读文件名')读文件付本*/

time=ReadComputer2Two(fp2);

中的数据(二进制方式)*/

ReadComputer2(time,fp1);

数据写入机器*/

fclose(fp1);fclose(fp2);

printf("输入数学成绩:

");

scanf("%d",&Math);/*数学查/*(开打方/*读出付本/*(2方式)/*getchar();*/

for(j=1;j

{if(record[j].Math>=Math)

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

}

}

voidC_inquire(){

*/

intC,j,time;

FILE*fp1,*fp2;

fp1=readfile();

fp2=readfile2();

式'读'**'引用读文件名')读文件付本*/

time=ReadComputer2Two(fp2);

中的数据(二进制方式)*/

ReadComputer2(time,fp1);

数据写入机器*/

fclose(fp1);fclose(fp2);

printf("输入C语言成绩:

");

scanf("%d",&C);

/*getchar();*/

for(j=1;j

{if(record[j].C>=C)

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[/*(开打方/*读出付本/*(2方式)/*C查询j].Amount);

}

}

voidAmount_inquire(){

询*/

intAmount,j,time;

FILE*fp1,*fp2;

fp1=readfile();

fp2=readfile2();

式'读'**'引用读文件名')读文件付本*/

time=ReadComputer2Two(fp2);

中的数据(二进制方式)*/

ReadComputer2(time,fp1);

数据写入机器*/

fclose(fp1);fclose(fp2);

printf("输入总分:

");

scanf("%d",&Amount);

/*getchar();*/

for(j=1;j

{if(record[j].Amount>=Amount)

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

}

}

/*************************************************************************************************************************/

voidNum_inquire_Del(){/*学号查询删除*/

charch;

intnum,j,k,time;

FILE*fp1,*fp2;

fp1=readfile();

*/

fp2=readfile2();

本*/

time=ReadComputer2Two(fp2);

的数据(二进制方式)*/

ReadComputer2(time,fp1);

数据写入机器*/

fclose(fp1);fclose(fp2);/*读文件付/*读出付本中

/*(2方式)/*(开打方/*读出付本/*(2方式)/*总分查/*读取文档printf("输入学号:

");

scanf("%ld",&num);

getchar();

for(j=1;j<=time;j++)

if(record[j].Number==num)

{printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

k=j;

}

printf("\n\t**

删除='y'不删除='n'**:

");

if((ch=getchar())=='y')

{

if(k==time)

time=time-1;

elsefor(j=k;j

{record[j]=record[j+1];

time=time-1;

}

fp1=foundfile();

SaveFile2(time,fp1);

据写到文件中*/

fp2=foundfile2();

本*/

Additive2Two(time,fp2);

本文件(二进制方式)*/

printf("\n删除成功!

目前共有%d条记录!

\n",time);

fclose(fp1);fclose(fp2);

}

elseprintf("\n没有执行删除操作!

\n");

}

/*************************************************************************************************************************/

voidMath_ranking(inti){/*数学排序函数*/

intj,k;

sttime;

for(j=1;j

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;}

printf("\n");

for(j=1;j

printf("\nName:

%-10sNum:

%3ldMath:

%3d/*数据与入付/*新建文档*//*(2方式)数/*新建文件付

C:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

}

voidC_ranking(inti){

*/

intj,k;

sttime;

for(j=1;j

for(k=1;k<=i-j;k++)

if(record[k].C>record[k+1].C)

{time=record[k];record[k]=record[k+1];record[k+1]=time;}

printf("\n");

for(j=1;j

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

}

voidAmount_ranking(inti){

排序函数*//*总分/*C排序函数intj,k;

sttime;

for(j=1;j

for(k=1;k<=i-j;k++)

if(record[k].Amount>record[k+1].Amount)

{time=record[k];record[k]=record[k+1];record[k+1]=time;}

printf("\n");

for(j=1;j

printf("\nName:

%-10sNum:

%3ldMath:

%3dC:

%3dAmount:

%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

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

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