欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    C语言课程设计说明书课程管理系统 .doc

    • 资源ID:2384983       资源大小:177.50KB        全文页数:21页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计说明书课程管理系统 .doc

    学号: 09050011 C语言课程设计设计说明书课程管理系统起止日期: 2010 年 06 月 21 日 至 2010年 06 月 27 日学生姓名: 班级: 09级通信工程(1)班 成绩: 指导老师(签字): 电子信息工程系2010年6月21日天津理工大学中环信息学院目 录一、设计目的3二、总体设计3三、详细设计3四、调试与测试4五、核心源程序清单8六、仍存在的问题34七、心得体会 34一、设计目的假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计学生选修课程系统,使之能提供以下功能:1、课程信息录入功能(课程信息用文件保存) 2、课程信息浏览功能3、排序:按开课学期排序4、查询功能:按课程名称查询5、课程修改、删除(可选项)二、总体设计(程序设计组成框图、流程图)课程修改及删除课程查询课程排序课程信息浏览课程信息录入课程管理系统退出系统void searchvoid taxisvoid sub_viewvoid sub_addInput 5Input 4Input 3Input 2Input 1N是1-5Input n(1-5)start三、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)1 宏定义,文件包含,定义结构体变量;2 从主函数进入;3 显示程序进入界面;4 调用函数一(录入课程详细信息):键盘上输入课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息5 调用函数二(浏览课程详细信息):在键盘上输入课程名,显示对应课程的详细信息。6 调用函数三(排序:按开课学期排序): 7 调用函数四(查询课程详细信息):显示所有输入的课程信息;8 退出;四、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施完成每一个函数后,进行单独调试,对测试结果有错的,逐个修改,最后合并在一起进行调试,修改,直到正确无误为止。测试过程中,在函数四(查找课程信息)中无法将输入信息同已有信息进行比较,经同学指点顺利解决; 1 主函数模块(主菜单)是为了定义一个菜单函数,其功能在于供使用者选择输出菜单功能选择。其运行结果如下图:运行正常2 课程信息录入功能是为了输入课程的详细信息包括课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息其运行结果如下图运行正常3课程信息浏览功能为了让使用者能浏览所有课程详细信息其运行结果如下图运行正常4排序:按开课学期排序为了让使用者按开课学期排序所有课程详细信息其运行结果如下图运行正常5查询功能:按课程名称查询是为了使用者按课程名来查询课程详细信息其运行结果如下图:运行正常6退出是为了使用者退出程序所作的功能其运行结果如下图:运行正常¨ 调试方法:先将主函数完毕,在分别加入录入函数、输出函数、查找函数、保存等模块后再调试。无错之后编译运行。¨ 遇到的主要问题及解决方法:(1)忘记加分号。(2)忽略了“+”与“+”的区别及n与n的区别。(3) scanf ( "%d%d", &a, &b);输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:6,9输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键(4)switch 语句中漏写break 语句。五、核心源程序清单和执行结果:#include"stdlib.h" /*标准输入、输出头文件*/#include"windows.h" /*包含字符串函数处理头文件*/#include"string.h" /*包含动态存储与释放函数头文件*/struct subinfint num; /*定义课程编号*/char name20; /*课程名称*/ char feat20; /*课程性质*/ int ttime; /*定义总学时*/ int ltime; /*定义授课学时*/ int etime; /*定义上机学时*/ float score; /*学分*/ int term; /*开课学期*/ ;void index() void sub_add(); /*课程信息录入*/void sub_view(); /*信息浏览*/void taxis(); /*排序*/void search(); /*对课程名称查询*/void quit(); /*退出系统*/int input; /*输入*/char input_1; do printf("nt 欢迎使用课程管理系统 "); printf("nt 1.课程信息录入 "); printf("nt 2.课程信息浏览 ");printf("nt 3.按开课学期排序 ");printf("nt 4.按课程名称查询(修改与删除) ");printf("nt 5.退出本系统 ");printf("nt请选择服务类型(1-5):");scanf("%d",&input);if(input!=1&&input!=2&&input!=3&&input!=4&&input!=5) printf("nt输入错误!请重输入n");printf("nt按任意键返回.");input_1=getchar();input_1=getchar();if (input=5)quit(); while(input!=1&&input!=2&&input!=3&&input!=4&&input!=5&&input!=6);switch (input) case 1:sub_add(); break; case 2:sub_view();break; case 3:taxis();break; case 4:search();break; void sub_add()void index();void sub_add();int i=0,j;int inp;FILE *fp;char input;struct subinf subs;struct subinf sub_taxis100;printf("nt 课程信息录入 ");printf("nnnt请输入课程信息nn");printf("t课程编号:");scanf("%d",&subs.num);printf("nt课程名称:");scanf("%s",subs.name);printf("nt课程性质:");scanf("%s",subs.feat);printf("nt总学时:");scanf("%d",&subs.ttime);printf("nt授课学时:");scanf("%d",&subs.ltime);printf("nt实验或上机学时:");scanf("%d",&subs.etime);printf("nt学分:");scanf("%f",&subs.score);printf("nt开课学期:");scanf("%d",&subs.term);if (fp=fopen("sub.dat","rb")!=NULL) dofread(&sub_taxisi,sizeof(struct subinf),1,fp); i=i+1;while(!feof(fp);fclose(fp);for (j=0;j<=i;j+)if (subs.num=sub_taxisj.num) printf("nnnt!该编号已经被使用");printf("nt按任意键重录入.");input=getchar();input=getchar();sub_add();break;if (fp=fopen("sub.dat","rb")=NULL) fp=fopen("sub.dat","wb"); elsefclose(fp);fp=fopen("sub.dat","ab");fwrite(&subs,sizeof(struct subinf),1,fp); fclose(fp);printf("nnnt信息已经成功录入!按任意键继续.");input=getchar();input=getchar();do printf("nnnt1.继续输入n");printf("t2.返回主菜单n");printf("nt请选择服务类别(1或2):");scanf("%d",&inp);if (inp!=1&&inp!=2) printf("nt没有这项服务!n");printf("t按任意键重新选择.");input=getchar();input=getchar();while (inp!=1&&inp!=2);switch(inp)case 1: sub_add(); break; case 2: index(); break;void sub_view()void index();void sub_view();int inp,i=0,n=0;FILE *fp;char input;struct subinf subview100;if (fp=fopen("sub.dat","rb")=NULL) printf("nnnt未输入任何信息,请返回进行课程信息录入!n");printf("nt按任意键回主菜单.");input=getchar();input=getchar();index();else dofread(&subviewi,sizeof(struct subinf),1,fp);i=i+1; while (!feof(fp); fclose(fp); do 课程信息录入课程编号09050001课程名称:高数课程性质:必修课总学时20授课学时20实验或上机学时10学分4.0开课学期2*printf("nt 课程信息浏览 ");printf("t共有%d/%d条记录",n+1,i-1);printf("nnt课程编号: %dn",subviewn.num);printf("nt课程名称: %sn",subviewn.name);printf("nt课程性质: %sn",subviewn.feat);printf("nt总学时: %dn",subviewn.ttime);printf("nt授课学时: %dn",subviewn.ltime);printf("nt实验或上机学时: %dn",subviewn.etime);printf("nt学分: %fn",subviewn.score);printf("nt开课学期: %dn",subviewn.term);printf("nnt1.上一页t2.下一页t3.返回n");printf("nt请选择(1-3):");scanf("%d",&inp);switch (inp)case 1: if (n=0) printf("nt已到达首页nt按任意键重新选择.");input=getchar();input=getchar();elsen=n-1;break;case 2:if (n=i-2)printf("nt已经到达尾页nt按任意键重新选择.");input=getchar();input=getchar();elsen=n+1;break;case 3: index();break;default:printf("nt没有这项服务!nt按任意键重新选择.");input=getchar();input=getchar();while (inp!=3);void taxis()void index();int i=0,m,n;FILE *fp;char input;void index();struct subinf sub_taxis100,temp;if (fp=fopen("sub.dat","rb")=NULL) printf("nnt未输入任何信息,无法排序.请返回进行课程信息录入!n");printf("t按任意键返回主菜单.");input=getchar();input=getchar();index();else rewind(fp);dofread(&sub_taxisi,sizeof(struct subinf),1,fp);i=i+1;while(!feof(fp);fclose(fp);for (m=0;m<i-1-1;m+) for (n=0;n<i-1-1-m;n+)if (sub_taxisn.term>sub_taxisn+1.term)temp=sub_taxisn;sub_taxisn=sub_taxisn+1;sub_taxisn+1=temp;if (fp=fopen("sub.dat","wb")=NULL) printf("nnnt数据读取失败!n");printf("t请按任意键退出本系统.");input=getchar();input=getchar();exit(0);else for (m=0;m<i-1;m+)fwrite(&sub_taxism,sizeof(struct subinf),1,fp);fclose(fp);printf("nnnt排序完成!nt按任意键回主菜单.");input=getchar();input=getchar();index();void search()void index();void change(int x);void del(int x);FILE *fp;struct subinf subs100,subf100;char input,feature10;int i=0,w,j,inp,k=0,n=0;if (fp=fopen("sub.dat","rb")=NULL) printf("nnnt未输入任何信息,请返回进行课程信息录入!n");printf("nt按任意键回主菜单.");input=getchar();input=getchar();index();elsefp=fopen("sub.dat","rb");while (!feof(fp)fread(&subsi,sizeof(struct subinf),1,fp);i=i+1;fclose(fp);printf("nnnt请输入所查询的课程名称:");scanf("%s",feature);for (j=0;j<=i-2;j+)w=strcmp(subsj. name,feature);if(w=0)subfk=subsj;k=k+1; else if (k=0&&j=(i-2) system("cls");printf("nnnt没有找到符合要求的记录!nt按任意键回主菜单.");input=getchar();input=getchar();index();do*课程信息浏览课程编号09050001课程名称:高数课程性质:必修课总学时20授课学时20实验或上机学时10学分4.0开课学期2*system("cls");printf("nt 课程信息查询 ");printf("t共为您查询到%d/%d条记录",n+1,k);printf("nt课程编号: %dn",subfn.num);printf("nt课程名称: %sn",subfn.name);printf("nt课程性质: %sn",subfn.feat);printf("nt总学时: %dn",subfn.ttime);printf("nt授课学时: %dn",subfn.ltime);printf("nt实验或上机学时: %dn",subfn.etime);printf("nt学分: %fn",subfn.score);printf("nt开课学期: %dn",subfn.term);printf("nnt1.上一页t2.下一页t3.修改nt4.删除t5.返回n");printf("nt请选择(1-5):");scanf("%d",&inp);switch (inp)case 1:if (n=0) printf("nt已到达首页nt按任意键重新选择");input=getchar();input=getchar();elsen=n-1;break;case 2:if (n=k-1)printf("nt已到达最末页nt按任意键重新选择");input=getchar();input=getchar();elsen=n+1;break;case 3:for (j=0;j<=i-2;j+)if (subfn.num=subsj.num)change(j); break;case 4: for (j=0;j<=i-2;j+)if (subfn.num=subsj.num) del(j); break;case 5: index(); break;default :printf("nt对不起,没有这项服务!nt按任意键重新选择!");input=getchar();input=getchar();while(inp!=5);void change(int x)int inp,i=0,j;void index();FILE *fp,*fp1;char input;struct subinf subs,sub_taxis100;do system("cls");printf("nnnt!注意:一旦修改就无法恢复!您确定要修改该记录吗?n");printf("nt1.是,我要修改t2.不,返回n");printf("nt请输入(1-2):");scanf("%d",&inp);if (inp!=1&&inp!=2)printf("nt没有这项服务!n");printf("t按任意键重新选择.");input=getchar();input=getchar();while (inp!=1&&inp!=2);if (inp=2)index();if (inp=1) system("cls");printf("nnnt请输入课程信息n");printf("nt课程编号:");scanf("%d",&subs.num);printf("nt课程名称:");scanf("%s",subs.name);printf("nt课程性质:");scanf("%s",subs.feat);printf("nt总学时:");scanf("%d",&subs.ttime);printf("nt授课学时:");scanf("%d",&subs.ltime);printf("nt实验或上机学时:");scanf("%d",&subs.etime);printf("nt学分:");scanf("%f",&subs.score);printf("nt开课学期:");scanf("%d",&subs.term);if (fp1=fopen("sub.dat","rb")!=NULL) do fread(&sub_taxisi,sizeof(struct subinf),1,fp1); i=i+1; while(!feof(fp1);fclose(fp1);for (j=0;j<x;j+)if (subs.num=sub_taxisj.num) system("cls");printf("nnnt此编号已用!n");printf("t按任意键回主菜单.");printf("0");input=getchar();input=getchar();index(); break;for (j=x+1;j<i-2;j+) if (subs.num=sub_taxisj.num)system("cls");printf("nnnt此编号已使用!n");printf("1");printf("t按任意键返回管理菜单");input=getchar();input=getchar();index(); break;sub_taxisx=subs; fp=fopen("sub.dat","wb");for (j=0;j<i-1;j+) fwrite(&sub_taxisj,sizeof(struct subinf),1,fp);fclose(fp);printf("nnt信息修改完成!按任意键回主菜单.");input=getchar();input=getchar();index();void del(int y)void index();char input;FILE *fp;int inp,i=0,j;struct subinf sub_taxis100;do system("cls");printf("nnnt!注意:一旦删除就无法恢复!您确定要删除该记录吗?n");printf("nt1.是,我要删除该记录t2.否,返回n");printf("nt请输入(1或2):");scanf("%d",&inp);if (inp!=1&&inp!=2)printf("nt没有这项服务!n");printf("t按任意键重新选择.");input=getchar();input=getchar();while (inp!=1&&inp!=2);if (inp=2)index();if (inp=1) if (fp=fopen("sub.dat","rb")!=NULL) dofread(&sub_taxisi,sizeof(struct subinf),1,fp);i=i+1;while(!feof(fp);fclose(fp);if (i>2) fp=fopen("sub.dat","wb"); for (j=0;j<y;j+)fwrite(&sub_taxisj,sizeof(struct subinf),1,fp);fclose(fp);fp=fopen("sub.dat","ab");for (j=y+1;j<i-1;j+)fwrite(&sub_taxisj,sizeof(struct subinf),1,fp);fclose(fp); else remove("sub.dat");printf("nnt记录已删除!nnt按任意键返回主菜单.nt");input=getchar();input=getchar();index();void quit()char input; system("cls");课程信息查询课程编号09050001课程名称:高数课程性质:必修课总学时20授课学时20实验或上机学时10学分4.0开课学期2*printf("nt按任意键退出");printf("nt感谢使用");exit(0);void main() index();六、 仍存在的问题:1、功能缺乏、不足,不能保证操作的完整性;2、有些程序有点混乱。3. 排序功能运行的不是很好。七、心得体会一周的课程设计已经结束。通过此次C语言程序设计实践,本人实在是获益不浅!C语言是上个学期开的课程,所以这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我只坐了一个下午,什么也没干!回去以后,我想,这样不行,这样下去还得了!我就重新学了一遍我们上个学期的教材,发觉自已有许多都遗忘了!几乎花了我百分之九十的时间,而且还是在一些在其他大学读计科专业的同学的帮助下和在上网查看了大量的资料之后才做出来!最后,想说两句,这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验!

    注意事项

    本文(C语言课程设计说明书课程管理系统 .doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开