大一c语言课程设计题目计

(编程分享)
(编程分享)
(万般灬无赖)
(万般灬无赖)
第三方登录:没有更多推荐了,
不良信息举报
举报内容:
c语言课程设计
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!当前位置:
C语言课程设计
字数:9.7万
点击:4.6万
用户还喜欢
《Hadoop技术内幕》共两册,分别从源代码的角度对“Common+HDFS”和MapReduce的架构设计和实现原理进行了极为详细的分析。《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。
本书由Hadoop领 域资深的实践者亲自执笔,首先介绍了MapReduce的 设计理念和编程模型,然后从源代码的角度深入分析 了RPC框架、客户端、JobTracker、TaskTracker和 Task等MapReduce运行时环境的架构设计与实现原理 ,然后从实际应用的角度深入讲解了Hadoop的性能优 化、安全机制、多用户作业调度器和下一代 MapReduce框架等高级主题和内容。《Hadoop技术内 幕(深入解析MapReduce架构设计与实现原理)》适 合Hadoop的二次开发人员、应用开发工程师、运维工 程师阅读。
本书讨论的主要内容是“测试策略”,虽然现在已经有很多优秀的测试类书籍,但是讨论测试策略方面的书籍却比较少,本书可以为读者在测试策略的制定上提供很有价值的参考。
《Spring技术内幕:深入解析Spring架构与设计原理》是国内一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的专业Java专家亲自执笔,Java开发者社区和Spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛好评,而且在销量上也摘取了同类书的桂冠,曾经一度掀起Java类图书的销售热潮。第2版不仅继承了第1版在内容组织和写作方式上的优点,而且还根据广大读者的反馈改进了若干细节上的不足。更为重要的是,结合Spring的全新版本对过时的内容进行了更新,并增加了大量新内容,使本书更趋近于完美。
本书共九章,从C语言自身,一直探讨到(进程)模块之间的共享与通信。前八个章节,更多是工程和具体代码设计的讨论,而最后一个章节则是系统分析与系统设计方法的讨论。对于期望、正在从事系统整体规划、构架、设计的读者,建议首先了解最后一章内容,而对于欠缺系统分析经验的新进工程师,则建议从第1章开始阅读。同时建议对书稿中的代码进行上机验证,在执行反馈中了解本书的观点,并进行修正,形成自身工程代码库。
C语言课程设计&&著
《C语言课程设计》(作者刘博、董学文)介绍C语言编程环境、调试方法、编码风格,将C语言程序设计题目分为文件类、字符串娄、算法类、综合类和其他类进行分析讲解,做到重点突出、简洁明了,引导读者结合参考程序进一步思考,并且不少题目都提供了多种实现方法,启发读者从多个角度进行思考。《C语言课程设计》可作为高等院校计算机及相关专业C语言课程设计教材,也可供程序爱好者自学练习参考。
目录(62章)
刘博,董学文等著有《C语言课程设计》。;
网易公司版权所有©1997-2017
购买书籍后无法阅读等问题
网易邮箱登录
其他帐号登录:
在客户端“资讯”首页刷新后,即可阅读此内容。
在客户端“书籍”首页刷新后,即可阅读此书籍。
还差两步,你就能在客户端上阅读此内容。
排序保存成功!本书是一本实践性和应用性很强的C语言实用教材,精心选取了14个经典案例。
& & 全书分为5篇,共16章,案例涵盖了游戏开发、文件操作、网络编程、仿Windows应用程序开发等范畴。
& & 全书每个案例程序的开发都使用了软件工程的方法,即遵循了从分析→设计→编码→运行调试的路线,内容组织合理、分析详细、通俗易懂,
& & 除了第四篇中的三个程序(都为纯C代码)在VC6.0中调试通过以外(因为TC中没有需要的头文件),其余所有程序都在Turbo C 2.0或Win-TC中测试通过。
目录第一篇
基础知识第1章
C语言概述 31.1
C语言的出现及发展 31.2
C语言的特点 31.3
Turbo C集成环境介绍 41.4
Win-TC集成环境介绍 81.5
C语言基本语法概述 141.6
小结 27第2章
基础知识回顾 292.1
图形知识 292.2
文件操作知识 372.3
Windows网络编程知识 412.4
中断知识 562.5
小结 61第二篇
游戏编程第3章
俄罗斯方块游戏 653.1
设计目的 653.2
功能描述 653.3
总体设计 663.4
程序实现 72第4章
推箱子游戏 934.1
设计目的 934.2
功能描述 934.3
总体设计 934.4
程序实现 99第5章
打字游戏 1215.1
设计目的 1215.2
功能描述 1215.3
总体设计 1225.4
程序实现 127第三篇
文件操作第6章
学生选课管理系统 1396.1
设计目的 1396.2
功能描述 1396.3
总体设计 1406.4
程序实现 1496.5
小结 188第7章
图书管理系统 1897.1
设计目的 1897.2
功能描述 1897.3
总体设计 1907.4
程序实现 2007.5
小结 234第8章
教师人事管理系统 2358.1
设计目的 2358....
直属事业部
扫描关注官方微博
扫描关注官方微信
版权所有(C)2014 清华大学出版社有限公司 京ICP备号 京公网安备48号C语言课程设计——图书管理系统(成功文)
一 课程设计目的:
&通过一年的学习,使我们对自己涉及的专业有了一定的了解。课程设计的目的就是要锻炼大家运用所学知识解决实际问题的能力,让我们在实践中更加深刻的了解C语言的运用特点。
本次课程设计要完成以下目的:
1、 新书入库: 图书信息包括书名, 书号, 库存量, 现存量共4项. 首先输入3本书的信息, 并将其存入文件
”book.dat” 中. 当有新书入库时, 先判断文件中是否有此书( 即比较书名 ),
若有该书在图书账目中已经存在,则将其库存量增加(包括总库存量和现库存量的信息); 若该书不存在,
则在图书账目中增加一种书,总库存量和现库存量的信息添加到文件中.&
2、图书查询: 输入一个书号, 在文件中查找此书, 若找到则输出此书的全部信息; 若找不到则输出查找失败的信息.
3、借阅管理
3.1每个读者的信息包括姓名, 编号, 1张借书卡( 限借一本书 ), 输入3个读者的信息存入文件 “reader . dat”
3.2借书登记: 输入读者的编号,& 所借图书的书号,
先判断姓名是否在文件”reader.dat” 中, 若有则将书号存入一张借书卡上( 注: 初始时借书卡的信息都为零,
借书后借书卡的信息改为所借书的书号), 并修改文件”reader.dat”的相应内容,
同时修改文件”book.dat”中此书的现存量. 若”reader.dat”无此姓名, 则应提示错误
3.3还书管理: 输入读者的编号, 所还图书的书号, 将借书卡的信息置为零, 并修改文件”reader.dat”的相应内容,
同时修改文件”book.dat”中此书的现存量.
4、输出全部图书信息和全部读者信息:virtual viod& Show();& // 显示书的信息,class& Reader { //& 读者信息类&& char Name[ ],//姓名&& char position[ ];//职务& //年龄& long&//借书证号}
5、退出系统.
6、附加说明:系统将来完善的功能有:添加读者,一位读者可同时借阅和归还多本图书等
二 设计方案论证
1 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1.1新书入库模块:可用一个函数insert_new_book(char book_num[],char
book_name[],int number)来实现。形参分别为:书名,
书号,以及有多少本书要入库,再根据要求将信息写入文件boot.dat中。又由于最开始要输入三本新书,故可以加一个初始化函数init_book(),但是初始化函数只执行一次,也就是在系统第一次运行的时候执行,此时可以根据判断是否存在boot.dat这个文件来决定是否执行初始化函数.
1.2查询模块:可用一个函数void find_book(char
book_num[])来实现。找到就输出此书全部信息,找不到就输出查找失败信息。
1.3借阅管理模块:
三个读者的信息可以在系统初始化时完成.即可用初始化函数init_reader()来实现对读者的初始化。因为读者初始化函数也只是在系统第一次运行的时候执行一次,故也可以根据是否存在reader.dat文件来确定是否执行此函数。(到现在可以发现在系统初始化函数里,至少已经需要调用两个初始化函数了)
借书登记模块:可用一个函数borrow_book(char reader_num[],char
book_num[])来实现。在函数中要分别判断
A 该读者的编号是否已经存在,如果不存在,则提示错误。
B 该读者的借阅书是否已满(即最多只能借1本书)如果是,则提醒该用户先去还书
C 输出的书号对应的书是否存在,如果不存在,则提醒读者不存在此书。
D 借书过程完成后,则对读者信息里的借书信息写上所借书号,并修改库存量。
1.4还书管理模块:可用一个函数return_book(char reader_num[],
char book_num[])来实现。在实现此函数时要判断:
A 该读者的姓名是否已经存在,如果不存在,则提示错误。
B 该读者是否已经借阅此书。如果没有,则提示错误。
C 还书过程完成后,则对读者信息里的借书信息清零,并修改库存量。
输出图书和读者信息:可分别用模块print_book()和print_reader()来实现
直接从book.dat文件和reader.dat文件中读取信息并输出。
退出系统:可用一个函数exit()来实现。首先将信息保存到文件,释放动态创建的内存空间,再退出此程序。
系统主模块结构图:&&&&&&
&&&&&&&&&&&&&&&
输出图书信息
输出读者信息
图书管理系统
&图1 图书管理系统结构图
3 &界面设计
此系统界面采用图形和数字化菜单设计。
主界面设计如下:
图书管理系统
图书管理系统主菜单
请选择相应的数字执行相应的功能:
0:退出此系统
1:新书入库
2:图书查询
3:借书登记
4:还书管理
5:输出全部图书信息和读者信息
各子界面如下:
1、新书入库界面:
请选择相应的数字执行相应的功能:
10:返回主菜单
11:新书入库
请输入新书名:
请输入新书号:
请输入新书数量:
&&&&&&&&&&&&&
(注:新书入库成功后,程序返回到子界面1)
2、图书查询界面界面:
&& 请选择相应的数字执行相应的功能:
20:返回主菜单
21:图书查询
请输入需要查询的书号:
&&&&&&&&&&&&&&&&
(注:图书查询完成后,返回到子界面2)
3、借书登记界面:
请选择相应的数字执行相应的功能:
30:返回主菜单
31:借书登记
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
请输入读者编号:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
请输入所借书号:
&&&&&&&&&&&&&&&&&
(注:借书过程完成后,返回到子界面3)
4、还书管理:
请选择相应的数字执行相应的功能:
40:返回主菜单
41:还书登记
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
请输入读者编号:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
请输入所借书号:
&&&&&&&&&&&&&&&&&
(注:还书过程完成后,返回到子界面4)
&&&&&&&&&&
&5、输出全部图书和读者信息:
请选择相应的数字执行相应的功能:
50:返回主菜单
51:输出全部图书信息:
&&&&&书号:&&
书名:&&&&&&
&&&&&&&&&&&&&&库存量:&&&&&&&&
现存量:&&&
52:输出全部读者信息:
读者编号&&&
&&&&&&&&读者姓名&&&&&
(注:输出图书和读者信息后,返回到子界面5)&&
4 &数据结构设计
程序中考虑到图书信息和读者信息中都包含有不同类型的数据,故分别建立图书和读者两种类型的结构体;由于图书和读者的数量非固定,所以采用动态链式存储来实现。
图书类型:
typedef struct bk{
char& book_num[11];
char& book_name[41];
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
unsigned&&
book_kc,book_
struct bk& *
&&&&&&&&&&&&&&&&&
读者类型:
typedef struct rd{
char& reader_num[11];&
char& reader_name[11];
&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
char& reader_book_num[11];
struct bk& *
&&&&&&&&&&&&&&&&&
5 &主要功能程序结构设计
5.1 系统主要结构流程图:
已做初始化
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
输出图书信息
输出读者信息
图2 主程序流程图
5.2 新书入库功能程序结构图
&&&&&&&&&&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
输入新书名、新书号和新书数量
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(还有新书)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
根据数量修改库存
已存在此新书
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
结束(即返回主菜单)
&book.dat中增加此新
书,根据数量设置库存量
图3 新书入库流程图
5.3 图书查询程序结构图:
输入要查询的书号
是否存在此书
输入信息:此书不存在
&&&&&&&&&&&&&&&&&&&&&&&&&
输入此书的全部信息
结束(即返回主菜单)
是否继续查询
&&&&&&&&&&&&&&&&&&&&&&&&&&否&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
图4 图书查询流程图
5.4 借书登记程序结构流程图:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&是
是否重输否满
输出出错信息
&&&&&&&&&&&&&&&&&&&&&&&&&&&
否&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
输入读者编号
是否存在编号
&&&&&&&&&&
借书卡是否满
提示不能借书
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
是&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&是
进入还书模块
输入需要借的书号
&&&&&&&&&&
结束(即返回主菜单)
书号存在否
是&&&&&&&&&&&&&&&&&&&&&&&&&&
还有读者借书
借书登记,修改book.dat&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
中的现存信息,reader.dat&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
中的借书卡信息&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
图5借书登记程序结构流程图:
5.5 还书管理程序结构图:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
否&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
输入还书的书的编号
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
进入查询模块
输出出错信息
是否存在编号
输入读者编号
是否重输否满
还书将读者信息借书卡清0
修改book.dat现存信息
还有读者还书
结束(即返回主菜单)
图6还书管理程序结构图
5.6 输出读者和图书信息
选择输出图书还是读者信息
输出全部读者信息
输出全部图书信息
结束(即返回主菜单)
图7还书管理程序结构图
6 文件存储路径。
可执行文件tsglxt.exe及book.dat、reader.dat,都存储在c:\tsgl文件夹下。
7 程序代码
#include&stdio.h&
#include&math.h&
#include&string.h&
#include&stdlib.h&
struct books_list
&&&char author[20];&&&&&&&&&&&&&
&& char bookname[20];&&&&&&&&&&&
&&&char publisher[20];&&&&&&&&&
&& char pbtime[15];&&&&&&&&&&&&&
&& char loginnum[10];&&&&&&&&&&&
&& float&&&&&&&&&&&&&&&&&
&& char classfy[10];&&&&&&&&&&&&
&& struct books_list *&
struct books_list * Create_Books_Doc();&&&&
void InsertDoc(struct books_list * head);
void DeleteDoc(struct books_list * head , int num);
void Print_Book_Doc(struct books_list * head);
void search_book(struct books_list * head);
void info_change(struct books_list * head);
void save(struct books_list * head);
struct books_list * Create_Books_Doc()
struct books_list *
head=(struct books_list *)malloc(sizeof(struct books_list));
head-&next=NULL;&
void save(struct books_list * head)
struct books_list *p;
fp=fopen("data.txt","w+");
fprintf(fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n");
fprintf(fp,"┃登录号┃ 书&&& 名 ┃ 作&&&& 者┃ 出版单位 ┃& 出版时间& ┃分类号┃& 价格& ┃\n");
&fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");
while(p-&next!= NULL)
& fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f&& ┃\n",p-&loginnum,p-&bookname,p-&author,p-&publisher,p-&pbtime,p-&classfy,p-&price);
fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");
fclose(fp);
printf("&&&&&&&&&&&&&&&&&& 已将图书数据保存到 data.txt 文件\n");
void InsertDoc(struct books_list *head)
struct books_list *s, *p;
char flag='Y';
while(p-&next!= NULL)
while(flag=='Y'||flag=='y')
& s=(struct books_list *)malloc(sizeof(struct books_list));
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书登陆号:");
& fflush(stdin);
& scanf("%s",s-&loginnum);
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书书名:");
& fflush(stdin);
& scanf("%s",s-&bookname);
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书作者名:");
& fflush(stdin);
& scanf("%s",s-&author);
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书出版社:");
& fflush(stdin);
& scanf("%s",s-&publisher);
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书出版时间:");
& fflush(stdin);
& scanf("%s",s-&pbtime);
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书分类号:");
& fflush(stdin);
& scanf("%s",s-&classfy);
& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书价格:");
& fflush(stdin);
& scanf("%f",&s-&price);
& printf("\n");
& p-&next=s;&
&&&&&&& p=s;&
& s-&next=NULL;
& printf("&&&&&&&&&&&&&&&&&& ━━━━ 添加成功!━━━━");
& printf("\n&&&&&&&&&&&&&&&&&&&&&&&&&& 继续添加?(Y/N):");
& fflush(stdin);
& scanf("%c",&flag);
& printf("\n");
& if(flag=='N'||flag=='n')
& else if(flag=='Y'||flag=='y')
save(head);&
void search_book(struct books_list *head)
struct books_list *
char temp[20];
if(head==NULL || head-&next==NULL)
& printf("&&&&&&&&&&&&&&&&&&&&& ━━━━ 图书库为空!━━━━\n");
& printf("请输入您要查找的书名: ");
& fflush(stdin);
& scanf("%s",temp);
& while(p-&next!= NULL)
&& if(strcmp(p-&bookname,temp)==0)
&&& printf("\n图书已找到!\n");
&&& printf("\n");
&&& printf("登录号: %s\t\n",p-&loginnum);
&&& printf("书名: %s\t\n",p-&bookname);
&&& printf("作者名: %s\t\n",p-&author);
&&& printf("出版单位: %s\t\n",p-&publisher);
&&& printf("出版时间: %s\t\n",p-&pbtime);
&&& printf("分类号: %s\t\n",p-&classfy);
&&& printf("价格: %.2f\t\n",p-&price);
&& if(p-&next==NULL)
&&& printf("\n查询完毕!\n");
void Print_Book_Doc(struct books_list * head)
struct books_list *
if(head==NULL || head-&next==NULL)&
& printf("\n&&&&&&&&&&&&&&&&&&&&& ━━━━& 没有图书记录!& ━━━━\n\n");
printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n");
printf("┃登录号┃ 书&&& 名 ┃ 作&&&& 者┃ 出版单位 ┃& 出版时间& ┃分类号┃& 价格& ┃\n");
&printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");
while(p-&next!= NULL)
& printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f&& ┃\n",p-&loginnum,p-&bookname,p-&author,p-&publisher,p-&pbtime,p-&classfy,p-&price);
printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");
printf("\n");
void info_change(struct books_list * head)
struct books_list *
int panduan=0;
char temp[20];
printf("请输入要修改的书名:");
scanf("%s",temp);
while(p-&next!= NULL)
& if(strcmp(p-&bookname,temp)==0)
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书登陆卡号:");
&& fflush(stdin);
&& scanf("%s",p-&loginnum);
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书书名:");
&& fflush(stdin);
&& scanf("%s",p-&bookname);
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书作者名:");
&& fflush(stdin);
&& scanf("%s",p-&author);
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书出版社:");
&& fflush(stdin);
&& scanf("%s",p-&publisher);
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书出版时间:");
&& fflush(stdin);
&& scanf("%s",p-&pbtime);
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书分类号:");
&& fflush(stdin);
&& scanf("%s",p-&classfy);
&& printf("\n&&&&&&&&&&&&&&&&&&& 请输入图书价格:");
&& fflush(stdin);
&& scanf("%f",&p-&price);
&& printf("\n");
&& panduan=1;
if(panduan==0)
& printf("\n&&&&&&&&&&&&&&&&&&&&& ━━━━& 没有图书记录!& ━━━━\n\n");
void DeleteDoc(struct books_list * head)
struct books_list *s,*p;&&&
char temp[20];
panduan=0;
printf("&&&&&&&&&&&&&&&&&&&& [请输入您要删除的书名]:");
scanf("%s",temp);
while(p!= NULL)
& if(strcmp(p-&bookname,temp)==0)
&& panduan++;
&if(panduan==1)
& for(;s-&next!=p;)&&&
& s-&next=p-&
& free(p);
& printf("\n&&&&&&&&&&&&&&&&&&&&& ━━━━& 删除成功!& ━━━━\n");
& printf("&&&&&&&&&&&&&&&&&&&& 您输入的书目不存在,请确认后输入!\n");
int main(void)
&struct books_list *
head=NULL;
& printf("&&&&&&&&&&&& ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");&
&&printf("&&&&&&&&&&&& ┃& ┃&&&&&&&&& socat&& 图书管理系统&&&&&&& ┃& ┃\n");
& printf("&&&&&&&&&&&& ┃& ┗━━━━━━━━━━━━━━━━━━━┛& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&& ●[1]图书信息录入&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&& ●[2]图书信息浏览&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&& ●[3]图书信息查询&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&& ●[4]图书信息修改&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&& ●[5]图书信息删除&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┃&&&&&&&&&&&&&& ●[6]退出系统&&&&&&&&&&&&&&&&& ┃\n");
& printf("&&&&&&&&&&&& ┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");
& printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 请选择:");
& fflush(stdin);
& scanf("%c",&choice);
& if(choice=='1')
&& if(head==NULL)
&&& head=Create_Books_Doc();
&& InsertDoc(head);
& else if(choice=='2')
&& Print_Book_Doc(head);
& else if(choice=='3')
&& search_book(head);
& else if(choice=='4')
&& info_change(head);
& else if(choice=='5')
&& DeleteDoc(head);
& else if(choice=='6')
&& printf("\n");
&& printf("&&&&&&&&&& ━━━━━━━━& 感谢使用图书管理系统& ━━━━━━━━\n");
&& printf("&&&&&&&&&&&&&&&&&&&&& ━━━━ 输入错误,请重新输入!━━━━");
&& return 0;
三 设计结果与分析
图8 图书管理系统主界面
通过执行主函数产生此界面,以此来实现用户对图书信息的需要
图9 图书信息界面
按1 进行图书信息录入如图 ,通过调用fflush(stdin)函数来达到此目的。
图10 图书数据界面
对图书信息的管理页面,。通过main()函数来实现。
图11 本程序整体实现界面
程序产生的总体运行结果如上图
2 程序中出现的问题及解决方法
问题一、借书管理模块中,当正确输入存在的读者编号和所借的书的编号,系统进行判断时,提示不存在此读者。
解决办法及步骤:
1、一个个输出所有的读者的编号,检查文件中是否有此读者,发现有。
2、既然有此读者,那么检查循环判断是否有此读者的语句发现没有错
&3、输出用于循环检查语句中的读者信息,发现乱码
&&&&&&&4、仔细分析乱码的原因,最后发现是变量的类型错误,错将读者类型的结构体指针变量定义为了图书类型的指针变量。
四 设计体会
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
通过这次课程设计,我对复杂程序的开发有了一个深刻的认识,使我进一步明白了模块化思想在程序开发中的重要性。也是我明白了在平时的学习生活中一定要努力才能在真正用到时运用自如。
本程序具有输入、输出、插入、删除、查找和保存等功能。这次课程设计中还深入学习了优化算法的各种思想,加深了对指针概念的理解,也较好的掌握了指针的使用方法。通过这次课程设计学会了在实践中运用所学的知识,并通过翻阅资料增加了自己的知识面,对C语言调用其他可执行文件和图形界面的设计有了新的识和了解,并运用在这次课程设计中,使我受到了锻炼,受益匪浅,同时也深入学习了算法的思想,指针的使用方法,为我以后的应用打下了坚实的基础,相信有因为这次课程设计,会使我对C语言有更深入的认知,以及能较好的掌握它,在以后的实践中能运用自如。在这次课程设计中学会了贯通运用所学的知识,通过翻阅大量资料学习了新的知识。在这次课程设计中对C语言中调用其他可执行文件和图形界面的设计思路有了新的认识和了解,并运用在其中,发现C语言作用的强大。
五 参考文献
[1]徐连信编著 C语言程序设计 清华大学出版社,
[2]徐连信编著 C语言程序设计习题解答与实验教程清华大学出版社,-P134
[3]刘振安 孙忱 C程序设计课程设计&& 机械工业出版社,
2004,P76-P98
[4]王士元 C高级实用程序设计[M]. 北京: 清华大学出版社,1998,P78-P98
[5]Al Kelley / Ira Pohl《C语言解析教程》(原书第4版)
原名: C by Dissection The Essentials of C Programming Fourth
Edition& 机械工业出版社, -P198
[6]Brian W.Kernighan,Dennis M.Ritchie& 【译者】 徐宝文
李志&& The C Programming Language
机械工业出版社, 2006,P13-P45
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 c语言课程设计参考题目 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信