实验报告.docx
- 文档编号:11752363
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:29
- 大小:236.15KB
实验报告.docx
《实验报告.docx》由会员分享,可在线阅读,更多相关《实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
实验报告
西安郵電學院
高级语言课程设计报告书
系部名称
:
通信工程系
学生姓名
:
郑小祝
专业名称
:
通信工程
指导老师
:
宋辉
班级
:
0804
学号
:
03081115
时间
:
2009-5-25至2009-6-5
西安邮电学院
C语言程序设计报告
一、实验目的
1.掌握结构体的定义和使用。
2.理解链表工作原理,熟悉基本操作。
3.熟悉C语言中文件操作。
4.了解书店管理的相关信息及处理方法。
5.握函数的调用及嵌套,顺序结构、选择分支结构、循环结构及其嵌套的应用,数组、结构体、指针以及综合应用,会使用文件的一些函数。
6.会独自分析问题解决问题,提高解决问题的能力。
二、实验内容
1.运用结构体等编辑一个简单的学生基本信息管理系统,使之能够完成学生基本信息的输入、修改、添加、查询、删除、排序、输出、退出。
2.执行编译操作,并根据提示调试此程序,排除所有的错误和警告。
直到编译成功为止。
3.执行运行操作,逐一对每个模块进行调试。
直到全部程序运行成功为止。
4.接受老师的检查并回答老师所提出的问题,知道令老师点头为止。
5.根据自己的源程序及运行情况截取相应的图片,完成实验报告。
三、需求分析
(1)该图书信息管理系统,使之能够完成图书信息的输入、输出、读取、保存、查询、删除、排序、添加、退出操作。
每个模块的功能如下:
a、创建模块能够完成图书的序号、书名、作者、图书出版社的输入。
b、保存模块将输入的图书信息进行保存,保存在自己命名的文件夹中
以便读取。
c、读取模块从已被命名的文件夹中读取信息。
d、输出模块能够将所有图书信息全部显示在荧光屏上。
e、排序模块将按照图书的价格从小到大排序并显示。
f、查询模块能够按图书序号查询图书,并在荧光屏上显示书名、作者,出版日期,如已被注销则显示该书已注销。
g、修改模块中输入要修改图书的相应图书序号后,选择需要修改的项目,就能完成修改操作。
h、删除模块中只要输入要删除图书的图书序号就可以完成操作。
i、添加模块中输入所添图书的全部信息后,该程序会自动添加。
j、退出模块可直接退出程序,结束操作。
(2)创建该图书信息管理系统目的就是图书信息进行创建(输入)、保存、读取,输出、排序、查询、修改、删除、添加功能,这样可以简化许多人工做起来很复杂的问题。
例如:
排序,有了此程序只需将信息输入,计算机可自动执行,省时省力,另外,它还可以重复使用,方便,快捷。
4、概要设计
5、详细设计及运行结果
查询模块
+
添加模块
删除模块
输出模块
修改模块
6、调试情况
七、总结及体会
在写完第一遍程序后,首先进行了调试,仍是按照从某个模块来分析的,然后在整体执行
但是远远有很多不如意的地方,特别是对警告的调试比较麻烦,棘手,但是通过向老师请教,向同学请问最终还是解决的不少问题,后来经过分析,参照同学所设计的程序,自己的功能比较单调和简单,后来又添加了几个模块使其变得功能稍微有点完善。
通过很多次的调试,我知道了在写程序的时候应该注重于细节,例如一个小的标点符号,就能使我们浪费一整天的时间来调试,所以细节非常重要;其次是要在编写程序之前应该想明白程序的功能,然后在进行写程序;最后在调试运行程序的时候应该注意到每一个程序的应用,看是否真真的能够实现其功能,不要漏掉一个细节。
通过这次课程设计我学会了很多,做事情不仅要有耐心,还要注重细节;虽然做不到最好,但是要尽自己的全力去做,不管对与错。
最重要的是以后再生活中做事情的时候都要结合这次实习的经验去认真完成任务。
总而言之,这次实习,受益匪浅,对以后的学习和生活都有很大的作用。
。
八、源程序及其代码
#include
#include
#include
#defineMAX20
#definePAGE5
#defineoutprint1printf("书号---书名---作者---出版社---价格\n");
#defineoutprint2printf("%6d%15s%18s%16s%9d\n",books[i].num,books[i].book_name,books[i].writer,books[i].publish,books[i].price);
intsum;
structbooks_type
{intnum;
charbook_name[18];
charwriter[18];
charpublish[16];
intprice;
}books[20];
/*读文件*/
intread_information()
{
FILE*fp;
inti=0;
if((fp=fopen("D:
\\books.txt","rt"))==NULL)
{
printf("\n\nThereisnothinginthe'books_txt'.Pleaseinputtheinformation.Pressanykeytothemain\n");
return0;
}
while(feof(fp)!
=1)
{
fread(&books[i],sizeof(structbooks_type),1,fp);
if(books[i].num==0)break;
elsei++;
}
fclose(fp);
return0;
}
/*保存信息*/
save_information(intsum)
{
FILE*fp;
inti;
if((fp=fopen("D:
\\books.txt","wt"))==NULL)
{
printf("不能打开此文件!
\n");
return0;
}
for(i=0;i if(fwrite(&books[i],sizeof(structbooks_type),1,fp)! =1) printf("Filewriteerror! \n"); fclose(fp); return0; } /*输入信息*/ input_information() { inti=0,s=4; system("cls"); printf("\n\n请输入信息)\n",s); printf("\n********************************************************\n"); while(i { printf("\nthe%dbook: \n",i+1); printf("\n书号: "); scanf("%d",&books[i].num); if(books[i].num==0)break; printf("\n书名: "); scanf("%s",books[i].book_name); printf("\n作者: "); scanf("%s",books[i].writer); printf("\n出版社: "); scanf("%s",books[i].publish); printf("\n价格: "); scanf("%d",&books[i].price); i++; } printf("\n****信息已经输入! ****\n",i); sum=i; printf("\n按任意键进入主菜单! "); return0; } /*输出信息*/ output_information() { inti=0,j=0,page=1; system("cls"); printf("\n\n**********书的信息**********the%dpage\n\n",page); outprint1; do { if(books[i].num! =0) {j++; if(j%PAGE! =0) {outprint2; } else {outprint2; if(books[i+1].num! =0) {printf("Pressanykeytocontinue! "); return0; system("cls"); printf("\n\n******书的信息******the%dpage\n\n",++page); outprint1; } } } i++; }while(books[i].num! =0); printf("按任意键进入主菜单! "); flushall(); getchar(); return0; } /*查询信息*/ inquire_num() { inti,j=0,num; system("cls"); printf("请输入您想查询的书号: "); scanf("%d",&num); for(i=0;i if(books[i].num==num&&books[i].num! =0) { outprint1; outprint2; } elsej++; if(j==sum) printf("\n这本书不存在! "); printf("\n按任意键进入主菜单."); flushall(); getchar(); return0; } inquire_writer() { inti,j=0; charwriter[20]; system("cls"); printf("请输入您想查询的作者名: "); scanf("%s",writer); for(i=0;i if(strcmp(books[i].writer,writer)==0&&books[i].num! =0) { outprint1; outprint2; } elsej++; if(j==sum) printf("\n这本书不存在! "); printf("\n按任意键进入主菜单."); flushall(); getchar(); return0; } inquire_publish() {inti,j=0; charpublish[20]; system("cls"); printf("输入您所查询的出版社名: "); scanf("%s",publish); for(i=0;i if(strcmp(books[i].publish,publish)==0&&books[i].num! =0) { outprint1; outprint2; } elsej++; if(j==sum) printf("\n这本书不存在! "); printf("\n按任意键进入主菜单! "); flushall(); getchar(); return0; } inquire_information() { intchoice; do {system("cls"); printf("\n\n******图书查询系统******\n"); printf("\n1.按书号查询图书.\n"); printf("\n2.按作者名查询图书.\n"); printf("\n3.按出版社名查询图书.\n"); printf("\n0.退出"); printf("\n请选择(0~3): "); scanf("%d",&choice); switch(choice) {case1: inquire_num();break; case2: inquire_writer();break; case3: inquire_publish();break; case0: break; } }while(choice! =0); printf("\n按任意键进入主菜单! "); flushall(); getchar(); return0; } insert_information() {inti=sum; intchoice; system("cls"); printf("\n嵌入新的图书信息."); do { printf("\n书号: "); scanf("%d",&books[i].num); printf("\n书名: "); scanf("%s",books[i].book_name); printf("\n作者: "); scanf("%s",books[i].writer); printf("\n出版社: "); scanf("%s",books[i].publish); printf("\n价格: "); scanf("%d",&books[i].price); printf("\ncontinue? (y/n): "); scanf("%c",&choice); flushall(); getchar(); sum++; if(choice=='y'||choice=='Y') { printf("\ncontinue! "); i++; } elsebreak; }while (1); printf("\n按任意键进入主菜单."); flushall(); getchar(); return0; } revise_information() {inti=0,choice_1,revise_num; intchoice_2; do {system("cls"); printf("\n请输入您想修正的书号: "); scanf("%d",&revise_num); for(i=0;i if(books[i].num==revise_num) {printf("\n--书的信息--\n"); outprint1; outprint2; printf("\n哪一个需要修订? \n"); printf("\n1.书号\n"); printf("\n2.作者\n"); printf("\n3.出版社\n"); printf("\n4价格"); printf("\n请选择(1~4): "); scanf("%d",&choice_1); switch(choice_1) {case1: printf("请输入修正后的书名: "); scanf("%s",books[i].book_name);break; case2: printf("请输入修正后的作者名: "); scanf("%s",books[i].writer);break; case3: printf("请输入修正后的出版社名: "); scanf("%s",books[i].publish);break; case4: printf("请输入修正后的价格: "); scanf("%d",&books[i].price);break; } outprint1; outprint2; break; } if(i==sum) {printf("\n该书不存在! "); return0; } printf("\n\n是否继续修正? (y/n): "); scanf("%c",&choice_2); if(choice_2=='y'||choice_2=='Y') printf("Continue! "); elsebreak; }while (1); printf("\n按任意键进入主菜单! "); flushall(); getchar(); return0; } del_information() {inti,j,del_num; intchoice; do {system("cls"); printf("\n请输入您想删除的书号: "); scanf("%d",&del_num); for(i=0;i if(books[i].num==del_num) {for(j=i;j books[j]=books[j+1]; break; } if(i==sum) {printf("\n该书不存在! "); return0; } printf("\n是否继续删除? (y/n): "); scanf("%c",&choice); if(choice=='y'||choice=='Y') printf("\nContinue! "); elsebreak; }while (1); printf("\n按任意键进入主菜单."); flushall(); getchar(); return0; } /*更新信息*/ renew_information() {intchoice; do {system("cls"); printf("\n********更新图书信息********\n"); printf("\n1.嵌入新书信息.\n"); printf("\n2.修正书的信息.\n"); printf("\n3.删除书的信信息.\n"); printf("\n0.退出主函数.\n"); printf("\n\n请选择(0~3): "); scanf("%d",&choice); switch(choice) {case1: insert_information();break; case2: revise_information();break; case3: del_information();break; case0: break; } }while(choice! =0); } /*信息排序*/ sort_price() {structbooks_type*p,*q; inti,j; structbooks_typet; sum=4; printf("\nsort_price\n"); printf("----------------------------------------\n"); outprint1; for(i=0;i for(j=i+1;j { p=&books[i]; q=&books[j]; if(q->price>p->price) {t=books[i];books[i]=books[j];books[j]=t; } } system("cls"); for(i=0;i { q=&books[i]; printf("%6d%15s%16s%18s%9d\n",q->num,q->book_name,q->writer,q->publish,q->price); } flushall(); } voidsort_num() {structbooks_type*p,*q;inti,j;structbooks_typet; sum=4; printf("\nsort_num\n"); printf("----------------------------------------\n"); outprint1; printf("ok"); for(i=0;i for(j=i+1;j {p=&books[i]; q=&books[j]; if(p->num>q->num) {t=books[i];books[i]=books[j];books[j]=t; } } printf("ok"); for(i=0;i {q=&books[i]; printf("%6d%15s%16s%18s%9d\n",q->num,q->book_name,q->writer,q->publish,q->price); } } sort_information() {intchoice; do { printf("\n\n\n********信息排序********\n\n"); printf("1.按价格排序\n\n"); printf("2.按书号排序\n\n"); printf("0.返回主函数\n\n"); printf("选择(0-2): "); scanf("%d",&choice); flushall(); getchar(); switch(choice) {case1: sort_price();break; case2: sort_num();break; case0: break; } }while(choice! =0); } /*主菜单*/ voidmain() {intchoice; printf("\n\n\n\n\n\n\n\n\n\n\n\n**************************按任意键进入*****************************\n\n\n\n\n\n\n"); flushall(); getchar(); system("cls"); sum=read_information(); do {system("cls"); printf("\n\n\n******欢迎进入图书管理系统******\n\n"); printf("\n1.输入信息\n\n"); printf("\n2.输出信息\n\n"); printf("\n3.查询信息\n\n"); printf("\n4.更新信息\n\n"); printf("\n5.信息排序\n\n"); printf("\n0.退出\n"); printf("\n请选择(0~5): "); scanf("%d",&choice); switch(choice) {case1: input_information();break; case2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告