in one's 及相应知识点是?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 16:41:38

in one's 及相应知识点是?
in one's 及相应知识点是?

in one's 及相应知识点是?
这是表示人年龄的一种用法; in one's 20s,就是指某人20多岁;记住,这里的介词一定用 in;
另:这种表达法其实有点笼统,比如21岁和29岁都可以用 he is in his 20s表示; 因此,要准确表达,还可在one's 后面加形容词 early,late,mid,
比如,in one's early 20s,就指某人在 21,22,; in one's mid 20s; 就是指 某人在24-26之间; in one's late 20s,自然指某人 27-29岁.

in one's 20s 的意思是 “在一个人20多岁的时候”
知识点应该是"20s"这种表达方式, 20s就是说一个人20岁到29岁这段年龄段。
以此类推, "30s" = 年龄30-39
"40s" = 年龄40-49
等等等等。。。

第一部分、课程设计的题目与要求
1、 问题的提出
小型图书借阅管理系统的设计。
实现查询和显示功能,可办理借书和还书手续,同时可查询学生所借图书的信息。
2、 功能要求
实现查询和显示功能:按书名查询、按作者名查询和显示图书库存信息。将满足查询条件的整条记录显示在屏幕上。
办理借阅手续:输入学生号,如果不存在于第二个文本文件中,则不能办理借阅,否则,...

全部展开

第一部分、课程设计的题目与要求
1、 问题的提出
小型图书借阅管理系统的设计。
实现查询和显示功能,可办理借书和还书手续,同时可查询学生所借图书的信息。
2、 功能要求
实现查询和显示功能:按书名查询、按作者名查询和显示图书库存信息。将满足查询条件的整条记录显示在屏幕上。
办理借阅手续:输入学生号,如果不存在于第二个文本文件中,则不能办理借阅,否则,继续输入要借阅的书名,如果在图书信息中存在该书,且未被借出,则可以办理借阅手续,并修改该书的存在状态标志,登记借阅人学号和学生的借阅本数,并修改相应的文本文件。
办理还书手续:输入学生学号,判断其是否有借书。如有借书,则输入书名,判断该书是否被借出,将图书的存在状态标记为1,还书成功,并修改学生的借阅本数。同时修改相应的文本文件。
查询学生所借图书的信息。数据显示效果如下:
学号 2008002 姓名 李四 专业 英语
图书编号 书名 作者 单价
bk001 C语言 谭浩强 35.00
bk009 数据结构 严蔚敏 22.00
第二部分、课程设计题目功能
1、 系统功能模块框图设计

2、数据结构说明
struct books //定义图书信息结构体
{char bknu[10]; //结构体成员,图书编号
char bkname[30]; //结构体成员,图书名
char bkauthor[10]; //结构体成员,图书作者
float price; //结构体成员,图书单价
int flag; //结构体成员,图书存在状态
char readnu[10]; //结构体成员,图书借阅人学号
}bk[M]; //定义结构体数组
struct students //定义学生信息结构体
{char stunum[10]; //结构体成员,学生学号
char stuname[30]; //结构体成员,学生姓名
char spe[16]; //结构体成员,学生专业
int borrow; //结构体成员,学生借阅本数
}stu[N]; //定义结构体数组
char str1[81],str2[81];//定义二个字符数组,用来存储二个文本的表头信息
void read1()
{
FILE *fp; //定义一个文件指针变量,指向图书文本
……
}
void read1()
{
FILE *fp; //定义一个文件指针变量,指向学生文本
……
}
void find_author()
{
char author[10]; //定义一个字符数组,用来存放键入的作者名
……
}
void find_bkname()
{
char bkname[10]; //定义一个字符数组,用来存放键入的图书名
……
}
void booklend()
{
FILE *fp1,*fp2; //定义二个文件指针变量,分别指向图书文本和学生文本
char stunumber[10],bkname[30]; //定义二个字符数组,分别用来存放键入的学生学号和书名
……
}
2、 详细设计
程序开始运行后先执行函数main(),函数void read1()从图书文本中读出数据保存到结构体数组bk[M]中,同时输出在屏幕上,通过调用函数read2()从stu文本中读出数据保存到结构体数组stu[N],同时输出在屏幕上。通过while循环与switch(i)语句来实现功能的选择。通过键入i来调用函数:
当i=1时,调用函数void find_author();
当i=2时,调用函数void find_bkname();
当i=3时,调用函数void find_others();
当i=4时,调用函数void booklend();
当i=5时,调用函数void bookreturn();
当i=6时,调用函数void find_stu();
函数void read1()从bk文本中读出数据保存到结构体数组bk[M]中,同时读取的信息输出在屏幕上。
函数void read2()从stu文本中读出数据保存到结构体数组stu[N],同时读取的信息输出在屏幕上。
函数void find_author(),该函数返回值为空,作用是从结构体数组bk[M]中查找满足条件(输入的作者名与结构体成员—作者名相同),将满足条件的bk[i],输出到屏幕上。具体,键入一作者名,与结构体成员author比较,若相同则输出到屏幕。
函数void find_bkname(),该函数返回值为空,作用是从结构体数组bk[M]中查找满足条件(输入的书名与结构体成员—书名相同),将满足条件的bk[i],输出到屏幕上。具体,键入一书名,与结构体成员bkname比较,若相同则输出到屏幕。
函数void find_others(),该函数的返回值为空,作用是从结构体数组bk[M]中查找满足条件(结构体成员—存在状态为零),将满足条件的bk[i],输出到屏幕上。具体,通过if语言判断结构体成员flag,若值为1,则输出到屏幕。
函数void booklend(),该函数返回值为空,作用是借书。具体,键入一个学号,判断该学号是否在学生文本中,若存在,键入一个书名判断该书是否在图书文本中且是否在库,如果也满足条件则办理借书手续,同时修改后的信息写入文本中。

