c语言课程设计的图书目录 C语言课程设计:图书管理系统。求完整的代码参考。

作者&投稿:钭昏 (若有异议请与网页底部的电邮联系)

第1部分 基本数据结构应用
第2部分 综合应用
第3部分 图形界面部分
参考文献
《C语言程序设计》是电子信息技术相关专业的专业能力模块课程。



c语言程序设计的图书目录~

第1章 C语言基础知识1.1 C语言概述1.1.1 C程序的结构1.1.2 C程序的上机步骤1.2 C语言的基本数据类型1.2.1 标识符1.2.2 常量1.2.3 变量1.3 基本输入/输出函数1.3.1 格式化输出函数1.3.2 格式化输入函数1.3.3 字符输入/输出函数1.4 运算符和表达式1.4.1 算术运算符与算术表达式1.4.2 赋值运算符与赋值表达式1.4.3 逗号运算符与逗号表达式1.4.4 简单的位运算与位表达式1.4.5 运算符的优先级1.5 类型转换1.5.1 隐式类型转换1.5.2 显式类型转换1.6 C程序展示本章小结习题第2章 算法2.1 算法的概念2.2 利用计算机求解问题的一般过程2.3 算法的描述2.3.1 用自然语言描述算法2.3.2 用流程图描述算法2.3.3 用N-S流程图描述算法2.3.4 用伪代码描述算法2.3.5 用计算机语言描述算法2.4 算法举例本章小结习题第3章 C程序的控制结构3.1 分支结构3.1.1 关系表达式和逻辑表达式3.1.2 if语句3.1.3 条件表达式3.1.4 switch语句3.2 循环结构3.2.1 while语句3.2.2 do…while语句3.2.3 for语句3.2.4 break语句和continue语句3.2.5 循环的嵌套3.3 综合应用本章小结习题第4章 数组与指针4.1 数组4.1.1 一维数组4.1.2 二维数组4.1.3 字符数组4.2 指针4.2.1 指针变量的定义与相关运算4.2.2 指针与一维数组4.2.3 指针与二维数组4.2.4 指针数组4.2.5 指针与字符串4.3 动态内存分配4.4 数组与指针综合应用4.4.1 单词统计4.4.2 排序4.4.3 查找4.4.4 进制转换4.4.5 二维数组应用本章小结习题第5章 函数5.1 函数概述5.1.1 函数的定义5.1.2 函数的声明和调用5.2 函数参数的传递方式5.2.1 值传递方式5.2.2 地址传递方式5.3 函数的嵌套与递归5.3.1 函数的嵌套调用5.3.2 函数的递归调用5.4 变量的作用域与存储类型5.4.1 变量的作用域5.4.2 变量的存储类型5.5 内部函数和外部函数5.5.1 内部函数5.5.2 外部函数5.6 编译预处理5.6.1 宏定义5.6.2 文件包含5.6.3 条件编译5.7 标准函数简介5.7.1 字符串处理函数5.7.2 字符处理函数5.7.3 动态地址分配函数5.7.4 数学函数5.7.5 数据类型转换函数5.7.6 其他函数5.8 函数综合应用案例5.8.1 字符串处理函数应用5.8.2 函数指针应用5.8.3 递归算法应用本章小结习题第6章 结构体与共用体6.1 结构体类型6.1.1 结构体类型的定义和使用6.1.2 指向结构体类型数据的指针6.2 共用体与枚举类型6.2.1 共用体6.2.2 枚举类型6.3 链表6.4 结构体综合应用6.4.1 学生成绩查询6.4.2 个人通讯录本章小结习题第7章 文件操作7.1 文件概述7.1.1 文件的概念7.1.2 文件类型指针7.1.3 文件的操作7.2 文件的打开和关闭7.2.1 文件打开函数7.2.2 文件关闭函数7.3 文件的顺序读/写7.3.1 字符读/写函数7.3.2 字符串读/写函数7.3.3 格式化读/写函数7.3.4 二进制文件读/写函数7.4 文件的随机读/写7.5 文件状态检查函数7.5.1 文件读/写结束检查函数7.5.2 文件出错检查函数7.5.3 文件出错复位函数本章小结习题第8章 C语言课程设计8.1 C语言课程设计实施方案8.2 C语言课程设计任务书18.3 C语言课程设计任务书28.4 C语言课程设计任务书38.5 C语言课程设计任务书48.6 C语言课程设计任务书5附录A 常用字符与ASCII(十进制)对照表附录B C语言课程设计模板参考文献

#include
#include
#include

using namespace std;

struct BookInfo
{
char loginname[10];
char bookname[20];
char author[20];
char number[5];
char date[10];
double price;
};


struct Node
{
struct BookInfo book;
struct Node *next;
};


void option();
void select();
Node *head;
Node *pt[10];
FILE *fp;

