当前位置:首页 >> IT/计算机 >>

数据结构课程设计报告(有代码 C语言)-仓库管理系统


第一章 系统 标 (三号

加 )

仓库管理应用程序 仓库管理应用程序
系统可以实现信息多次追加入录,信息显示,删除信息,修改信 息,查询信息,价格升序等基本功能,这些功能模块都用函数的形式 来实现. 学生信息保存在文件中, 需要时可以随时从文件中读取出来. 方便用户随时可查询.进行仓库管理.

第二章 系统
正文(四号 明确用户 具 .

(三 号
) 求, 界

加 )
求,系统功 求,数据

开始运行时界面如下:

你可以根据所对应的信息提示进行操作便可对其进行数据的记录 与查询.

第三章 系统设计
1

开 始
输出操作界面

提示按任意键,便 可返回界面

选择 1

初始化 清空记录

选择 2

输入数据

提 示 "输 入 错 误 " 按 任 意 键 可 以 继 续
选择 6 选择 5 选择 4 选择 3

数据 入

数据

数据

数据

选择 7

2

输入 W/w

保存文件

输入 R/r

读取文件

其余输入

选择 0

结 束

第四章 系统实现
正文(四号 给 具 ) 实现环境( 么语 ? 么 系统?)

用 C 语言编程,用 cokeblock 编译器,在 windows xp 操作系统 下编译成功. 给 数 个 实现 码. #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<ctype.h> #include<string.h> #define SIZE 100 typedef struct{ char name[10]; char fam[10]; int pay; int num; }Store;
3

