用C语言开发小型数据库管理系统代码的文库.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴,非常沉默非常骄傲,从不依靠从不寻找。#include
typedef struct count{ /*保存记录条数结构体*/ char name[10]; int num; }count;
typedef struct st{ char name[10]; long Number; int Math; int C;
int Amount; }st;
st record[8]; count num[1];
char filename[10]={\char filename2[10]={\int Inputnum[8];
void MainMenu(){ printf(\ printf(\ 主菜单 *\\n\ printf(\ 1. 创建新文件 *\\n\ printf(\ 2. 添加记录 *\\n\ printf(\ 3. 删除记录 *\\n\ printf(\ 4. 排序 *\\n\ printf(\ 5. 查询记录 *\\n\ printf(\ 6. 退出 *\\n\ printf(\}
void DelMenu(){ printf(\
printf(\ 删除菜单 *\\n\ printf(\ 1. 学号查询删除 *\\n\ printf(\ 2. 返回到上级菜单 *\\n\ printf(\}
void RankingMenu(){ printf(\
专业资料
/*主菜单*/ /*删除菜单*/ /*排序菜单*/ printf(\ 排序菜单 *\\n\ printf(\ 1. 数学成绩排序 *\\n\ printf(\ 2. C语言成绩排序 *\\n\ printf(\ 3. 总分排序 *\\n\ printf(\ 4. 返回到上级菜单 *\\n\ printf(\}
void InquireMenu(){ /*查讯菜单*/ printf(\
printf(\ 查讯菜单 *\\n\ printf(\ 1. 学号查讯 *\\n\ printf(\ 2. 姓名查讯 *\\n\ printf(\ 3. 数学成绩查讯 *\\n\ printf(\ 4. C语言成绩查讯 *\\n\ printf(\ 5. 总分查讯 *\\n\ printf(\ 6. 返回到上级菜单 *\\n\ printf(\}
char Inputfilename(){ 付本文件名*/
char str2[]={\
printf(\请输入文件名 ** : \ scanf(\ getchar();
strcpy(filename2,filename); strcat(filename2,str2); }
FILE *readfile(){ FILE *fp1;
if((fp1=fopen(filename,\ {printf(\文件读取错误!!\\n\ fclose(fp1); }
return(fp1); }
FILE *foundfile(){ FILE *fp1;
if((fp1=fopen(filename,\ {printf(\文件创建错误!!\\n\ fclose(fp1);
专业资料
/*输入文件名同时产生 /*读取文档*/ /*新建文档*/ }
return(fp1); }
FILE *savefile(){ /*追加文档*/ FILE *fp1;
if((fp1=fopen(filename,\ {printf(\文件追加错误!!\\n\ fclose(fp1); }
return(fp1); }
int InputSave(){ /*添加数据 */ int i=0,j;
char ch='y'; while(ch!='w') {i=i+1;
printf(\请输入姓名(字符型) ** :\ scanf(\
Loop1: printf(\请输入学号(长整型) ** :\ scanf(\ if(i!=1)
for(j=1;j
if(record[i].Number==record[j].Number)
{printf(\警告! 输入了二个同样的学号! 第%d条和第%d学号相同!\\n\
printf(\请重新输入!\\n\ goto Loop1; }
Loop2: printf(\请输入数学成绩(整型) ** :\ scanf(\
if(record[i].Math>100||record[i].Math<0)
{printf(\输入的分数不服合实际要求! 请重新录入!\\n\ goto Loop2; }
Loop3: printf(\请输入C语言成绩(整型) ** :\ scanf(\
if(record[i].C>100||record[i].C<0)
{printf(\输入的分数不服合实际要求! 请重新录入!\\n\ goto Loop3; }
record[i].Amount=record[i].Math+record[i].C;
printf(\结束录入 's'=重新录入此条记录 'n'=下一条 : \
专业资料
getchar(); /*吃掉上一个回车符*/
if((ch=getchar())=='s') i=i-1; }
return(i); } /*
void ReadComputer(int i,FILE *fp1){ (文本式)数据写入机器 int j;
for(j=1;j
fscanf(fp1,\&record[j].C,&record[j].Amount); }
void SaveFile(int i,FILE *fp1){ (文本式)数据写到文件中 int j;
for(j=1;j
fprintf(fp1,\rd[j].C,record[j].Amount); } */
void ReadComputer2(int i,FILE *fp1){ /*(2式)数据写入机器*/ int j;
for(j=1;j
if((fread(&record[j],sizeof(struct st),1,fp1))!=1) {printf(\主文件数据读取错误! \\n\ fclose(fp1); } }
void SaveFile2(int i,FILE *fp1){ /*(2式)数据写到文件中*/ int j;
for(j=1;j
if((fwrite(&record[j],sizeof(struct st),1,fp1))!=1) {printf(\主文件数据写入错误! \\n\
专业资料
fclose(fp1); } } /* ************************************************************ *********************************************************** */
FILE *readfile2(){ /*读文件付本*/ FILE *fp1;
if((fp1=fopen(filename2,\ {printf(\付本文件读取错误!\\n\ fclose(fp1); }
return(fp1); }
FILE *foundfile2(){ */
FILE *fp1;
if((fp1=fopen(filename2,\ {printf(\付本文件创建错误!\\n\ fclose(fp1); }
return(fp1); }
FILE *savefile2(){ 本*/
FILE *fp1;
if((fp1=fopen(filename2,\ {printf(\付本文件追加错误!\\n\ fclose(fp1); }
return(fp1); } /*
void Additive2(int i,FILE *fp1){ (文本式) int j;
char str2={\
if(strcmp(filenameF,str2)!=0)
strcpy(num[0].name,filenameF); else
strcpy(num[0].name,filenameA); num[0].num=i;
专业资料
/*新建文件付本 /*追加文件付数据与入付本文件