收藏 分销(赏)

C语言专业课程设计学生选课系统实习报告.doc

上传人:w****g 文档编号:2658712 上传时间:2024-06-03 格式:DOC 页数:57 大小:313.04KB
下载 相关 举报
C语言专业课程设计学生选课系统实习报告.doc_第1页
第1页 / 共57页
C语言专业课程设计学生选课系统实习报告.doc_第2页
第2页 / 共57页
C语言专业课程设计学生选课系统实习报告.doc_第3页
第3页 / 共57页
C语言专业课程设计学生选课系统实习报告.doc_第4页
第4页 / 共57页
C语言专业课程设计学生选课系统实习报告.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、C语言上机实习汇报院 系: 班 级: 姓 名: 指 导 老 师: -8-28至-9-4目录一、设计目标1二、设计要求2三、题目及其要求2四、需求分析2五、总体设计3六、具体设计36.1、主函数36.2、菜单函数46.3各模块设计76.3.1输入函数76.3.2添加函数96.3.3修改函数126.3.4查找函数166.3.5选择课程206.3.6删除课程236.3.7浏览函数266.3.8退出操作276.3.9公共函数保留函数28七、上机实习.28八、设计实习心得.29九、参考书目.29十、学生选课系统和程序.30一、 设计目标伴随信息技术对人类社会进行全方位渗透,一个新文化形态信息时代计算机文

2、化已经形成。计算机知识成为现代知识分子结构中不可缺乏关键部分。C语言是多年来中国外得到快速推广使用一个高级语言。C语言功效丰富,表示能力强,使用灵活方便,应用广,目标程序效率高,可移植性好,既含有高级语言优点,又含有低级语言语言特点,所以C语言对我们来说很关键。学习目标在于将所学到东西利用于实践,这么方可在实践中巩固以前所学理论知识,同时提升自己学习能力,完善自己掌握技能,使得我们既能够从实践中强化以前所学知识,也能让我们在实践中学到更多新东西,还能锻炼我们动手能力,这是书本上不能学到。此次设计就在于让我们把以往所学利用于实践中,让我们经过对实际生活中实例进行观察和理论分析后,总结出一套可行处

3、理方案,然后用编程方法,把处理方案变为可能。此次设计,也让我们巩固和加深了对C语言课程基础知识了解和掌握,帮助我们掌握C语言编程和程序调试基础技能,让我们体验了怎样用C语言进行基础软件设计,同时也提升了我们书写程序说明能力和用C语言处理实际问题能力。二、设计要求1.认真分析实习指导老师分配课程设计题目标要求;2.写出具体设计说明,分块叙述;3.编写程序代码,调试程序使其能正确运行,而且能够实现预期功效;4.设计完成软件要便于操作和使用,有整齐、美观使用界面;5.设计完成后提交课程设计汇报和源代码文件电子文档。三、题目及其要求假定有n门课程,每门课程有课程编号,课程名称,课程性质,课时,讲课课时

4、,试验或上机课时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功效: (1)系统以菜单方法工作 (2)课程信息和学生选课信息录入功效(课程信息用文件保留) (3)课程信息浏览功效 (4)查询功效 (5)按学分查询(6)某门课程学生选修情况(可选项) 四、需求分析 依据题目要求,因为课程和学生所选课程信息是存放在文件中,所以要提供文件输入输出等操作;在程序过程中还要进行添加课程、浏览课程、查找课程、选择课程、删除课程和退出系统等操作,所以应提供对应输入、现实、查找、选择、删除和退出等功效函数来实现;另外还要在最开始设置菜单函数,实现其

5、它功效选择。五、总体设计依据以上题目要求和需求分析,我认为可将我要设计程序分为十一个模块:主函数、菜单函数、输入课程、添加课程、修改课程、查找课程、选择课程、删除课程、浏览课程、退出系统、保留文件。(系统功效模块图5-1所表示)主函数输入函数添加函数修改函数查找函数选择函数删除函数浏览函数菜单函数保留函数保留函数保留函数保留函数退出函数保留函数六、具体设计6.1、主函数 主函数通常设计简练,此次设计遵照程序清楚可读,功效完善标准,尽可能合理简化程序。在主函数中,仅提供了标准输出函数调用和菜单函数调用。 主函数步骤图以下图所表示: 调用主函数输出“正在开启系统”调用菜单函数其代码以下所表示: /

