您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > C语言课程信息管理系统1
一.设计目的。1.通过对课程信息管理软件的设计编写原代码,深刻掌握C语言中各个语法、函数的应用,使对比较难的结构体、链表、文件的操作更加熟悉。2.初步掌握中、大型程序设计中的各个步骤、流程,以及开发过程中遇到问题的处理方法,为以后的学习打下基础。3.通过课程设计,将一学期所学习到的C程序设计知识和相关数学知识联系和结合,培养自己的动手能力,以及加强各学科之间的联系。二.设计内容。本系统以个人课程信息为主要背景,设计和实现了一个小型个人课程信息管理系统。主要有以下功能:1.系统以菜单方式运行工作,界面清晰直观,便于用户操作。2.课程信息录入,包括课程名称,课程教师,上课时间和上课教室。3.课程信息查看,以表格的形式查看课程信息。4.课程信息查找,用户随时查看课程信息便于核对。5.课程信息修改,核对后可以直接修改或删除。三.概要设计四.详细设计1.数据结构设计结构体:用结构体接收课程信息。文件:用文件储存数据,这样当程序关闭时,数据不会丢失。2.模块接口设计Voidcreat()创建课程信息表;Voidopen()打开课程信息表;Voidinpt()输入课程信息;主函数创建课程表打开课程表添加课程信息查看课程信息查找课程信息删除课程信息Voidlook()查看所有课程信息;Voidfind()查找课程信息;Voiddelet()删除课程信息;Voidsave()保存课程信息;3.流程图4.程序设计开始进行switch语句输入1输入2输入3输入4输入5输入6打开课程信息表查看课程信息查找课程信息删除课程信息保存课程信息添加课程信息输入7结束/*HELLO.C--Hello,world*/#includestdio.h#includestdlib.h#includeconio.h#includestring.hFILE*fp;intcount;structlesson{charname[10];charteacher[10];chartime[10];charroom[10];}lesson[20];charfilename[20];voidcreat(){printf(请输入文件名:\n);scanf(%s,filename);if((fp=fopen(filename,w+))==NULL){printf(无法打开文件!\n);exit(0);}}voidopen(){intz;printf(请输入文件名);scanf(%s,filename);if((fp=fopen(filename,a+))==NULL){printf(无法打开文件!\n);exit(0);}for(z=0;zcount;z++){fread(&lesson[z],sizeof(structlesson),1,fp);}fclose(fp);}voidinpt(){inti,j,k;printf(要添加多少个课程信息:);scanf(%d,&j);printf(\n);for(i=0,k=count;ij;i++,k++){printf(输入课程名称:);scanf(%s,lesson[k].name);printf(输入教师姓名:);scanf(%s,lesson[k].teacher);printf(输入上课时间:);scanf(%s,lesson[k].time);printf(输入教室位置:);scanf(%s,lesson[k].room);}count+=j;printf(添加成功!);}voidsave(){FILE*fp;inti;if((fp=fopen(filename,wb))==NULL){printf(cannotopenfile\n);return;}for(i=0;i=count;i++)if(fwrite(&lesson[i],sizeof(structlesson),1,fp)!=1)printf(filewriteerror\n);fclose(fp);printf(保存成功!\n);}voidlook(){inti;printf(课程\t\t教师\t\t时间\t\t教室\n);for(i=0;icount;i++){printf(%s\t\t%s\t\t%s\t\t%s\t\n,lesson[i].name,lesson[i].teacher,lesson[i].time,lesson[i].room);}}voidfind(){charclas[20];inti,key=0;printf(请输入课程名称:);a:scanf(%s,clas);for(i=0;icount;i++){if(strcmp(clas,lesson[i].name)==0){printf(%s\t\t%s\t\t%s\t\t%s\t\n,lesson[i].name,lesson[i].teacher,lesson[i].time,lesson[i].room);key=1;break;}}if(key!=1){printf(找不到此课程!\n请重新输入:);gotoa;}}voiddelet(){charclas[20];inti,j,key;printf(请输入将要删除的课程名字:);b:scanf(%s,&clas);if(clas==0)return;for(i=0;icount;i++){if(strcmp(clas,lesson[i].name)==0){count--;for(j=i;jcount;j++)lesson[i]=lesson[j+1];key=1;}}if(key!=1){printf(无此课程,请重新输入,或按0结束!\n);gotob;}}voidmain(){intchoice;system(color0E);do{printf(-----------------------------主菜单--------------------------\n);printf(\t\t\t0:创建课程信息表\t\n);printf(\t\t\t1:打开课程信息表\t\n);printf(\t\t\t2:添加课程信息\t\n);printf(\t\t\t3:查看课程信息\t\n);printf(\t\t\t4:查找课程信息\t\n);printf(\t\t\t5:删除课程信息\t\n);printf(\t\t\t6:保存课程信息\t\n);printf(\t\t\t7:退出系统\t\n);printf(\t\t请选择操作:\n);printf(-------------------------------------------------------------\n);scanf(%d,&choice);switch(choice){case0:creat();break;case1:open();break;case2:inpt();break;case3:look();break;case4:find();break;case5:delet();break;case6:save();break;case7:printf(感谢使用此系统,祝你好运!\n);break;}}while(choice!=7);getch();}设计总结通过这2个星期以来的程序设计,使我更深刻的掌握了C语言的各种语法知识,在设计过程中碰到许多问题,比如添加课程信息会覆盖,无法将数据写入文件里等,在老师的细心指导下,这些问题都迎刃而解。在完善此程序的同时,让我了解到自己在C语言程序设计上的不足之处,更让我了解到C语言程序设计过程中的乐趣。今后,要好好学习加强掌握C语言,让自己能写出更复杂更完善的程序。
本文标题:C语言课程信息管理系统1
链接地址:https://www.777doc.com/doc-5539001 .html