[计算机软件及应用]c 选课管理系统.doc
《[计算机软件及应用]c 选课管理系统.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]c 选课管理系统.doc(31页珍藏版)》请在三一文库上搜索。
1、 课程设计说明书 No31学生选课管理系统1、设计目的 本次课程设计为我们提供了一个既动手又动脑,独立实践的机会,我们将课本上的理论知识和实际有机的结合起来,锻炼学生分析、解决较复杂问题的能力,提高我们独立编写大编程的能力。进一步培养了我们结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。此外还:巩固和加深学生对C语言课程的基本知识的理解和掌握;掌握C语言编程和程序调试的基本技巧利用C语言进行基本的软件设计;提高运用C语言解决实际问题能力;进一步培养我们结构化程序设计思想。该程序是我们平时不可缺少的,省去了繁琐的选课过程,学生只需通过程序按步骤输入即可选课,为学校对选课管理带来
2、很多方便。该程序能进行增加、删除、修改、查询,对信息进行管理及存储。操作界面简单,容易操作。该程序运用了条件、循环、数组、指针、结构体等C语言知识,综合了文件的打开和保存。简单易懂,内容丰富。2、设计方案论证21 设计思路 该学生选课系统能录入课程信息,可增加删除课程,录入学生信息,可增加、删除对应学号的学生,对课程、学生信息进行管理,学生可以查询课程和本人信息,然后进行选课。功能模块图如图1 学生选课系统录入课程信息课程管理录入学生信息学生信息管理学生选课系统信息查看及存储退出系统退出选课系统图1功能模块图2.2 程序设计22.1定义数据类型 1本程序首先定义了一个结构体作为课程信息、学生信
3、息的存储媒介,课程信息定义了课程编号、课程名、课程已选人数、课程人数上限,学生信息定义了学号、姓名、已选课程编号、已选课程数量。如下:struct couse/课程信息结构体int num1;char name120;int score;int nelepeo;/课程已选人数int Melepeo;/课程人数上限struct couse * next;struct student/学生信息结构体int num2;char name220;int nelenum50;/已选课程编号int nelen;/已选课程数量struct student * next;然后分模块对课程、学生、选课进行增加、
4、删除、修改等操作。22.2主函数及其流程图定义主函数 main()和一系列的功能函数,只有通过这些函数才可实现程序的功能。每次使用都会调用菜单函数。主函数主要是利用switch语句对数据进行处理。【2】开始输入ii7输入错误,请重输YN录入课程信息课程管理录入学生信息学生信息管理学生选课系统信息查看及存储退出系统感谢使用本系统退出1234567图2主函数流程图22.3增加函数及其流程图 i=1;lens=100;goodsnum=0 head1=NULL 是 否 (P0-num1P1-num1)&(P1-next!=NULL) 否 是head1=P0 head1=P1P0-next=null
5、是 否 P1-next= P0 head1=P0 P2-next=P0 P0-next= P1 P0-next=null 图3增加课程 P1=head2 p0=incouse head2=null 是 否 (p0-num2p1-num2)&(p1-next!=null) P=p1 p1=p1-nextHead2=p0 p0-num2num2 否 是P0-next= head2=p1null 是 否 head2=p0 p2-next=p0 P1-next=p0 P0-next=null p0-next=null N2=N2+1 图4添加学生信息 输入学号 s=head2 s-num2!=num2
6、&s-next!=null 否 是 s=s-next s-num2!=num2 是 否 输出 不存在你的信息,请进入主菜单录入你 的信息 c=head1 输出 你的可选课程编号 c!=null 否 是 t=0 i=0 s-nelenumi!=0 c-num1=s-nelenumi 否 是 t=1 ssss 图5查询可选课程2.3 源程序#include #includeint N1,N2,kk1,kk2,kk3;struct couse * head1;struct student * head2;struct couse/课程信息结构体int num1;char name120;int sc
7、ore;int nelepeo;/课程已选人数int Melepeo;/课程人数上限struct couse * next;struct student/学生信息结构体int num2;char name220;int nelenum50;/已选课程编号int nelen;/已选课程数量struct student * next;void Ms()for(kk1=0;kk11100;kk1+)for(kk2=0;kk21200;kk2+)for(kk3=0;kk3num1,p1-name1,&p1-score,&p1-Melepeo);p1-nelepeo=0;head1=NULL;while
8、(p1-num1!=0)N1=N1+1;if(N1=1)head1=p1;else p2-next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse);scanf(%d%s%d%d,&p1-num1,p1-name1,&p1-score,&p1-Melepeo);p1-nelepeo=0;p2-next=NULL;void inputc()/录入课程主函数int i;printf(ttt录入课程信息n);printf(n1.从键盘录入n);printf(2.从文件录入n);printf(3.返回主菜单n);printf(请选择(13
9、):n);scanf(%d,&i);switch(i)case(1):keyboardc();break;case(2):filec();break; case(3):break;void insertc(struct couse *incouse)/课程管理子函数(增加课程)struct couse *p0,*p1,*p2;p1=head1;p0=incouse;if(head1=NULL)head1=p0;p0-next=NULL;elsewhile(p0-num1 p1-num1) & (p1-next!=NULL)p2=p1;p1=p1-next;if(p0-num1 num1)if(
10、head1=p1) head1=p0;else p2-next=p0;p0-next=p1;elsep1-next=p0;p0-next=NULL;N1=N1+1;void delc(int num1)/课程管理子函数(删除课程)struct couse *p1,*p2;if(head1=NULL)printf(n没有课程,无法删除!n);goto end;p1=head1;while(num1!=p1-num1 & p1-next!=NULL)p2=p1;p1=p1-next;if(num1=p1-num1)if(p1=head1) head1=p1-next;else p2-next=p1
11、-next;printf(已删除该编号课程!n);N1=N1-1;else printf(无该编号的课程!n);end:;void managementc()/课程管理主函数struct couse * incouse;int i,num1;printf(ttt课程管理n);printf(1.新增课程n);printf(2.删除课程n);printf(3.返回主菜单n);printf(请选择(13):n);scanf(%d,&i);switch(i)case(1):incouse=(struct couse *)malloc(sizeof(struct couse);printf(课程编号t课
12、程名称t学分t课程人数上限n);scanf(%d%s%d%d,&incouse-num1,incouse-name1,&incouse-score,&incouse-Melepeo);incouse-nelepeo=0;insertc(incouse);break;case(2):printf(请输入要删除课程的编号:n);scanf(%d,&num1);delc(num1);break;case(3):break;void keyboards()/录入学生信息子函数(从键盘录入)int i;struct student *p1,*p2; N2=0; p1=p2=(struct student
13、 *)malloc(sizeof(struct student); printf(学生学号t学生姓名n); scanf(%d%s,&p1-num2,p1-name2); p1-nelen=0;for(i=0;inelenumi=0; head2=NULL; while(p1-num2!=0) N2=N2+1; if(N2=1)head2=p1; else p2-next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student); scanf(%d%s,&p1-num2,p1-name2); p1-nelen=0;for(i=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 计算机软件及应用c 选课管理系统 计算机软件 应用 选课 管理 系统
链接地址:https://www.31doc.com/p-1991450.html