图书管理系统 数据结构 课程设计_数据结构课程设计格式

2020-02-27 其他范文 下载本文

图书管理系统 数据结构 课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构课程设计格式”。

《数据结构》

课程设计报告书

一.课程设计题目

图书借阅管理系统

二.课程设计内容

实现图书管理信息系统的设计

(一)管理员功能:

①登录:输入管理员密码,若密码错误则不得执行管理员操作。

②添加新书:增加新的图书资料,同时需检查新书的图书编号是否已存在于原图书资料中,若已存在则应取消添加或提示重新输入。

③修改图书:通过编号查询该图书资料,若该编号存在,则显示已有信息,允许修改,否则提示 无该图书信息。

④删除图书:通过编号查询该图书资料,若该编号存在,则显示已有信息,允许删除,否则提示无该图书信息。删除对象包括该图书资料以及“图书状态”和“借阅人”中与此书相关的所有记录。

⑤查找图书:

A.按书号查找:通过编号查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。

B.按书名查找:通过书名查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。

C.按作者查找:通过作者查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。

⑥查看全部图书:显示所有图书资料,包括书号、书名、作者、状态和借阅人等信息。

⑦修改读者:通过姓名查询该读者信息,若该姓名存在,则显示已有信息,允许修改,否则提示无该读者信息。

⑧删除读者:通过姓名查询该读者信息,若该姓名存在,则显示已有信息,允许删除,否则提示无该读者信息。删除对象包括该读者姓名、班级、电话以及“图书状态”和“借阅人”中与此人相关的所有记录。

⑨查看所有读者:显示所有读者资料,包括姓名、班级、电话等信息。

(二)读者功能:

①登录:输入读者姓名,若未经注册则不得进入读者服务界面。②注册:新用户经注册方可登录系统并使用读者服务功能。③借书:

A.输入所需图书编号,判断该编号是否存在,若不存在则提示重新输入。

B.若所输入图书编号存在,则判断该书籍是否已被借出,若已借则不允许执行借书操作。

C.若所输入图书未借,则提示输入读者姓名,判断所输入读者姓名是否存在,若不存在则提示重新输入。D.若读者姓名存在,则允许执行借书操作。

E.借书处理包括在“图书状态”中加上“已借”标记。④还书:

A.输入所借书编号,判断该编号是否存在,若不存在则提示重新输入。B.判断该书是否已借出,若未借则不允许执行还书操作。C.借书处理包括在“图书状态”中加上“未借”标记。⑤查询图书:

A.按书号查找:通过编号查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。

B.按书名查找:通过书名查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。

C.按作者查找:通过作者查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。

⑥查看借阅情况:输入读者姓名,若该姓名不存在则提示重新输入,若该姓名存在则显示该读者借阅信息。

三.算法设计

1.流程图(部分示例)

①管理员登录

②读者登录

③读者借阅图书

④管理员或读者按书名查找图书

2.代码实现

#include #include

#include #include //文件流 #include #define BookFile “book.txt”

//将字符串BookFile替换原文件中的宏名称book #define ReaderFile “reader.txt” using namespace std;//**********读者结构体,用于存放读者基本信息********** cla Reader {

private:

char rname[10];

char rcla[10];

char rtel[10];public:

Reader()//构造函数,实现数据初始化

{strcpy(rname,“”);strcpy(rcla,“”);strcpy(rtel,“”);} //初始化

void set_rname(char *rn)//设置读者姓名

{strcpy(rname,rn);} //将rn的字符复制给rname

char * get_rname()//获得读者姓名

{return rname;} //返回rname的值

void set_rcla(char *rc)//设置班级

{strcpy(rcla,rc);}

char *get_rcla()

//获得班级

{return rcla;}

void set_rtel(char *rt)

//设置电话

{strcpy(rtel,rt);}

char *get_rtel()

//获得电话

{return rtel;}

void copy(Reader m)//读者Reader结构体copy函数

{strcpy(rname,m.get_rname());strcpy(rcla,m.get_rcla());strcpy(rtel,m.get_rtel());} };//*********读者管理结构体,实现对读者用户的管理********* cla ReaderManage {

Reader readers[50];//定义读者结构体数组对象,最多50位