6、* 主函数 */ void main() int b=1;system(color 6f); printf(nnnnnnnnnnt tt正在开启系统 tn ); for(i=0;i;i+); system(color 2f);menu();6.2、菜单函数依据所要实现功效,我编译了一个菜单函数,将全部选择功效集中,提供给用户进行选择。这么做既能够使程序愈加紧然有序,也为用户提供了方便快捷选择,使得整个设计愈加人性化。菜单函数步骤图以下图所表示:菜单函数输入课程添加课程修改课程查找课程选择课程删除课程浏览课程 退出系统菜单函数代码以下所表示:void menu() char k100=nnntt

7、ttt052081班 王兵武nnnnnnn; char *m=k; do system(cls); puts(ntt *管理员菜单*); puts(ntttt1.输入课程.); puts(ntttt2.添加课程.); puts(ntttt3.修改课程.); puts(ntttt4.查找课程.); puts(ntttt5.选择课程.); puts(ntttt6.删除课程.); puts(ntttt7.浏览课程.); puts(ntttt8.退出系统.n); puts(tt*n); printf(ntt请输入您选择(1-8):t); scanf(%d,&a); printf(ntt-nn);swi

8、tch(a) case 1: input(); break; case 2: add(); break; case 3: amend(); break; case 4: search(); break; case 5: select(); break; case 6: cross_off(); break; case 7: output(); break; case 8: system(cls); for(i=0;i10000000;i+); system(color 8f);puts(nnnnttt谢谢使用。已退出系统。); for(m=k;mk+1;m+)printf(%s,m);exit

9、(0);break; default:puts(输入错误!);break; printf( 按任意键返回首层n); getch();while(a!=8);运行主函数和菜单函数效果以下:显示进入系统 进入主菜单: 6.3各模块设计经过主函数调用菜单函数,经过菜单函数里开关语句选择调用各功效函数。下面详述各功效函数。6.3.1输入函数经过菜单函数调用此函数用于输入已经有课程信息,并经过输入函数调用保留函数将课程信息保留在“课程.txt”文件中。其步骤图以下所表示:调用输入函数输入课程编号判定课程是否存在加入课程已经存在,按任意键返回主菜单。课程原来不存在,继续输入课程其它信息,调用保留函数将其保

10、留后,继续选择。若选择返回,则调用 菜单函数返回主菜单。选择继续,则返回输入函数反复上述操作。其代码以下:/* 输入函数 */void input()int i,flag=0,num=0;char q;do flag = 0; printf(请输入课程编号: ); scanf(%d,&num); for(i=0;icount;i+) if(num=KCi.num) flag = 1;break; if(flag) printf(此课程已存在!按任意键返回主菜单。n); printf(n); printf(请输入:); q=getch(); menu(); else KCcount.num=nu

11、m; printf(请输入课程名称: ); scanf(%s,KCcount.name);printf(请输入课程性质: ); scanf(%s,KCcount.xingzhi); printf(请输入课程课时: ); scanf(%d,&KCcount.xueshi); printf(输入试验上机课时: );scanf(%d,&KCcount.shiyan_shangji); printf(请输入课程学分: ); scanf(%f,&KCcount.xuefen); printf(请输入开课学期: ); scanf(%d,&KCcount.xueqi); count+; baocun();

12、printf(输入成功!n); while(flag=1);输入函数运行效果以下图:(1)输入新课程,显示继续添加:(2)反复输入则运行以下:6.3.2添加函数经过菜单函数调用添加课程函数,进行新课程添加。输入课程编号,判定其是否已经存在,已存在则选择重新输入或返回主菜单,不存在则继续添加该课程其它信息,并调用保留函数将其信息保留在“课程.txt”文件中。其步骤图以下所表示:调用添加函数输入课程编号判定课程是否存在所加课程已经存在,选择继续添加或返回主菜单。若不存在,继续添加信息,调用保留函数将其保留后,继续选择。若选择返回,则调用菜单函返回主菜单。选择继续,则返回添加函数反复上述操作。继续添

13、加,则继续调用添加函数选择返回主菜单,则调用菜单函数。程序代码以下:/* 添加函数 */void add() int i,j,flag=0,num=0;char q;do flag = 0; printf(请输入课程编号:); scanf(%d,&num); for(i=0;i重新输入;其它键-返回主菜单n); printf(n); printf(请输入:n); printf(n); q=getch(); if(q=1) add(); else menu(); else j=count; KCj.num=num; printf(请输入课程名称:); scanf(%s,KCj.name); pr

