c语言编写图书管理系统内容摘要:
t:printf(Error\n)。 getch()。 break。 } 11 }while(ch5!=39。 039。 )。 } findbook() /*„„„„查找图书„„„„ */ { FILE *fp。 char bookname[10]。 int ture,i。 fp=fopen(,r)。 printf(Please input ni yao cha zhao de shu ming\n)。 /*请输入你要查找的书名 */ scanf(%s,bookname)。 for(i=0。 fread(amp。 book[i],sizeof(struct book),1,fp)!=0。 i++) { if(strcmp(bookname,book[i].bookname)==0) { if(book[i].turefalse==1) { printf(zhe ben shu de xiang xi zi liao shi :\n Num%d\tbookname%s\tzuo zhe%s\n ci shu xian zai wu ren jie yue\n,book[i].booknum,book[i].bookname,book[i].bookcreat)。 /*这本书的详细资料是 ——— 此书现在无人借阅 */ } else {printf(zhe ben shu yi you ren jie chu\n)。 fclose(fp)。 return。 } /*这本书已有人借出 */ fclose(fp)。 return。 } } printf(Sorry mei you ni yao cha xun de shu ji\n)。 /*没有你要查询的书籍 */ fclose(fp)。 return。 } lendbook() /*„„„„借阅图书„„„„ */ { FILE *fp,*fp2。 int i,n。 int carnum。 printf(Plase input your carhao\n)。 /*请输入你的卡号 */ scanf(%d,amp。 carnum)。 fp=fopen(,r)。 for(i=0。 fread(amp。 car[i],sizeof(struct car),1,fp)!=0。 i++) 12 { if(car[i].carnum==carnum) { n=i。 fclose(fp)。 printf(Please input books name\n)。 /*请输入你要借阅的书的名字 */ scanf(%s,student[n].lendbook)。 fp=fopen(,r)。 for(i=0。 fread(amp。 book[i],sizeof(struct book),1,fp)!=0。 i++) { if(strcmp(book[i].bookname,student[n].lendbook)==0) { if(book[i].turefalse==0) {printf(Sorry,gai shu yi bei jie chu!\n)。 fclose(fp)。 getch()。 return。 } /*对不起该书已被借 出 */ else fclose(fp)。 fp=fopen(,a+)。 student[n].carnum=carnum。 fwrite(amp。 student[n],sizeof(struct student),1,fp)。 fclose(fp)。 fp=fopen(,r)。 fp2=fopen(,w)。 for(i=0。 fread(amp。 book[i],sizeof(struct book),1,fp)!=0。 i++) { if(strcmp(book[i].bookname,student[n].lendbook)==0) { book[i].turefalse=0。 fwrite(amp。 book[i],sizeof(struct book),1,fp2)。 continue。 } fwrite(amp。 book[i],sizeof(struct book),1,fp2)。 } fclose(fp)。 fclose(fp2)。 fp=fopen(,w)。 fp2=fopen(,r)。 for(i=0。 fread(amp。 book[i],sizeof(struct book),1,fp2)!=0。 i++) { fwrite(amp。 book[i],sizeof(struct book),1,fp)。 } fclose(fp)。 fclose(fp2)。 fopen(,w)。 fclose(fp2)。 13 printf(OK, Enter\n)。 /*借书完毕,按任意键返回 */ getch()。 return。 } } printf(Sorry,mei you zhe ben shu \n)。 /*对不起,没有这本书 */ fclose(fp)。 getch()。 return。 } } printf(Error,mei you gai ka,please shen qing xin ka\n)。 /*无此卡号,请申请新卡 */ fclose(fp)。 getch()。 } huanbook() /*„„„„还书函数„„„„ */ { FILE *fp,*fp2。 /*定义两个文件指针, fp2 用于修改数据时设立临时文件用,防止数据遭破坏 */ int i,n。 int carnum。 char lendbook[10]。 printf(Please input your carhao\n)。 /*请输入你的卡号 */ scanf(%d,amp。 carnum)。 fp=fopen(,r)。 /*读取卡号记录 */ for(i=0。 fread(amp。 car[i],sizeof(struct car),1,fp)!=0。 i++) /*用 For 循环语句判断卡号是否存在 */ { if(car[i].carnum==carnum) { n=i。 fclose(fp)。 printf(Please input your name to the book also\n)。 /*请输入你要还的书的名字 */ scanf(%s,lendbook)。 fp=fopen(,r)。 for(i=0。 fread(amp。 student[i],sizeof(struct student),1,fp)!=0。 i++) /*判断是否借阅了输入的书 */ { if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示 */ { fclose(fp)。 fp=fopen(,r)。 fp2=fopen(,w)。 for(i=0。 fread(amp。 student[i],sizeof(struct student),1,fp)!=0。 i++) 14 { if(strcmp(student[i].lendbook,lendbook)==0) { continue。 /*删除还掉的书的借书记录 */ } fwrite(amp。 student[i],sizeof(struct student),1,fp2)。 /*写入原来没还的书的记录 */ } fclose(fp)。 fclose(fp2)。 fp=fopen(,w)。 fp2=fopen(,r)。 for(i=0。 fread(amp。 student[i],sizeof(struct student),1,fp2)!=0。 i++) { fwrite(amp。 student[i],sizeof(struct student),1,fp)。 /*将借书记录信息写回 */ } fclose(fp)。 fclose(fp2)。 fopen(,w)。 /*清临时文件的记录 */ fclose。c语言编写图书管理系统
相关推荐
IV.删除模块 程序通过定义一个变量 num,来确定输入到底是学号还是姓名,或者退出删除模块。 通过一个 for 循环来确定数据库到底是否含有此人的信息。 如果含有此人的信息,则通过一个 for 循环,把这个以后的信息依次前推来覆盖这个人的信息,而实现此人信息的删除。 如果不含此人的信息,则打印“查无此人。 ”。 每次删除结束之后通过选择“是”或者“否”来选择是否继续删除学生信息。
mp。 stu,sizeof(struct student),1,fp)。 } } else { if((fp=fopen(e:\\,wb))!=NULL) { 沈 阳 航 院 设 计 用 纸 17 printf(qingshuruyaotianjiadexueshengshuliang163。 172。 anhuichejianqueren163。 186。 )。 scanf(%d,amp。
根据名字进行删除 删除结果 湖南工程学院课程设计报告 21 进行一系列操作后内存保存数据显示 5. 结果分析 独到之处: 工号不用手动输入,自动根据录入的对象生成, 能够在一个文件里面存放不同类的数据 ,并能一一对号读取出来,删除模块采用后者覆盖前者的方法用得恰当。 不足之处:还是定义一个数组来存放对象,没能用链表进行编程。 编程水平有待提高。 6. 总结 在这次课程设计中我编写了两个程序
名,或者退出删除模块。 通过一个 for 循环来确定数据库到底是否含有此人的信息。 如果含有此人的信息,则通过一个 for 循环,把这个以后的信息依次前推来覆盖这个人的信息,而实现此人信息的删除。 如果不含此人的信息,则打印“查无此人。 ”。 每次删除结束之后通过选择“是”或者“否”来选择是否继续删除学生信息。 程序通过输入一个变量 num 来实现是按学号还是按姓名来查找,或者退出查询。
ceDropSort(stuscore,STUSIZE,0)。 AsceDropSort函数 源程序如下: 在这个函数中,我们 增加了一个形参,根据该形参的值来确定是否按升序还是按降升序排列,然后用条件表达式来判断是执行什么排列。 其他内容不变。 同学们可以思考其他的优化方法。 任务 11:初步实现学生最高、最低等成绩查找 该任务初步实现项目中 查找最高学生成绩函数 SearchMax()
/*电话号码 */ float score。 /*积分 */ int lost。 /*判断丢失 */ }STUDENT。 void input(STUDENT s[])。 void searchoutput(STUDENT s[])。 void score(STUDENT s[])。 float deal(STUDENT s[])。 int lost(STUDENT s[])。 void