1、 一. 设计目标。 1.经过对课程信息管理软件设计编写原代码,深刻掌握C语言中各个语法、函数应用,使对比较难结构体、链表、文件操作愈加熟悉。 2.初步掌握中、大型程序设计中各个步骤、步骤,和开发过程中碰到问题处理方法,为以后学习打下基础。 3. 经过课程设计,将一学期所学习到C程序设计知识和相关数学知识联络和结合,培养自己动手能力,和加强各学科之间联络。 二.设计内容。 本系统以个人课程信息为关键背景,设计和实现了一个小型个人课程信息管理系统。关键有以下功效: 1.系统以菜单方法运行工作,界面清楚直观,便于用户操作。 2.课程信息录入,包含课程名称,课程老师,上课时间和上课
2、教室。 3.课程信息查看,以表格形式查看课程信息。 4.课程信息查找,用户随时查看课程信息便于查对。 5.课程信息修改,查对后能够直接修改或删除。 三.概要设计 主函数 创建课程表 打开课程表 添加课程信息 查看课程信息 查找课程信息 删除课程信息 四.具体设计 1.数据结构设计 结构体:用结构体接收课程信息。 文件:用文件储存数据,这么当程序关闭时,数据不会丢失。 2.模块接口设计 Void creat() 创建课程信息表; Void open()
3、打开课程信息表; Void inpt() 输入课程信息; Void look() 查看全部课程信息; Void find() 查找课程信息; Void delet() 删除课程信息; Void save() 保留课程信息; 3.步骤图 开始 进行switch语句 输入1 输入 2 输入3 输入4 输入5 输入6 打开课程信息表 查看课程信息 查找课程信息 删除课程信息 保留课程信息 添加课程信息 输入7 结束 4.程序设计 /* HELLO.C -- Hello, world
4、 */ #include "stdio.h" #include "stdlib.h" #include "conio.h" #include "string.h" FILE *fp; int count; struct lesson { char name[10]; char teacher[10]; char time[10]; char room[10]; }lesson[20]; char filename[20]; void creat() { printf("请输
5、入文件名:\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);
6、 }
for(z=0;z 7、lesson[k].name);
printf("输入老师姓名:");
scanf("%s",lesson[k].teacher);
printf("输入上课时间:");
scanf("%s",lesson[k].time);
printf("输入教室位置:");
scanf("%s",lesson[k].room);
}
count+=j;
printf("添加成功!");
}
void save()
{
FILE *fp;
int i;
8、 if((fp=fopen(filename,"wb"))==NULL)
{ printf("cannot open file\n");
return;
}
for(i=0;i<=count;i++)
if(fwrite(&lesson[i],sizeof(struct lesson),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf("保留成功!\n");
}
void look()
9、{ int i;
printf("课程\t\t老师\t\t时间\t\t教室\n");
for(i=0;i 10、 for(i=0;i 11、s[20];
int i,j,key;
printf("请输入将要删除课程名字:");
b: scanf("%s",&clas);
if(clas==0) return;
for(i=0;i 12、 { printf("无此课程,请重新输入,或按0结束!\n");
goto b;
}
}
void main()
{ int choice;
system("color 0E");
do
{ printf("-----------------------------主菜单--------------------------\n");
printf("\t\t\t0:创建课程信息表\t\n");
printf("\t\t\t1:打开课程信息表\t\n");
printf("\t\t\t2:添加 13、课程信息\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" 14、);
scanf("%d",&choice);
switch(choice)
{
case 0:creat();break;
case 1:open();break;
case 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语言,让自己能写出更复杂更完善程序。






