1项目名称学生选修课管理系统学院建筑工程学院班级统本工管1102姓名黄滔C程序设计系统文档-2-目录组内成员……………………………………………………………………3程序功能模块划分…………………………………………………………3数据设计……………………………………………………………………4主函数代码…………………………………………………………………5程序执行后的部分效果图………………………………………………14小组成员分工……………………………………………………………18程序开发体会……………………………………………………………18C程序设计系统文档-3-学生选修课系统说明书班级:统本工管1102班组长:黄滔组员:简利林、白云鹏、王巧云、柴建彬系统功能模块划分C程序设计系统文档-4-数据设计为了方便使用结构此系统结构均为全局类型定义structclass_type{intid;charname[20];charxingzhi[20];intztime;intktime;intstime;intfen;intxueqi;}cla[100];structstudent_type{intid;charname[20];intkechengid;charkechengname[20];}stu[100];C程序设计系统文档-5-主函数代码:voidcaidan(){intn;system(cls);printf(--------------------------------学生选修课程系统--------------------------------\n\n);printf(1.课程信息录入);printf(2.课程信息管理);printf(3.课程信息查询);printf(4.学生选修课程);printf(5.退出系统);printf(请输入你的选择,按回车确定:);scanf(%d,&n);if(n==1)shuru();elseif(n==2)guanli();elseif(n==3)chaxun();elseif(n==4)xuesheng();elseif(n==5){system(cls);save();printf(谢谢您对本系统的支持!\n您修改过的信息已经保存!\n);system(pause);exit(0);}else{system(cls);printf(请重新输入正确的选项(1-5)!\n);system(pause);caidan();}}voidshuru(){intc;intk;system(cls);printf(----------------------------------课程信息录入----------------------------------);printf(请输入你要增加的课程数,输入0则返回主菜单!\n);scanf(%d,&c);while(c0&&c100)C程序设计系统文档-6-{printf(数据输入有误,请重新输入!(输入数据为0-100)\n);scanf(%d,&c);}if(c==0)caidan();elseif(c+i100)printf(储存区最多可存储100门课程,总输入个数即将超过100,我们最多只能帮您保存100个数据!\n);else{system(cls);for(k=0;kc;k++){cla[i+k].id=i+k;printf(课程编号%d,cla[i+k].id+1);printf(\n请输入课程名称:);scanf(%s,cla[i+k].name);printf(\n请输入课程性质:);scanf(%s,cla[i+k].xingzhi);printf(\n请输入课程总学时:);scanf(%d,&cla[i+k].ztime);printf(\n请输入课程授课学时:);scanf(%d,&cla[i+k].ktime);printf(\n请输入课程实验或上机学时:);scanf(%d,&cla[i+k].stime);printf(\n请输入课程学分:);scanf(%d,&cla[i+k].fen);printf(\n请输入课程开课学期:);scanf(%d,&cla[i+k].xueqi);}i=i+c;save();printf(输入完成,保存信息完成!\n);system(pause);caidan();}}voidliulan(){intm;system(cls);printf(----------------------------------课程信息浏览----------------------------------);for(m=0;mi;m++){printf(\n课程编号%d,cla[m].id+1);printf(\n课程名称:%s,cla[m].name);printf(\n课程性质:%s,cla[m].xingzhi);C程序设计系统文档-7-printf(\n课程总学时:%d,cla[m].ztime);printf(\n课程授课学时:%d,cla[m].ktime);printf(\n课程实验或上机学时:%d,cla[m].stime);printf(\n课程学分:%d,cla[m].fen);printf(\n课程开课学期:%d,cla[m].xueqi);printf(\n\n);}system(pause);caidan();}voidchaxun(){intn;system(cls);printf(----------------------------------课程信息查询----------------------------------);printf(1.按课程编号查询);printf(2.按课程名称查询);printf(3.按课程性质查询);printf(4.按课程总学时查询);printf(5.按课程授课学时查询);printf(6.按课程实验或上机学时查询);printf(7.按课程学分查询);printf(8.按课程开课学期查询);printf(9.返回主菜单);printf(请输入你的选择,按回车确定:);scanf(%d,&n);if(n==1)cxid();elseif(n==2)cxname();elseif(n==3)cxxz();elseif(n==4)cxzt();elseif(n==5)cxkt();elseif(n==6)cxst();elseif(n==7)cxf();elseif(n==8)cxxq();elseif(n==9)caidan();else{system(cls);C程序设计系统文档-8-printf(请重新输入正确的选项(1-9)!\n);system(pause);chaxun();}}voidread(){intj,k;FILE*fp,*ap;if((fp=fopen(class.txt,rt))==NULL){system(cls);printf(未找到已存数据纪录,您需要重新输入数据!\n);i=0;system(pause);shuru();}else{system(cls);printf(数据读取成功,您可以正常使用本系统!\n);for(j=0;j100;j++){fread(&cla[j],sizeof(cla[j]),1,fp);if(cla[j].id==-1)break;}i=j;fclose(fp);if((ap=fopen(student.txt,rt))==NULL)printf(\n注:学生信息为空\n!);for(k=0;k100;k++){fread(&stu[k],sizeof(stu[k]),1,fp);if(stu[k].id==-1)break;}e=k;fclose(ap);system(pause);caidan();}}voidsave(){FILE*fp,*ap;intl;if((fp=fopen(class.txt,wt))==NULL)printf(打开课程文件错误!\n);C程序设计系统文档-9-for(l=0;li;l++)if(fwrite(&cla[l],sizeof(cla[l]),1,fp)!=1)printf(课程数据写入失败!);fclose(fp);if((ap=fopen(student.txt,wt))==NULL)printf(打开学生文件错误!\n);for(l=0;le;l++)if(fwrite(&stu[l],sizeof(stu[l]),1,fp)!=1)printf(学生数据写入失败!);fclose(ap);}voidguanli(){intn;system(cls);printf(--------------------------------学生选修课程管理--------------------------------\n\n);printf(1.课程信息浏览);printf(2.课程信息修改);printf(3.课程信息删除);printf(4.返回主菜单);printf(请输入你的选择,按回车确定:);scanf(%d,&n);if(n==1)liulan();elseif(n==2)xiugai();elseif(n==3)shanchu();elseif(n==4)caidan();else{system(cls);printf(请重新输入正确的选项(1-4)!\n);system(pause);caidan();}}voidshanchu(){intn,x;system(cls);printf(请输入您要删除的课程编号,输入0为返回上一级菜单:\n);scanf(%d,&n);if(ni&&n0){printf(本编号信息为空,请重新输入!);system(pause);shanchu();}elseif(n==0)guanli();elseC程序设计系统文档-10-{FILE*fp;if((fp=fopen(class.txt,wt+))==NULL){system(cls);printf(打开失败\n);system(pause);guanli();}else{system(cls);printf(正在删除,请稍候...\n);for(x=n-1;xi;x++)fread(&cla[x],sizeof(cla[x]),1,fp);for(x=n-1;xi;x++){strcpy(cla[x].name,cla[x+1].name);strcpy(cla[x].xingzhi,cla[x+1].xingzhi);cla[x].ztime=cla[x+1].ztime;cla[x].ktime=cla[x+1].ktime;cla[x].stime=cla[x+1].stime;cla[x].fen=cla[x+1].fen;cla[x].xueqi=cla[x+1].xueqi;}i--;save();fclose(fp);system(pause);guanli();}}}voidxiugai(){inta;system(cls);printf(请输入您需要修改的课程编号,输入0为返回上一级菜单:);scanf(%d,&a);if(ai&&a0){printf(本编号信息为空,请重新输入!);system(pause);xiugai();}elseif(a==0)guanli();else{FILE*fp;if((fp=fopen(class.txt,wt+))==NULL){system(cls);C程序设计系统文档-11-printf(打开失败\n);system(pause);guanli();}printf(课程编号%d,a);printf(\n请输入课程名称:);scanf(%s,cla[a-1].name);printf(\n请输入课程性质:);sc