赞
踩
欢迎关注公众号:seeCode 回复C语言进行获取代码
部分代码:
- // 用户结构体
- typedef struct username {
- int uid; //用户id
- char uname[STRNAMELEN]; //用户名
- char upass[STRNAMELEN]; //用户密码
- int usign; //用户标记 0代表普通用户 1代表管理员
- }user;
-
- //用户结构体数组
- typedef struct userArray {
- user* uArr; //用户结构体数组
- int uSub; //用户结构体数组当前下标
- int uMaxLen; //用户结构体数组当前最大容量
- }userArr;
-
- //图书结构体
- typedef struct books {
- int id; //图书编号
- char title[BOOKNAME]; //图书名字
- char autor[BOOKAUTOR]; //图书作者
- char press[BOOKPRESS]; //出版社
- int much; //数量
- }book;
-
- //图书结构体数组
- typedef struct booksArray {
- book* bArr; //图书结构体指针
- int bSub; //图书结构体数组当前下标
- int bMaxLen; //图书结构体数组当前最大容量
- }bookArr;
-
- //借阅信息结构体
- typedef struct bookRecord {
- char reName[STRNAMELEN]; //借阅人姓名
- char reBook[BOOKNAME]; //书籍
- char re[5]; //是否归还
- }record;
-
- typedef struct strRecord {
- record* reArr;
- int reSub;
- int reMaxLen;
- }reStr;
-
- //遍历结构体
- typedef struct pl {
- char ch[STRCHLEN];
- char fh[STRFHLEN];
- }pl;
-
- typedef struct plArr {
- pl o[BLSTRLEN]; //遍历结构体数组
- int i; //全局变量-下标
- }pArr;
图书操作
- //删除图书
- void delBook(bookArr* p) {
- char b1[30];
- int i = 0;
- system("cls");
- printf("请输入你要删除的书名>");
- scanf("%11s", b1);
- for (i = 0; i < p->bSub; ++i) {
- if (strcmp(b1, p->bArr[i].title) == 0) {
- for (; i < p->bSub; ++i) {
- p->bArr[i] = p->bArr[i + 1];
- }
- p->bSub--;
- }
- }
- }
- //导出图书
- void expBook(bookArr* p) {
- int i = 0;
- FILE* fp = fopen("D:\\bk.txt", "wt");
-
- if (fp == NULL) {
- printf("程序出错!");
- }
- else {
- for (i = 0; i < p->bSub; ++i) {
- fprintf(fp, "编号:%d 书名:%s 作者:%s 出版社:%s 数量:%d\n", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
- }
- }
- fclose(fp);
- fp = NULL;
- printf("导出成功\n");
- }
- //遍历图书
- void ergBook(bookArr* p) {
- int i = 0;
- system("cls");
- for (i = 0; i < p->bSub; ++i) {
- printf("编号:%d 书名:%s 作者:%s 出版社:%s 数量%d\n", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
- }
- }
- //查找图书
- void lookupBook(bookArr* p) {
- int i = 0;
- char bookName[30];
- system("cls");
- printf("请输入要查找的书籍>");
- scanf("%s", bookName);
- for (i = 0; i < p->bSub; ++i) {
- if (strcmp(bookName, p->bArr[i].title) == 0) {
- printf("编号:%d 书名:%s 作者:%s 出版社:%s 数量%d", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
- break;
- }
- }
- if (i == p->bSub) {
- printf("不存在该书\n");
- }
- }
- //修改图书
- void modifyBook(bookArr* p) {
- int num = 0, i = 0;
- char bookName[30];
- system("cls");
- printf("请输入要修改的书名>");
- scanf("%s", bookName);
- for (i = 0; i < p->bSub; ++i) {
- if (strcmp(bookName, p->bArr[i].title) == 0) {
- printf("请输入要修改后的数量\n");
- scanf("%d", &num);
- p->bArr[i].much = num;
- break;
- }
- }
- if (i == p->bSub) {
- printf("不存在该书\n");
- }
- writeBook(p);
- }
- //添加图书
- void regBook(bookArr* p) {
- int i = 0;
- int num = 0;
- char bookName[30];
- system("cls");
- printf("请输入书名>");
- scanf("%s", bookName);
- for (i = 0; i < p->bSub; ++i) {
- if (strcmp(bookName, p->bArr[i].title) == 0) {
- printf("输入要添加的数量\n");
- scanf("%d", &num);
- p->bArr[i].much += num;
- break;
- }
- }
- if (i == p->bSub) {
- p->bArr[i].id = p->bArr[i - 1].id + 1;
- strcpy(p->bArr[i].title, bookName);
- printf("请输入作者>");
- scanf("%s", p->bArr[i].autor);
- printf("请输入出版社>");
- scanf("%s", p->bArr[i].press);
- printf("请输入数量>");
- scanf("%d", &p->bArr[i].much);
- p->bSub++;
- }
- writeBook(p);
- }
- //写入图书
- void writeBook(bookArr* p) {
- int i = 0;
- FILE* fp = fopen("D:\\book.txt", "wt");
- if (fp == NULL) {
- printf("程序出错\n");
- exit(0);
- }
- else {
- for (i = 0; i < p->bSub; ++i) {
- fprintf(fp, "id:%d title:%s autor:%s press:%s much:%d\n", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
- }
- }
- fclose(fp);
- fp = NULL;
- }
这是自己第一次写这种项目,所以没有任何经验在方法的取名上面非常的乱而且逻辑也混乱,如果有机会的话我会在更改一下内容的
在运行这个程序的时候需要在D盘下创建三个文件,一个是user.txt文件,一个是book.txt文件,一个是record.txt文件
这个程序中,我设定了不管是何种管理员都禁止修改admin管理员的权限和密码(除了自己),具体功能需要大伙自己发现了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。