c语言 图书管理系统 上机实验报告.doc
《c语言 图书管理系统 上机实验报告.doc》由会员分享,可在线阅读,更多相关《c语言 图书管理系统 上机实验报告.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、成都信息工程大学计算机系课程实验报告实验课程:C语言程序设计基础实验项目:图书管理系统指导教师: 李莉丽学生姓名: 学生学号:20100班 级:计算机科学与技术实验地点: 5201实验时间:2011 年 5 月 18 日实验成绩:评阅老师:一【上机实验目的】设计并实现该课程设计的目的主要在于:1) 对一定规模的综合软件编程有一定的经历与认识。在做的过程中,你会发现,提前的规划即分析与设计重要过编程过程,否则会走很多弯。2) 综合并结合现实应用使用C语言的知识。这个设计会用到C语言这门课的全部知识,其中以文件、数组与链表为主,书中提到的主要及重点算法都会使用到。3) 不仅涉及编程,还涉及到功能分
2、析、模块规划等方面的知识,这些知识在后续课程学习时,会经常使用。这些知识在学软件工程这门课时,会系统讲解。希望有了这次的经历,你能更好的体会软件工程这门课的意义,并能学好和用好其中的知识 。4) 每项功能的实现,一般有多种方法,这里都强调使用时空效率最高的方法,此次实现只是让你有一个初步的认识,在下学期学习了数据结构后,你就知道为什么让你这样做,你也对数据结构这门课的作用及意义有所了解。二【实验环境】PC机每人1台三【上机实验内容】编写图书管理系统,具有以下基本功能(1)各种基本数据的录入。如:图书资料基本信息录入等。(2) 各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。(3
3、)各种基本数据的插入。如:在图书采购信息中插入一条新信息等。(4)各种基本数据的删除。如:假设某本书遗失且馆藏数为0,删除该书的相关信息等。(5)基于各种数据的查询。如:书名中含有“计算机”的所有书籍、全部借出的所有图书等。(6) 基于各种基本数据的统计计算。四【上机调试程序流程图】(注:可打印)调用_window()函数,设置界面属性调用words()函数在相应位置输出文字调用play(),输入y的值Play = ?开始调用choose()显示光标调用add函数调用manage函数调用search函数调用sta函数退出,执行exit(0)结束五【上机调试中出现的错误信息、错误原因及解决办法】
4、读写错误:fopen的时候改成用二进制读写.目前不知道为什么不用二进制不能读写.六【上机调试后的源程序及还存在的问题】#include #include #include #include #include #include #define Key_UP 72#define Key_DOWN 80#define Key_ENTER 28#define Key_N 49#define Key_Y 21#define LEN sizeof(struct linklist)typedef struct book1/*图书基本信息结构体*/char name20;char writer30;char
5、type20;char num20;char time20;char press20;char edition20;char ISBN40;float price;int count;int lendnum;bbasic;/*图书资料基本信息:中图法分类号、图书编号、书名、作者(要考虑多个作者情况)、出版社、出版日期、ISBN、版次、定价、馆藏数、借阅数等。*/typedef struct book2/*图书采购信息结构体*/char name20;char writer20;char time15;int num;float price;float money;char bill 30;bp
6、urchase;/*图书采购信息:书名、作者、采购日期、采购数量、采购单价、采购金额、发票号码、图书编号等。*/typedef struct book3/*图书借阅信息结构体*/*需要输入的信息*/char name20;char person20;char company20;char num20; /*借书证号*/char btime15;/*运算可得信息*/char rtime15;char fine20;blend;/*图书借阅信息:借阅人、借阅人所在单位、借书证号、所借书名、借阅日期、归还日期、逾期罚款等。借阅期限为一个月,逾期1天,罚款1角。*/struct linklistbba
7、sic binfo;struct linklist *next;int key();void menu();void _window();void words();void box(int,int,int,int);int _choose(int bot, int top);void play(int);int readsum();void add();void addbook();void addbuy();void addborrow();void manage();struct linklist* create();void modify();void delete();void ins
8、ert();void search();void searchname();void searchwriter();void orderw(bbasic binfo100);void orderw(bbasic binfo100);int halfn(int sum,bbasic binfo100,char *find);int halfw(int sum,bbasic binfo100,char *find);void sta();void blist();void bmoney();int main(void)menu();void menu()int y;_window();/*显示窗口
9、*/words();/*显示菜单文字*/y = choose(7,19);/*光标*/play(y);/*根据键盘值操作*/void _window()/*窗口初始化*/textbackground(BLUE);textcolor(WHITE);clrscr();box(1,1,24,80);void words()/*显示菜单文字*/textcolor(WHITE);gotoxy(30,7);textbackground(RED);cprintf(Add Book info);textbackground(BLUE);gotoxy(30,10);cprintf(Manage Book);go
10、toxy(30,13);cprintf(Search Book);gotoxy(30,16);cprintf(Book Statistic);gotoxy(30,19);cprintf(Exit);gotoxy(35,22);textcolor(LIGHTGRAY);textbackground(BLUE);cprintf( Main Menu );gotoxy(25, 2);textcolor(RED);highvideo();cprintf(The Library Managemnt Program);normvideo();void box(int x,int y, int high,
11、int width)/*画方框*/int i;gotoxy(x,y);putchar(0xda);for (i = 1 ; i width - 1; i+)putchar(0xc4);putchar(0xbf);gotoxy(x, y + high - 3);putchar(0xc0);gotoxy(width, y + high - 3);putchar(0xd9);for (i = 1; i high - 1; i+)gotoxy(x,y+i);putchar(0xb3);gotoxy(x + width -1, y+i);putchar(0xb3);gotoxy(x, y + high
12、- 1);putchar(0xc0);for (i = 1 ; i width - 1; i+)putchar(0xc4);gotoxy(x + 1, y + high - 3);for (i = 1; i bot)upbar(y);y = y - 3;break;case Key_DOWN:if (y top)downbar(y);y = y + 3;break;while(ky != Key_ENTER);return y;upbar(int y)/*光标上移*/int i;typedef struct texel_structunsigned char ch;unsigned char
13、attr;texel;texel t;for(i=30;i=48;i+)gettext(i,y,i,y,&t);t.attr=0x1f;puttext(i,y,i,y,&t);gettext(i,y-3,i,y-3,&t);t.attr=0x4f;puttext(i,y-3,i,y-3,&t);gotoxy(30,y-3);return;downbar(int y)/*光标下移*/int i;typedef struct texel_structunsigned char ch;unsigned char attr;texel;texel t;for(i=30;i=48;i+)gettext(
14、i,y,i,y,&t);t.attr=0x1f;puttext(i,y,i,y,&t);gettext(i,y+3,i,y+3,&t);t.attr=0x4f;puttext(i,y+3,i,y+3,&t);gotoxy(30,y+3);return;void play(int y) /*根据y的值选择操作*/switch(y)case 7:add();break;case 10:manage();break;case 13:search();break;case 16:sta();break;case 19:exit(1);default:printf(Error);exit(0);void
15、 add() /*显示 选择增加那种类型的信息 的窗口*/int y;_window();gotoxy(30,7);textbackground(RED);cprintf(Add Basic info);textbackground(BLUE);gotoxy(30,10);cprintf(Add Purchase info);gotoxy(30,13);cprintf(Add Borrow info);gotoxy(30,16);cprintf(Back);gotoxy(25, 2);textcolor(RED);highvideo();cprintf(The Library Managemn
16、t Program);normvideo();gotoxy(35,22);textcolor(LIGHTGRAY);textbackground(BLUE);cprintf( Add Book );textbackground(BLUE);textcolor(WHITE);y=choose(7,16);switch(y)/*选择增加信息类型的函数*/case 7 :addbook();break;/*增加图书基本信息*/case 10:addbuy();break;/*增加图书购买信息*/case 13:addborrow();break;/*增加图书借阅信息*/case 16:menu();
17、break;default:printf(Error);break;void addbook()/*增加图书基本信息*/int ky, sum = 0;FILE *fp;bbasic binfo;textbackground(BLUE);textcolor(WHITE);clrscr();if(fp = fopen(e:sum.dat,rb) != NULL)/*读取图书基本信息数量sum*/fread(&sum,2,1,fp);fclose(fp);if (fp = fopen(e:addbook.dat,ab) = NULL)printf(cannot write the addbook.
18、dat);doclrscr();gotoxy(2,2);cprintf(Please input the classfication of chinese library classification:);scanf(%s,&binfo.type);getchar();gotoxy(2,4);cprintf(Please input the books number:);scanf(%s,&binfo.num);getchar();gotoxy(2,6);cprintf(Please input the books name:);scanf(%s,&binfo.name);getchar();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言 图书管理系统 上机实验报告 语言 图书 管理 系统 上机 实验 报告
限制150内