《基于c语言的图书馆库》由会员分享,可在线阅读,更多相关《基于c语言的图书馆库(23页珍藏版)》请在金锄头文库上搜索。
1、C C 语言程序设计语言程序设计实实训训报报告告2桂林电子科技大学信息科技学院桂林电子科技大学信息科技学院目录1程序设计目的.32 设计要求.33问题定义.34设计内容.44.1 总体设计.44.2 详细设计.4 4.2.1 课程信息结构体. 4 4.2.2 主控 main()函数的执行流程.54.2.3 mian 函数.64.2.4 struct coure *Database 建立原始数据库.,.74.2.5 void Display 课程显示,.84.2.6 struct coure *Arrangement 课程排序,.94.2.7 struct coure *Increase 课程增
2、加.104.2.8 struct coure *DeleteMemory 按课号删除课程.104.2.9 struct coure *Delete 按序号删除课程.114.2.10 struct coure *Found 查找课程.124.3 程序的调试. .13 4.3.1 概述.13 4.3.2 程序测试.135总结. . .165.1开发经验. .165.2实训中遇到的问题及解决方法.1635.3设计中的不足之处.165.4感想和心得体会.课程信息管理课程信息管理1、程序设计目的1、 学会利用 C 语言编写一段程序; 2、 实践操作调整、完善程序功能; 3、 进一步理解和运用结构化程设计
3、的思想和方法; 4、 初步掌握开发一个小型实用系统程序的基本方法; 5、 学会调试一个较长程序的基本方法; 6、 学会利用流程图或 N-S 图表示算法;2、 设计要求1、 用 C 语言实现系统;2、 利用结构体数组实现课程的数据结构设计; 3、 系统具有增加,查找,删除,排序等基本功能; 4、 系统的各个功能模块要求用链表的形式实现; 5、 完成设计任务并书写课程设计报告。3、问题定义程序的运行效果如下图所示,选择任意菜单后,实现相应的功能。4由于设计水平有限,有些要求还没有完美地达到,有些功能没有设计在程序中。在问题定 义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系
4、统实现 的任务。4设计内容4.1 总体设计本程序采用链表的程序设计方法,即将较大的程序按照一定的原则分为一个个较小的程序, 然后分别设计各个小程序。要注意的是划分出来的模块应该相对独立但又相关,简单且容 易理解。并且可以用模块化层次结构图(即模块图)来分析各小程序的划分,一般从上到 下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。5增加课程查找课程排序课程选择菜单建立原始数据库删除课程退出程序包含课号、 地点、任 课老师、 课名等包括课号、地点、 老师等信息按课号查找按序号和课号按课号课程信息管理系统图 1、课程信息管理系统模块图6本程序采用链表的方式实现图 1 的功能,由各
5、个单一小程序组合成一个整体程序,各 个单一程序功能如下:(1) 、选择菜单,对程序里的各功能进行排列,方便进行选择程序的功能。(2) (3) 、排序课程。选择对应的功能,程序按课号由大到小进行排序,并将排序后的数据 打印出来。(4) 、增加课程。从键盘上输入需要添加的内容,添加在数据库中,并将修改后的数据 库打印出来。(5) 、删除课程。选择对应的功能,选择需要删除的课号或序号。将改变后的数据库打 印出来。(6) 、查找课程。选择对应的功能,选择需要删除的课号或序号。将改变后的数据库打 印出来。(7) 、排序课程。选择对应的功能,程序按课号由大到低小进行排序,并将排序后的数7据打印出来。(8)
6、 、退出程序。4.2 详细设计4.21 课程信息定义 struct coure char ID12; char De15;char name220;char name20;int c2; int c3;struct coure *next; ; 结构体 struct coure 将用于存储课程的基本信息4.2.2 主控 main()函数的执行流程开始开始main()函数()函数输入是否为错误输入是否为错误判断键值,调用相应程序判断键值,调用相应程序 完成相应功能完成相应功能重新输入重新输入输入输入 16 之间的任意数字之间的任意数字进行功能操作进行功能操作84.2.3 main()函数该函数用
7、于程序开头,键入 16 键实现相应的功能。 主要实现了对整个程序的运行控制,以及相关功能模块的调用。 本课程信息管理系统执行主流图如上,可将其写成如下相应的 main()函数 main() int a,x=0;struct coure *head=NULL;int k=1; head=Database(head); Display(head);printf(“n“); printf(“欢迎使用华仔系统 n“);printf(“* *n“);printf(“# 课程信息管理系统 #n“);printf(“# 1: 排序课程 2: 增加课程 #n“);printf(“# 3:按序号删除 4: 查找
8、课程 #nn“);printf(“# 5: 按课号删除 6: 退出管理系统 #n“);printf(“ n“);printf(“n“);while(k) if(x) printf(“请输入选择内容:nn“);9printf(“ 1: 排序课程 2: 增加课程 3:按序号删除 4: 查找课程 5: 按课号删除 6: 退出管理 系统 n“); x+;printf(“请输入选择的内容:n“); scanf(“ %d“,switch(a)case 1:head=Arrangement(head);Display(head); printf(“n“);break;case 2:head=Increase
9、(head);Display(head);printf(“n“);break;case 3:head=Delete(head);Display(head); printf(“删除成功!nn“);break;case 4:head=Found(head);printf(“nn“);break;case 5:head=DeleteMemory(head);Display(head); printf(“删除成功!nn“);break;case 6:k=0;printf(“谢谢使用此管理系统!n“);break;default:printf(“对不起,输入错误!请输入有效选择!nnn“);return
10、 0;10 函数功能的描述4.2.4 struct coure *Database 建立原始数据库用户进入系统时,需要建立一个原始数据库,以便进行下面的程序操作。struct coure *Database(struct coure *head) /*原始数据库*/ struct coure *p=NULL;struct coure *pr=head;p=(struct coure *)malloc(sizeof(struct coure );head=p;pr=p; strcpy(pr-ID, “1252400210“);strcpy(pr-De,“12504“);strcpy(pr-nam
11、e,“海峡“); strcpy(pr-name2,“心里健康“);pr-c2=34;pr-c3=5;p=(struct coure *)malloc(sizeof(struct coure );pr-next=p;pr=pr-next;strcpy(pr-ID, “1252400220“);strcpy(pr-De,“12501“);strcpy(pr-name,“李小明“);strcpy(pr-name2,“高数“);pr-c2=43;pr-c3=3;p=(struct coure *)malloc(sizeof(struct coure );pr-next=p;pr=pr-next;str
12、cpy(pr-ID, “1252400214“);strcpy(pr-De,“12501“); strcpy(pr-name,“李海峡“); strcpy(pr-name2,“大学英语“);pr-c2=27;pr-c3=2;p=(struct coure *)malloc(sizeof(struct coure );pr-next=p;11pr=pr-next;strcpy(pr-ID, “1252400218“);strcpy(pr-De,“41504“); strcpy(pr-name,“周萍“); strcpy(pr-name2,“电路分析“);pr-c2=41;pr-c3=3;p=(s
13、truct coure *)malloc(sizeof(struct coure );pr-next=p;pr=pr-next;strcpy(pr-ID, “1252400219“); strcpy(pr-De,“21504“); strcpy(pr-name,“李登辉“); strcpy(pr-name2,“C 语言“);pr-c2=55;pr-c3=1; pr-next=NULL;return head; 4.2.5 void Display 课程显示对数据改变之后把数据显示出来。 void Display(struct coure *head) struct coure *p=head;int j=1; printf(“序号 课号 地点 课名 老师姓名 学生人数 学分n“);while(p!=NULL)printf(“%3d%12s%10s%10s%10s%8d%8dn“,j,p-ID,p-De,