C语言课程设计学生选修课系统设计

上传人:鲁** 文档编号:472922849 上传时间:2023-02-14 格式:DOC 页数:20 大小:319.53KB
返回 下载 相关 举报
C语言课程设计学生选修课系统设计_第1页
第1页 / 共20页
C语言课程设计学生选修课系统设计_第2页
第2页 / 共20页
C语言课程设计学生选修课系统设计_第3页
第3页 / 共20页
C语言课程设计学生选修课系统设计_第4页
第4页 / 共20页
C语言课程设计学生选修课系统设计_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《C语言课程设计学生选修课系统设计》由会员分享,可在线阅读,更多相关《C语言课程设计学生选修课系统设计(20页珍藏版)》请在金锄头文库上搜索。

1、目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序代码137程序运行结果228编程中遇到的困难及解决方法259总结心得及良好建议2610致谢261 课程论文题目名称:学生选修课系统设计【要求】 假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课时间,实验或上级时间,学分,开课学期等信息,学生可按要求(如总学分不超过60)自由选课。是设计一选修课课程系统,使只能提供以下功能:(1)系统一菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存输入(3)课程信息浏览功能输出(4)查询功能(至少一种查询方式)算法

2、(5)按学分查询(6)某门课程学生选修情况(可选项)【提示】 数据结构可用结构体,包括授课和选课两个结构体,其中课程结构体成员包括编号,课程名称,课程性质,总学时,授课学时,实验或上机时间,学分,开课学期。学秀结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。2 程序设计思路1、 需求分析 系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;由于课程信息要用文件保存,因而要提供文件的输入输出操作;由于要浏览信息,所以要提供显示功能;要实现查询功能,故要提供查找操作。2、总体设计 整个系统可以设计为信息输入模块、信息查询模块以及信息浏览模块。3、详细设计 数

3、据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。 Struct Char courseCode10; /课程编号 Char courseName20; /课程名称 Char courseType10; /课程类别 Int totalPeriod; /总学时 Int classPeriod; /授课学时 Int experiPeriod; /上机学时 Float creditHour; /学分 Int term; /开课学期CourseInfoN; /课程信息结构体Struct Int stuNo; /学号; Char courseCode10; /课程编号StuCourInfoN

4、; /学生选课信息结构体4.(1) 信息输入模块 从键盘输入课程信息和学生选课信息,写入文件。(fwrite, fprintf)(2)信息浏览模块 分屏显示课程信息,每屏10条课程记录,按任意键继续。从文件中读数据(fread,fscanf),然后再显示。(3)信息查询模块 通过菜单选择查询字段,可以按照课程编号、课程名称、课程性质、开课学期、学分对课程信息文件进行查找,查找算法可以选择基本查找、二分查找等算法。 可以通过菜单选择课程编号,在学生选课信息文件中查询该课程学生选修情况。3功能模块图显示课程信息模块查询模块主模模块增加模块删除模块修改模块选课模块显示选课情况模块4. 数据结构设计由

5、于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。在编写本程序的过程中,首先借助老师给的指导材料,确定了目标程序运行的次序与界面,即本程序首先运行【用户系统】菜单界面,其次程序运行【用户插入课程信息】及【用户浏览课程】菜单界面,最后程序运行【统计选课信息】及【选课】界面。如果用户选择【插入用户信息】选项则程序进入出入用户课程信息界面。需要一次输入课程编号,课程名称,课程性质,总学时,授课时间,实验或上机学时,学分,开课学期等信息;如果用户选择【浏览课程】选项则程序进入【浏览课程】界面,将会显示所选课程的信息;如果用户选择【查询】选项则会显示按学分查询的选课信息;一次用户

6、还可以查看某门课程的所选情况。 其次,根据目标程序运行的次序与界面,确定设计顺利,设计界面(包括各部分菜单与用户提示信息)。再次是按照程序运行的各界面下的菜单功能编写各功能模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对应功能。 最后是程序的总体调试及功能完善,此部分从学生选课的角度出发,考虑了更加人性化、更加合理、更加高效准确、更加智能化的设计。5. 算法设计开始打开文件将学好和密码读入数组中输入密码和学号密码、学好?换回1换回0上图是简单的将输入学号和密码的过程提示是一遍,但实际函数中我使用的三从循环。第一重循环是输入学号;第二重循环是判断该学会是否存在,若学号不存在便提示是再

7、输,还是退出系统;在学号存在时进入第三重循环,输入密码(注:学号和密码是在运行此函数时从文件中读到数组里)并在数组中查找,若有和该密码相等的数组元素,就将进入系统,否则提示继续或退出.开始打开文件并将课程信息读入数组输入查询类型Inset()查询模块增加模块删除模块修改模块选课模块显示课程信息模块显示选课情况模块退出结束在次函数中用户通过输入选项进入不同的函数模块。当每次运行一个模块后,又进行选择。6. 程序代码#include#include#include #define M 20#define N 100 int x; /x为供选课程数 /*主主菜单函数开始*/void menu()in

8、t n,w;void enter_linformation();void browse_linformation();void enter_sinformation();void search_num();void search_score();void l_choice_num();doputs(tt*MENU*nn);puts(tttt 1.课程信息录入);puts(tttt 2.学生选课信息录入);puts(tttt 3.课程信息浏览);puts(tttt 4.按课程号查询);puts(tttt 5.按学分查询);puts(tttt 6.某门课程学生选修情况);puts(tttt 7.退

9、出);puts(nntt*n);printf(Choice your number(1-7): bb);scanf(%d,&n);if(n7)w=1;getchar();else w=0;while(w=1);switch(n)case 1:enter_linformation();break;/课程信息录入case 2:enter_sinformation();break;/学生选课信息录入case 3:browse_linformation();break;/课程信息浏览case 4:search_num();break;/按课程号查询case 5:search_score();break

10、;/按学分查询case 6:l_choice_num();/某门课程学生选修情况case 7:exit(0);/退出void main()menu(); /*主函数结束*/ struct lesson int num; /课程编号 char name20; /课程名称 char kind10; /课程性质 int stime; /总学时 int ttime; /授课学时 int etime; /实验或上机学时 int score; /学分 int term; /开课学期 int choice_num; /选修该课的学生人数lesM; /lesM中每个数组元素对应一条课程信息struct stu

11、dent int number; /学号 int num20; /课程编号stuN; /stun中每个数组元素对应一条学生选课信息 void printf_face()/公共函数1:显示数据结构项目函数 printf(ntnumber name kind stime etime ttime score termn);void printf_one(int i) /公共函数2:显示一个课程信息记录printf(nt%d %s %s %d %d %d %d %dn ,lesi.num,lesi.name,lesi.kind,lesi.stime,lesi.ttime,lesi.etime,lesi

12、.score,lesi.term); /课程信息录入模块void l_input(int i) /输入一个记录到函数 scanf(%d,&lesi.num);scanf(%s,&lesi.name);scanf(%s,&lesi.kind);scanf(%d,&lesi.stime);scanf(%d,&lesi.ttime); scanf(%d,&lesi.etime);scanf(%d,&lesi.score);scanf(%d,&lesi.term);l_save(int n) /保存课程信息到文件函数FILE *fp;int i;if(fp=fopen(lesrecord.txt,wb)=NULL)printf(n Cannot open filen);return NULL;for(i=0;in;i+)fprintf(fp,%d %s %s %d %d %d %d %dn ,lesi.num,lesi.name,lesi.kind,lesi

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号