1、一 设计目标。1.经过对课程信息管理软件设计编写原代码,深刻掌握C语言中各个语法、函数应用,使对比较难结构体、链表、文件操作愈加熟悉。2.初步掌握中、大型程序设计中各个步骤、步骤,和开发过程中碰到问题处理方法,为以后学习打下基础。3. 经过课程设计,将一学期所学习到C程序设计知识和相关数学知识联络和结合,培养自己动手能力,和加强各学科之间联络。二设计内容。本系统以个人课程信息为关键背景,设计和实现了一个小型个人课程信息管理系统。关键有以下功效:1.系统以菜单方法运行工作,界面清楚直观,便于用户操作。2.课程信息录入,包含课程名称,课程老师,上课时间和上课教室。3.课程信息查看,以表格形式查看课
2、程信息。4.课程信息查找,用户随时查看课程信息便于查对。5.课程信息修改,查对后能够直接修改或删除。三.概要设计主函数创建课程表打开课程表添加课程信息查看课程信息查找课程信息删除课程信息四.具体设计 1.数据结构设计 结构体:用结构体接收课程信息。 文件:用文件储存数据,这么当程序关闭时,数据不会丢失。 2.模块接口设计Void creat() 创建课程信息表;Void open() 打开课程信息表;Void inpt() 输入课程信息;Void look() 查看全部课程信息;Void find() 查找课程信息;Void delet() 删除课程信息;Void save() 保留课程信息;
3、 3.步骤图开始进行switch语句输入1输入 2输入3输入4输入5输入6打开课程信息表查看课程信息查找课程信息删除课程信息保留课程信息添加课程信息输入7结束4.程序设计/* HELLO.C - Hello, world */#include stdio.h#include stdlib.h#include conio.h#include string.hFILE *fp;int count;struct lesson char name10; char teacher10; char time10; char room10;lesson20;char filename20;void crea
4、t() printf(请输入文件名:n); scanf(%s,filename); if(fp=fopen(filename,w+)=NULL) printf(无法打开文件!n); exit(0); void open() int z; printf(请输入文件名); scanf(%s,filename); if(fp=fopen(filename,a+)=NULL) printf(无法打开文件!n); exit(0); for(z=0;zcount;z+) fread(&lessonz,sizeof(struct lesson),1,fp); fclose(fp);void inpt() i
5、nt i,j,k; printf(要添加多少个课程信息:); scanf(%d,&j); printf(n); for(i=0,k=count;ij;i+,k+) printf(输入课程名称:); scanf(%s,lessonk.name); printf(输入老师姓名:); scanf(%s,lessonk.teacher); printf(输入上课时间:); scanf(%s,lessonk.time); printf(输入教室位置:); scanf(%s,lessonk.room); count+=j; printf(添加成功!); void save() FILE *fp; int
6、i; if(fp=fopen(filename,wb)=NULL) printf(cannot open filen); return; for(i=0;i=count;i+) if(fwrite(&lessoni,sizeof(struct lesson),1,fp)!=1) printf(file write errorn); fclose(fp); printf(保留成功!n);void look() int i; printf(课程tt老师tt时间tt教室n); for(i=0;icount;i+) printf(%stt%stt%stt%stn,lessoni.name,lesson
7、i.teacher,lessoni.time,lessoni.room); void find() char clas20; int i,key=0;printf(请输入课程名称:); a:scanf(%s,clas);for(i=0;icount;i+) if(strcmp(clas,lessoni.name)=0) printf(%stt%stt%stt%stn,lessoni.name,lessoni.teacher,lessoni.time,lessoni.room); key=1; break;if(key!=1)printf(找不到此课程!n请重新输入:);goto a; void
8、 delet() char clas20; int i,j,key; printf(请输入将要删除课程名字:);b: scanf(%s,&clas); if(clas=0) return; for(i=0;icount;i+) if(strcmp(clas,lessoni.name)=0) count-; for(j=i;jcount;j+) lessoni=lessonj+1; key=1; if(key!=1) printf(无此课程,请重新输入,或按0结束!n); goto b; void main() int choice; system(color 0E); do printf(-主
9、菜单-n); printf(ttt0:创建课程信息表tn); printf(ttt1:打开课程信息表tn); printf(ttt2:添加课程信息tn); printf(ttt3:查看课程信息tn); printf(ttt4:查找课程信息tn); printf(ttt5:删除课程信息tn);printf(ttt6:保留课程信息tn); printf(ttt7:退出系统tn); printf(tt请选择操作:n); printf(-n); scanf(%d,&choice); switch(choice) case 0:creat();break; case 1:open();break; ca
10、se 2:inpt();break; case 3:look();break; case 4:find();break; case 5:delet();break; case 6:save();break; case 7:printf(感谢使用此系统,祝你好运!n);break; while(choice!=7); getch();设计总结 经过这2个星期以来程序设计,使我更深刻掌握了C语言多种语法知识,在设计过程中碰到很多问题,比如添加课程信息会覆盖,无法将数据写入文件里等,在老师细心指导下,这些问题全部迎刃而解。在完善此程序同时,让我了解到自己在C语言程序设计上不足之处,更让我了解到C语言程序设计过程中乐趣。以后,要好好学习加强掌握C语言,让自己能写出更复杂更完善程序。