具体流程图如下图:
函数void bookreturn(),该函数返回值为空,作用是还书。具体,键入一个学号,判断该学号是否在学生文本中,若存在,键入一个书名判断该书是否在图书文本中且是否在库,如果也满足条件则办理还书手续,同时修改后的信息写入文本中。
具体流程图如下图:


函数void find_stu(),该函数返回值为空,作用时查询学生借阅图书的信息。具体,键入一个学号,通过循环与结构体数组bk[i].readnu比较,若相同则输出。
3、 调试与测试
原始数据文件:
图书编号 书名 作者 单价 存在状态 借阅人学号
bk001 C语言 谭浩强 35.00 1 无
bk002 寻觅中华 余秋雨 40.00 1 无
bk003 C语言 谭浩强 35.00 1 无
bk004 C++程序设计 谭浩强 36.00 1 无
bk005 文化苦旅 余秋雨 22.00 1 无
bk006 牛津简明英语词典 Thompson 119.00 1 无
bk007 Oracle基础教程 佩里 65.00 1 无
bk008 C语言 李春葆 39.00 1 无
bk009 数据结构 严蔚敏 22.00 1 无
bk010 大学化学 何培之 30.00 1 无
bk011 C语言程序设计 杜友福 28.00 1 无
bk012 大学英语 郑数昙 23.90 1 无
bk013 高等数学 刘修生 12.00 1 无
bk014 电路与模拟电子技术 高玉良 25.50 1 无
bk015 大学英语语法 张道真 29.00 1 无
学号 姓名 专业 借阅本数
2008001 张三 计算机 0
2008002 李四 英语 0
2008003 赵晓云 计算机 0
2008004 Mary 机械 0
2008005 王楠 电信 0
2008006 周诗维 计算机 0
2008007 张腾 石油 0
2008008 李俊杰 石油 0
2008009 刘杰 机械 0
2008010 王飞 城建 0
测试功能1(按作者名查询):效果如下图
查找作者为谭浩强的图书

测试功能2(按书名查询):效果如下图
查找图书名为电路与模拟电子技术的图书

测试功能3(输出库存图书信息):效果如下图

测试功能4(借书):效果如下图
学号为2008009的学生需要借阅电路与模拟电子技术

测试功能6(显示学生所借图书信息):如图所示
显示学号为2008009的学生所借图书信息

测试功能5(还书):效果如下图
学号为2008009的学生需要还电路与模拟电子技术