//创建链表
/*
Node *CrtNode(int n)
{
Node *head; //声明头指针head
Node *p,*s;
head=new Node; //创建头结点由head指向(空的头结点)
s=head;
cout<<"请输图书信息:"<<endl;
for(int i=0;i<n;i++)
{
p=new Node; //创建一个结点
cout<<"登录名:";
cin.getline(p->book.loginname,10);
strcat(p->book.loginname,"
");
cout<<"书名:";
cin.getline(p->book.bookname,20);
strcat(p->book.bookname,"
");
cout<<"作者名:";
cin.getline(p->book.author,20);
strcat(p->book.author,"
");
cout<<"分类号:";
cin.getline(p->book.number,5);
strcat(p->book.number,"
");
cout<<"出版日期:";
cin>>p->book.date;
strcat(p->book.date,"
");
cout<<"价格:";
cin>>p->book.price;
s->next=p; //把创建的结点由s的next指向
s=p; //指针s的指向向后移一个结点
cin.clear();
cin.sync();
}
p->next=NULL; //最后一个结点的next指向空
return head; //返回头指针
}
*/
/*
strcat(p->book.loginname,"
");
strcat(p->book.bookname,"
");
strcat(p->book.author,"
");
strcat(p->book.number,"
");
strcat(p->book.date,"
");
*/

