用C语言开发小型数据库管理系统代码文库 (1)

上传人:小** 文档编号:154044630 上传时间:2022-09-20 格式:DOC 页数:18 大小:110KB
收藏 版权申诉 举报 下载
用C语言开发小型数据库管理系统代码文库 (1)_第1页
第1页 / 共18页
用C语言开发小型数据库管理系统代码文库 (1)_第2页
第2页 / 共18页
用C语言开发小型数据库管理系统代码文库 (1)_第3页
第3页 / 共18页
资源描述:

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

1、用C语言开发小型数据库管理系统代码的文库.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。#include #include typedef struct count /*保存记录条数结构体*/ char name10; int num;count;typedef struct st char name10; long Number; int Math; int C; int Amount;st;st record8;count num1; char filename10=0;char fi

2、lename210=0;int Inputnum8;void MainMenu() /*主菜单*/ printf(ntttt* * * * * * * * * *n); printf(tttt* 主菜单 *n); printf(tttt* 1. 创建新文件 *n); printf(tttt* 2. 添加记录 *n); printf(tttt* 3. 删除记录 *n); printf(tttt* 4. 排序 *n); printf(tttt* 5. 查询记录 *n); printf(tttt* 6. 退出 *n); printf(tttt* * * * * * * * * *n);void De

3、lMenu() /*删除菜单*/ printf(ntttt* * * * * * * * * * * *n); printf(tttt* 删除菜单 *n); printf(tttt* 1. 学号查询删除 *n); printf(tttt* 2. 返回到上级菜单 *n); printf(tttt* * * * * * * * * * * *n);void RankingMenu() /*排序菜单*/ printf(ntttt* * * * * * * * * * * *n); printf(tttt* 排序菜单 *n); printf(tttt* 1. 数学成绩排序 *n); printf(tt

4、tt* 2. C语言成绩排序 *n); printf(tttt* 3. 总分排序 *n); printf(tttt* 4. 返回到上级菜单 *n); printf(tttt* * * * * * * * * * * *n);void InquireMenu() /*查讯菜单*/ printf(ntttt* * * * * * * * * * * *n); printf(tttt* 查讯菜单 *n); printf(tttt* 1. 学号查讯 *n); printf(tttt* 2. 姓名查讯 *n); printf(tttt* 3. 数学成绩查讯 *n); printf(tttt* 4. C语

5、言成绩查讯 *n); printf(tttt* 5. 总分查讯 *n); printf(tttt* 6. 返回到上级菜单 *n); printf(tttt* * * * * * * * * * * *n);char Inputfilename() /*输入文件名同时产生付本文件名*/ char str2=B; printf(* 请输入文件名 * : ); scanf(%s,filename); getchar(); strcpy(filename2,filename); strcat(filename2,str2);FILE *readfile() /*读取文档*/ FILE *fp1; if

6、(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); return(fp1);FILE *savefile() /*追加文档*/ FILE *fp1; if(fp1=fopen(filename,ab)=NULL) printf(n文件追加错误!n); fclose(fp1); return(fp1)

7、;int InputSave() /*添加数据 */ int i=0,j; char ch=y; while(ch!=w) i=i+1; printf(n* 请输入姓名(字符型) * :); scanf(%s,recordi.name);Loop1: printf(n* 请输入学号(长整型) * :); scanf(%ld,&recordi.Number); if(i!=1) for(j=1;j100|recordi.Math100|recordi.C0) printf(nt输入的分数不服合实际要求! 请重新录入!n); goto Loop3; recordi.Amount=recordi.M

8、ath+recordi.C; printf( nw=结束录入 s=重新录入此条记录 n=下一条 : ); getchar(); /*吃掉上一个回车符*/ if(ch=getchar()=s) i=i-1; return(i);/*void ReadComputer(int i,FILE *fp1) (文本方式)数据写入机器 int j; for(j=1;ji+1;j+) fscanf(fp1,%s,%ld,%d,%d,%d,recordj.name,&recordj.Number,&recordj.Math,&recordj.C,&recordj.Amount);void SaveFile(i

9、nt i,FILE *fp1) (文本方式)数据写到文件中 int j; for(j=1;ji+1;j+) fprintf(fp1,%s,%ld,%d,%d,%d,recordj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount);*/ void ReadComputer2(int i,FILE *fp1) /*(2方式)数据写入机器*/ int j; for(j=1;ji+1;j+) if(fread(&recordj,sizeof(struct st),1,fp1)!=1) printf(n主文件数据读取错误! n); fc

