按关键词阅读: 系统 课程设计 语言 实验 设备管理 力学
1、程序设计基础课程设计课题名称 力学实验设备管理系统设计 专 业 班 级 姓 名 学 号 指导教师 20 年 月 日目录第1章 设计目的 .1第2章 总体设计2第3章 详细设计5第4章 调试与测试15第5章 总结与体会19参考文献 . 20附:源程序清单和执行结果.21第1章 设计目的本次C语言课程设计是对本学期程序设计基础课程的实际应用 , 通过课程设计主要达到如下目的:1. 巩固和加深对C语言课程的基本知识的理解和掌握 。
2. 掌握C语言编程和程序调试的基本技能 。
3. 利用C语言进行基本的软件设计 。
4. 掌握书写程序设计说明文档的能力 。
5. 提高运用C语言解决实际问题的能力 。
第2章 总体设计2.1 。
2、力学实验设备管理系统的要求通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理 。
实验设备信息包括:设备编号 , 设备种类 , 设备名称(如烧杯、酒精灯等) , 设备价格 , 设备购入日期 , 是否报废 , 报废日期等 。
主要功能:1)、能够完成对设备的录入和修改2)、对设备进行分类统计3)、设备的破损耗费和遗损处理4)、设备的查询5)、将设备信息保存到文件中2.2流程图根据设计要求 , 画出如下流程图:开 始菜 单1录入2显示3修改4删除5查询6.退出a.名称b.编号结 束2.3设置的主要函数void userinterface()/*菜单函数*/void showall()/*显示*/void a 。
3、dd()/*增加成员*/void delet()/*删除*/void find()/*查找*/void findchoice(int a) /*选择查找方式函数*/void modify()/*修改信息*/void save()/*把信息保存到磁盘*/void esc()/*退出*/void choices()/*为下一步操作做选择*/void load()/*读数据*/第2章 详细设计3.1函数以及调用关系void userinterface()/*菜单函数*/开始添加记录查找记录显示记录删除记录修改记录结束Menu_select退出保存1 2 3 4 5 6 Break Break Bre 。
4、ak Break Break break void showall();
/*显示函数*/开始调用save( )head=NULL = =N NNNNNNNNNULL NULL NULLhhhhhead hhhhhead=NULL显示信息真假 真退出结束void add()/*增加设备函数*/开始输入编号Record=0假 真输入数据( 名称、种类、价格、购买日期、报废日期、是否报废)继续添加结束void delet()/*删除函数*/开始输入要删除学生学号输入numNum=!0真 假删除成功Choices()结 束void find()/*查找函数*开始按名称查找按种类查找按编号查找判断显示要 。
5、查找内容没有找到退 出void findchoice()真 假void modify()/*修改信息函数*/开始输入编号Record=0假 真输入数据( 新的名称、种类、价格、购买日期、报废日期、是否报废)结束void save();
/*把信息保存到磁盘*/退 出关闭文件开始打开文件数据写入文件void load();
/*读数据*/开始关闭文件读出数据打开文件退 出结构的应用Ifelse结构if(strcmp(passwords,b)!=0)printf(r口令错误 , 按任意键继续);
else break;
switch结构switch(choice)case 1:add();
break;
case 。
6、 2:system(cls);
find();
break;
case 3:system(cls);
showall();
break;
case 4:system(cls);
delet();
break;
case 5:system(cls);
modify();
break;
case 0:system(cls);
esc();
while结构while(stu-record!=0) head=insert(head,stu);
printf(nntt*添加成功*!n);
stu=(struct addbook*)malloc(LEN);
printf(nnttt当输入的设备编号为0时 , 停止添加!);
printf(ntt 。
7、请输入编号:);
scanf(%d,&stu-record);
getchar();
/*用来接受scanf里输入的回车符号*/printf(ntt请输入名称:);
gets(stu-name);
printf(ntt请输入种类:);
gets(stu-kind);
printf(ntt请输入价格:);
gets(stu-price);
printf(ntt请输入购买日期(如20100101):);
scanf(%ld,&stu-purtime);
getchar();
printf(ntt请输入报废日期(如20100101):);
scanf(%ld,&stu-scrtime);
getchar();
printf(nt 。
8、t请输入是否报废(S或F):);
gets(stu-scrap);
stu-next = NULL;
dowhile结构doprintf(%-8d%-8s%-8s%-8s%ld %ldtt%-8sn,s-record,s-name,s-kind,s-price,s-purtime,s-scrtime,s-scrap);
s = s-next;
while(s!=NULL);
LP:choices();
for结构for(j=0;
j#include#include#include#include#include#define LEN sizeof(struct addbook)struct addbookin 。
9、t record;
/*编号*/char name15;
/*名称*/char kind5;
/*种类*/char price8;
/*价格*/unsigned long purtime;
/*购买日期*/unsigned long scrtime;
/*报废日期*/char scrap6;
/*是否报废*/struct addbook *next;
/*指向结构体数据类型的指针*/;
FILE *fp;
struct addbook *p,*head=NULL,*s,*t,*p1,*p2;
void userinterface();
/*菜单函数*/void showall();
/*显示*/void add();
。
10、/*增加设备*/void delet();
/*删除*/void find();
/*查找*/void findchoice(int a);
/*选择查找方式函数*/void modify();
/*修改信息*/void save();
/*把信息保存到磁盘*/void esc();
/*退出*/void choices();
/*为下一步操作做选择*/void load();
/*读数据*/struct addbook *del(struct addbook *head,int num);
/*链表结点的删除*/struct addbook *insert(struct addbook*head,struc 。
【语言|C语言课程设计(力学实验设备管理系统)】11、t addbook *stud);
/*链表中结点的插入 , stud为要插入的结点的指针*/void starwindows() system(color 1f);
static char passwords80,b=123;
int i=0,j;
while(1)printf(请输入密码nn);
for(j=0;
jrecord);
getchar();
/*用来接受scaf里输入的回车符号*/printf(ntt请输入名称:);
gets(p-name);
printf(ntt请输入种类:);
gets(p-kind);
printf(ntt请输入价格:);
gets(p-price);
printf(ntt请输入购买 。
12、日期(如20100101):);
scanf(%ld,&p-purtime);
getchar();
printf(ntt请输入报废日期(如20100101):);
scanf(%ld,&p-scrtime);
getchar();
printf(ntt请输入是否报废(S或F):);
gets(p-scrap);
p-next = NULL;
head = p;
fwrite(p,LEN,1,fp);
/*将信息写入磁盘*/fclose(fp);
printf(nttt添加成功!n);
printf(nntt!要进行别的操作 , 请重新打开程序!n);
exit(0);
rewind(fp);
/* 重建文件指针 */n=0;
。
13、p1=p2 = (struct addbook*)malloc(LEN);
fread(p1,LEN,1,fp);
/*读出文件中的信息*/head = NULL;
while(!feof(fp)n=n+1;
if(n=1) head = p1;
else p2-next = p1;
p2=p1;
p1 = (struct addbook*)malloc(LEN);
fread(p1,LEN,1,fp);
p2-next=NULL;
fclose(fp);
userinterface();
save();
void userinterface() int choice;
printf(ntt *n);
printf(ttt 。
14、 欢迎使用力学实验设备管理系统 );
printf(ntt *n);
printf(nnt *请选择你的操作*n);
printf(ttt +-+);
printf(tttttt | 1 增加设备信息 |n);
printf(ttt | 2 查找设备信息 |n);
printf(ttt | 3 显示所有信息 |n);
printf(ttt | 4 删除设备信息 |n);
printf(ttt | 5 修改设备信息 |n);
printf(ttt | 0 退出和保存 |n);
printf(ttt +-+n);
printf(nnttttttt制作:蒋美幸nnn);
Loop1:printf(请输入您的选择:(0-5) 。
15、:);
scanf(%d,&choice);
getchar();
if(choice=0&choicerecord);
getchar();
/*用来接受scanf里输入的回车符号*/printf(ntt请输入名称:);
gets(stu-name);
printf(ntt请输入种类:);
gets(stu-kind);
printf(ntt请输入价格:);
gets(stu-price);
printf(ntt请输入购买日期(如20100101):);
scanf(%ld,&stu-purtime);
getchar();
printf(ntt请输入报废日期(如20100101):);
scanf(%ld,&stu-s 。
16、crtime);
getchar();
printf(ntt请输入是否报废(S或F):);
gets(stu-scrap);
stu-next = NULL;
while(stu-record!=0) head=insert(head,stu);
printf(nntt*添加成功*!n);
stu=(struct addbook*)malloc(LEN);
printf(nnttt当输入的设备编号为0时 , 停止添加!);
printf(ntt请输入编号:);
scanf(%d,&stu-record);
getchar();
/*用来接受scanf里输入的回车符号*/printf(ntt请输入名称:);
gets(stu 。
17、-name);
printf(ntt请输入种类:);
gets(stu-kind);
printf(ntt请输入价格:);
gets(stu-price);
printf(ntt请输入购买日期(如20100101):);
scanf(%ld,&stu-purtime);
getchar();
printf(ntt请输入报废日期(如20100101):);
scanf(%ld,&stu-scrtime);
getchar();
printf(ntt请输入是否报废(S或F):);
gets(stu-scrap);
stu-next = NULL;
printf(nnttt添加结束!n);
choices();
void find 。
18、() int i;
printf(ntt请选择查找方式:n);
printf(tt1.按编号查找 。
n);
printf(tt2.按名称查找 。
n);
printf(tt3.按种类查找 。
n);
printf(tt4.返回菜单 。
n);
printf(tt0.退出 。
n);
printf(nnt*请输入您的选择*n);
scanf(%d,&i);
getchar();
if(i=0&irecord,s-name,s-kind,s-price,s-purtime,s-scrtime,s-scrap);
s = s-next;
while(s!=NULL);
LP:choices();
void delet() /* 删除函数 */i 。
19、nt num;
printf(nn请输入要删除的设备编号 。
当输入编号为0时停止删除操作 。
n);
scanf(%d,&num);
getchar();
while(num!=0)head=del(head,num);
printf(nn请输入要删除的设备编号 。
当输入编号为0时停止删除操作 。
n);
scanf(%d,&num);
getchar();
printf(nntt*删除结束*n);
choices();
void modify() /* 修改函数 */int num;
printf(请输入要修改的设备编号n);
scanf(%d,&num);
getchar();
p=head;
doif(p-record=num。
20、)if(p-next=NULL) printf(找不到该编号的设备 , 请确认无误以后再重新输入 。
n);
elseprintf(ntt请输入新的名称:);
gets(p-name);
printf(ntt请输入新的种类:);
gets(p-kind);
printf(ntt请输入新的价格:);
gets(p-price);
printf(ntt请输入新的购买日期(如20100101):);
scanf(%ld,&p-purtime);
getchar();
printf(ntt请输入新的报废日期(如20100101):);
scanf(%ld,&p-scrtime);
getchar();
printf(ntt请输入是否报 。
21、废(S或F):);
gets(p-scrap);
printf(ntt修改成功!n);
choices();
else p=p-next;
while(p!=NULL);
printf(tt!没有这个编号的信息 , 请核对后再输入!nn);
choices();
void esc() save();
printf(nnnttt 谢谢使用本力学实验设备管理系统!n);
exit(0);
struct addbook *del(struct addbook *head,int num)/*链表结点删除*/struct addbook *h1,*h2;
if(head=NULL) printf(链表为空链表 。
n);
goto L 。
22、oop;
h1=head;
while(num!=h1-record&h1-next!=NULL)/*p1指向的不是要删除的结点 , 并且后面还有结点 。
*/h2=h1;
h1=h1-next;
/*p1后移一个结点*/if(num=h1-record)/*找到了*/if(h1=head) printf(nnntt这是遮里最后一个信息 , 不能删除!nnt如果你真的要删除此信息 , 请添加其他信息以后再删除.nn);
goto Loop;
/*这是p1是首结点的情况*/else h2-next=h1-next;
printf(nntt*删除成功*!n);
/*否则将下一结点的地址赋给前一结点地址*/else printf( 。
23、nntt找不到该结点 。
n);
Loop:return(head);
struct addbook *insert(struct addbook*head,struct addbook *stud)/*结点插入 , 插入时是按编号大小插入*/struct addbook *g0,*g1,*g2;
g1=head;
g0=stud;
if(head=NULL)/*原来的链表是空表*/head=g0;
g0-next=NULL;
/*使p0指向的结点作为头结点*/elsewhile(g0-recordg1-record&g1-next!=NULL)g2=g1;
g1=g1-next;
/*p1后移一个结点*/if(g0- 。
24、record=g1-record)printf(nttt编号重复!请核对后再输入!nn);
choices();
else;
if(g0-recordrecord)if(head=g1) head=g0;
/*插到原来第一个结点之前*/else g2-next=g0;
/*插到p2指向的结点之后*/g0-next=g1;
elseg1-next=g0;
g0-next=NULL;
/*插到最后的结点后*/return(head);
void save()/*保存文件*/fp=fopen(ghps.txt,w);
s = head;
do fwrite(s,LEN,1,fp);
s = s-next;
while(s!=NULL);
fclose(fp);
void findchoice(int a)int num,j=0,i=0;
char findname120 。

稿源:(未知)
【傻大方】网址:/a/2021/0813/0023655217.html
标题:语言|C语言课程设计(力学实验设备管理系统)