电子信息学院C语言程序设计课程设计设计报告课课题题目:实验设备管理系统班级:通信11302班姓名:王焱章班级序号:19同组成员:王炳辉、杨继玲完成时间:2015 年7 月9 日目录一、课题题目 (2)二、设计目的 (2)三、总体设计 (2)四、详细设计 (4)五、调试与测试(调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施) (8)六、课程设计心得及体会 (9)七、源程序清单与执行结果 (11)附:指导老师意见: (22)一、课题题目实验设备管理系统二、设计目的1.加深对讲授内容的理解,尤其是一些语法规则;2.熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用;3.能够综合运用所学知识,编程解决实际问题;4.培养团队分工合作的意识,最终使学生提高;编程技能和解决实际问题的能力。
三、总体设计(1)系统组成框图(2)系统流程图是四、详细设计(1)主函数:void main() {Node *equip;equip = (Node*)malloc(sizeof(Node)); equip->next=NULL; int flag;否printf("\t\t\t\t 实验室设备管理系统\n"); while(1) {system("cls");printf(" *************目录*************\n"); printf("\n 1.添加记录\n");printf("\n 2.修改记录\n"); printf("\n 3.显示记录\n"); printf("\n 4.查询设备\n"); printf("\n 5.删除设备记录\n"); printf("\n 6.用文件保存\n"); printf("\n 7.简单的帮助\n"); printf("\n 8.分类统计\n"); printf("\n 9.从文件输出\n"); printf("\n 0.退出\n"); printf("\n 请输入你要操作的序号:\n"); printf("\n 提示:输入0则返回主菜单!\n"); scanf("%d",&flag);switch(flag){case 0: system("cls");printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case 1: system("cls");Add(equip); break; //添加记录case 2: system("cls");Modify(equip); break;//修改记录case 3: system("cls");Disp(equip); break;//显示记录case 4: system("cls");search(equip); break;//查询设备case 5: system("cls");delet(equip); break;//删除设备记录case 6: system("cls");Save(equip); break;//用文件保存case 7: system("cls");help(); break;//简单的帮助case 8: system("cls");Classify(equip); break;//分类统计case 9: system("cls");Read_From_File(); break;//从文件输出default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;}scanf("%d",&flag);}}(2)添加记录模块:主要功能就是添加设备信息,包括设备编号、设备名称、设备种类、是否报废、报废日期、购买日期、价格等信息。
void Add(Node *equip) //添加记录{Node *p,*r,*s;int id; //先用于输入ID,也用于判断是否跳出循环r=equip; //s=equip->next; //使s为第一个有用的结点if(r!=NULL){while(r->next!=NULL) //使r为最后一个有用的结点r=r->next; //将指针置于最末尾} while(1)printf("\n请你输入设备ID号<输入0表示结束>:");scanf("%d",&id); 1 if(id==0){break;}p=(Node *)malloc(sizeof(Node)); //申请空间p->next=NULL;p->data.ID=id;while(1){if(Same(equip,p->data.ID)==1){printf("\n你输入了相同的设备ID号,请重新输入!<输入0表示结束>:");scanf("%d",&id);p->data.ID=id;}elsebreak;}if(id==0){break;}printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:")scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%d",&p->data.over);printf("\n 请输入设备是否报废:"); scanf("%s",&p->data.yesno); printf("\n 请输入设备购买时间:"); scanf("%d",&p->data.time); printf("\n 请输入设备价格:"); scanf("%d",&p->data.price);printf("\n>>>>>>>>>>提示:已经完成一条记录的添加。
\n"); printf("\n>>>>>>>>>>提示:输入0则返回主菜单!\n"); r->next=p; number++; } }(3)修改记录模块:主要功能就是对己输入设备信息进行修改,在没有设备信息的情况下将输出“没有资料可以修改!”,在有设备信息的情况下就调用修改函数对输入编号所对应的设备信息进行修改。
void Modify(Node *equip) //修改记录 {Node *p; int find; if(!equip->next) {printf("\n>>>>>>>>>>提示:没有资料可以修改!\n"); return; }printf("请输入要修改的设备ID 号:");scanf("%d",&find); p=equip->next; while(p!=NULL) {if(p->data.ID==find) //如果找到的话返回的是符合要求break; p=p->next; }if(p) //若找到 {//printf("请输入你想修改设备的ID\n");printf("请输入新设备名称(原来是 %s ):",p->); scanf("%s",p->);printf("请输入新设备设备种类名称(原来是 %s ):",p->data.kind); scanf("%s",p->data.kind);printf("请输入新设备报废日期名称(原来是 %d ):",p->data.over); scanf("%d",&p->data.over);printf("请输入新设备是否报废(原来是 %s ):",p->data.yesno); scanf("%s",p->data.yesno);printf("请输入新设备购买时间(原来是 %d ):",p->data.time); scanf("%d",&p->data.time);printf("请输入新设备价格(原来是 %d ):",p->data.price); scanf("%d",&p->data.price);printf("\n>>>>>>>>>>提示:该项记录资料已经成功修改!\n"); } elseprintf("\n>>>>>>>>>>提示:你要修改的信息不存在!\n"); }(4)输出记录模块:主要功能就是将所输入设备信息通过显示屏进行输出展示,在没有设备信息的情况下将输出“没有记录可以显示!”,在有设备信息的情况下将通过窗口输出所有设备记录信息。