10、lose(fp1); void SaveFile2(int i,FILE *fp1) /*(2方式)数据写到文件中*/ int j; for(j=1;ji+1;j+) if(fwrite(&recordj,sizeof(struct st),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

11、*foundfile2() /*新建文件付本*/ FILE *fp1; if(fp1=fopen(filename2,wb)=NULL) printf(n付本文件创建错误!n); fclose(fp1); return(fp1);FILE *savefile2() /*追加文件付本*/ FILE *fp1; if(fp1=fopen(filename2,ab)=NULL) printf(n付本文件追加错误!n); fclose(fp1); return(fp1);/*void Additive2(int i,FILE *fp1) 数据与入付本文件(文本方式) int j; char str2=

12、0; if(strcmp(filenameF,str2)!=0) strcpy(num0.name,filenameF); else strcpy(num0.name,filenameA); num0.num=i; fprintf(fp1,%s,%d,num0.name,num0.num); int ReadComputer2(FILE *fp1) 读出付本中的数据(文本方式) int j,k; fscanf(fp1,%s,%d,num0.name,&num0.num); k=num0.num; return(k);*/void Additive2Two(int i,FILE *fp1) /*

13、数据写入付本文件(二进制方式)*/ char str2=0; if(strcmp(filename2,str2)!=0) strcpy(num0.name,filename2); else strcpy(num0.name,filename2); num0.num=i; if(fwrite(&num0,sizeof(struct count),1,fp1)!=1) printf(n付本文件数据写入错误! n); fclose(fp1); int ReadComputer2Two(FILE *fp1) /*读出付本中的数据(二进制方式)*/ int j; if(fread(&num0,sizeo

14、f(struct count),1,fp1)!=1) printf(n付本文件数据读取错误! n); fclose(fp1); j=num0.num; return(j);/* * * */void Num_inquire() /*学号查询*/ int num,j,time; FILE *fp1,*fp2; fp1=readfile(); /*读取文档*/ fp2=readfile2(); /*(开打方式读*引用读文件名)读文件付本*/ time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ ReadComputer2(time,fp1); /*(2方式

15、)数据写入机器*/ fclose(fp1);fclose(fp2); printf(输入学号:); scanf(%ld,&num); /*getchar();*/ for(j=1;jtime+1;j+) if(recordj.Number=num) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount); void Name_inquire() /*姓名查询*/ int j,time; char Name10

16、; FILE *fp1,*fp2; fp1=readfile(); fp2=readfile2(); /*(开打方式读*引用读文件名)读文件付本*/ time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ ReadComputer2(time,fp1); /*(2方式)数据写入机器*/ fclose(fp1);fclose(fp2); printf(输入姓名:); scanf(%s,Name); /*getchar();*/ for(j=1;jtime+1;j+) if(strcmp(Name,recordj.name)=0) printf(nName:

17、%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount); void Math_inquire() /*数学查询*/ int Math,j,time; FILE *fp1,*fp2; fp1=readfile(); fp2=readfile2(); /*(开打方式读*引用读文件名)读文件付本*/ time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ ReadComputer2(time,fp1)

18、; /*(2方式)数据写入机器*/ fclose(fp1);fclose(fp2); printf(输入数学成绩:); scanf(%d,&Math); /*getchar();*/ for(j=1;j=Math) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount); void C_inquire() /*C查询*/ int C,j,time; FILE *fp1,*fp2; fp1=readfile()

19、; fp2=readfile2(); /*(开打方式读*引用读文件名)读文件付本*/ time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ ReadComputer2(time,fp1); /*(2方式)数据写入机器*/ fclose(fp1);fclose(fp2); printf(输入C语言成绩:); scanf(%d,&C); /*getchar();*/ for(j=1;j=C) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.name,recordj.Number,

20、recordj.Math,recordj.C,recordj.Amount); void Amount_inquire() /*总分查询*/ int Amount,j,time; FILE *fp1,*fp2; fp1=readfile(); fp2=readfile2(); /*(开打方式读*引用读文件名)读文件付本*/ time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ ReadComputer2(time,fp1); /*(2方式)数据写入机器*/ fclose(fp1);fclose(fp2); printf(输入总分:); scanf(%d

21、,&Amount); /*getchar();*/ for(j=1;j=Amount) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount); /* * * */void Num_inquire_Del() /*学号查询删除*/ char ch; int num,j,k,time; FILE *fp1,*fp2; fp1=readfile(); /*读取文档*/ fp2=readfile2(); /*读文件

22、付本*/ time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ ReadComputer2(time,fp1); /*(2方式)数据写入机器*/ fclose(fp1);fclose(fp2); printf(输入学号:); scanf(%ld,&num); getchar(); for(j=1;j=time;j+) if(recordj.Number=num) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.name,recordj.Number,recordj.Math,

23、recordj.C,recordj.Amount); k=j; printf(nt* 删除=y 不删除=n * : ); if(ch=getchar()=y) if(k=time) time=time-1; else for(j=k;jtime;j+) recordj=recordj+1; time=time-1; fp1=foundfile(); /*新建文档*/ SaveFile2(time,fp1); /*(2方式)数据写到文件中*/ fp2=foundfile2(); /*新建文件付本*/ Additive2Two(time,fp2); /*数据与入付本文件(二进制方式)*/ prin

24、tf(n删除成功!目前共有%d条记录!n,time); fclose(fp1);fclose(fp2); else printf(n没有执行删除操作!n); /* * * */void Math_ranking(int i) /*数学排序函数*/ int j,k; st time; for(j=1;ji;j+) for(k=1;krecordk+1.Math) time=recordk;recordk=recordk+1;recordk+1=time; printf(n); for(j=1;ji+1;j+) printf(nName:%-10s Num:%3ld Math:%3d C:%3d

25、Amount:%3dn,recordj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount);void C_ranking(int i) /*C排序函数*/ int j,k; st time; for(j=1;ji;j+) for(k=1;krecordk+1.C) time=recordk;recordk=recordk+1;recordk+1=time; printf(n); for(j=1;ji+1;j+) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,reco