14、intf(请输入课程性质:); scanf(%s,KCj.xingzhi); printf(请输入课程课时:); scanf(%d,&KCj.xueshi); printf(输入试验上机课时:); scanf(%d,&KCj.shiyan_shangji); printf(请输入课程学分:); scanf(%f,&KCj.xuefen); printf(请输入开课学期:); scanf(%d,&KCj.xueqi); count+; baocun(); printf(添加成功!n); printf(请继续选择: 1-继续输入; 其它键-返回主菜单n); q=getch(); if(q!=1)m

15、enu(); while(flag=1);其运行效果以下图所表示:(1)所添加课程原来不存在,则继续添加该课程信息:(2)所添加课程已经存在,则继续选择进行下一步操作:6.3.3修改函数修改函数用于对已经存在课程信息进行对应修改,用来修改已经有课程名称、课时、试验上机课时、学分和开课学期相关信息。调用该函数时,先输入课程编号,判定其实全部存在,假如存在,则进行对应项修改,修改完成保留然后选择继续修改或返回主菜单。若不存在,则进行选择,选择继续修改或返回主菜单。步骤图以下所表示调用修改函数输入课程编号判定课程是否存在改课程已经存在,则继续修改该课程其它信息。修改完保留,继续选择。若课程不存在,则

16、继续选择。选择继续修改,则继续调用修改函数若选择返回,则调用菜单函数,返回主菜单。继续修改,则继续调用修改函数选择返回主菜单,则调用菜单函数。修改模块代码以下:/* 修改函数 */void amend() int num,i,flag=0;char q;doprintf(请输入要修改课程编号:);scanf(%d,&num);for(i=0;i继续修改; 其它键-返回主菜单n); flag=0; printf(n); printf(请输入:); q=getch(); if(q!=1)menu(); else amend(); else printf(无此课程!1-重新输入;任意键-返回主菜单n

17、); printf(n); printf(请输入:); printf(n); q=getch(); if(q!=1)menu(); else amend();while(flag=0); 运行修改函数效果以下:(1)输入已经有课程,继续修改其它信息,显示修改成功,然后继续选择:(2)输入课程不存在,选择继续修改或返回主菜单:6.3.4查找函数调用查找函数,先选择按编号查找或按学分查找,然后进行下一步。输入1,则按编号进行查找,若该课程存在,则程序将该课程信息打印在屏幕上,若不存在,则打印不存在信息并提醒继续选择查找或返回主菜单;输入2,则按学分进行查找,若该课程已存在,则程序将其信息打印和屏幕

18、上,若不存在则打印不存在信息,并提醒继续选择。查找模块步骤图以下调用查找函数输入2,按编号查找输入2,按学分查找输入编号存在,则打印相关信息。提醒选择继续查找或返回。编号不存在,打印不存在信息,提醒继续查找或返回。输入学分,存在,则打印课程信息,然后提醒继续查找或返回。输入学分不存在,打印不存在信息,提醒重新查找或返回。输入其它键提醒输入错误,按任意键返回主菜单。其代码以下所表示:void search() char q;int num,i,xuefen,m,flag=0;puts(nnntt请选择: 1-按编号查询; 2-按学分查询n);scanf(%d,&m);if(m=1)do prin

19、tf(请输入课程编号:); scanf(%d,&num); for(i=0;i重新输入;其它键-返回主菜单n); printf(n); printf(请输入:n); printf(n); q=getch(); if(q!=1) menu(); while(flag=0);if(m=2)do printf(请输入课程学分:); scanf(%d,&xuefen); for(i=0;i重新输入;其它键-返回主菜单n); printf(n); printf(请输入:n); printf(n); q=getch(); if(q!=1) menu(); while(flag=0);if(m!=1)&(m

20、!=2) printf(ntt您输入有误。按任意键返回主菜单。t); q=getch();menu(); 运行效果以下五幅图所表示:(1)有主菜单选择“4”查找课程,提醒选择按编号或学分进行查找:(1)按编号输入查找,输入已经有课程math编号2,效果以下:(2)按编号查询课程,输入编号不存在,提醒相关信息及作出相关选择:(4)按学分查询,输入已经有课程学分,打印相关信息并提醒选择:(5)输入学分不存在,显示不存在信息并提醒选择:6.3.5选择课程在菜单函数中选择5,进入选课函数,系统会提醒输入课程编号已经学生学号。若输入课程编号存在,则打印选课成功,并将所选择课程信息存入“选课.txt”文档

