C语言课程设计论文实验室管理系统Word下载.docx

上传人:b****3 文档编号:16420402 上传时间:2022-11-23 格式:DOCX 页数:48 大小:271.48KB
下载 相关 举报
C语言课程设计论文实验室管理系统Word下载.docx_第1页
第1页 / 共48页
C语言课程设计论文实验室管理系统Word下载.docx_第2页
第2页 / 共48页
C语言课程设计论文实验室管理系统Word下载.docx_第3页
第3页 / 共48页
C语言课程设计论文实验室管理系统Word下载.docx_第4页
第4页 / 共48页
C语言课程设计论文实验室管理系统Word下载.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

C语言课程设计论文实验室管理系统Word下载.docx

《C语言课程设计论文实验室管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计论文实验室管理系统Word下载.docx(48页珍藏版)》请在冰豆网上搜索。

C语言课程设计论文实验室管理系统Word下载.docx

实现对设备的查询,提供查找操作,查询可以按照设备编号、设备种类、设备名称、设备购入日期、是否报废、报废日期等多种方式查询;

另外提供键盘是选择菜单以实现功能选择。

3总体设计

根据上面的分析,可以将这个系统分为如下六大模块:

实验室设备输入模块、实验设备信息添加模块、、实验设备分类统计模块、实验设备查询模块和退出模块。

其中主要模块是前五个模块。

4详细设计

4.1主函数

【数据结构】

原始数据有设备编号、设备名称、设备种类、设备价格、设备购入时期、是否报废、报废日期,所以定义一个全局结构体数组equipment用于保存原始数据。

【数据结构代码】

structequipment

{

charnum[4];

编号

charname[20];

名称

chartype[20];

种类

floatprice;

价格

charindate[15];

购入日期

charout[2];

是否报废(是为y,否为n)

charoutdate[15];

报废日期

}equ[N];

N为全局变量,暂定为100

主函数初始化工作完成之后执行menu()显示主菜单。

【程序】

voidmain()//入口函数

menu();

//显示主菜单

}

menu()显示主菜单

用于显示菜单,获取用户选项进入相应模块。

voidmenu()

intn,w1;

do

{

puts("

************************菜单*********************\n"

);

\t\t\t\t1.输入新数据\n"

\t\t\t\t2.修改数据\n"

\t\t\t\t3.添加数据\n"

\t\t\t\t4.浏览全部\n"

\t\t\t\t5.搜索\n"

\t\t\t\t6.排序\n"

\t\t\t\t7.退出\n"

**************************************************\n"

printf("

选择数字(1-7):

[]\b\b"

scanf("

%d"

&

n);

if(n<

1||n>

7)

w1=1;

getchar();

elsew1=0;

}

while(w1==1);

switch(n)

case1:

enter();

break;

case2:

modify();

case3:

add();

case4:

browse();

case5:

search();

case6:

order();

case7:

exit(0);

4.2各功能模块设计

4.2.1设备输入模块

voidenter()

{inti,n;

添加多少设备?

"

\n\n"

for(i=0;

i<

n;

i++)

输入第%d个数据"

i+1);

input(i);

if(i!

=0)save(n);

printf_back();

4.2.2设备信息添加模块

voidadd()

inti,n,m,k;

FILE*fp;

n=load();

printf("

你想输入多少设备(0-%d)?

:

N-1-n);

scanf("

m);

k=m+n;

for(i=0;

m;

\n输入第%d个设备的数据\n"

input(i);

if((fp=fopen("

data.txt"

"

ab"

))==NULL)

找不到文件\n"

if((fwrite(&

equ[i],sizeof(structequipment),1,fp))!

=1);

fclose(fp);

printf_back();

4.2.3设备信息更改模块

【程序】

voidmodify()

structequipmente;

inti,n,w0=1,w1,w2=0,k;

do

k=-1;

printf_face();

{if((i!

=0)&

&

(i%10==0))

记住你要改的序号,任意键继续..\n"

puts("

printf_one(i);

\n输入你要修改的设备的序号:

NO.:

%s"

e.num);

if(strcmp(e.num,equ[i].num)==0)

k=i;

e=equ[i];

if(k==-1)printf("

\n\n不存在,请重新输入"

}while(k==-1);

printf_one(k);

w1=modify_data(k,n);

if(w1==1)

\n恭喜~还想再改吗?

\n\n1).是\t2).返回并保存\t[]\b\b"

w0);

w2=1;

else

w0=0;

if(w2==1)

equ[k]=e;

if(w0!

=1&

w2==1)

save(n);

while(w0==1);

4.2.4设备分类统计模块

voidorder()