执行功能2时,提示内存错误。原因是子函数find_bkname()中定义的字符数组bkname[10]长度不够,改成bkname[30]即可。
执行功能5后,借阅本书都变成地址值。原因是在子函数bookreturn()中输出语句printf()中的‘输出项表列中stu[i].borrow’前加了取地址运算符,去掉该地址运算符即可。
执行功能4后,图书文本中所有数据全都填到了一列上。原因是在子函数book_lend()的fprintf()中格式控制字符串后少了换行。
在程序运行过程中,还出现以下需要注意的错误:if语句条件表达式中应使用逻辑等于(==);可能漏写分号;写程序时应注意输入法切换,正确输入字符。
第三部分、课程设计总结
在本次实训中,我有很多收获。自己对课本知识上的小的知识点把握不够,在这次实训中很多错误都是一些小问题,只要写程序的时候注意点就可以避免,以后写程序时一定会注意。遇到了困难,首先自己找,实在不能解决的话就请教老师和同学。其实很多问题都是我们自己可以解决的,只要我们用心去找,同时相信自己能解决问题。我在这次实训中学会了调试程序,这个功能是我以前所不知道。
对于这个系统,因为它的简单,所以存在不足之处,我就一个方面谈谈我的设想。通过在函数中加条件语句,限制每个人的借书本书,所借图书的总金额。
附录 程序清单
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 15
#define N 10
struct books //定义图书信息结构体
{char bknu[10]; //结构体成员,图书编号
char bkname[30]; //结构体成员,图书名
char bkauthor[10]; //结构体成员,图书作者
float price; //结构体成员,图书单价
int flag; //结构体成员,图书存在状态
char readnu[10]; //结构体成员,图书借阅人学号
}bk[M]; //定义结构体数组
struct students //定义学生信息结构体
{char stunum[10]; //结构体成员,学生学号
char stuname[30]; //结构体成员,学生姓名
char spe[16]; //结构体成员,学生专业
int borrow; //结构体成员,学生借阅本数
}stu[N]; //定义结构体数组
char str1[81],str2[81];//定义二个字符数组,用来存储二个文本的表头信息
//读出图书信息
void read1()
{
FILE *fp;
int i;
if((fp=fopen("D:\\jz80243_bk.txt","r"))==NULL)
{printf("can not open file");
exit(0);
}
fgets(str1,81,fp);
puts(str1);
for(i=0;i<M;i++) //将文件中的信息写入结构体数组中并输出
{
fscanf(fp,"%s%s%s%f%d%s",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,&bk[i].price,&bk[i].flag,bk[i].readnu);
printf("%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
}
fclose(fp);
}
//读出学生信息
void read2()
{
FILE *fp;
int j;
if((fp=fopen("D:\\jz80243_stu.txt","r"))==NULL)
{printf("can not open file");
exit(0);
}
fgets(str2,81,fp);
puts(str2);
for(j=0;j<N;j++) //将文件中的信息写入结构体数组中并输出
{
fscanf(fp,"%s%s%s%d",stu[j].stunum,stu[j].stuname,stu[j].spe,&stu[j].borrow);
printf("%-15s%-16s%-18s%-8d\n",stu[j].stunum,stu[j].stuname,stu[j].spe,stu[j].borrow);
}
fclose(fp);
}
//按作者查询
void find_author()
{
char author[10];
int i;
printf("请输入作者名:");
scanf("%s",author);
puts(str1);
for(i=0;i<M;i++)
if(strcmp(author,bk[i].bkauthor)==0) //将输入的作者名与结构体数组中的作者名比较
printf("%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
}
//按书名查询
void find_bkname()
{
char bkname[30];
int i;
printf("请输入书名:");
scanf("%s",bkname);
puts(str1);
for(i=0;i<M;i++)
if(strcmp(bkname,bk[i].bkname)==0) //将输入的书名与结构体数组中的书名比较
printf("%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
}
//输出库存图书信息
void find_other()
{ int i;
for(i=0;i<M;i++)
if(bk[i].flag==1) //判断图书是否在库
printf("%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
}
//借书
void booklend()
{
FILE *fp1,*fp2;
char stunumber[10],bkname[30];
int i,t;
printf("input the studentsnu:");
scanf("%s",stunumber);
for(i=0;i<N;i++)
if(strcmp(stunumber,stu[i].stunum)==0)
{t=i;break;}
if(i==N) //输入的学号不在文件2中,不能借书
{ printf("NO find!Can't lend!\n");
return;
}
printf("input the bookname:");
scanf("%s",bkname);
for(i=0;i<M;i++)
if(strcmp(bkname,bk[i].bkname)==0 && bk[i].flag)
{
bk[i].flag=0;
strcpy(bk[i].readnu,stunumber);
stu[t].borrow++; //学生借阅本数加1
break;
}
if(i==M)
{
printf("该书不存在或已全部借出\n");
return;
}
//更改图书文件信息
if((fp1=fopen("D:\\jz80243_bk.txt","w"))==NULL)
{
printf("can't open file");
exit(0);
}
fputs(str1,fp1);
puts(str1);
for(i=0;i<M;i++) //将结构体中的数据写入文件
{
printf("%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
fprintf(fp1,"%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
}
fclose(fp1);
//更改学生文件信息
if((fp2=fopen("D:\\jz80243_stu.txt","w"))==NULL)
{
printf("can't open file");
exit(0);
}
fputs(str2,fp2);
puts(str2);
for(i=0;i<N;i++) //将结构体中的数据写入文件
{
printf("%-15s%-16s%-18s%-8d\n",stu[i].stunum,stu[i].stuname,stu[i].spe,stu[i].borrow);
fprintf(fp2,"%-15s%-16s%-18s%-8d\n",stu[i].stunum,stu[i].stuname,stu[i].spe,stu[i].borrow);
}
fclose(fp2);
}
//还书
void bookreturn()
{
FILE *fp1,*fp2;
int i,t;
char stunumber[10],bkname[30];
printf("input the studentsnu:");
fflush(stdin);
gets(stunumber);
for(i=0;i<N;i++)
if(strcmp(stunumber,stu[i].stunum)==0)
if(stu[i].borrow!=0)
{t=i;break;}
else
{
printf("该生未借书,不能还书!\n");
return;
}
if(i==N)
{printf("未找到该生,不能还书!\n");return;}
printf("input the bookname:");
gets(bkname);
for(i=0;i<M;i++)
if(strcmp(bkname,bk[i].bkname)==0&&(bk[i].flag==0))
{
bk[i].flag=1;
strcpy(bk[i].readnu,"无");
stu[t].borrow--;
break;
}
if(i==M)
{printf("该书未借出或不存在!\n");return;}
//更改图书文件信息
if((fp1=fopen("D:\\jz80243_bk.txt","w"))==NULL)
{
printf("can't open file");
exit(0);
}
fputs(str1,fp1);
puts(str1);
for(i=0;i<M;i++) //将结构体中的数据写入文件
{
printf("%-8s%-20s%-16s%-14.2f%-8d%-10s\n",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
fprintf(fp1,"%s%s%s%f%d%s",bk[i].bknu,bk[i].bkname,bk[i].bkauthor,bk[i].price,bk[i].flag,bk[i].readnu);
}
fclose(fp1);
//更改学生文件信息
if((fp2=fopen("D:\\jz80243_stu.txt","w"))==NULL)
{
printf("can't open file");
exit(0);
}
fputs(str2,fp2);
puts(str2);
for(i=0;i<N;i++) //将结构体中的数据写入文件
{
printf("%-15s%-16s%-18s%-8d\n",stu[i].stunum,stu[i].stuname,stu[i].spe,stu[i].borrow);
fprintf(fp2,"%-15s%-16s%-18s%-8d",stu[i].stunum,stu[i].stuname,stu[i].spe,stu[i].borrow);
}
fclose(fp2);
}
void find_stu()
{
char stunumber[10];
int i,j;
printf("input studentsnum:");
scanf("%s",stunumber);
for(i=0;i<N;i++)
if(strcmp(stunumber,stu[i].stunum)==0)
{
printf("学号:%-15s姓名:%-16s专业:%-18s借阅本数:%-8d\n",stu[i].stunum,stu[i].stuname,stu[i].spe,stu[i].borrow);
if(stu[i].borrow!=0)
printf("图书编号 书名 作者 单价 \n");
for(j=0;j<M;j++)
{
if(strcmp(stu[i].stunum,bk[j].readnu)==0)
printf("%-8s%-20s%-16s%-14.2f\n",bk[j].bknu,bk[j].bkname,bk[j].bkauthor,bk[j].price);
}
printf("\n\n\n");
break;

}
if(i==N) printf("该生不存在!!\n\n\n");
}
void main()
{ int i;
read1();
read2();
while(1)
{
printf("**********小型图书借阅管理系统***********\n");
printf("* 1.按作者查询图书 2.按书名查询图书 *\n");
printf("* 3.按条件查询图书 4.借 书 *\n");
printf("* 5.还 书 6.查询学生借书信息 *\n");
printf("* 0.退出系统 *\n"); printf("请选择(0~6):");
scanf("%d",&i);
switch(i)
{
case 1: find_author();break;
case 2: find_bkname();break;
case 3: find_other();break;
case 4: booklend();break;
case 5: bookreturn();break;
case 6: find_stu();break;
case 0: exit(0);
}
}
}

收起