1、学生选修课程系统设计沈 阳 航 空 工 业 学 院 课程设计学 号 200604021133班 级 6402104 姓 名 王 浩指导教师 刘 成2007年 9 月 16 日沈阳航空工业学院课程设计任务书院系:电子工程系 专业:电子信息工程 班级:6402104学号:200604021133 题目:学生选修课程系统设计一、课程设计时间2007年9月10日至2007年9月14日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:假定有10门课程(参见file26.txt),每门课程有:课程编号,课程名称,学分,学时。为自己设计一个选修课程系统,并将自己选课的信息保存到自己所创建的
2、文件myfile.txt中。注意:确保总学分不少于8分。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“读取数据”、“输入选课信息”、“查看已选情况”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师: 学生签名: 五、成绩:六、教师评语: 目录一需求分析 2二程序流程图 2输出函数流程图 错误!未定义书签。添加数据函数流程图 5保存函数流程图 5显示函数流程图
3、错误!未定义书签。三核心技术的实现说明及相应程序段 7四个人总结 11五参考文献 12六源程序 12一需求分析通过对本次C语言程序设计题目要求的仔细分析而得知,全部程序的大体设计的实现过程主要分为四个模块,其中每个模块对应相应的一个函数,它们的功能分别是:输出函数()、添加数据函数()、保存数据()、显示函数()和退出函数()。而就在这几个函数之中,前四个函数的实现严格按照题目的要求,而后面的两个函数属于附加功能。1.输出函数() 是为了从系统中调出以有的文件,以便使用。2.添加数据函数() 让使用者选择自己要选的课。3.保存函数() 保存以选课程。4.显示函数() 显示以选课程。5.退出函数
4、() 用来退出程序。二程序主体流程图 图1 程序主体流程图输出函数流程图 图2 输出函数流程图添加数据函数流程图 图3添加数据函数流程图保存函数流程图 图4保存函数流程图显示函数流程图 图5显示函数流程图三核心技术的实现说明及相应程序段(1) 输出函数() 该函数主要是输出原有数据,让使用者使用方便。具体函数如下。#include int a10,n=0; struct subject int num; char name50; float score; int time; sub10=1,毛泽东思想概论,2,32,2,思想道德修养,2,32, 3,法律基础,2,32,4,C程序,3.5,56
5、, 5,计算机基础,2,32,6,英语,8,128, 7,数学,6,96,8,网络,2,32, 9,统计,4,64,10,经济学,2,32 图6输出函数void read_data() int i; printf(课程号 课程名 学分 学时n); for(i=0;i=9;i+) printf(%3dtt%-13s%1.1f%13dn,subi.num,subi.name,subi.score,subi.time); /*/(2) 添加函数() 该函数在原数据输出后供学生选课,主要是让学生输入自己要选课的课号。具体函数如下。 void input() int i,j=0; float sum=0
6、; printf(进入选课阶段:n); printf(请输入选修的课程号n); printf(注意:你所选科目学分不少于8分!)n); for(i=0;i=9;i+) printf(第i门课程号:,i+1); j+; scanf(%d,&aj); if(aj=0) break; n=n+1; sum=sum+subaj-1. score; if(sum7) break; printf(您所选课程的总学分为: %2.1fn,sum); /*/ void reads() int i; for(i=1;i11;i+) ); printf(%3d%6s%1.1f%5dn,subai-1.num,sub
7、ai-1.name,subai-1.score,subai-1.time ); 图7添加函数(3) 保存函数() 在选课同时进行的,记录所选的课程,并在以后可以调出保存的文件。具体函数如下。 void reads() int i; for(i=1;i11;i+) printf(%3d%6s%1.1f%5dn,subai-1.num,subai-1.name,subai-1.score,subai-1.time void save() FILE*fp; int i; if(fp=fopen(d:myfile26txt,wb)=NULL) printf(cannot open filen); re
8、turn; fread(&sub,243,1,fp); fclose(fp); 图8保存函数四个人总结通过这次课程设计,我尝试了用C语言软件编写一个实际应用的程序,我深深的体会到编程是一个需要谨慎与严密精神的工作,同时我也感觉到做一名优秀程序员的不易。在编程序过程中,我积极的和同学讨论,请教老师一些困难的问题和难点,最终编好和完善了程序。使程序基本能完成编好和完善了程序,而且用户界面也比较友好,在运行过程中输出内容明了,循环顺畅,退出方便,很好的完成了任务。五参考文献1 谭浩强C程序设计北京:清华大学出版社20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社2006六源程序#i
9、nclude int a10,n=0; struct subject int num; char name50; float score; int time; sub10=1,毛泽东思想概论,2,32,2,思想道德修养,2,32, 3,法律基础,2,32,4,C程序,3.5,56, 5,计算机基础,2,32,6,英语,8,128, 7,数学,6,96,8,网络,2,32, 9,统计,4,64,10,经济学,2,32 ; /*/ void read_data() int i; printf(课程号 课程名 学分 学时n); for(i=0;i=9;i+) printf(%3dtt%-13s%1.
10、1f%13dn,subi.num,subi.name,subi.score,subi.time); /*/ void input() int i,j=0; float sum=0; printf(进入选课阶段:n); printf(请输入选修的课程号n); printf(注意:你所选科目学分不少于8分!)n); for(i=0;i=9;i+) printf(第i门课程号:,i+1); j+; scanf(%d,&aj); if(aj=0) break; n=n+1; sum=sum+subaj-1. score; if(sum=8) break; printf(您所选课程的总学分为: %3.1
11、fn,sum); /*/ void reads() int i; for(i=1;i11;i+) printf(%3d%6s%1.1f%5dn,subai-1.num,subai-1.name,subai-1.score,subai-1.time ); void save() FILE*fp; int i; if(fp=fopen(d:file26. txt,wb)=NULL) printf(cannot open filen); return; fread(&sub,243,1,fp); fclose(fp); /*/ void exit1() printf(谢谢您进入选课系统, 再见!n)
12、; /*/ void s() int i; scanf(%d,&i); switch(i) case 1:read_data(); printf(!注意:你所选科目的学分不少于8学分!n); s();break; case 2:input();s();break; case 3:reads();save();s();break; case 4:exit1();break; /*/ /*/ main() printf(*欢迎进入选课系统*n); printf(n 1 读取数据;); printf(n 2 输入选课信息;); printf(n 3 查看以选信息;); printf(n 4 退出 .); s();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1