{intn,w1;

***********************分类统计选项**************************\n"

\t\t\t1.设备编号\n"

\t\t\t2.名称\n"

\t\t\t3.种类\n"

\t\t\t4.价格\n"

\t\t\t5.购入日期\n"

\t\t\t6.是否报废\n"

\t\t\t7.报废日期\n"

\t\t\t8.退出\n"

***************************\n"

请输入号码[]\b\b"

if(n<

w1=1;

elsew1=0;

while(w1==1);

switch(n)

case1:

num_order();

case2:

name_order();

case3:

type_order();

case4:

price_order();

case5:

indate_order();

case6:

out_order();

case7:

outdate_order();

case8:

4.2.5设备查询模块

voidsearch()

{intn,w1;

*************************************************************\n"

8)

num_search();

name_search();

type_search();

price_search();

indate_search();

out_search();

outdate_search();

4.2.6设备信息浏览模块

voidbrowse()

inti,n;

if(i%10==0)

\n\t有%d个记录\n"

n);

任意键继续~\n"

4.2.7退出模块

exit(0)为系统函数

4.3公共函数

4.3.1【程序】

voidsave(intn)//保存函数

inti;

FILE*fp;

if((fp=fopen("

wb"

cannotopenfile~"

return;

if(fwrite(&

equ[i],sizeof(structequipment),1,fp)!

=1)

filewriteerror~"

fclose(fp);

4.3.2【程序】

intload()//加载函数

inti;

rb"

return0;

!

feof(fp);

if(fread(&

;

return(i-1);

4.3.3【程序】

voidno_input(inti,intn)//学号输入函数

intj,k,w;

w=0;

printf("

编号:

scanf("

equ[i].num);

for(j=0;

equ[i].num[j]!

='

\0'

j++)

if(equ[i].num[j]<

'

0'

||equ[i].num[j]>

9'

{

printf("

输入错误,只能由纯数字构成,请重新输入!

\n"

w=1;

}

if(w!

for(k=0;

k<

k++)

if(k!

=i&

strcmp(equ[k].num,equ[i].num)==0)

{

printf("

此数据已存在,请重新输入\n"

w=1;

}

while(w==1);

voidprintf_back2()

{

intw;

接下来您想?

\n\n1).返回主菜单\t\t2).返回排序菜单继续排序:

[]\b\b"

w);

if(w==1)menu();

elseorder();

4.3.4【程序】

voidprintf_back()//任务结束选择浏览还是返回函数

\n\n恭喜!

操作成功!

\n\n1).浏览浏览操作后全部数据\t\t2).返回主菜单:

if(w==1)browse();

elsemenu();

4.3.5【程序】

voidprintf_back1()//任务结束选择浏览还是返回继续继续搜索

\n\n1).返回主菜单\t\t2).返回搜索菜单继续搜索:

elsesearch();

4.3.6【程序】

voidprintf_back2()//任务结束时选择浏览还是返回继续排序

inti,n;

4.3.7【程序】

voidprintf_face()//显示数据结构函数

\n\tNO.nametypepriceindateoutoutdate\n"

4.3.8【程序】

voidprintf_one(inti)//显示一个记录的函数

%10s%10s%10s%-6.3f%-10s%-8s%-15s"

equ[i].num,equ[i].name,equ[i].type,equ[i].price,equ[i].indate,equ[i].out,equ[i].outdate);

4.3.9【程序】

intmodify_data(inti,intn)//修改单个数据函数

intc,w1;

修改按照=>

\n\n1).编号2).名称3).类型4).价格5).购入时间6).是否报废7).报废时间\n"

c);

if(c>

8||c<

1)

{puts("

\n选择错误哟,重新输入~"

while(c>

1);

switch(c)

名称:

equ[i].name);

类型:

%"

equ[i].type);

价格:

%f"

equ[i].price);

购入时间:

equ[i].indate);

是否报废:

equ[i].out);

报废时间:

equ[i].outdate);

确定?

\n\n\t1).确定2).不,重新修改3).退出(不保存)[]\b\b"

w1);

while(w1==2);

return(w1);

5运行结果(附图)

程序运行结果:

1.

输入4组数据:

编号名称种类价格购入日期是否报废报废日期

001hpmicromachine400001999.04.06n2013.05.03

002dellprinter30002003.12.07y2009.12.07

004scannersharp200002008.03.12n2012.01.01

003ibmscreen200002010.4.13n2015.12.01

(其中第3组数据中购入日期格式错误,第2组名称和种类位置颠倒)

2.浏览:

3.发现其中有错误,调用修改函数

此时已修改所有错误,返回主菜单并显示修改后数据如下

4.添加第五组数据:

005asuskeyboard2002010.06.21n2012.01.01

5搜索:

6.排序:

附录本程序代码

#include<

stdio.h>

string.h>

stdlib.h>

#defineN100

voidnum_order()

voidprintf_back2();

intload();

voidsave(intn);

inti,j,k,n;

chara[30];

floate;

for(i=0;

n-1;

for(j=i+1;

j<

if(strcmp(equ[k].num,equ[j].num)>

0)k=j;

strcpy(a,equ[i].num);

strcpy(equ[i].num,equ[k].num);

strcpy(equ[k].num,a);

strcpy(a,equ[i].name);

strcpy(equ[i].name,equ[k].name);

strcpy(equ[k].name,a);

strcpy(a,equ[i].type);

strcpy(equ[i].type,equ[k].type);

strcpy(equ[k].type,a);

strcpy(a,equ[i].indate);

strcpy(equ[i].indate,equ[k].indate);

strcpy(equ[k].indate,a);

strcpy(a,equ[i].outdate);

strcpy(equ[i].outdate,equ[k].outdate);

strcpy(equ[k].outdate,a);

strcpy(a,equ[i].out);

strcpy(equ[i].out,equ[k].out);

strcpy(equ[k].out,a);

e=equ[i].price;

equ[i].price=equ[k].price;

equ[k].price=e;

k=0;

save(n);

printf_back2();

voidtype_order()

if(strcmp(equ[k].type,equ[j].type)>

strcpy(a,equ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1