c语言程序设计报告图书管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学本科生课程论文封面
课程名称c语言课程设计
教师姓名樊媛媛
本科生姓名
本科生学
本科生专业
所在院系
类别:
日期:
课程设计评语
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录
课程设计评语 (2)
目录 (3)
1.课程论文题目 (4)
2.程序设计思路 (4)
3.功能模块图 (5)
4.数据结构设计 (5)
5.算法设计 (5)
6.程序代码 (6)
7.程序运行结果 (16)
8.编程中遇到的困难及解决方法 (20)
9.总结心得及良好建议 (20)
10.致谢 (20)
1.课程论文题目
图书管理系统
2.程序设计思路
根据要求,图书管理系统以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保持记录以进行删除,查
询,借书,还书,退出,添加等等操作;另外还有键盘式旋转菜单以实现功能选择模块。
3.功能模块图
系统功能模块图
4.数据结构设计
先写主函数main (),然后设计个功能选项,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。每个图书信息设置一个结构体,将输入信息存入文件,提供查询功能,还有删除功能以及借书还书功能。每运行一功能后都返回主界面,方便再次选择,还有设置退出模块,方便退出。
5.算法设计
先定义结构体数组struct books,然后设置主界面,主界面出现6个功能选
项,分别是输入sr()
、借书js()、还书hs()、删除sc()、退出tc()、查询cx().各模块设计如下:
输入模块sr(),先调用文件eup,对其进行读取,然后增加,再对其进行保存和调用。其中结构体只输入tsmc图书名称,tsbh图书编号,dj单价,zz作者, 然后自动生成,czzt存在状态,姓名xm,学号xh,性别xb.
查询模块cx(),有选项图书编号和图书名称,然后选择,用if选择,然后用for循环查找,当输入名称与文件中的名称相同时,便显示此信息。
删除模块就是在查找功能的图书后,选择删除,将strcpy将s[i+1]的值赋给s[i]。
借出模块也是在查询的基础上,若s[i]的存在状态为已借出,则显示已借出,无法再借,若未借出,则将s[i]的存在状态czzt变为已借出,然后输入姓名,学号,性别,最后显示出已借出。
还书模块就是在查询的基础上,若s[i]的存在状态为未借出,则无法归还,若借出,则将存在状态变为未借出,然后自动将姓名,学号,性别变为初始值。
退出模块使flag=1,而在main就有bool flag 且main中已令main=0.这样就实现了退出功能。
其中若输入超过选项值后,都会显示输入错误,请重新输入。若字符错误,程序就直接出现错误了。
6.程序代码
#include
#include
#include
#include
#define M 100
struct books
{
char tsmc[12];
int tsbh;
float dj;
char zz[12];
char czzt[12];
char xm[12];
char xb[12];
int xh;
}s[M];
int N;
bool flag;
int main ()
{
int sele;
flag=0;
sele=1;
void sr();
void cx();
void sc();
void js();
void hs();
void tc();
void jsh();
//system ("tsgl");
printf("\n\n");
printf(" ************************\n");
printf(" 1:输入2:查询3:删除\n");
printf(" 4:借书5:还书0:退出\n");
printf(" ************************\n"); while(1)
{
printf("\n\n请输入功能序号:");
scanf ("%d",&sele);
if(sele>=0 && sele<=5)
{
switch(sele)
{
case 1:sr();break;
case 2:cx();break;
case 3:sc();break;
case 4:js();break;
case 5:hs();break;
case 0:jsh();break;
}
if(flag)
break;
printf("\n\n");
printf(" ************************\n"); printf(" 1:输入2:查询3:删除\n"); printf(" 4:借书5:还书0:退出\n"); printf(" ************************\n");
}
else
{
printf("输入错误请再次输入|\n\n");
printf("\n\n");
printf(" ************************\n");
printf(" 1:输入2:查询3:删除\n");
printf(" 4:借书5:还书0:退出\n");
printf(" ************************\n");