typedef struct node{ Store elem; struct node *next; }In; In *head=NULL; void appendInfo(); void List(); void menu(void); In*Init(); void Start(); void Insert(); void Del(); void renew(); void Wsave(); void Read(); void SortUp(); void PreFile(); int main(){ char select; PreFile(); menu(); while((select=toupper(getch()))!='0'){ system("cls"); switch (select) { case '1' :{ Start();system("pause");menu(); break; } case '2':{

4

appendInfo();system("pause");menu(); break; } case '3':{ Insert();system("pause");menu(); break; } case '4':{ Del();system("pause");menu(); break; } case '5':{ renew();system("pause");menu(); break; } case '6':{ List();system("pause");menu(); break; } case '7':{ SortUp();system("pause");menu(); break; } case 'W':{ Wsave(); system("pause"); menu(); break; } case 'R':{ Read();
5

system("pause"); menu(); break; } default:printf("Input error!\n"); system("pause"); menu(); break; } } return 0; } In*Init(){ In*L; L=(In*)malloc(sizeof(In)); L->next=NULL; return L; } void appendInfo(){ int i,j; In*p,*s; A1:printf("请输入要存放的记录数:"); scanf("%d",&j); if(j<=0){ printf("Input error!\n"); goto A1; } if(head==NULL){ p=Init(); head=p; }
6

else{ p=head->next; while(p->next!=NULL) p=p->next; } for(i=0;i<j;i++){ s=Init(); printf("名称 品牌 单价 数量\n"); scanf("%s",&s->elem.name); scanf("%s",&s->elem.fam); scanf("%d",&s->elem.pay); scanf("%d",&s->elem.num); p->next=s; p=s; } } void List(){ In *p; if(head==NULL) { printf("None products.\n"); return; } else p=head->next; printf("名称 品牌 单价 数量\n"); while(p!=NULL) { printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam,
7

of

information

about

p->elem.pay,p->elem.num); p=p->next; } } void menu(){ system("cls"); printf(" |-------------------------------------------|\n"); printf(" ----------------|\n"); printf(" |\n"); printf(" |-------------------------------------------|\n"); printf(" |\n"); printf(" |\n"); printf(" |\n"); printf(" |\n"); printf(" |\n"); printf(" |\n"); printf(" |\n"); printf(" |\n"); printf(" |
8

|---------------家电仓库管理 | 请输入选项编号

| | | | | | | |

1--数据初始化 2--创建数据表 3-- 数 据 插 入 4-- 数 据 删 除 5-- 数 据 更 新 6-- 数 据 查 询 7-- 单 价 升 序 w-- 数 据 保 存 r-- 数 据 读 出

|\n"); printf(" |\n"); printf(" |-------------------------------------------|\n"); printf("请输入你的选择:"); } void Start(){ char com; printf("你想清空所有资料吗?(Y/N):"); fflush(stdin); com=getchar(); if(com=='Y'||com=='y'){ printf("已经初始化了,,\n"); , head=NULL; return; } else printf("资料仍在,,\n"); , return ; } void Insert(){ In*pi,*p; char str[10]; printf("请问要在哪个学生后面插入(输入姓名) :"); fflush(stdin); gets(str); pi=Init(); printf("名称 品牌 单价 数量\n"); scanf("%s",&pi->elem.name); scanf("%s",&pi->elem.fam); scanf("%d",&pi->elem.pay);
9

|

0--系统退出 (exit)

scanf("%d",&pi->elem.num); if(head==NULL){ printf("前面没有数据,默认接在表头.\n"); p=Init(); head=p; p->next=pi; } else{ p=head->next; while((strcmp(p->elem.name,str)!=0)&&p->next!=NULL) p=p->next; if(p->next!=NULL){ pi->next=p->next; p->next=pi; } else p->next=pi; } } void Del(){ In*pi,*p,*s; char str[10]; if(head==NULL){ printf("没有商品资料.\n"); return; } printf("请输入要删除产品的名称:"); fflush(stdin); gets(str); p=head->next;

10

while((strcmp(p->elem.name,str)!=0)&&p->next!=NULL){ pi=p; p=p->next; } if(strcmp(p->elem.name,str)==0){ printf("所删除的记录为:\n"); printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam, p->elem.pay,p->elem.num); if(p==head->next){ s=Init(); head=s; s->next=p->next; } else pi->next=p->next; free(p); } else printf("找不到相应的商品资料.\n"); } void renew(){ In*pi,*p,*s; char str[10]; if(head==NULL){ printf("没有商品资料.\n"); return; } List(); printf("请输入要更新产品的名称:"); fflush(stdin); gets(str);
11

p=head->next; while((strcmp(p->elem.name,str)!=0)&&p->next!=NULL){ pi=p; p=p->next; } if(strcmp(p->elem.name,str)==0){ printf("所要更新的记录为:\n"); printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam, p->elem.pay,p->elem.num); printf("品牌 单价 数量\n"); scanf("%s",&p->elem.fam); scanf("%d",&p->elem.pay); scanf("%d",&p->elem.num); printf("更新后的记录为:\n"); printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam, p->elem.pay,p->elem.num); } else printf("找不到相应的商品资料.\n"); } void Wsave(){ FILE*fp; In*p; if(head==NULL){ printf("你还未有资料."); return; } if((fp=fopen("store.dat","wb"))==NULL) printf("Cannot open file!\n");
12

else{ for(p=head->next;p!=NULL;p=p->next) if(fwrite(p,sizeof(In),1,fp)!=1) printf("File write error!\n"); } printf("\t\t\t 保存成功.\n\n"); fclose(fp); } void Read(){ In*p; FILE*fp; if(head==NULL){ printf("你还未有资料."); return; } if((fp=fopen("store.dat","rb"))==NULL){ printf("Cannot Open."); return; } for(p=head->next;p!=NULL;p=p->next){ p=Init(); fread(p,sizeof(In),1,fp); printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam, p->elem.pay,p->elem.num); } printf("\n\t\t\t 读取成功\n"); fclose(fp); } void SortUp(){ In*p1,*p2,*p3;
13

p3=(In*)malloc(sizeof(In)); if(head==NULL){ printf("没有记录,无法排序."); return; } for(p1=head->next;p1->next!=NULL;p1=p1->next) for(p2=p1->next;p2!=NULL;p2=p2->next) if(p1->elem.pay>p2->elem.pay){ p3->elem=p1->elem; p1->elem=p2->elem; p2->elem=p3->elem; } printf("\n 已经排序好了.\n"); List(); } void PreFile(){ int Flag=0; In *he,*p,*q; FILE *fp; if((fp=fopen("store.dat","ab+"))==NULL){ printf("Open file error!\n"); exit(0); } he=Init(); q=he; p=Init(); he->next=p; for(;fread(p,sizeof(In),1,fp)!=0;p=Init()){ he->next=p; he=p; p->next=NULL;
14

Flag=1; } if(Flag) head=q; else head=NULL ; fclose(fp); }