26、rdj.name,recordj.Number,recordj.Math,recordj.C,recordj.Amount);void Amount_ranking(int i) /*总分排序函数*/ int j,k; st time; for(j=1;ji;j+) for(k=1;krecordk+1.Amount) time=recordk;recordk=recordk+1;recordk+1=time; printf(n); for(j=1;ji+1;j+) printf(nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3dn,recordj.n

27、ame,recordj.Number,recordj.Math,recordj.C,recordj.Amount);/* * * */main() FILE *fp,*ffp; int temp1=0,temp2=0,temp3; char ch,location; MainMenu(); location=1; printf(n请输入选项 1 - 6 (当前在主菜单):); while(ch=getchar()!=0) if(ch=6)&(location=1) getchar(); printf(nnttt* Y=续继 n=退出 *n); printf(nnttINPUT:); if(ch

28、=getchar()=n) printf(nnttt 谢谢您的使用!); exit(); break; else MainMenu();location=1; printf(n请输入选项 1 - 6 (当前在主菜单):); if(ch=1)&(location=1) temp1=InputSave(); /*添加数据 */ getchar(); printf(tt* y=保存 n=不保存 * : ); if(ch=getchar()=y) Inputfilename(); /*输入文件名同时产生付本文件名*/ fp=foundfile(); /*新建文档*/ SaveFile2(temp1,f

29、p); /*(2方式)数据写到文件中*/ fclose(fp); ffp=foundfile2(); /*(开打方式新建)新建文件付本*/ Additive2Two(temp1,ffp); /*新建付本文件数据(文本方式)*/ fclose(ffp); printf(保存了%d条记录!n,temp1); else printf(t 没有保存!n); temp1=0;temp2=0; MainMenu();location=1; printf(n请输入选项 1 - 6 (当前在主菜单):); continue; if(ch=2)&(location=1) getchar(); printf(nt

30、 * y=使用当前文件名 n=输入新文件名 * : ); if(ch=getchar()=y) fp=savefile(); /*追加文档*/ else Inputfilename(); /*输入文件名同时产生付本文件名*/ fp=savefile(); temp1=InputSave(); /*添加数据 */ temp3=temp1; SaveFile2(temp1,fp); /*(2方式)数据写到文件中*/ fclose(fp); ffp=readfile2(); /*读文件付本*/ temp2=ReadComputer2Two(ffp); /*读出付本中的数据(文本方式)*/ fclos

31、e(ffp); temp1=temp1+temp2; ffp=foundfile2(); /*新建文件付本*/ Additive2Two(temp1,ffp); /*新建付本文件数据(文本方式)*/ fclose(ffp); printf(n添加拉%d条数据!共保存%d条数据!n,temp3,temp1); temp1=0;temp2=0; MainMenu();location=1; printf(n请输入选项 1 - 6 (当前在主菜单):); continue; if(ch=3)&(location=1) DelMenu();location=2; printf(n请输入选项 1 - 3

32、 (当前在删除菜单):); while(ch=getchar()!=0) if(ch=1)&(location=2) getchar(); printf(ntt *现在位置在删除菜单 - 学号删除*n); printf(nt * y=使用当前文件名 n=输入新文件名 * : ); if(ch=getchar()=y) /*追加文档*/ else Inputfilename(); /*输入文件名同时产生付本文件名*/ Num_inquire_Del(); /*学号查询删除*/ DelMenu();location=2; printf(n请输入选项 1 - 3 (当前在删除菜单):); conti

33、nue; if(ch=2)&(location=2) MainMenu();location=1; printf(n请输入选项 1 - 6 (当前在主菜单):); break; if(ch=4)&(location=1) RankingMenu();location=3; printf(n请输入选项 1 - 4 (当前在排序菜单):); while(ch=getchar()!=0) if(ch=1)&(location=3) getchar(); printf(ntt *现在位置在排序菜单 - 数学排序*n); printf(nt * y=使用当前文件名 n=输入新文件名 * : ); if(

34、ch=getchar()=y) /*追加文档*/ else Inputfilename(); fp=readfile(); /*读取文档*/ ffp=readfile2(); /*(开打方式读*引用读文件名)读文件付本*/ temp1=ReadComputer2Two(ffp); /*读出付本中的数据(二进制方式)*/ fclose(ffp); ReadComputer2(temp1,fp); /*(2方式)数据写入机器*/ fclose(fp); Math_ranking(temp1); /*数学排序函数*/ temp1=0;temp2=0; RankingMenu();location=3; printf(n请输入选项 1 - 4 (当前在排序菜单):); continue; if(ch=2)&(location=3) getchar(); printf(ntt *现在位置在排序菜单 - C语言排序*n); printf(nt * y=使用当前文件名 n=输入新文件名 * : ); if(ch=getchar()=y)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!