c语言程序设计报告图书管理系统Word版

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国地质大学

本科生课程论文封面

课程名称 c语言课程设计

教师姓名樊媛媛

本科生姓名

本科生学

本科生专业

所在院系

类别: 日期:

课程设计评语

注:1、无评阅人签名成绩无效;

2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录

课程设计评语 (2)

目录 (3)

1.课程论文题目 (4)

2.程序设计思路 (4)

3.功能模块图 (5)

4.数据结构设计 (5)

5.算法设计 (6)

6.程序代码 (13)

7.程序运行结果 (22)

8.编程中遇到的困难及解决方法 (25)

9.总结心得及良好建议 (26)

10.致谢 (26)

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");

}

printf("\n\n让任意键继续\n");

}

//wr_file();

}

/******主函数***/

/*********输入*********/

void sr()

{

int n,i;

N=0;

printf("可输入的书本数:");

scanf("%d",&n);

N=n+N;

printf("请输入相关信息:\n");

for(i=1;i<=n;i++)

{

printf("图书名称:");

scanf("%s",s[N-n-1+i].tsmc);

printf("图书编号:");

scanf("%d",&s[N-n-1+i].tsbh);

printf("单价:");

scanf("%f",&s[N-n-1+i].dj);

printf("作者:");

scanf("%s",&s[N-n-1+i].zz);

相关文档
最新文档