1、这9个局部依次是:1.登录界面函数;void login()2.学生登录界面据函数:void stu_login()3.管理员登录界面函数:void man_login()4.退出界面函数:void bye_sys()5.课程选择函数:void c_select()6.课程浏览函数:void c_view()7.课程查询函数:void c_search()8.课程增加函数:void c_add()9.课程删除函数:void c_delete()10. 菜单函数:void index()11.主函数局部; main()总体设计:系统功能模块图局部函数流程图:1、课程选择函数:2、课程查询函数3、
2、课程增加函数4、课程删除函数第四局部:程序设计数据、运行结果本程序是一款应用软件,故数据设计、程序运行结果应在程序的运用中得以表达,现在通过一个程序的运用事例来对程序运行结果进展演示与实现。【软件运用举例】1、程序开场界面如下:选择某个选项,如进展管理员登录,进展课程的增加进入管理员界面:2、再选择所要进展的操作,如进展课程增加,结果如下:下面可以进展继续增加课程或者退出:3、选择课程浏览,可以分页查看相应的课程信息:第一页:第二页:4、课程查询查找结果:4、管理员课程删除操作:删除后可以进展浏览,观察删除后的结果:可见删除后只有一条记录。删除操作完成正确。下面进展学生操作的使用方法:1、学生
3、登陆界面:2、选择学生选课选项:3、学生登陆也可进展课程浏览和查询函数,其结果与管理员登陆一样,不再演示。第五局部:程序的优缺点【程序的优点】算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。算法上的优点主要表达在以下三点:1.程序采用main主函数方式设计,程序的主体的功能大都由该功能完成。程序如此设计有利于程序的进一步改良及有助于程序执行效率的提高。2.程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进展一系列操作,最终再写入文件。3.插入操作在本程序中将课程信息直接插入数组最后一个节点,从
4、而减少了数据的相互移动,节省了时间。功能上的优点主要表达在以下两点:1简洁明了的程序菜单。程序主要采用了层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。2人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次清楚,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地看懂程序并进展操作。【程序的缺点】主要表现在以下两点:1、本程序没有进展相应的密码操作,所以对于使用者来说可能存在比拟大的不性。需要改善。2、本程序没有使用文本读写函数fscanf和fprintf,所以的到的课程文件和选课文件
5、都是二进制形式。第六局部:心得体会选课系统程序比起通讯录程序来讲好写一些,由于本程序用到了数组,对于数组的操作掌握的比拟熟练,所以在编写程序的时候困难没有那么多。本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比拟方便和好用。通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了构造化程序设计的思想和方法,掌握和提高了运用C语言进展程序设计的能力。程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。对于一个较大的应用程序,一般不可能一次就设计出一个很完善
6、的系统。通常要先设计满足根本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。所以在进展调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。第七局部:附录一、参考文献:1、丽娟主编 ,C语言程序设计教程第二版,人民邮电2、严蔚敏主编,数据构造C语言,清华大学3、单主编,C语言程序设计案例精粹,电子工业4、谭浩强主编,程序设计第三版,清华大学二、源程序#includestdio.hstdlib.hw
7、indows.hstring.hvoid index();/首页void login();void bye_sys();/退出界面void stu_login();/学生登录菜单 void c_select();void c_view();/课程浏览 void c_add();/增加课程void c_delete();void c_searchs();/学生查询函数void c_searchm();/管理员查询函数void c_viewm();/管理员浏览函数void c_views();/学生浏览函数struct course/定义课程构造体 int c_num; char c_name20
8、; int c_score; int c_nelepeo;/课程已选人数 int c_melepeo;/课程人数上限;struct student char s_number10; char s_password10;struct manager char m_name10; char m_password10;void index()/首页 char input; printf(nnttt*n);ttt 大学学生选课系统nttt*nnnttt*设计者:晓斌*nnn input=getchar(); system(clsvoid login()/登陆界面 void stu_login(); v
9、oid man_login(); void bye_sys(); int input; do nnnt1.学生登录nt2.管理员登陆nt3.退出本系统nt请选择效劳类别: scanf(%d,&input); if (input!=1&input!=2&=3) /输入数不等于选项的时候打印画面nt输入出错!请重新选择nnt按任意键返回选择页面nt getchar();getchar(); if(input=3)/如果输入3退出系统 bye_sys(); while(input!=3); switch(input) case 1:stu_login();break; case 2:man_logi
10、n();void bye_sys()/退出界面exit(0); void c_add(); void c_delete(); void c_view(); void c_searchm(); int in;nnt1.新增课程nt2.删除课程nt3.课程浏览nt4.课程查询nt5.退出nnnt请选择效劳种类:in); if(in!in!=3&=4&=5)nt没有这项效劳t按任意重新选择 while(in!=5); switch(in)c_add();c_delete(); case 3:c_viewm(); case 4:c_searchm(); case 5:login();void stu_
11、login()/学生登录菜单 void c_select(); void c_searchs(); void login();nnnt-学生登陆-nnt1.学生选课nt2.课程浏览nt3.课程查询nt4.退出n if(input!=4)nt没有这项效劳nt按任意键重新选择=4);c_select();c_views();c_searchs(); int n,in,i=0,j;int flag=0; FILE *fp; FILE *fp1; struct course courses10; if(fp=fopen(course.dat,rb)=NULL) /判断是否存在课程 nnnt课程不存在n
12、ntnt stu_login();/进入学生登陆菜单 else/存在的话循环读取文件中的信息直到文件指针到文件尾部 fread(&coursesi,sizeof(struct course),1,fp); i=i+1; while(!feof(fp); fclose(fp);/文件读完后关闭nntt请输入你要选课程的编号:n); if(fp1=fopen(courseselect.dat)=NULL) fp1=fopen(wb else fclose(fp1);ab for(j=0;ji;j+) if(coursesj.c_num=n) flag+; if(flag=0) nntt不存在对应课
13、程n printf(nntt继续选课请按1,退出请按2:n scanf( switch(in) case 1: default: printf(输入错误,将返回登录界面! login(); fwrite(&coursesj,sizeof(struct course),1,fp1);nntt选课成功t请选择:nntt1.继续选课nntt2.退出,返回登录界面! void c_viewm()/课程浏览 void c_view() ; int inp,i=0,n=0; struct course courseview10;courseviewi,sizeof(struct course),1,fp)
14、; if(i=1)nnnttt没有记录! getchar(); man_login(); elsent-共有%d条记录-,i-1); printf(nnt课程编号: %dn,courseviewn.c_num);nnt课程名字: %sn,courseviewn.c_name);nnt课程学分:,courseviewn.c_score);nnt课程已选人数:,courseviewn.c_nelepeo);nnt课程人数上限:,courseviewn.c_melepeo);nnt1.上一页t2.下一页t3.回目录n请选择: scanf (inp); switch(inp) if(n=0)nt已到达首页 t按任意键返回 n=n-1; break; if(n=i-2)nt已到达尾页t按人意见返回 n=n+1;man_login();nt操作错误t按任意键返回 while(inp!void c_views()/课程浏览 stu_login(); scanf (stu_login();void c_searchs() int id,i=0,j,inp,k; int flag=0; FI
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1