实训实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p = head->next;
do{
if(strcmp(p->srt,temp)==0){
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
printf("请输入出库台数:\n");
scanf("%d",&i);
char temp[20];
int flag=0;
if(head!=0){
printf("\n\t请输入要更新的电视机型号:\n");
scanf("%s",&temp);
p=head;
do{
if(strcmp(p->srt,temp)==0){
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
do{
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
p = p->next;
}while(p!=NULL);
}else{
printf("\n库存无信息!\n");
}
}
printf("\t请更新信息:\n");
scanf("%s%lf%d",&p->srt,&p->price,&p->num);
flag=1;
printf("\n更新完成!\n");
break;
}else{
p=p->next;
}
}while(p!=NULL);
}else{
flag=1;
printf("\n库存空,无法更新信息!\n");
break;
case 5:goon();
break;
case 6:print();
break;
case 0:printf("\t\t**************◆◇谢谢您的使用◇◆**************\n");
ewenku.baidu.comit(0);
break;
default:printf("\n\t输入有误,请重新输入:\n");
p2 = (struct list*)malloc(LEN);
p1=head;
if(head==0){
printf("\n库存空,请先录入信息!");
}else{
while(p1->next!=NULL){
p1=p1->next;
}
printf("\n\t请输入追加的信息:\n");
printf("TV型号\t价格\t库存量\n");
p = p->next;
}
}while(p!=NULL);
}
}else{
printf("\n库存为空,无需删除!\n");
flag = 1;
}
if(flag==0){
printf("\n没有找到该信息!\n");
}
}
void goon(struct list *head){//追加信息
struct list *p1,*p2;
printf("\t\t*\t5、『追加信息』\t6、『库存信息』\t*\n");
printf("\t\t*\t0、『退出系统』\t*\n");
printf("\n\t\t*************************************************\n");
}
void input(struct list *head){//录入信息
void input();
void search();
void update();
void delet();
void goon();
void print();
head = (struct list*)malloc(sizeof(struct list));//构建一个空链表head
head = NULL;//不带有头结点
struct list{
char srt[20];//型号
double price;//价格
int num;//数量
struct list *next;
};
int n = 0;//全局变量
int main(){//主函数
int choice;
struct list *head;
void menu();
while(1){
menu();
printf("\n※请输入您要执行的功能序号(0~5):");
scanf("%d",&choice);
switch(choice){
case 1:input();
break;
case 2:search();
break;
case 3:update();
break;
case 4:delet();
q = q->next;
}
}while(q!=NULL);
}else{
flag = 1;
printf("\n无数据信息!\n");
}
if(flag==0){
printf("\n没有查询到该信息!\n");
}
}
void update(struct list *head){//更新信息
struct list *p;
}
printf("\n追加信息成功!\n");
}
p1->next=NULL;
}
void print(struct list *head){//列出所有信息
struct list *p;
p = head;
if(head!=0){
printf("\n\t库存信息如下:\n");
printf("TV型号\t价格\t库存量\n");
}
}
return 0;
}
void menu(){
printf("\n\t\t*********★欢迎进入电视机信息管理系统★**********\n\n");
printf("\t\t*\t1、『录入信息』\t2、『查询信息』\t*\n");
printf("\t\t*\t3、『更新信息』\t4、『出库信息』\t*\n");
在程序调试时,也发现自己编写的代码不够简练、操作不够便捷,更有马虎出错的情况。所以自己在今后学习中应继续努力学习,熟练掌握所学只是的操作、应用,这样才能不断提高自己。
六附录一:程序编码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct list)
}
p2->next = NULL;
}
void search(struct list *head){//查询信息
struct list *q;
int flag = 0;
char temp[20];
if(head!=0){
printf("\n\t请输入要查询的电视机型号:\n");
scanf("%s",&temp);
while(p1->price!=0){
n = n+1;
if(n==1){
head = p1;
}else{
p2->next = p1;
}
p2 = p1;
p1 = (struct list*)malloc(LEN);
scanf("%s%lf%d",&p1->srt,&p1->price,&p1->num);
6、库存信息:
五 程序设计心得
通过本次实验,使我们进一步掌握了数据库链表结构的应用操作。同时也发现了自己在学习操作中的一些问题,链表操作看似简单,然操作起来也比较复杂,逻辑性将强,一个指针操作错误,就会影响整个程序的运行结果。其次,也认识到了自己对实验设计的不足,我本想用更新信息代替出库信息,后经老师分析,发现这样执行操作并不够人性化,且容易出错。
2)系统设计要实用、编程简练、功能全面、界面美观、操作使用便捷、程序运行稳定;
二 程序设计题目及模块功能
1.题目:
电视机库存系统
2.问题描述:
某百货公司仓库中有一批电视机,建立一个单链表并存与电视机有关数据。
例如:电视机型号、价格、库存量等。
3.基本要求:
实现以下基本操作:
(1)从键盘输入电视机的信息,建立电视机链表。
}
if(flag==0){
printf("\n没有查到要更新的信息!\n");
}
}
void delet(struct list *head){//出库信息
struct list *p,*q;
int flag = 0,i;
char temp[20];
if(head!=0){
printf("\n\t输入要出库的信息:\n");
(2)从键盘输入电视机的信息,实现电视机查询操作。
(3)从键盘输入电视机的信息,实现电视机入库操作。
(4)从键盘输入电视机的信息,实现电视机出库操作。
(5)列出电视机库存情况。
三 程序设计分析与方案流程图
1.分析
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct list)
函数头文件声明
struct list{//定义结构体类型
char srt[20];//定义存储电视机型号的字符型数组
double price;//定义实数型的电视机价格变量
int num;//定义整型的电视机台数变量数量
struct list *next;//定义指针
q = head;
do{
if(strcmp(q->srt,temp)==0){
flag=1;
printf("\t查询结果:\n");
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",q->srt,q->price,q->num);
break;
}else{
scanf("%s%lf%d",&p2->srt,&p2->price,&p2->num);
while(p2->price!=0){
p1->next=p2;
p1=p2;
n=n+1;
p2 = (struct list*)malloc(LEN);
scanf("%s%lf%d",&p2->srt,&p2->price,&p2->num);
if(p->num==i){
q->next = p->next;
free(p);
n=n-1;
printf("\n信息已删除!\n");
flag=1;break;
}else{
p->num=p->num-i;
printf("\n出库成功!\n");
flag = 1;
}
}else{
q = q->next;
};
int n = 0;//全局整型的全局变量
int main(){//主函数
struct list *head;//主函数中定义链表的头指针
return 0;
}
2.程序概图及部分函数流程图
N
Y
Y
N
N
Y
该图为录入信息流程图
四程序设计与实现效果
1、录入信息:
2、查询信息:
3、更新信息:
4、出库信息:
5、追加信息:
struct list *p1,*p2;
p1 = (struct list*)malloc(LEN);
printf("\n\t请输入需要录入的信息:\n");
printf("\nTV型号\t价格\t库存量\n");
scanf("%s%lf%d",&p1->srt,&p1->price,&p1->num);
scanf("%s",&temp);
p = head;
if(strcmp(p->srt,temp)==0){
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
printf("请输入出库台数:\n");
信息工程学院
《数据库实验训练》
设计报告
题目:电视机库存系统
班级:软件13-3班
学号:201320205039
姓名:德 世 洋
日期:2014年9月
一 程序设计的目的和要求
1.目的:
本实验的目的是进一步理解线性表(链表)的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。
2.要求:
1)对学生考试系统进行功能模块分析、控制模块正确分析,符合题目要求,实现相应功能;并加以其他功能或修饰,使程序更加完善、合理;
scanf("%d",&i);
if(p->num==i){
head = p->next;
free(p);
n=n-1;
printf("\n信息已删除!\n");
flag = 1;
}else{
p->num=p->num-i;
printf("\n出库成功!\n");
flag = 1;
}
}else{
q = head;
do{
if(strcmp(p->srt,temp)==0){
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
printf("请输入出库台数:\n");
scanf("%d",&i);
char temp[20];
int flag=0;
if(head!=0){
printf("\n\t请输入要更新的电视机型号:\n");
scanf("%s",&temp);
p=head;
do{
if(strcmp(p->srt,temp)==0){
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
do{
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
p = p->next;
}while(p!=NULL);
}else{
printf("\n库存无信息!\n");
}
}
printf("\t请更新信息:\n");
scanf("%s%lf%d",&p->srt,&p->price,&p->num);
flag=1;
printf("\n更新完成!\n");
break;
}else{
p=p->next;
}
}while(p!=NULL);
}else{
flag=1;
printf("\n库存空,无法更新信息!\n");
break;
case 5:goon();
break;
case 6:print();
break;
case 0:printf("\t\t**************◆◇谢谢您的使用◇◆**************\n");
ewenku.baidu.comit(0);
break;
default:printf("\n\t输入有误,请重新输入:\n");
p2 = (struct list*)malloc(LEN);
p1=head;
if(head==0){
printf("\n库存空,请先录入信息!");
}else{
while(p1->next!=NULL){
p1=p1->next;
}
printf("\n\t请输入追加的信息:\n");
printf("TV型号\t价格\t库存量\n");
p = p->next;
}
}while(p!=NULL);
}
}else{
printf("\n库存为空,无需删除!\n");
flag = 1;
}
if(flag==0){
printf("\n没有找到该信息!\n");
}
}
void goon(struct list *head){//追加信息
struct list *p1,*p2;
printf("\t\t*\t5、『追加信息』\t6、『库存信息』\t*\n");
printf("\t\t*\t0、『退出系统』\t*\n");
printf("\n\t\t*************************************************\n");
}
void input(struct list *head){//录入信息
void input();
void search();
void update();
void delet();
void goon();
void print();
head = (struct list*)malloc(sizeof(struct list));//构建一个空链表head
head = NULL;//不带有头结点
struct list{
char srt[20];//型号
double price;//价格
int num;//数量
struct list *next;
};
int n = 0;//全局变量
int main(){//主函数
int choice;
struct list *head;
void menu();
while(1){
menu();
printf("\n※请输入您要执行的功能序号(0~5):");
scanf("%d",&choice);
switch(choice){
case 1:input();
break;
case 2:search();
break;
case 3:update();
break;
case 4:delet();
q = q->next;
}
}while(q!=NULL);
}else{
flag = 1;
printf("\n无数据信息!\n");
}
if(flag==0){
printf("\n没有查询到该信息!\n");
}
}
void update(struct list *head){//更新信息
struct list *p;
}
printf("\n追加信息成功!\n");
}
p1->next=NULL;
}
void print(struct list *head){//列出所有信息
struct list *p;
p = head;
if(head!=0){
printf("\n\t库存信息如下:\n");
printf("TV型号\t价格\t库存量\n");
}
}
return 0;
}
void menu(){
printf("\n\t\t*********★欢迎进入电视机信息管理系统★**********\n\n");
printf("\t\t*\t1、『录入信息』\t2、『查询信息』\t*\n");
printf("\t\t*\t3、『更新信息』\t4、『出库信息』\t*\n");
在程序调试时,也发现自己编写的代码不够简练、操作不够便捷,更有马虎出错的情况。所以自己在今后学习中应继续努力学习,熟练掌握所学只是的操作、应用,这样才能不断提高自己。
六附录一:程序编码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct list)
}
p2->next = NULL;
}
void search(struct list *head){//查询信息
struct list *q;
int flag = 0;
char temp[20];
if(head!=0){
printf("\n\t请输入要查询的电视机型号:\n");
scanf("%s",&temp);
while(p1->price!=0){
n = n+1;
if(n==1){
head = p1;
}else{
p2->next = p1;
}
p2 = p1;
p1 = (struct list*)malloc(LEN);
scanf("%s%lf%d",&p1->srt,&p1->price,&p1->num);
6、库存信息:
五 程序设计心得
通过本次实验,使我们进一步掌握了数据库链表结构的应用操作。同时也发现了自己在学习操作中的一些问题,链表操作看似简单,然操作起来也比较复杂,逻辑性将强,一个指针操作错误,就会影响整个程序的运行结果。其次,也认识到了自己对实验设计的不足,我本想用更新信息代替出库信息,后经老师分析,发现这样执行操作并不够人性化,且容易出错。
2)系统设计要实用、编程简练、功能全面、界面美观、操作使用便捷、程序运行稳定;
二 程序设计题目及模块功能
1.题目:
电视机库存系统
2.问题描述:
某百货公司仓库中有一批电视机,建立一个单链表并存与电视机有关数据。
例如:电视机型号、价格、库存量等。
3.基本要求:
实现以下基本操作:
(1)从键盘输入电视机的信息,建立电视机链表。
}
if(flag==0){
printf("\n没有查到要更新的信息!\n");
}
}
void delet(struct list *head){//出库信息
struct list *p,*q;
int flag = 0,i;
char temp[20];
if(head!=0){
printf("\n\t输入要出库的信息:\n");
(2)从键盘输入电视机的信息,实现电视机查询操作。
(3)从键盘输入电视机的信息,实现电视机入库操作。
(4)从键盘输入电视机的信息,实现电视机出库操作。
(5)列出电视机库存情况。
三 程序设计分析与方案流程图
1.分析
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct list)
函数头文件声明
struct list{//定义结构体类型
char srt[20];//定义存储电视机型号的字符型数组
double price;//定义实数型的电视机价格变量
int num;//定义整型的电视机台数变量数量
struct list *next;//定义指针
q = head;
do{
if(strcmp(q->srt,temp)==0){
flag=1;
printf("\t查询结果:\n");
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",q->srt,q->price,q->num);
break;
}else{
scanf("%s%lf%d",&p2->srt,&p2->price,&p2->num);
while(p2->price!=0){
p1->next=p2;
p1=p2;
n=n+1;
p2 = (struct list*)malloc(LEN);
scanf("%s%lf%d",&p2->srt,&p2->price,&p2->num);
if(p->num==i){
q->next = p->next;
free(p);
n=n-1;
printf("\n信息已删除!\n");
flag=1;break;
}else{
p->num=p->num-i;
printf("\n出库成功!\n");
flag = 1;
}
}else{
q = q->next;
};
int n = 0;//全局整型的全局变量
int main(){//主函数
struct list *head;//主函数中定义链表的头指针
return 0;
}
2.程序概图及部分函数流程图
N
Y
Y
N
N
Y
该图为录入信息流程图
四程序设计与实现效果
1、录入信息:
2、查询信息:
3、更新信息:
4、出库信息:
5、追加信息:
struct list *p1,*p2;
p1 = (struct list*)malloc(LEN);
printf("\n\t请输入需要录入的信息:\n");
printf("\nTV型号\t价格\t库存量\n");
scanf("%s%lf%d",&p1->srt,&p1->price,&p1->num);
scanf("%s",&temp);
p = head;
if(strcmp(p->srt,temp)==0){
printf("TV型号\t价格\t库存量\n");
printf("%s\t%.2lf\t%d\n",p->srt,p->price,p->num);
printf("请输入出库台数:\n");
信息工程学院
《数据库实验训练》
设计报告
题目:电视机库存系统
班级:软件13-3班
学号:201320205039
姓名:德 世 洋
日期:2014年9月
一 程序设计的目的和要求
1.目的:
本实验的目的是进一步理解线性表(链表)的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。
2.要求:
1)对学生考试系统进行功能模块分析、控制模块正确分析,符合题目要求,实现相应功能;并加以其他功能或修饰,使程序更加完善、合理;
scanf("%d",&i);
if(p->num==i){
head = p->next;
free(p);
n=n-1;
printf("\n信息已删除!\n");
flag = 1;
}else{
p->num=p->num-i;
printf("\n出库成功!\n");
flag = 1;
}
}else{
q = head;