C语言课程设计上机实习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长江大学工程技术学院C语言课程设计实习报告
简易图书信息管理系统
学生姓名:***
学号:*********
序号:9
专业班级:通信61002
指导老师:***
报告日期:2011.7.9
第一部分课程设计的题目与要求
1.问题的提出
使用C语言程序设计一个简易图书信息管理系统。系统可通过登陆后,调用指定的存储数据文件,利用程序设计好的各功能选项,实现对记录的查询、排序、修改、统计以及数据分类等等功能。用记事本新建一个文本文件,文件名为:“DX+班号+序号”,如电信01班的12号同学所建的文件名应为:DX0112.txt.将N本书的信息(可在图书馆或网上查询书籍信息,要求数据中包含有相同的作者名和出版社的记录),输入到这个文件中,建议按如下形式存放:
编号分类书名作者名出版社数量单价
1 社会科学寻觅科学余秋雨作家出版社 1 38.00
2 自然科学 C程序设计谭浩强清华大学出版社 2 26.00
3 英文书籍博弈_The_Game Jones OverseaPublishing House 1 87.00
4 工具书牛津字典 Thompson 外语教学 3 119.00
5 社会科学文化苦旅余秋雨东方出版社 3 22.00
6 工具书实用字典门顺德外语教学 3 26.00
7 自然科学 C++ 谭浩强清华大学出版社 2 26.00
2. 功能要求
在主函数中读入原始数据文件的内容,保存在对应的结构体数组中,然后显示菜单,利用菜单调用各个函数,分别完成如下功能:(注意:若文件DX0112存放在D盘的ABC文件夹中,则在fopen()函数中的文件名为:”D:\\ABC\\DX0112.txt”).(1).实现查询和功能:①按书名查询②按作者名查询。将满足查询条件的整条记录显示在屏幕中。(2).实现排序功能:①按种类排序②按作者名排序。将排序的结果显示在屏幕上(3).统计每本书的总价及所有图书的总价。用C语言创建一个数据文件,文件名为:“ZJ+班号+序号”,如电信01班的12号同学所建的文件名应为:ZJ0112.txt。用该文件来存放统计后的结果。存放形式如下:
编号分类书名作者名出版社数量单价总价
1 社会科学寻觅科学余秋雨作家出版社 1 38.00 38.00
2 自然科学 C程序设计谭浩强清华大学出版社 2 26.00 52.00
3 英文书籍博弈_The_Game Jones Oversea_Pub 1 87.00 87.00
4 工具书牛津字典 Thompson 外研社 3 119.00 357.00
5 社会科学文化苦旅余秋雨东方出版社 3 22.00 66.00
6 工具书实用字典门顺德外语教学 3 26.00 78.00
7 自然科学 C++ 谭浩强清华大学出版社 2 26.00 52.00
全部书总价 730.00
(4).统计每类图书的总册数。
用C语言创建一个数据文件,文件名为:“ZL+班号+序号”,如电信01班的12号同学所建的文件名应为ZL0112.txt,用该文件存放统计后的结果。存放形式如下:
序号分类总册数
1 社会科学 4
2 自然科学 4
3 英文书籍 1
4 工具书 6
(5).实现图书的修改功能。
先查询出要修改的记录,然后选择要修改的字段名,并输入新的字段子信息。将新的字段信息写入DX0112.txt文件中。
第二部分课程设计题目功能1.系统功能模块框图设计
2. 数据结构说明
struct Book /定义一个结构体/
int ID; /定义一个整型的编号/
Char Class[10]; /定义一维数组“种类”/
Char BookName[20]; /定义一维数组“书名”/
char Author[20]; /定义一维数组“作者名”/
char Publishing[15]; /定义一维数组“出版社”/
int Count; / 定义一个整型的数量/
float Price; /定义一个浮点小数价格/
定义了一个结构体类型,花括号中结构体成员表定义了此结构体内所包含的每一个成员的类型,即字符型、实型、整型。结构体类型建立后规定了该结构体自身所占用存储空间的存储模型。运用该结构体方便了数据类型的处理。
Char /字符型变量/
Float / 单精度实型变量/
Int / 整型变量 /
3.详细设计
读取图书和学生的数据:
(1) Main是主函数,它调struct Book Books函数,使用了switch语句和goto语句,实现了读文件操作。在switch语句中又实现了8个自定义函数的调用。
(2)在读文件程序中开始便定义了指针变量,fp是被申明为FILE类型的指针变,打开代码if((fp=fopen("TX0209.txt","r"))==NULL)
{printf("\n图书信息文件打开失败!\n");return;
}
如果不能实现打开任务,出错大原因可能是:用"r"方式打开一个并不存在的文件;磁盘出故障;磁盘已满无法建立新文件等。
(3)调用fgets函数,将从文件指针变量fp所指向的文件中读取100个字符,并赋给字符变量str1,再通过fput输出到fp所指向的文件中。
(4)用一个for循环依次将磁盘文件格式化读写出来。
(5) 用fclose函数关闭文件,防止被误用。
程序功能流程图
程序功能代码:
void main()
{
int ind;
loop:
menu();
printf("Enter a number:");
scanf("%d", &ind);
switch(ind)
{
case 1: ReadFile();
case 2: QryByBookName();
case 3: QryByAuthor() ;
case 4: SortByClass();
case 5: SortByPublish();
case 6: BookTotal();
case 7: BookCount();
case 8: BookModify();
goto loop;
break;
}
return;
}