用C语言编一个简单的图书管理系统(包括借阅查询还书三部分)(学生作业用)

Python025

用C语言编一个简单的图书管理系统(包括借阅查询还书三部分)(学生作业用),第1张

#include<stdio.h>

#include<string.h>

struct sale/*商品名的定义*/

{int number<br>char name[20]<br>float price<br>long count<br>long time<br>long date}

/*各个函数*/

void input(struct sale s[7])/*输入函数*/

void output(struct sale s[7])/*输出函数*/

void seek(struct sale s[7])/*查找函数*/

void row(struct sale s[7])/*排序函数*/

void change(struct sale s[7])/*删除、修改、或插入*/

void main()/*主函数执行区域*/

{struct sale s[7]={{2,"pen",0.5,200,20050604,20090102},{1,"milk",3.5,100,20050403,20090202},

{5,"coke",3.5,500,20060203,20070503},{6,"chewing",0.3,200,20060305,20080205},

{4,"eraser",0.4,20,20060304,20500607},{3,"pencil",0.9,100,20040607,20060709}}/*定义初始值*/

/*input(s)【已付初始值暂不运行!!】*/

output(s)

seek(s)

row(s)

change(s)

}

/*void input(struct sale s[7])【注释:已付初始值,暂不运行!!】

{int i<br>printf("请分别输入产品编号、名称、单价、库存数量、入库时间、有效日期:\n")<br> for(i=0i<7i++)<br> scanf("%d%s%f%ld%ld%ld",&s.number,&s.name,&s.price,&s.count,&s.time,&s.date)}*/

void output(struct sale s[7])/*定义输出*/

