已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 说 明书设计题目:学生选修课程系统设计 系 别: 计算机学院 专 业 班: 14级计算机类6班姓 名: 学 号: 指导老师: 二o一五 年 六月 五日目录1. 目的要求.12. 分析.23. 总体设计.34. 详细设计.45. 测试结果.5-66. 课程设计总结.77. 源代码.8-151 目的要求: 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息系统的环境。计算机的最到好处的于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。基于这个问题,我认为有必要建立一个学生选修课系统,使得学生选课信息和工作量规范化,系统化,程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时,准确有效的查询和修改课程情况。通过C语言课程设计,可以加深课堂学到的知识的掌握和理解,提高所学的内容的综合运用能力;同时也可以查询相关资料,培养自学能力,接受新知识的能力,提高学习兴趣;增强程序设计能力,掌握编程技巧能力,为以后的学习工作打下坚实的基础。本系统的目标在于:(1)通过学生课系统的实现,使学校对学生选课信息的规范化(2)学生更加方便的查询自己相关选课信息 (3)对不同的身份的人群提供不同的权限。二.分析题目:学生选修课程系统设计假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或商机学时、血粉、开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。1、要求:试设计一个选修课程系统,使之能提供以下功能:(1) 系统以菜单方式工作。(2) 课程信息和学生选课信息输入功能(课程信息用文件保存)输入。(3) 课程信息浏览功能输出。(4) 查询功能(至少一种查询方式)算法。(5) 按学分查询。(6) 某门课程学生选修情况(可选项)。2、分析: 由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。三总体设计:根据题目要求,可以将系统分为六个模块:1) 系统以菜单方式工作模块;2) 课程信息与学生选课信息录入功能模块;3) 课程信息浏览功能模块;4) 查询模块;5) 按学分查询模块;6) 某些课程学生选修情况模块。系统以菜单方式工作模块(管理员)课程信息与学生选课信息录入功能模块课程信息浏览功能模块查询模块按学分查询模块某些课程学生选修情况模块学生选课管理系统4 详细分析学生选课成功如果按课程性质查询输入2如果按学分查询输入1学生输入课程编号学生按学分查找/按课程性质查找学生游览选修课信息课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期管理员输入选修课程信息 四.测试结果输入要选修的课程的编号,编号之间以空格分开,输完后以0结束1 2 3 4 5 6 7 8 06. 课程设计总结 通过学生选修课程系统设计,掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法。掌握和提高了运用C语言进行程序设计的能力。 程序设计的过程,实际上是确实解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后才去逐步细化的方法实现整个程序。 对于一个较大的应用程序,我们一般不可能一次就设计出一个完善的系统。通常要先设计满足基本要求的系统,然后再测试或者在使用过程中不断完善,慢慢地做成一个成功完善选修课程管理系统。 本程序我自己认为达到了C语言课程设计题目的要求,即本程序系统以菜单方式工作。(1)课程信息和学生选课信息输入功能(课程信息用文件保存)输入。(2)课程信息浏览功能输出。(3)查询功能(至少一种查询方式)算法。(4)按学分查询。(5)某门课程学生选修情况(可选项)。但是我自己认为程序功能仍然不够完善。例如信息表达方式不够丰富,比较单一。再如程序某些部分输入错误发哦之程序中断或者转向其他功能模块,即程序建议用户注意提示,进行合理的准确的输入,才不会程序中断,这样有利于管理工作。7. 源代码#include #include #include typedef struct subjects int num; char name20; char kind10; int stime; int ttime; int etime; int score; int term; struct subjects *next;SUB; SUB *create_form() SUB *head,*tail,*p; int num,stime,ttime; int etime,score,term; char name20,kind10; int size=sizeof(SUB);head=tail=NULL; printf(*湖北工业大学计算机学院*n);printf(*14级计算机6班*n);printf(*买买提艾力吾守尔*n);printf(*欢迎使用选修课系统*n);printf(管理员输入选修课程信息:n);printf(注意格式:课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期n); scanf(%d %s %s %d %d %d %d %d,&num,&name,&kind,&stime,&ttime,&etime,&score,&term); while(num!=0) p=(SUB *)malloc(size); p-num=num; strcpy(p-name,name); strcpy(p-kind,kind); p-stime=stime; p-ttime=ttime; p-etime=etime; p-score=score; p-term=term; if(head=NULL) head=p; else tail-next=p; tail=p; scanf(%d %s %s %d %d %d %d %d,&num,&name,&kind,&stime,&ttime,&etime,&score,&term); tail-next=NULL; return head; void savefile(SUB *head) SUB *p; FILE *fp; fp=fopen(subjects.txt,w); fprintf(fp,课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期n); for(p=head;p;p=p-next)fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%7dn,p-num,p-name,p-kind,p-stime,p-ttime,p-etime,p-score,p-term); fclose(fp); void savefileadd(SUB *head) SUB *p; FILE *fp; fp=fopen(subjectsadd.txt,w); fprintf(fp,课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期n); for(p=head;p;p=p-next) fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%7dn,p-num,p-name,p-kind,p-stime,p-ttime,p-etime,p-score,p-term); fclose(fp); void savefiledel(SUB *head) SUB *p; FILE *fp; fp=fopen(subjectsdel.txt,w); fprintf(fp,课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期n); for(p=head;p;p=p-next) fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%7dn,p-num,p-name,p-kind,p-stime,p-ttime,p-etime,p-score,p-term); fclose(fp);void prin(SUB *head) SUB *ptr; if(head=NULL) printf(对不起!没有此门课程记录!n); return; printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); for(ptr=head;ptr;ptr=ptr-next) printf(%5d%12s%9s%9d%9d%11d%11d%7dn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term);void search(SUB *head) int a,num; int t=1; char type10; char ch=a,ch1; SUB *ptr; while(ch!= ) printf(若要按课程性质查找请输入1,若要按学分查找请输入2:n); scanf(%d,&a); switch(a) case 1:printf(请输入要查找的课程的性质:n); scanf(%s,type); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); for(ptr=head;ptr;ptr=ptr-next) if(strcmp(type,ptr-kind)=0) printf(%5d%12s%9s%9d%9d%11d%11d%7dn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); t=0; if(t) printf(未找到!n); t=1; break; case 2:printf(输入要查找的课程的学分n); scanf(%d,&num); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); for(ptr=head;ptr;ptr=ptr-next) if(ptr-score=num) printf(%5d%12s%9s%9d%9d%11d%11d%7dn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); t=0; if(t) printf(未找到!n); t=1; printf(继续查找请按回车键,结束请按空格键:n); ch1=getchar(); /将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。 ch=getchar(); SUB *insert(SUB *head) SUB *ptr,*ptr2,*subj; int size=sizeof(SUB); char ch=a,ch1; while(ch!= ) subj=(SUB *)malloc(size); ptr=subj; printf(输入要插入的课程信息:n); scanf(%d%s%s%d%d%d%d%d,&subj-num,subj-name,subj-kind,&subj-stime,&subj-ttime,&subj-etime,&subj-score,&subj-term); if(head=NULL) head=ptr; head-next=NULL; else for(ptr2=head;ptr2;ptr2=ptr2-next) if(ptr2-next=NULL) ptr2-next=subj; subj-next=NULL; break; printf(继续插入请按回车,结束请按空格:n); ch1=getchar(); /将回车键赋给CH1,否则subj-term输完后输入的回车键会赋给CH,因此用CH1填补。 ch=getchar(); return head; SUB *del(SUB *head) SUB *p1,*p2; char ch=a,ch1; int num; while(ch!= ) printf(输入想要删除的课程编号:n); scanf(%d,&num); if(head-num=num) p2=head; head=head-next; free(p2); if(head=NULL) return NULL; p1=head; p2=head-next; while(p2) if(p2-num=num) p1-next=p2-next; free(p2); else p1=p2; p2=p1-next; printf(继续删除请按回车,结束请按空格:n); ch1=getchar(); /将回车键赋给CH1,否则num输完后再输入的回车键会赋给CH,因此用CH1填补。 ch=getchar(); return head; void choose(SUB *head) SUB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学《飞行器运维工程-飞行器结构与系统基础》考试备考题库及答案解析
- 2025年大学《大数据管理与应用-大数据存储与计算》考试模拟试题及答案解析
- 企业培训手册员工培训需求调研方法
- 企业培训体系构建与实施计划
- 2025年大学《农村区域发展-农村社会学》考试模拟试题及答案解析
- 区块链前后端开发工程师培训课程大纲
- 2025年大学《劳动经济学-劳动关系学》考试模拟试题及答案解析
- 2025年大学《能源服务工程-能源服务工程概论》考试备考试题及答案解析
- 2025年大学《儿科学-儿科急救医学》考试参考题库及答案解析
- 2025年大学《能源与动力工程-汽轮机原理》考试模拟试题及答案解析
- 低应变桩身完整性检测
- 《耳鼻咽喉外伤》课件
- T-JGXH 006-2020 金属覆盖层 键合插针化学镀镍-磷合金镀层规范和试验方法
- 2024年山东省水利安全生产知识竞赛考试题库(含答案)
- 学生集体外出活动申请及情况记录表
- 品质保证协议书
- GB/T 42535-2023锅炉定期检验
- 年产30万吨合成氨工艺合成工段设计
- 蛙心起搏点分析
- 脚手架工程监理实施细则 (盘扣式脚手架)正式版
- 2021年律师所行业调查研究报告
评论
0/150
提交评论