C语言程序设计报告(菜单+源码+测试)
PAGE
PAGE 1
———————————————————————————————— 作者:
———————————————————————————————— 日期:
个人收集整理,勿做商业用途
个人收集整理,勿做商业用途
个人收集整理,勿做商业用途
一:系统功能
基本功能:
图书的录入,删除,查找,和导入导出等。
图书属性:
书号,书名,第一作者,版次,出版年等。
菜单功能:
Input Records(输入若干条记录)
从键盘一次输入一本书的信息,存放到结构体数组中,然后显示。提示信息,确认是否输入下一条记录。
Display All Records(显示所有记录)
按顺序显示所有记录,每屏显示10条记录,按键继续显示下一屏。
Delete a Record(按书名查找,删除一本书)
输入待删除书的书名,显示该书名的所有书目,提示输入待删除书目的书号,提示是否删除,确认后,删除该书。
Sort(排序)
以书名为升序排列数组
Insert a record(插入一条记录)
以书名为序排列的数组中插入一条记录,插入后,数组仍然有序。输出插入成功后的信息。
Query(查找并显示一个记录)
输入书名,查找并显示包含该书名的所有图书信息
Add Records from a Text File(从文件读入图书信息到结构体数组中)
用户可事先建立一个文本文件Dictory.txt。存放所有图书信息,文件格式如下:
2
1182高等数学刘浩荣 5 同济大学出版社 2013
7300 物理化学王德明 2 化学工业出版社 2015
Write to a Text File
将数组中的全部记录写入文件Records.txt中,要求格式与Dictory.txt相同。
Quit(退出图书管理系统)
新增加菜单功能:
Change a record
修改某一条记录的值
Menu
显示菜单
Clear Screen
清屏
Pause
按暂停,按任意键继续
二:数据结构
Typedef struct
{
char ISBN[10];//书号
char book[30];//书名
char author[20];//作者
Int edition;//版本号
char press[50];//出版社名
int year;//出版年
}Bookinfo;
三:函数调用关系
Write_to_Text()Display_main_menu()Change_a_record()Delete()Sort_by_name()Insert()Insert_a_record()AddfromText()Delete_a_record()Display()Query()Query_a_record()Input()main
Write_to_Text()
Display_main_menu()
Change_a_record()
Delete()
Sort_by_name()
Insert()
Insert_a_record()
AddfromText()
Delete_a_record()
Display()
Query()
Query_a_record()
Input()
main
四:主要算法及实现
i=0语句Bn+1是是是否否否b=strcmp((*s).book,dictList[i].book)>=0c=strcmp((*s).book,dictList[i+1].book)<=0语句A:dictList[j]=dictList[j-1];语句B:dictList[i+1]=*s;i++n+1j--语句Aj>i+1j=nb&&ci
i=0
语句B
n+1
是
是
是
否
否
否
b=strcmp((*s).book,dictList[i].book)>=0
c=strcmp((*s).book,dictList[i+1].book)<=0
语句A:dictList[j]=dictList[j-1];
语句B:dictList[i+1]=*s;
i++
n+1
j--
语句A
j>i+1
j=n
b&&c
i
i=0
排序算法
结束否否是否否是是是p=j语句Ai++j++j0P!=ip=ij=i+1i