设计目的。
1.通过对课程信息管理软件的设计编写原代码,深刻掌握C语言中各个语法、函数的应用,使对比较难的结构体、链表、文件的操作更加熟悉。
2.初步掌握中、大型程序设计中的各个步骤、流程,以及开发过程中遇到问题的处理方法,为以后的学习打下基础。
3. 通过课程设计,将一学期所学习到的C程序设计知识和相关数学知识联系和结合,培养自己的动手能力,以及加强各学科之间的联系。
二.设计内容。
本系统以个人课程信息为主要背景,设计和实现了一个小型个人课程信息管理系统。主要有以下功能:
1.系统以菜单方式运行工作,界面清晰直观,便于用户操作。
2.课程信息录入,包括课程名称,课程教师,上课时间和上课教室。
3.课程信息查看,以表格的形式查看课程信息。
4.课程信息查找,用户随时查看课程信息便于核对。
5.课程信息修改,核对后可以直接修改或删除。
三.概要设计
主函数
主函数
创建课程表
打开课程表
添加课程信息
查看课程信息
查找课程信息
删除课程信息
四.详细设计
1.数据结构设计
结构体:用结构体接收课程信息。
文件:用文件储存数据,这样当程序关闭时,数据不会丢失。
2.模块接口设计
Void creat() 创建课程信息表;
Void open() 打开课程信息表;
Void inpt() 输入课程信息;
Void look() 查看所有课程信息;
Void find() 查找课程信息;
Void delet() 删除课程信息;
Void save() 保存课程信息;
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.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("请输入文件名:\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;z
{ fread(&lesson[z],sizeof(struct lesson),1,fp);
}
fclose(fp);
}
void inpt()
{ int i,j,k;
printf("要添加多少个课程信息:");
scanf("%d",&j);
printf("\n");
for(i=0,k=count;i
{ 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("添加成功!");
}
void save()
{
FILE *fp;
int i;
if((fp=fopen(filename,"wb"))==NULL)