高级语言程序设计课程设计报告

更新时间:2023-05-06 13:59:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

高级语言程序设计

课程设计报告

题目:图书信息管理系统

学号:071007109

姓名:李荘荘

指导教师:郑小东

计算机科学与应用系

高级语言程序设计课程设计报告

一、选题分析

图书信息管理系统:

1.能够实现图书信息的录入、保存、查询、修改、删除、输出;

2.制作菜单;

3.为各操作设计函数;

二、算法设计

1.建立文本“Tushu.txt”,打开添加新书信息;

2.添加成功后返回主菜单;

3.选择相应数字进入系统;

4.退出系统。

三、数据结构

StartBook(void);/*初始化文件函数*/ Menu(void);/*菜单函数*/ Load(void);/*读文件*/ Input(void);/*输入函数*/ Find(void);/*查找函数*/ Mend(void);/*修改函数*/ Delete(void);/*删除函数*/ ShowAll(void);/*输出函数*/ Save(void);/*保存文件*/ 四、程序源码#include

#include

#include

#define LEN sizeof(struct Book)

#define MAX 100

void StartBook(void);/*初始化文件函数*/

void Menu(void);/*菜单函数*/

void Load(void);/*读文件*/

void Input(void);/*输入函数*/

void Find(void);/*查找函数*/

void Mend(void);/*修改函数*/

void Delete(void);/*删除函数*/

void ShowAll(void);/*输出函数*/

void Save(void);/*保存文件*/

struct Book/*书的结构体*/

{

int record;

char num[20];/*图书编号*/

char name[20];/*书名*/

char author[20];/*书的作者*/

int price;/*书的价格*/

int yes;/*判断书是否存在或者已经借出,1存在,0借出*/

struct BookList *link;

};

FILE *fp;

struct Book *p,*p1,*head,*s,*t;

main()

{

int flag;

int choice;

if((fp = fopen("TuShu.txt","rb"))==NULL)

1

高级语言程序设计课程设计报告

{

clrscr();

printf("\n\n\t\t\tNo File!\n");

if((fp = fopen("TuShu.txt","wb"))==NULL)

{

printf("Can't Open The File !\n");

getch();

exit(0);

}

}

if(fgetc(fp)==-1)

{

printf("\n\t\tNo Book,Input New Book Information!\n");

StartBook();

printf("\n\t\t\tInput Book Succeedful!\n");

getch();

}

rewind(fp); /* 重建文件指针 */

Load();

fclose(fp);

flag = 1;

while(flag)

{

Menu();

printf("\n\n\n\t\t\t Input your choice(0-5):");

scanf("%d",&choice);

getchar();

if(choice>=0&&choice<6)

{

switch(choice)

{

case 1:Input();break;

case 2:Find();break;

case 3:ShowAll();break;

case 4:Delete();break;

case 5:Mend();break;

case 0:flag = 0;clrscr();

printf("\n\n\n\t\t\tThaks Use This Program!!!");

printf("\n\n\t\tIf You Have Advices,Please Contact :");

printf("\n\n\t\t\E-mail : lizhuang1987@3aa017fe04a1b0717fd5dd48\n\n\t\tQQ : 89735044");

getch();break;

}

}

else

printf("Input error,Please Input!\n");

2

高级语言程序设计课程设计报告

}

fp = fopen("TuShu.txt","wb");

Save();

fclose(fp); clrscr();

printf("\n\n\n\t\tPress Any Key To Enter The Menu......!\n");

getch();

return 0;

}

void StartBook(void)/*初始化文件函数*/

{

p->record = 1;

printf("\n\t\tInput Num:");

gets(p->num);

printf("\n\t\tInput Name:");

gets(p->name);

printf("\n\t\tInput Price:");

gets(p->price);

p->link = NULL;

head = p;

fwrite(p,LEN,1,fp);

fclose(fp);

}

void Menu(void)/*菜单*/

{ clrscr();

printf("\n\t\t+---------------------------------------------+\n"); printf("\t\t|Welcome To The Book Information Manage System|");

printf("\n\t\t+---------------------------------------------+\n"); printf("\n\t\t\t Author : Li Zhuang 071007109\n\n");

printf("\t\t\t +-------------------------+");

printf("\t\t\t\t\t\t\t | 1 Input Book |\n");

printf("\t\t\t | 2 Search Book |\n");

printf("\t\t\t | 3 Print All Book |\n");

printf("\t\t\t | 4 Del Book |\n");

printf("\t\t\t | 5 Edit Book |\n");

printf("\t\t\t | 0 Exit And Save |\n");

printf("\t\t\t +-------------------------+\n");

}

void Load(void)/*读文件*/

{

fread(head,LEN,1,fp);

p = head;

while(p->link!=NULL)

{

p1 = (struct Book*)malloc(LEN);

p1 = p->link;

3

高级语言程序设计课程设计报告

fread(p1,LEN,1,fp);

p = p->link;

}

}

void Input(void)/*输入函数*/

