目 录
课程设计任务书
误!未定义书签。
…………………………………………………………………………………………错
课程设计进度计划表.................................................. 错误!未定义书签。 1.设计目的 ............................................................................... 错误!未定义书签。 2.总体设计 ………………………………………………………………………错误!未定义书签。1.结构提设计 2.总体模块设计
3.详细设计 ............................................................................... 错误!未定义书签。 4.程序调试 ............................................................................... 错误!未定义书签。 5.源程序清单 ........................................................................... 错误!未定义书签。 6.执行结果 ............................................................................................................ - 9 - 参考文献 ................................................................................................................ - 14 -
- 1 -
# include
# include
struct Book /*图书信息结构体*/ {
char number[8]; /*图书编号*/ char sname[15]; /*图书名称*/ char zname[10]; /*作者姓名*/ char press[150]; /*出版单位*/ char time[10]; /*出版时间*/ int price; /*图书价格*/ };
void putout(struct Book str[],int n); //将文件中的信息读出(即数据初始化) int Input(struct Book str[],int n);
int zuozhe(struct name str[],int n);//信息录入
void Output(struct Book str[],int n); //浏览图书信息 void Sort(struct Book str[],int n); //按出版单位排序 void Find(struct Book str[],int n); //按作者名查询
int Delete(struct Book str[],int n); //给定 图书编号,删除该图书信息 void Edit(struct Book str[],int n); //输入书本名,修改相应信息 void Save(struct Book str[],int n); //数据保存函数
void main() {
struct Book BookData[1000];
int a,length=0,key=1; /*length数据块长度*/
// chushihua(BookData,length);
- 2 -
while (a!=0) {
printf(\书山有路勤为径,学海无涯苦作舟=====\\n\
printf(\欢迎进入图书查询系统==========\\n\
printf(\制作日期:2010年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班\\n\
printf(\ printf(\录入图书信息\\n\ printf(\浏览图书信息\\n\ printf(\按书名排序图书信息\\n\ printf(\按书名查询图书信息\\n\ printf(\删除图书信息\\n\ printf(\修改图书信息\\n\ printf(\退出\\n\
printf(\★★★★★★★★★★★★★★★★★★\\n\ scanf(\
switch(a) {
case 1: length=Input(BookData,length);Save(BookData,length);break;
case 3: Sort(BookData,length);break;
case 4: Find(BookData,length);break;
case 5: length=Delete(BookData,length);break;
case 6: Edit(BookData,length);break;
case 0: break;
default: printf(\输入错误,返回主菜单重新输入!\\n\ } } }
void xinxishchu(struct Book str[],int n) //将文件中数据读出的函数
case 2: Output(BookData,length); break;
{
FILE *fp;
- 3 -
int i;
struct Book * pr;
if((fp=fopen(\
{
printf(\找不到要打开的文件\\n\ exit (1);
}
fread(&pr,sizeof(struct Book),n,fp); for(i=0;i strcpy (str[i].number,pr->number); strcpy(str[i].sname,pr->sname); strcpy(str[i].zname,pr->zname); strcpy(str[i].press,pr->press); strcpy(str[i].time,pr->time); } str[i].price=pr->price; rewind(fp); fclose(fp); printf(\数据初始化成功!\\n\ } int Input(struct Book str[],int n) /*图书信息的录入*/ { int c=1,i=n-1; while(c==1) { i++; printf(\请输入图书编号\\n\ scanf(\ printf(\请输入图书名称\\n\ scanf(\ printf(\请输入作者姓名\\n\ scanf(\ printf(\请输入出版单位\\n\ scanf(\ printf(\请输入出版时间\\n\ scanf(\ printf(\请输入图书价格\\n\ - 4 - scanf(\ printf(\输入的图书信息如下 ***************************\\n\ printf(\图书编号 图书名称 作者名 出版社单位 出版时间 图书价格\\n\ printf(\ str[i].press,str[i].time,str[i].price); printf(\是否继续输入(1/0)?\\n\ scanf(\ } return (++i); Save(str,n); printf(\图书总数量合计为%d\\n\ } void Output(struct Book str[],int n) //图书信息的输出 { int i; printf(\ printf(\图书信息如下:******************************\\n\ printf(\图书编号 图书名称 作者名 出版社单位 出版时间 图书价格\\n\ for(i=0;i printf(\ str[i].press,str[i].time,str[i].price); printf(\★★★★★★★★★★★★★★★★★★ ★★★★★★★★★★★★★★★★★★\\n\ printf(\图书总数量合计为%d\\n\ } void Sort(struct Book str[],int n) //按出版单位排序 { int i,j; struct Book change; for(i=0;i if(strcmp(str[i].sname,str[j].press)>0) { change=str[i]; str[i]=str[j]; str[j]=change; - 5 - }