C语言课程信息管理系统1(11页).doc
-一二三四 C语言课程信息管理系统1-第 11 页五 设计目的。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 name10; char teacher10; char time10; char room10;lesson20;char filename20;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<count;z+) fread(&lessonz,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<j;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 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;i<count;i+) printf("%stt%stt%stt%stn",lessoni.name,lessoni.teacher,lessoni.time,lessoni.room);void find() char clas20; int i,key=0;printf("请输入课程名称:"); a:scanf("%s",clas);for(i=0;i<count;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 delet() char clas20; int i,j,key; printf("请输入将要删除的课程名字:");b: scanf("%s",&clas); if(clas=0) return; for(i=0;i<count;i+) if(strcmp(clas,lessoni.name)=0) count-; for(j=i;j<count;j+) lessoni=lessonj+1; key=1; if(key!=1) printf("无此课程,请重新输入,或按0结束!n"); goto b;void main() int choice; system("color 0E"); do printf("-主菜单-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; 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语言,让自己能写出更复杂更完善的程序。