{

p1 = (struct Book*)malloc(LEN);

p1->record = p->record + 1; clrscr();

printf("\n\n\t\t\t-------------------------------------------\n");

printf("\t\t\t\t\tPlease Message!\n");

printf("\t\t\t-------------------------------------------\n");

printf("\n\t\t\tThis %d Member",p->record+1);

printf("\n\t\t\tInput Num:");

gets(p1->num);

printf("\n\t\t\tInput Name:");

gets(p1->name);

printf("\n\t\t\tInput Price:");

gets(p1->price);

p1->link = NULL;

p->link = p1;

p = p1;

}

void ShowAll(void)/*显示所有函数*/

{

s = head;

clrscr();

printf("\n\n************************************************************** ******************\n");

printf(" \t\t Num Num Name Price \n");

printf("\n**************************************************************** ****************\n");

do

{

printf("\t\t\t%-6d%-12s%-7s%-6s\n",s->record,s->num,s->name,s->price);

s = s->link;

}while(s!=NULL);

printf("\n\n\n\t\t\tPress Any Key To Enter The Menu......!");

getch();

return;

}

void Find(void)/*查找函数*/

{

char c;

4

高级语言程序设计课程设计报告

struct Book who;

s = head;

clrscr();

printf("\n\t\tInput Serch Book Name:");

gets(3aa017fe04a1b0717fd5dd48);

while((s->link!=NULL)&&(strcmp(s->name,3aa017fe04a1b0717fd5dd48)))

{

s = s->link;

}

if((s->link==NULL)&&(strcmp(s->name,3aa017fe04a1b0717fd5dd48)))

{

printf("\"%s\" No This Book !\n",3aa017fe04a1b0717fd5dd48);

printf("Input Again Name to Search.\n");

getch();

return;

}

clrscr();

printf("\n\t\t\t\The Search Message:\n");

printf("\n\n************************************************************** ******************\n");

printf(" \t\t Num Num Name Price \n");

printf("\n**************************************************************** ****************\n");

printf("\t\t\t%-6d%-12s%-7s%-6s\n",s->record,s->num,s->name,s->price); printf("\n\n\t\t\tDel(d)\t\Edit(m)\t\Menu(s)\t\n");

printf("\n\n\t\t\tInput your choice(d/m/s):");

scanf("%c",&c);

switch(c)

{

case 'D':

case 'd':Delete();break;

case 'M':

case 'm':Mend();break;

}

}

void Mend(void)/*编辑函数*/

{

clrscr();

printf("\n\n\n\t\t\tEdit Book Information\n\n\t\t\t");

getchar();

printf("\n\t\tInput New Num:");

gets(s->num);

printf("\n\t\tInput New Name:");

gets(s->name);

5

高级语言程序设计课程设计报告

printf("\n\t\tInput New Price:");

gets(s->price);

printf("\n\t\tEdit Succeed !\n");

getch();

}

void Delete(void)/*删除函数*/

{

int find_prev;

int find_record;

char del;

char del_member_name[15];

struct Book *p_del_prev;

strcpy(del_member_name,s->name);

getchar();

printf("Del(Y/N)?",del_member_name);

scanf("%c",&del);

if(del=='n'||del=='N')

{

return;

}

find_prev = s->record - 1;

find_record = 1;

p_del_prev = head;

while((p_del_prev->link!=NULL)&&(find_record

p_del_prev = p_del_prev->link;

find_record++;

} /* 如果删除第一本书 */

if(s->record==1)

{

if(s->link!=NULL)

{

head = head->link;

s = head;

while(s!=NULL)

{

s->record = s->record - 1;

s = s->link;

}

printf("%d,%s",p->record,p->name);

}

else if(s->link==NULL)/* 如果第一本书是最后一本 */ {

p= NULL;

head = p;

if(remove("TuShu.txt")==0)

6

高级语言程序设计课程设计报告

{

printf("DEL Succeed !TuShuMuLu Yi Qing Kong!\n");

printf("So You Must Input New TuShuMuLu !\n");

printf("Exit,After Open Progem Build a New TuShuMuLu !\n"); }

printf("\n\n\t\tPress Any Key To Enter The Menu.......\n");

getch();

exit(0);

}

}

/* 如果删除最后一本书 */

else if(s->record==p->record)

{

p_del_prev->link = NULL;

s->link = NULL;

p = p_del_prev;

}

else

{

p_del_prev->link = s->link;

s->link = NULL;

while(p_del_prev->link!=NULL)

{

p_del_prev = p_del_prev->link;

p_del_prev->record = p_del_prev->record -1;

}

printf("%d\n%d\n",p->record,p->link);

}

printf("Name \"%s\" Del Succeed.\n ",del_member_name);

getch();

}

void Save(void)/*保存文件*/

{

s = head;

do

{

fwrite(s,LEN,1,fp);

s = s->link;

}while(s!=NULL);

}

7

高级语言程序设计课程设计报告

五、运行结果

开始程序:

退出程序:

六、课程设计总结

通过这次课程设计,学到了很多知识,也知道了自己在哪个的欠缺。课程设计的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。

8

高级语言程序设计课程设计报告

本文来源:https://www.bwwdw.com/article/uxie.html

Top