{int i<br>printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")<br> for(i=0i<7i++)<br> printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)}

void seek(struct sale s[7])/*定义查找*/

{int i<br> int m<br> int k<br> k=1<br> printf("请输入要查找的编号\n")<br>printf("m== ")<br> scanf("%d",&m)<br>for(i=0i<7i++)<br> {<br> if(m==s.number)<br> {printf("你想查找的物品是:\n")<br> printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")<br> printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)<br> k=m}

}

if(k==1)

printf("没有此类商品!!!\n")

}

void row(struct sale s[7])/*排序*/

{

struct sale t

int i,j

int m,a

printf("\n")

printf("输出已排好序的商品\n")

for(j=0j<6j++)

for(i=0i<6-ji++)

if(s.number>s.number)

{

t=s

s=s

s=t

}

printf("重新排序后是; \n")

printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")

for(a=0a<7a++)

printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s[a].number,s[a].name,s[a].price,s[a].count,s[a].time,s[a].date)

}

void change(struct sale s[7])/*删除、修改、或插入*/

{

struct sale c

int i,m,q,n,k

k=0

printf("请输入您要删除、修改或要插入的物品编号\n")/*前奏*/

scanf("%d",&m)

for(i=0i<7i++)

if(m==s.number)

{{printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")<br> printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)}

printf("你确实要删除它么???还是要修改??\n")

printf("如果想删除请输入1,如果要修改请输入2。\n")

printf("您要输入的是: ")

scanf("%d",&q)

if(q==1)/*执行删除命令*/

{printf("您删除后的结果是:\n")<br> for(i=0i<7i++)<br>if(m!=s.number)<br>{printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")<br>printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)}}

if(q==2)/*执行修改命令*/

{printf("输入你想修改的库存数量: ")<br> scanf("%d",&n)<br> s[m].count=n<br> printf("修改后的商品信息为:\n")<br>printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")<br> for(i=0i<7i++)<br>printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)}

k=i

}

if(k==0)/*执行插入命令*/

{printf("\n\n")<br> printf("由于插入语句没有要求,所以插入语句尚未完成,有些功能尚未完善,所以会有错误,请老师见谅。\n\n\n")<br> printf("此类商品不存在,请插入\n")<br> printf("请分别输入要插入产品的编号、名称、单价、库存数量、入库时间、有效日期:\n")<br> i=m-1<br> scanf("%d%s%f%ld%ld%ld",&s.number,&s.name,&s.price,&s.count,&s.time,&s.date)<br> printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n")<br> printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)<br> for(i=0i<7i++)<br>printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s.number,s.name,s.price,s.count,s.time,s.date)<br> <br> <br> row(s)<br> <br> <br> }}

这是我大一时候做的大作业,虽然不是图书管理系统,你只要改改就行了,原理都一样,呵呵

#include<stdio.h>

#include<string.h>

#include<conio.h>

#include<stdlib.h>

#include<ctype.h>

#define STACK_INIT_SIZE 10

#define OK 1

#define TRUE 1

#define FALSE 0

#define ERROR 0

struct student /*定义学生类型,用于存放借出的书籍*/

{

int carnum

char lendbook[10]

}student[1000]

struct employ /*定义职工类型*/

{

int employnum

char employname[15]

int employage

char employsex[2]

char employleve[10]

long int employtage

}employ[50]

struct book /*定义书的类型*/

{

int booknum

char bookname[10]

char bookcreat[10]

int turefalse/*用于借书和还书模块判断一本书是否借出的条件*/

}book[1000]

struct car /*借书卡的数据类型*/

{

int carnum

char studentname[10]

int studentclass

}car[100]

huanbook() /*还书函数*/

{

FILE *fp,*fp2/*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/

int i,n

int carnum

char lendbook[10]

printf("请你输入你的卡号\n")

scanf("%d",&carnum)

fp=fopen("car.txt","r")/*读取卡号记录*/

for(i=0fread(&car[i],sizeof(struct car),1,fp)!=0i++) /*for循环判断卡号是否存在*/

{

if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/

{

n=i

fclose(fp)

printf("请输入你要还的书的名字\n")

scanf("%s",lendbook)

fp=fopen("record.txt","r")

for(i=0fread(&student[i],sizeof(struct student),1,fp)!=0i++) /*判断是否借阅了输入的书*/

{

if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/

{

fclose(fp)

fp=fopen("record.txt","r")

fp2=fopen("bookl.txt","w")

for(i=0fread(&student[i],sizeof(struct student),1,fp)!=0i++)

{

if(strcmp(student[i].lendbook,lendbook)==0)

{

continue/*删除还掉的书的借书记录*/

}

fwrite(&student[i],sizeof(struct student),1,fp2)/*写入原来没还的书的记录*/

}

fclose(fp)

fclose(fp2)

fp=fopen("record.txt","w")

fp2=fopen("bookl.txt","r")

for(i=0fread(&student[i],sizeof(struct student),1,fp2)!=0i++)

{

fwrite(&student[i],sizeof(struct student),1,fp)/*将借书记录信息写回*/

}

fclose(fp)

fclose(fp2)

fopen("bookl.txt","w")/*清临时文件的记录*/

fclose(fp2)

fp=fopen("book.txt","r")

fp2=fopen("bookl.txt","w")

for(i=0fread(&book[i],sizeof(struct book),1,fp)!=0i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/

{

if(i==n)

{

book[i].turefalse=1

fwrite(&book[i],sizeof(struct book),1,fp2)/*将还的书的原来状态设为无人借阅的*/

continue

}

fwrite(&book[i],sizeof(struct book),1,fp2)

}

fclose(fp)

fclose(fp2)

fp=fopen("book.txt","w")

fp2=fopen("bookl.txt","r")

for(i=0fread(&book[i],sizeof(struct book),1,fp2)!=0i++)

{

fwrite(&book[i],sizeof(struct book),1,fp)/*将临时文件写回*/

}

fclose(fp)

fclose(fp2)

fopen("bookl.txt","w")/*清临时文件*/

fclose(fp2)

printf("还书完毕,按任意键返回\n")

getch()

return 1

}

}

printf("你没有借这样的书,任意键返回\n")/*出错提示*/

fclose(fp)

getch()

return 0

}

}

printf("系统没这样的卡,和管理员联系,按任意键返回\n")/*出错提示*/

fclose(fp)

getch()

}

findbook()

{

FILE *fp

char bookname[10]

int ture,i

fp=fopen("book.txt","r")

printf("请输入你要查找的书名\n")

scanf("%s",bookname)

for(i=0fread(&book[i],sizeof(struct book),1,fp)!=0i++)

{

if(strcmp(bookname,book[i].bookname)==0)

{

if(book[i].turefalse==1)

{

printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat)

}

else

fclose(fp)

return FALSE

}

}

printf("没有你要查询的书籍\n")

fclose(fp)

return FALSE

}

findbook1()

{

FILE *fp

char bookcreat[10]

int ture,i

fp=fopen("book.txt","r")

printf("请输入你要查找的作者名\n")

scanf("%s",bookcreat)

for(i=0fread(&book[i],sizeof(struct book),1,fp)!=0i++)

{

if(strcmp(bookcreat,book[i].bookcreat)==0)

{

if(book[i].turefalse==1)

{

printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat)

}

else

fclose(fp)

return FALSE

}

}

printf("没有你要查询的书籍\n")

fclose(fp)

return FALSE

}

lendcount()

{

FILE *fp

int i,n=0

fp=fopen("record.txt","r")

for(i=0fread(&student[i],sizeof(struct student),1,fp)!=0i++)

{

printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook)

n=n+1

}

fclose(fp)

printf("目前共有%d本书借出\n",n)

printf("按任意键\n")

getch()

return n

}

chabook()

{

char ch5

do

{

printf("---------------欢迎进入图书查询系统!--------------\n")

printf(" 1:<按书名查找>\n")

printf(" 2:<按作者查找>\n")

printf(" 0:<返回>\n")

printf("请输入0--2,其他输入非法!\n")

scanf("%s",&ch5)

switch(ch5)

{

case '1':findbook()getch()break

case '2':findbook1()getch()break

case '0':break

default:printf("无此操作\n")getch()break

}

}while(ch5!='0')

return FALSE

}

lendbook()

{

FILE *fp,*fp2

int i,n

int carnum

printf("请你输入你的卡号\n")

scanf("%d",&carnum)

fp=fopen("car.txt","r")

for(i=0fread(&car[i],sizeof(struct car),1,fp)!=0i++)

{

if(car[i].carnum==carnum)

{

n=i

fclose(fp)

printf("请输入你要借阅的书的名字\n")

scanf("%s",student[n].lendbook)

fp=fopen("book.txt","r")

for(i=0fread(&book[i],sizeof(struct book),1,fp)!=0i++)

{

if(strcmp(book[i].bookname,student[n].lendbook)==0)

{

if(book[i].turefalse==0)

else

fclose(fp)

fp=fopen("record.txt","a+")

student[n].carnum=carnum

fwrite(&student[n],sizeof(struct student),1,fp)

fclose(fp)

fp=fopen("book.txt","r")

fp2=fopen("bookl.txt","w")

for(i=0fread(&book[i],sizeof(struct book),1,fp)!=0i++)

{

if(strcmp(book[i].bookname,student[n].lendbook)==0)

{

book[i].turefalse=0

fwrite(&book[i],sizeof(struct book),1,fp2)

continue

}

fwrite(&book[i],sizeof(struct book),1,fp2)

}

fclose(fp)

fclose(fp2)

fp=fopen("book.txt","w")

fp2=fopen("bookl.txt","r")

for(i=0fread(&book[i],sizeof(struct book),1,fp2)!=0i++)

{

fwrite(&book[i],sizeof(struct book),1,fp)

}

fclose(fp)

fclose(fp2)

fopen("bookl.txt","w")

fclose(fp2)

printf("借书完毕,按任意键返回\n")

getch()

return

}

}

printf("不存在这样的书,任意键返回\n")

fclose(fp)

getch()

return

}

}

printf("你的卡号不存在,请申请新卡,按任意键返回\n")

fclose(fp)

getch()

}

carcount()

{

FILE *fp

int i,n=0

fp=fopen("car.txt","r")

for(i=0fread(&car[i],sizeof(struct car),1,fp)!=0i++)

{

printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass)

n=n+1

}

fclose(fp)

printf("目前共有%d本书\n",n)

printf("按任意键\n")

getch()

}

delcar()

{

FILE *fp,*fp2

int i

int carnum

char choice

fp=fopen("car.txt","r")

fp2=fopen("bookl.txt","w")

printf("请输入你要删除的卡号\n")

printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n")

scanf("%d",&carnum)

for(i=0fread(&car[i],sizeof(struct car),1,fp)!=0i++)

{

if(car[i].carnum!=carnum)

{

fwrite(&car[i],sizeof(struct car),1,fp2)

}

}

fclose(fp)

fclose(fp2)

printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n")

scanf("%s",&choice)

if(choice=='y'||choice=='Y')

{

fp=fopen("car.txt","w")

fp2=fopen("bookl.txt","r")

for(i=0fread(&car[i],sizeof(struct car),1,fp2)!=0i++)

{

fwrite(&car[i],sizeof(struct car),1,fp)

}

fclose(fp)

fclose(fp2)

fp2=fopen("bookl.txt","w")

fclose(fp2)

printf("按任意键返回\n")

getch()

return

}

else

{

printf("按任意键返回\n")

getch()

return

}

}

addcar()

{

FILE *fp

int i=0

fp=fopen("car.txt","a+")

printf("请你输入卡号\n")

scanf("%d",&car[i].carnum)

printf("请你输入学生姓名\n")

scanf("%s",car[i].studentname)

printf("请你输入班级\n")

scanf("%d",&car[i].studentclass)

fwrite(&car[i],sizeof(struct car),1,fp)

fclose(fp)

printf("输入完毕,任意键返回\n")

getch()

}

1) 了解应用开发工具的现状

2) DelPHi6.0编程基础

3) MS SQL Server基础

4) 设计数据库;设计界面

5) 开发数据库。数据库实现的一些功能有

l 数据和数据说明的醒目显示;

l 多条件的查询、多条记录的检索、模糊查询;

l 数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;

l 数据库安全性的设计;

l 数据库的设计、数据接口、界面的设计。