第五章 系统测试
正文(四号 模拟 例如: 1. 先输入:6 就会读出原本已保存的文件的记录. 测试运 结果 ) 过 运 ,测试系统 个功 ,给 组数据,

2. 按任意键后,就会弹出原有界面. 3. 输入:3 后按提示做插入操作.

4. 再按任意键后,会弹出原有界面. 5. 再输入:6 后界面就变为如下:

15

6. 再输入:7 后界面就变为

7. 再输入:2,即再在后面添加数据.

8. 再输入:6 后界面就变为如下:

即添加到了数据后面.这也已经默认了添加时是接在原有文件的后 面. 9. 再输入:w 或 W 时,

10.

关闭界面,重新运行时.输入:6 或 R 或 r 时,运行结果

为:

16

第六章 设计
正文(四号 对 么? 个设计过 举,还 ) 进 总结, 高? 过这个课 设计 获 么问题

收获:通过专周的训练,已经想起了很多有关的 C 语言的知识, 比如 toupper 是包含在"ctype.h"的头文件中.同时对文件的读与 写有了更全面的了解与应用. 疑问:读文件时有用到 while(!feof(fp))会多出乱码.不知道会 是哪里衔接不够好.

第七章 参考 献
1. 作者,参考 献 称, , 杨升,数据结构,厦门出版社,2009

教师评语



2010 年 1 月

17


相关文章:
C语言与数据结构课程设计报告要求
C语言数据结构课程设计报告要求_工学_高等教育_...程序源代码 1 需求分析 1.1 功能与数据需求 1) ...***欢迎使用通信录信息管理系统***|\n"); printf...
C语言数据结构课程设计航空订票实验报告(含源代码)
C语言数据结构课程设计航空订票实验报告(源代码) - 一、设计要求 任务通过此系统可以实现如下功能: 1.录入航班信息: 可以录入航班情况(数据可以存储在一个数据...
图书管理系统(含源代码)c语言 数据结构课程设计报告
图书管理系统(含源代码)c语言 数据结构课程设计报告_工学_高等教育_教育专区。图书管理系统 数据结构课程设计报告源代码包括两个代码 代码1、实现对文件操作 ...
数据结构课程设计(C语言)
数据结构课程设计(C语言)_计算机软件及应用_IT/...(5 分) 设计报告的规范性 (占总成绩 10%) □...对于学生成绩管理系统, 此项目每年都有学生去做,...
数据结构课程设计c语言版《飞机订票系统》
数据结构课程设计c语言版《飞机订票系统》_计算机软件及应用_IT/计算机_专业资料。c语言数据结构课程设计,带源码 软件工程专业 14 级《数据结构》课程设计报告 ...
数据结构(C语言版)课程设计报告表达式求值
关键词:数据结构课程设计C语言表达式求值计算机科学与技术 1/2 相关文档推荐 ...; 进行系统的详细设计和源代码的书写; 对系统进行调试分析,写出课程设计报告。 ...
数据结构课程设计报告 通讯录的制作
数据结构课程设计报告 通讯录的制作_计算机软件及应用...数据结构〉〉中的双向链表作数据结构,结合C/C++语言...编写一个通讯录管理系统。以把所学数据结构知识应用...
c语言及数据结构与算法课程设计报告
c语言数据结构与算法课程设计报告_工学_高等教育_...七、附录 源程序代码 #include <stdio.h> #...欢迎使用福建工软物联网1401班学生信息管理系统 \n...
小型图书管理系统C语言课程设计报告 - 副本
小型图书管理系统C语言课程设计报告 - 副本_工学_高等教育_教育专区。c语言图书管理系统 德州学院计算机系 2009 级 数据结构课程设计 德州学院计算机系 课程设计报告...
数据结构课程设计(简单计算器C语言)
数据结构课程设计(简单计算器C语言) - 期末课程设计用C语言实现,未加入错误检测,代码有点乱凑合着看吧
更多相关标签: