c语言程序设计测试报告,C语言程序设计报告(菜单+源码+测试).doc

...

...

一:系统功能

Write to a Text File

基本功能 :

将 数组中的全部 记录写入文 件 Records.txt 中,要 求格式 与

图书的录入,删除,查找,和导入导出等。

Dictory.txt 相同。

Quit (退出图书管理系统)

图书属性 :

书号,书名,第一作者,版次,出版年等。 新增加菜单功能:

Change a record

菜单功能 :

修改某一条记录的值

Input Records (输入若干条记录) a. Menu

从键盘一次输入一本书的信息,存放到结构体数组中,然后显示。 显示菜单

提示信息,确认是否输入下一条记录。 b. Clear Screen

Display All Records (显示所有记录)

清屏

按顺序显示所有记录,每屏显示 10 条记录,按 键继续显示

c. Pause

下一屏。 按暂停,按任意键继续

Delete a Record (按书名查找,删除一本书)

输入待删除书的书名,显示该书名的所有书目,提示输入待删除书

目的书号,提示是否删除,确认后,删除该书。

二 :数据结构

Sort (排序)

Typedef struct

以书名为升序排列数组 {

Insert a record (插入一条记录) char ISBN[10];// 书号

以书名为序排列的数组中插入一条记录,插入后,数组仍然有序。 char book[30];// 书名输出插入成功后的信息。 char author[20];// 作者

Query(查找并显示一个记录) Int edition;// 版本号

输入书名,查找并显示包含该书名的所有图书信息 char press[50];// 出版社名

Add Records from a Text File (从文件读入图书信息到结构体数 int year;// 出版年

组中) }Bookinfo;用户可事先建立一个文本文件 Dictory.txt 。存放所有图书信息,

文件格式如下:

2

1182 高等数学刘浩荣 5 同济大学出版社 2013

7300 物理化学王德明 2 化学工业出版社 2015

三:函数调用关系

Delete()

Delete_a_record()

Display()Input()

Sort_by_name()

AddfromText()main

Insert()

Insert_a_record()

Query_a_record() Write_to_Text()

Display_main_menu()Change_a_record()

Query()

四:主要算法及实现

插入算法

是 j>i+1

j=n 语句 A j-- n+1

i=0 i=0 i

b&&c

i++ 语句 B n+1

b=strcmp((*s).book,dictList[i].book)>=0

c=strcmp((*s).book,dictList[i+1].book)<=0

语句 A:dictList[j]=dictList[j-1];

语句 B:dictList[i+1]=*s;

排序算法

p=j

语句 A

否 是

是 p=i 是

开始 i0 j++ P!=i

i=0

j=i+1

i++ 结束

否 否

b=strcmp(dictList[p].book,dictList[j].book)

语句 A:t = dictList[p];

dictList[p] = dictList[i];

dictList[i] = t;

五:源程序(含注释)

printf("Please input year:\n");

scanf("%d",&dictList[n].year);

#include n+=1;

#include printf(" 是否输入下一条 ?确认(y)| 取消(n)\n");// 提示信息

#include c1=getchar();

#define NUM 100 }while((c2=getchar())=='y');

return(n); // 返回值为新的记录数量

typedef struct // 定义结构体数组 }

{

char ISBN[10]; // 书号 void Display(Bookinfo dictList[],int n) // 显示所有记录,每 10 个暂停一次,

char book[30]; // 书名

输入回车继续显示

char author[20]; // 作者 {

int edition; // 版本号 int i=0,j;

ch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值