//1.插入
void Insert(Node *head)
{
Node *p,*s;
s = head;
cout<<"请输入图书信息:"<<endl;
p=new Node;
cin.clear();
cout<<"登录名:";
cin.getline(p->book.loginname,10);
strcat(p->book.loginname,"
");
cin.clear();
cin.sync();
cout<<"书名:";
cin.getline(p->book.bookname,20);
strcat(p->book.bookname,"
");
cin.clear();
cin.sync();
cout<<"作者名:";
cin.getline(p->book.author,20);
strcat(p->book.author,"
");
cin.clear();
cin.sync();
cout<<"分类号:";
cin.getline(p->book.number,5);
strcat(p->book.number,"
");
cin.clear();
cin.sync();
cout<<"出版日期(yyyy-mm-dd):";
cin>>p->book.date;
strcat(p->book.date,"
");
cout<<"价格:";
cin>>p->book.price;
while(s->next)
s = s->next;
s->next = p;
p->next = NULL;
}

//初始化
Node *Initial()
{
Node *head;
head = new Node;
head->next = NULL;
return head;
}


//2.显示所有信息
void Show(Node *head)
{
int i = 1;
Node *p;
//显示除头结点以后所有结点(因为创建时头结点为空)
p=head->next;
if(p == NULL)
{
cout<<"系统没有储存任何图书信息,请输入图书信息后再进行其他操作!"<<endl;
}
else
{
cout<<"*********下面是所有的图书信息**********"<<endl;
while(p!=NULL)
{
coutbook.bookname<<endl;
coutbook.loginname;
coutbook.bookname;
coutbook.author;
coutbook.number;
coutbook.date;
coutbook.price;
cout<<endl;
p=p->next;
i++;
cout<<endl;
}
}

cout<<"请按回车键返回菜单。"<<endl;
cin.get();
}



//3.查找
int findauthor(const Node *head)
{
Node *ps;
char author[20];
int count = 0;
ps = head->next;
cout<<"请输入作者名:";
cin.getline(author,20);
strcat(author,"
");
while(ps)
{
if(strcmp(ps->book.author,author) == 0)
{
pt[0] = ps;
count++;
}
ps = ps->next;
}
if(count == 0)
cout<<"查找的图书不存在!"<<endl;
return count;
}

int findbookname(const Node *head)
{
Node *ps;
char bookname[20];
int count = 0;
int i = 0;
ps = head->next;
cout<<"请输入书名:";
cin.getline(bookname,20);
strcat(bookname,"
");
while(ps)
{
if(strcmp(ps->book.bookname,bookname) == 0)
{
pt[i] = ps;
count++;
i++;
}
if(ps->next ==NULL)
break;
ps = ps->next;
}
if(count == 0)
cout<<"查找的图书不存在!"<<endl;
return count;
}

void Showarray(int n)
{
cout<<"*********下面是所查找的图书信息**********"<<endl;
for(int i=0;i<n;i++)
{
coutbook.bookname;
coutbook.loginname;
coutbook.bookname;
coutbook.author;
coutbook.number;
coutbook.date;
coutbook.price;
cout<<endl;
}
cin.get();
}

int Find(Node *head)
{
int n,num;
system("cls");
if(head->next == NULL)
{
cout<<"系统没有储存任何图书信息,请输入图书信息后再进行其他操作!"<<endl;
cin.get();
}
else
{
cout<<"请选择查找方式(1.按作者名查找 2.按书名查找):";
cin>>n;
cin.clear();
cin.sync();
switch(n)
{
case 1:
num = findauthor(head);
if(num != 0)
Showarray(num);
break;
case 2:
num = findbookname(head);
if(num !=0)
Showarray(num);
break;
default:
cout<<"输入有误,请重新输入!"<<endl;
cin.get();
system("cls");
option();
select();
}
}
return num;
}




//4.修改图书信息

void Modify(Node *head)
{
Node *p,*q,*s;
p = head->next;
int i,n;
if(p == NULL)
cout<<"系统没有储存任何图书信息,请输入图书信息后再进行其他操作!"<<endl;
else
{
cout<<"请输入需要更正信息的图书名:"<<endl;
n = findbookname(head);
Showarray(n);
loop:
{
cout<<"请选择对第几本书的信息进行修改:";
}
cin>>i;
cin.clear();
cin.sync();
if(i > 0 & i <= n)
{
cout<<"******修改第"<<i<<"本书的其他信息******"<<endl;
cout<<"登录名:";
cin.getline(pt[i-1]->book.loginname,10);
strcat(pt[i-1]->book.loginname,"
");
cin.clear();
cin.sync();
cout<<"作者名:";
cin.getline(pt[i-1]->book.author,20);
strcat(pt[i-1]->book.author,"
");
cin.clear();
cin.sync();
cout<<"分类号:";
cin.getline(pt[i-1]->book.number,5);
strcat(pt[i-1]->book.number,"
");
cin.clear();
cin.sync();
cout<<"出版日期(yyyy-mm-dd):";
cin>>pt[i-1]->book.date;
strcat(pt[i-1]->book.date,"
");
cout<<"价格:";
cin>>pt[i-1]->book.price;
}
else
{
cout<<"选择的书的序号有误!";
goto loop;
}
}
cin.get();
}


//5.删除图书信息
void Deletebook(Node *head)
{
Node *p,*q;
char bookname[20];
int count = 0;
int i = 0;
p = head;
q = p->next;
if(q == NULL)
cout<<"系统没有任何图书信息!"<<endl;
else
{
cout<<"请输入书名:";
cin.getline(bookname,20);
strcat(bookname,"
");
while(q != NULL)
{
q = p->next;
if(strcmp(q->book.bookname,bookname) == 0)
{
p->next = q->next;
delete q;
count++;
}
p = q;
q = q->next;
}
if(count == 0)
cout<<"没有找到该图书信息!"<<endl;
else
cout<<"图书信息已经删除!"<<endl;
}
cin.get();
}

//链表长度
int Len(const Node *head)
{
Node *ps;
int count = 0;
ps = head->next;
while(ps)
{
count++;
ps = ps->next;
}
return count;
}



//6.保存文件

void save(Node *head)
{
Node *p;
char st[20];
p = head->next;
if((fp=fopen("book.dat", "w"))==NULL)
{
cout<<"打开文件失败"<<endl;
return;
}
char t[255];

//将 L1.listlen() 赋予字符串中的数字
int lenth = Len(head);
fwrite(&lenth,sizeof(int),1,fp);
while(p)
{
fwrite(p,sizeof(struct Node),1,fp);
p = p->next;
}
fclose(fp);
cout<<"文件已经保存,请按ENTER键退出!"<<endl;
cin.get();
}

//8.删除所有图书信息
void Free_List(Node *head)
{
Node *p;
p = head->next;
while(p)
{
delete p;
p = head->next;
}
}



/*
void readstr(FILE *f,char *string)
{
do
{
//①: 先读入一行文本
fgets(string, 255, f); //fgets(): 从文件 f 读入长度为 255-1 的字符串
// 并存入到 string 中
} while ((string[0] == '/') || (string[0] == '
'));

return;
}

*/

//读取文件

Node *Load()
{
char c[255];
int lenth;
Node *p,*q;
head = new Node;
p = head;
if((fp=fopen("book.dat", "r"))==NULL)
{
cout<<"打开文件失败"<<endl;
return head;
}
else
fread(&lenth,sizeof(int),1,fp);
for(int i = 0;i < lenth;i++)
{
q = new Node;
fread(q,sizeof(struct Node),1,fp);
p->next = q;
p = q;
}
p->next = NULL;
fclose(fp);
return head;
}




//9.菜单选项
void select()
{
int m,n;
cout<<"请输入以下数字来选择所需要的操作(1~8):";
cin.clear();
cin.sync();
cin>>n;
cin.clear();
cin.sync();
switch(n)
{
case 1:
system("cls");
Insert(head);
break;
case 2:
system("cls");
Show(head);
break;
case 3:
system("cls");
Find(head);
break;
case 4:
system("cls");
Modify(head);
break;
case 5:
system("cls");
Deletebook(head);
break;
case 6:
save(head);
break;
case 7:
exit(0);
break;
case 8:
Free_List(head);
break;
default:
break;
}

}


//10.菜单界面
void option()
{
cout<<" 图书信息管理系统          "<<endl;
cout<<"*****************************************************"<<endl;
cout<<" 1.输入图书信息 2.输出图书信息 "<<endl;
cout<<" 3.查找图书信息 4.修改图书信息 "<<endl;
cout<<" 5.删除图书信息 6.保存图书信息 "<<endl;
cout<<" 7.退出系统 "<<endl;
cout<<"*****************************************************"<<endl;
}
int main()
{

//head = Initial();
head = Load();
while(1)
{
system("cls");
option();
select();
}
return 0;
}

c语言程序设计的图书目录
答:第1章 C语言基础知识1.1 C语言概述1.1.1 C程序的结构1.1.2 C程序的上机步骤1.2 C语言的基本数据类型1.2.1 标识符1.2.2 常量1.2.3 变量1.3 基本输入/输出函数1.3.1 格式化输出函数1.3.2 格式化输入函数1.3.3 字符输入/输出函数1.4 运算符和表达式1.4.1 算术运算符与算术表达式...

c语言课程设计的图书目录
答:第1部分 基本数据结构应用第2部分 综合应用第3部分 图形界面部分参考文献《C语言程序设计》是电子信息技术相关专业的专业能力模块课程。

c++程序设计的图书目录
答:第1章 C++语言概述 11.1 C++语言的发展 11.2 C++程序概述 21.2.1 C++程序的结构和组成 21.2.2 C++程序的开发过程 61.3 Visual C++ 6.0集成环境的使用 61.3.1 Visual C++简介 61.3.2 项目开发过程 71.3.3 集成开发环境Developer Studio 71.3.4 创建C++程序 101.4 C++语言的数据类型 ...

普通语言学教程的图书目录
答:前言第一版序第二版序第三版序绪论第一章 语言学史一瞥第二章 语言学的材料和任务;它和毗邻科学的关系第三章 语言学的对象第四章 语言的语言学和言语的语言学第五章 语言的内部要素和外部要素第六章 文字表现语言第七章 音位学附录: 音位学原理第一章 音位学的种类第二章 语链中的音位编者...

VHDL语言100例详解的图书目录
答:绪论——专用集成电路(asic)设计与vhdl语言(代前言)i asic设计面临严峻的挑战ii 硬件描述语言 vhdl的出现与发展状况iii vhdl语言的特点iv vhdl语言高级综合v vhdl语言混合级模拟vi vhdl语言高级综合系统talentvii vhdl语言100例的选取与本书的撰写目标第1例 带控制端口的加法器第2例 无控制端口的加法...

《C语言课程设计(第3版)/程序设计语言课程设计丛书》epub下载在线阅读全 ...
答:书名:C语言课程设计(第3版)出版年份:2013年8月 页数:340 内容简介 本书分为5篇,共16章,精心开发了10个案例。第一篇重点介绍了C语言的基本知识点和课程设计的指导工作。第二篇介绍字符界面及文件操作编程,包括通讯录管理、学生成绩管理、家庭财务管理和图书管理这4个系统的设计与实现过程。第三...

语用学研究的图书目录
答:中心优选理论和修辞结构——以“篇章”为导向的回指优选解析·预设专题研究认知参照点与语用预设——预设的认知研究命题、空间和预设论语用预设的性质“预设”刍议·语用学与外语教学研宄面子、关联及中国英语课堂的沉默TEM-8翻译中的关联一顺应构思大学英语四级听力测试中的语用分析模因论与语言模因教学...

幼儿园图书目录清单
答:幼儿园图书目录清单有《晴朗的一天》、《形状游戏》、《驴小弟变石头》。1、《晴朗的一天》适合年龄:3-6岁幼儿。推荐理由:这本书的语言也具有独特的深意,首先引起人们注意的,是其中重复的韵律。这样的重复,很容易吸引孩子的互动,他们会不由自主地跟随小狐狸一起重复它要说的话。而随着小狐狸需要...

语言学百问和硕博指南的图书目录
答:什么是语言学?I.3 What makes linguistics a science?语言学如何成为~门科学?I.4 What are the major branches oflinguistics?语言学有哪些分支学科?I.5 What are design features oflanguage?什么是语言的结构特征?。I.6 What is arbitrariness?什么是任意性?I.7 What is duality?什么是双层性?I.8 What ...

高中语文教材基础知识全解的图书目录
答:《高中语文教材基础知识全解》语言文字运用篇第一部分 现代汉语及其语音 现代汉语 (一)现代汉语的含义(二)现代汉语的特点(三)现代汉语的三要素(四)普通话(五)现代汉语方言(六)联合国的六种工作者 现代汉语语音 (一)语音学的基本概念(二)汉语拼音方案(三)拼音规则(四)其他注音...