int length;

void readFile()

//读取读者文件函数

{

ifstream fread;//定义输入文件流对象fread

length=0;

//计数

if(!fread)

{cout

fread.open(ReaderFile,ios::binary);//使文件流与文件关联,以二进制方式打开

int i=0;

while((fread.read((char *)&readers[i],sizeof(Reader))))//计算并返回所占字节数

i++;

length=i;

fread.close();//关闭磁盘文件

} void saveFile()//保存读者文件

{

ofstream fwrite;

//定义输出文件流对象fwrite

if(!fwrite)

{cout

fwrite.open(ReaderFile,ios::binary);//使文件流与文件关联,以二进制方式打开

fwrite.write((char *)readers,length*sizeof(Reader));//计算并返回所占字节数

fwrite.close();//关闭磁盘文件

} public:

ReaderManage()//构造函数,读取读者文件

{readFile();}

~ReaderManage()//析构函数,保存读者文件

{saveFile();}

void add_reader(Reader r)//添加读者用户函数

{

if(length>=50)

{cout

readers[length].copy(r);//调用读者结构体copy函数

length++;} int search(char *rn)//按姓名查找读者函数

{

for(int i=0;i

if(strcmp(readers[i].get_rname(),rn)==0)//判断是否相等

return i;

return-1;

} bool revise(Reader reader,int i)//修改读者资料函数

{

readers[i].copy(reader);//调用读者结构体cpoy函数

return true;} void delete_reader(int index)//删除读者函数

{

for(int i=index;i

readers[i].copy(readers[i+1]);//用后面的地址覆盖前面的地址

length--;} bool log_reader(Reader r)//登录时判断读者用户是否存在函数,相当于遍历

{

for(int i=0;i

if(strcmp(readers[i].get_rname(),r.get_rname())==0)

return true;

return false;

} void reg_reader()//注册用户函数

{

char n[10];

//姓名name

char c[10];

//班级cla

char t[10];

//电话tel

Reader reader;

cout

cin>>n;

cout

cin>>c;

cout

cin>>t;

reader.set_rname(n);//调用读者结构体设置读者姓名函数

reader.set_rcla(c);//调用读者结构体设置读者班级函数

reader.set_rtel(t);//调用读者结构体设置联系电话函数

add_reader(reader);//调用读者结构体添加读者函数

cout

{ cout

cout

for(int i=0;i

{

cout

cout

cout

} } void show_reader(int i)//带参的显示读者信息函数

{

cout

cout

cout

cout

cout

}

};

//********书籍结构体,用于存放书籍基本信息******** cla Book { private:

char bnum[10];

//书号

char bname[20];

//书名

char bauthor[10];

//作者

char rname[10];

//借阅人 public: int tag;

//状态标记判断指标(已借/在架)Book()

//构造函数初始化信息

{strcpy(bnum,“”);strcpy(bname,“”);strcpy(bauthor,“”);strcpy(rname,“”);tag=0;}

void set_bnum(char *no)

//设置书号

{strcpy(bnum,no);}

//把字符串no中的字符复制到字符串bnum中

char *get_bnum()

//获得书号

{

return bnum;}

//返回值为bnum

void set_bname(char *n)

//设置书名

{strcpy(bname,n);}

char *get_bname()

//获得书名

{return bname;}

void set_bauthor(char *a)

//设置作者

{strcpy(bauthor,a);}

char * get_bauthor()

//获得作者姓名

{return bauthor;}

void set_tag(int t)

//状态设置

{tag=t;}

void set_rname(char *rn)

//设置借阅人

{strcpy(rname,rn);}

char *get_rname()

//获得借阅人姓名

{return rname;}

void show_tag()

//显示图书状态

{

if(tag==1)

{cout

else

{cout

}

void copy(Book m)

//Book结构体copy函数

{

strcpy(bnum,m.get_bnum());

//将获得书号函数里的返回值里的字符复制到bnum

strcpy(bname,m.get_bname());

strcpy(bauthor,m.get_bauthor());

tag=0;

} };//**********书籍管理结构体,实现管理书籍功能********** cla BookManage { private:

Book books[100];

//定义Book书籍结构体数组对象,最大容量100本

int length;

void saveFile()

//保存书籍文件

{

ofstream fwrite;//定义输出文件流ofstream结构体对象fwrite

if(!fwrite)

{cout

}

fwrite.open(BookFile,ios::binary);//使文件流与文件建立关联,以二进制方式打开

fwrite.write((char *)books,length*sizeof(Book));//计算并返回所占字节数

fwrite.close();

//关闭磁盘文件

} void readFile()

//读取书籍文件

{

ifstream fread;//定义输入文件流对象fread

length=0;

if(!fread)

{cout

Book temp;

//定义书籍结构体临时对象temp

int i=0;

fread.open(BookFile ,ios::binary);//使文件流与文件建立关联,以二进制方式打开

while((fread.read((char *)&books[i],sizeof(Book))))

i++;

//每读完一次,指针后移一位,直到不能读出正确结果为止

length=i;

fread.close();} public:

BookManage()

//构造函数,读取磁盘文件

{

length=0;

//从头读起,计数,最大100

readFile();

//调用读取文件函数

}

~BookManage()

//析构函数,保存磁盘文件

{

saveFile();

//调用保存文件函数

}

bool add(Book book)

//添加图书资料

{

if(length>=100)

{ cout

return-1;

}

else

{

books[length].copy(book);//调用书籍结构体copy函数

length++;

return(length-1);

} } int bnu_search(char *bnu)

//按书号查找书籍

{

for(int i=0;i

if(strcmp(books[i].get_bnum(),bnu)==0)//字符串比较,判断是否相等

return i;

return-1;

} int bna_search(char *bna)

//按书名查找书籍

{

for(int i=0;i

if(strcmp(books[i].get_bname(),bna)==0)//判断

return i;

return-1;

} int bau_search(char *bau)//按作者查找书籍

{

for(int i=0;i

if(strcmp(books[i].get_bauthor(),bau)==0)//判断

return i;

return-1;

}

int rn_search(char *rn)//按借阅人查找书籍

{

for(int i=0;i

if(strcmp(books[i].get_rname(),rn)==0)//判断

return i;

return-1;

}

void revise(Book book,int i)//带参的修改书籍函数

{books[i].copy(book);} //调用Book结构体copy函数

void deleteBook(int index)//带参的删除书籍资料函数

{

for(int i=index;i

books[i].copy(books[i+1]);//用后面的地址将当前的地址覆盖

length--;

} void show_book()//不带参的显示书籍函数

{

cout

cout

cout.width(10);

cout

cout.width(10);

cout

cout.width(17);

cout

cout.width(25);

cout

for(int i=0;i

{ cout

cout.width(10);

cout

cout.width(10);

cout

cout.width(20);

books[i].show_tag();

cout.width(20);

cout

}

} void show_book(int i)//带参的显示书籍函数

{ cout

cout

cout.width(10);

cout

cout.width(10);

cout

cout.width(17);

cout

cout.width(25);

cout

cout

cout.width(10);

cout

cout.width(10);

cout

cout.width(20);

books[i].show_tag();

cout.width(20);

cout

}

void br_book()//读者借、还书功能函数

{

ReaderManage reader;

int choi;//选择

int a;

//图书状态指标(1已借2在架)

char sh[10];//需要还书的书号

char dz[10];//读者姓名

cin>>sh;

int index=bnu_search(sh);//定义一个变量等于查找到的书号

if(index>=0)

{ if(books[index].tag==1)//已借

a=1;

if(books[index].tag==0)//在架

a=2;

switch(a)

{ case 1:

coutn“;

cout

0:返回n”;

cin>>choi;

cin.ignore();//清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响

if(choi!=1&&choi!=0)

{

cout

return;

}

else if(choi==1)

{

cout

cin>>dz;

cin.ignore();

int index1=reader.search(dz);

if(index1==-1)

{

cout

return;

}

else

{

strcpy(dz,“”);//将读者姓名已空白代替

books[index].set_rname(dz);//借阅人一项变为空白

books[index].set_tag(0);//图书状态变为在架

cout

}

}break;

case 2:

coutn“;

cout

0:返回n”;

cin>>choi;

cin.ignore();

if(choi!=1&&choi!=0)

{

cout

return;

}

else if(choi==1)

{

cout

cin>>dz;

int index1=reader.search(dz);

if(index1==-1)

{ cout

return;

}

else

{

books[index].set_rname(dz);

books[index].set_tag(1);

cout

}

}break;

}

}

else

{

cout

}

bool in(int i)//判断图书是否在架函数

{

if(books[i].tag==1)

return false;

return true;

}

};//**********菜单结构体,实现界面引导********** cla Menu {

BookManage bm;

//定义书籍管理结构体对象bm ReaderManage rm;

//定义读者管理结构体对象rm Reader r;

//定义读者结构体对象r private: int choice;

//菜单序号选择

int key;

//管理员密码 public: void header()

//页眉

{

system(“color fd”);

cout

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n“;

cout

☆n”;

cout

☆n“;

cout

☆n”;

cout

☆n“;

cout

☆n”;

cout

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n“;} void log_menu()

//主界面登录菜单

{

system(”color fd“);

header();

cout

份 >n”;

cout

者nntttt0: 退

出nt您的选择是: “;choice: cin>>choice;

cin.ignore();

//清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响

switch(choice)

{

case 1:

log_admin();

//管理员登录,需密码验证

break;

case 2:

reader_lr();

//读者登录或注册

break;

case 0:

exit(1);

//退出系统

break;

default:

cout

goto choice;

} } void admin_menu()

//管理员管理菜单

{

system(”cls“);

system(”color f9“);

cout

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n”;

cout

☆n“;

cout

系★统★管★理★界★面

☆n”;

cout

☆n“;

cout

1: 添加新的图书资料

2: 修改已有图书资料

☆n”;

cout

☆n“;

cout

3: 删除已有图书资料

4: 查找已有图书资料

☆n”;

cout

☆n“;

cout

5: 查看所有图书资料

6: 修改读者用户信息

☆n”;

cout

☆n“;

cout

7: 删除读者用户信息

8: 查看所有读者信息

☆n”;

cout

☆n“;

cout

9: 返回系统登录界面

0: 退出图书管理系统

☆n”;

cout

☆n“;

cout

☆n”;

cout

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n“;

cout>choice;

cin.ignore();

switch(choice)

{

case 1:

//添加图书

addBook();

bm.~BookManage();

break;

case 2:

//修改图书

reviseBook();

bm.~BookManage();

break;

case 3:

//删除图书

delBook();

bm.~BookManage();

break;

case 4:

//查找图书

absearch_menu();

break;

case 5:

//查看全部图书

bm.show_book();

cout

system(”pause“);

admin_menu();

break;

case 6:

//修改读者

reviseReader();

rm.~ReaderManage();

break;

case 7:

//删除读者

delReader();

rm.~ReaderManage();

break;

case 8: //查看所有读者

rm.show_reader();

cout

system(”pause“);

admin_menu();

break;

case 9: //返回系统登录界面

system(”cls“);

log_menu();

case 0: //退出系统

exit(1);

break;

default:

cout

goto choice;

} } void reader_menu()

//读者服务菜单

{

system(”cls“);

system(”color f9“);

cout

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n”;

cout

☆n“;

cout

读★者★服★务★界★面

☆n”;

cout

☆n“;

cout

1: 借 阅 图 书

2: 归 还 图 书

☆n”;

cout

☆n“;

cout

3: 查 找 图 书

4: 借 阅 情 况

☆n”;

cout

☆n“;

cout

5: 返 上 一 级

0: 退 出 系 统

☆n”;

cout

☆n“;

cout

☆n”;

cout

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n“;

cout>choice;

cin.ignore();

switch(choice)

{

case 1:

cout

bm.br_book();

bm.~BookManage();

break;

case 2:

cout

bm.br_book();

bm.~BookManage();

break;

case 3:

bsearch_menu();

break;

case 4:

rn_search();

break;

case 5:

system(”cls“);

reader_lr();

break;

case 0:

exit(1);

break;

default:

cout

goto choice;

} } void bsearch_menu()

//读者查找书籍菜单

{

system(”color f2“);

cout

☆n”;

cout

书★籍★查★找★界★面

☆n“;

cout

☆n”;

cout

1: 按 书号查找

☆n“;

cout

☆n”;

cout

2: 按 书名查找

☆n“;

cout

☆n”;

cout

3: 按 作者查找

☆n“;

cout

☆n”;

cout

4: 返 回 上 级

☆n“;

cout

☆n”;

cout

0: 退 出 系 统

☆n“;cout

☆n”;

cout

int bsc;//book search choice cout

cin>>bsc;

cin.ignore();

switch(bsc){

case 1:

bnu_search();

break;

case 2:

bna_search();

“;

break;

case 3:

bau_search();

break;

case 4:

reader_menu();

break;

case 5:

exit(1);

default:

cout”;

break;

}

}

void absearch_menu()

//管理员查找书籍菜单

{

system(“color f2”);

cout

cout

☆n“;

cout

书★籍★查★找★界★面

☆n”;

cout

☆n“;

cout

1: 按 书号查找

☆n”;

cout

☆n“;

cout

2: 按 书名查找

☆n”;

cout

☆n“;

cout

3: 按 作者查找

☆n”;

cout

☆n“;

cout

4: 返 回 上 级

☆n”;

cout

☆n“;

cout

0: 退 出 系 统

☆n”;

cout

☆n“;

cout

int bsc;//book search choice

cout

cin>>bsc;

cin.ignore();

switch(bsc)

{

case 1:

bnu_search();

break;

case 2:

bna_search();

break;

case 3:

bau_search();

break;

case 4:

admin_menu();

break;

case 5:

exit(1);

default:

cout”;

break;

}

} void reader_lr()//读者登录或注册菜单 {

system(“cls”);

header();

system(“color f1”);

cout

面 >n“;

cout

1: 登

录t2: 注

册nnttt

3: 返

回t0: 退

出nt您的选择是: ”;

int rlc;//reader login choice choice: cin>>rlc;

cin.ignore();

switch(rlc)

{

case 1:

//已注册读者登录

cout

char rn[10];//reader name

cin>>rn;

r.set_rname(rn);

if(rm.log_reader(r))

{

cout

system(“pause”);

reader_menu();

}

else

cout

system(“pause”);

reader_lr();

break;

case 2:

//新用户注册

rm.reg_reader();

rm.~ReaderManage();

system(“pause”);

reader_lr();

break;

case 3:

system(“cls”);

log_menu();

case 0:

exit(1);

break;

default:

cout

goto choice;

} } void log_admin()

//管理员登录

{

cout

int key;

cin>>key;

if(key==14125)

{

cout

system(“pause”);

admin_menu();

//管理员操作菜单

}

else

{cout

cout

0:退出系统>

cin>>choice;

cin.ignore();

switch(choice)

“;”;

{

case 1:

system(“cls”);

log_menu();

break;

case 0:

exit(1);

break;

default:

cout

}

} } void rn_search()

//按书号查找函数

{

char rn[10];//reader name

cout

cin>>rn;

int index=bm.rn_search(rn);

if(index>=0)

bm.show_book(index);

else

cout

cout

system(“pause”);

reader_menu();

} void bnu_search()

//按书号查找函数

{

char bnu[10];

cout

cin>>bnu;

int index=bm.bnu_search(bnu);

if(index>=0)

bm.show_book(index);

else

cout

cout

system(“pause”);

bsearch_menu();

}

void bna_search()

//按书名查找函数

{

cout

char bna[20];

cin>>bna;

int index=bm.bna_search(bna);

if(index>=0)

bm.show_book(index);

else

cout

cout

system(“pause”);

bsearch_menu();

}

void bau_search()

//按作者查找函数

{

cout

char bau[10];

cin>>bau;

int index=bm.bau_search(bau);

if(index>=0)

bm.show_book(index);

else

cout

cout

system(“pause”);

bsearch_menu();

}

void addBook()

//新增书籍函数

{ char numb[10];

//书号

char nameb[20];

//书名

char authorb[10];//作者

Book book;

//书籍结构体对象book

int tag1;input1:cout

cin>>numb;

int index=bm.bnu_search(numb);

if(index==-1)

{

cout

cout

cin>>nameb;

cout

cin>>authorb;

tag1=0;

book.set_bnum(numb);

book.set_bname(nameb);

book.set_bauthor(authorb);

book.set_tag(tag1);

bm.add(book);

cout

}

else

{

cout

goto input1;

}

system(“pause”);

admin_menu();} void reviseBook()

//修改书籍函数

{

char numb[10];

char nameb[20];

char authorb[10];

Book book;

int index=-1;input2: cout

cin>>numb;

index=bm.bnu_search(numb);

if(index==-1)

{

cout

goto input2;

return;

}

bool sta=bm.in(index);//判断是否在馆

if(sta)

{ cout状态,您可以继续操作!“;

cout

cin>>nameb;

cout

cin>>authorb;

book.set_bnum(numb);

book.set_bname(nameb);

book.set_bauthor(authorb);

bm.revise(book,index);

cout

else

cout

system(”pause“);

admin_menu();

} void delBook()

//删除书籍函数

{

char numb[10];

cout

cin>>numb;

int index=bm.bnu_search(numb);

if(index>=0)

{

cout

”;

char y;

cin>>y;

if(y=='y'||y=='Y')

{

bm.deleteBook(index);

cout

}

else

cout

}

else

cout

system(“pause”);

admin_menu();

} void reviseReader()//修改读者用户函数

{

char namer[10];

Reader reader;get1:

cout

cin>>namer;

int index=rm.search(namer);

if(index==-1)

{

cout

int a;

cin>>a;get2:

cin.ignore();

switch(a)

{

case 1:

goto get1;

break;

case 0:

system(“pause”);

admin_menu();

break;

default:

cout

“;

goto get2;

}

return;

}

”;

else

{

char namer[10];

char clar[10];

char telr[10];

Reader reader;

cout

cin>>namer;

cout

cin>>clar;

cout

cin>>telr;

reader.set_rname(namer);

reader.set_rcla(clar);

reader.set_rtel(telr);

cout

char y;

cin>>y;

if(y=='y'||y=='Y')

{ rm.revise(reader,index);

cout

}

else

cout

}

system(“pause”);

admin_menu();

}

void delReader()

//删除读者用户函数

{

cout

char namer[10];

cin>>namer;

int index=rm.search(namer);

if(index>=0)

{

cout

char y;

cin>>y;

if(y=='y'||y=='Y')

{

rm.delete_reader(index);

cout

}

else

cout

}

else

cout

system(“pause”);

admin_menu();

} };//********主函数******** int main(){

system(“color fd”);Menu menu;//定义菜单结构体对象menu

cout

“;cout

当前日期:2011-6-22 星期三”;cout

当前时间:08:00

“;cout

★ 欢 ”;cout

} cout

1主页面

2.管理员登陆页面

3.图书添加

五.课程设计过程中出现的问题、原因及解决方法

1.用户登录密码时,不能使用暗码来保护密码。(未解决成功)2.每个界面都能退出到主页面,而不是直接跳出系统。(以解决)3.书名字长太多影响书籍、作者、数量等之间的一一对应关系。(为解决成功)

六.课程设计的主要收获

通过这几天学习设计图书信息管理系统,认识到一切看似简单的事情只有自己动手做,明白了其中的原理才会更好的把它变成自己的东西。图书管理系统主要用到了文件的输入输出,以及利用简单的顺序查找知识,加深了对数据结构的理解与应用。对于这次的课程设计,首先,许多知识不仅仅只是课本上的,需要我们自己去图书馆或网上收集资料。其次,编程过程终遇到各种错误,需要我们耐心分析,讨论,最后得出正确结果。第三,程序无错,进行调试,然后进行加工修改优化。

七.对今后课程设计的建议

希望老师可以分小组做课程设计,题目可以相应的增大难度。分组可以锻炼团对合作能力,队员可以相互讨论解决问题,彼此能够激发更多的思想,做出更完善的作品,同时也防止了互相拷贝的情况,让每个同学都积极的参与到设计中,而不是坐享其成。

《图书管理系统 数据结构 课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
图书管理系统 数据结构 课程设计
点击下载文档
相关专题 数据结构课程设计格式 数据结构 课程设计 图书管理系统 数据结构课程设计格式 数据结构 课程设计 图书管理系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文