21、中,并提醒选择继续选课或返回主菜单;若输入课程编号不存在,则打印岂不存在并提醒进行选择继续选课或返回主菜单。其步骤图以下所表示:调用选课函数输入课程编号及学生学号编号存在,选课成功及继续选课或返回主菜单编号不存在,提醒从新选择或返回主菜单。选课函数代码以下:/* 选课课程 */void select()long num2=0,xuehao1;int i,flag=0;char q;FILE *fp_;fp_=fopen(选课.txt,w);if(fp_= NULL) printf(File open error!n); exit(0); do printf(请输入课程编号:); scanf(%

22、d,&num2); printf(请输入您学号:); scanf(%ld,&xuehao1); for(i=0;i继续选课; 其它键-返回主菜单nn); printf(*nn); q=getch(); if(q=1)select(); else menu(); else printf(无此课程!请选择: 1-继续选课;其它键-返回主菜单nn); printf(*nn); q=getch(); if(q=1)select(); else menu(); while(flag=0);调用选课函数后效果以下两幅图所表示:(1)输入课程编号存在时,打印选课成功,并将信息存入文档:(2)输入课程编号不存

23、在,则打印不存在信息,并提醒做出选择:6.3.6删除课程有主菜单选择6,进入删除函数。实施此函数,先输入课程编号,若编号存在,则从文件中删除该课程,并打印删除成功,提醒按任意键返回主菜单;若编号不存在,则打印输入课程不存在,提醒重新输入或返回主菜单。其步骤图以下所表示:进入删除函数输入课程编号,进行判定。编号存在,从文件中删除该课程,调用保留函数并提醒按任意键返回主菜单。编号不存在,提醒选择重新输入或返回主菜单。其代码以下:void cross_off()char q;int num4=0;int i,j,flag=0;do printf(请输入要删除课程编号:); scanf(%d,&num

24、4); for(i=0;icount;i+) if(num4=KCi.num) flag = 1; break; if(flag) for(j=i;j重新输入;任意键-返回主菜单n); printf(n); printf(请输入:); printf(n); q=getch(); if(q=1)cross_off(); else menu(); while(flag=0); 其运行效果图以下所表示:(1) 当输入课程编号存在,删除成功,显示以下:(2) 当输入课程编号不存在,系统提醒重新输入或返回主菜单:6.3.7浏览函数在主菜单选择7,进入浏览函数,程序将自动将课程文档中存放课程全部信息打印在

25、屏幕上。此函数功效就是输出课程文档中保留课程信息。 程序步骤图以下所表示:进入浏览函数系统打印课程信息,并提醒按任意键返回主菜单。程序代码以下:void scan() int i,j,xueshi, num,xueqi=0;char *name,*xingzhi; float xuefen;for(i=1;icount;i+) for(j=0;jcount-1;j+) if(KCj.num=KCj+1.num) num=KCi.num; strcpy(name,KCi.name); strcpy(xingzhi,KCi.xingzhi); xueshi = KCi.xueshi; KCj.sh

26、iyan_shangji= KCj-1.shiyan_shangji; xuefen = KCi.xuefen; xueqi = KCi.xueqi; KCi.num=KCi+1.num; strcpy(KCi.name,KCi+1.name); strcpy(KCi.xingzhi,KCi+1.xingzhi); KCi.xueshi = KCi+1.xueshi; KCj.shiyan_shangji= KCj-1.shiyan_shangji; KCi.xuefen = KCi+1.xuefen; KCi.xueqi = KCi+1.xueqi; KCi+1.num=num; strcpy(KCi+1.name,name); strcpy(KCi+1.xingzhi,xingzhi); KCi+1.xueshi = xueshi; KCj.shiyan_shangji= KCj-1.shiyan_shangji; KCi+1.xuefen = xuefen; KCi+1.xueqi= xueqi; printf(课程编号 课程名称 课程性质 课程课时 试验上机 课程学分 开课学期n);for(i=0;icount;i+

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服