学生选修课程系统设计.doc_第1页
学生选修课程系统设计.doc_第2页
学生选修课程系统设计.doc_第3页
学生选修课程系统设计.doc_第4页
学生选修课程系统设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

竹吱膦竹吱膦中北大学竹吱膦程序设计实训竹吱膦说 明 书竹吱膦竹吱膦学 院、系:竹吱膦竹吱膦专 业:竹吱膦竹吱膦学 生 姓 名:竹吱膦竹吱膦学 号:竹吱膦竹吱膦设 计 题 目:竹吱膦学生选修课程系统设计竹吱膦起 迄 日 期:竹吱膦2014年11月21日2015年1月17日竹吱膦指 导 教 师:竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦2015 年 1月 10 日竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦1、 选题要求竹吱膦 假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:竹吱膦(1)系统以菜单方式工作竹吱膦(2)课程信息录入功能(课程信息用文件保存) 竹吱膦(3)课程信息浏览功能竹吱膦(4)课程信息查询功能,查询方式分两种:按学分查询,按课程性质查询竹吱膦(5)学生选修课程:提示选课成功,按照学生学号查询该生所选课程竹吱膦竹吱膦 考试增加的功能竹吱膦(6) 按照学期进行查询课程信息竹吱膦(7) 判断课程性质为公共课的课程信息显示并存入文件里竹吱膦 注:程序共生成三个文件(选修课程信息文件,公共课文件,学生选课文件)竹吱膦竹吱膦2、 程序设计方法及主要函数介绍竹吱膦 1.由于c语言是面向过程的语言,所以我的设计思路是根据目标程序运行的过程来编写的。竹吱膦 我具体的设计思路如下:竹吱膦 我设计的是学生选修课管理系统,对选修课程能够进行录入,查询和浏览操作等,并且要求有菜单界面和退出功能。竹吱膦 首先,我考虑到程序的数据优先输入,可以先设置一个选修课登陆界面,然后在该菜单里可进行选修课的录入,查询和浏览操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包括查询(按学期查找,按学分查找,按课程性质查找)操作等。 竹吱膦 另一个为学生登陆界面,该菜单学生可以进行课程浏览,课程选择,查询所选课程等操作,最后将学生所选的课程信息存入文件(有学号,课程编号及名称)中。在进行该操作之前需要对选修课程保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行查询及修改。竹吱膦 通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。竹吱膦2. 函数介绍如下:竹吱膦 竹吱膦学生选课系统竹吱膦竹吱膦竹吱膦竹吱膦 学生选课菜单竹吱膦 选修课程信息菜单竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦浏览选修课程竹吱膦查询选课结果竹吱膦录入课程竹吱膦并竹吱膦存入竹吱膦查询课程竹吱膦浏览课程竹吱膦存取公共课程竹吱膦学生选课竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦prin()函数竹吱膦gonggkinfor()函数竹吱膦xuanke()函数竹吱膦竹吱膦竹吱膦insert()函数竹吱膦按学期查询竹吱膦按学分查询竹吱膦按性质查询竹吱膦prin()函数竹吱膦竹吱膦xuanke_infor()函数竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦search()函数竹吱膦竹吱膦竹吱膦int main()/主函数竹吱膦 void mangers()/选修课函数竹吱膦 void *insert()/插入课程信息函数竹吱膦 void savefile()/保存文件竹吱膦 void prin() /浏览所有课程函数竹吱膦 void search()/课程信息查询函数竹吱膦 void gonggkinfor()/查询公共课信息函数竹吱膦 void students()/学生信息函数竹吱膦 void prin() /浏览所有课程函数竹吱膦 void xuan_ke()/学生选课函数竹吱膦 void xuanke_information()/学生选课信息统计函数竹吱膦竹吱膦三、程序源代码(包括注释)竹吱膦#include /字符串处理函数 竹吱膦#include /输入,输出函数竹吱膦#include /动态存储分配函数竹吱膦#include /动态内存分配函数竹吱膦#include 竹吱膦typedef struct subjects/定义一个课程的结构体 竹吱膦 int num; /课程编号竹吱膦 char name20; /课程名称竹吱膦 char kind10; /课程性质竹吱膦 int stime; /总学时竹吱膦 int ttime; /授课学时竹吱膦 int etime; /实验或上机学时竹吱膦 int score; /学分竹吱膦 char term20; /开课学期 竹吱膦 struct subjects *next; /next是指针变量,指向结构体变量 竹吱膦sub;/定义一个sub的结构体竹吱膦sub *head=null; /链表的头指针置空 竹吱膦sub *create_form() /创建链表 竹吱膦竹吱膦 sub *head,*tail,*p; /创建链表的头指针,尾指针 竹吱膦 int num,stime,ttime; 竹吱膦 int etime,score; 竹吱膦 char name20,kind10,term20; 竹吱膦 int size=sizeof(sub);/给结构体sub申请空间 竹吱膦 head=tail=null; /先让头指针和为指针置空 竹吱膦 printf(输入选修课程信息:n); 竹吱膦scanf(%d%s%s%d%d%d%d%s,&num,name,kind,&stime,&ttime,&etime,&score,&term); 竹吱膦 while(num!=0) 竹吱膦 p=(sub *)malloc(sizeof(sub);/给结点p申请内存 竹吱膦 p-num=num;/给元素num赋值 竹吱膦 strcpy(p-name,name); /给元素name赋值竹吱膦 strcpy(p-kind,kind);/给元素kind赋值 竹吱膦 p-stime=stime; /给元素stime赋值竹吱膦 p-ttime=ttime; /给元素ttime赋值竹吱膦 p-etime=etime; /给元素etime赋值竹吱膦 p-score=score; /给元素score赋值竹吱膦 strcpy(p-term,term); /给元素term赋值竹吱膦 if(head=null) 竹吱膦 head=p;/若头指针为空,把结点p赋值给头指针 竹吱膦else 竹吱膦 tail-next=p;/否则把p赋值给尾指针指向下一个结点 竹吱膦 tail=p; scanf(%d%s%s%d%d%d%s,&num,name,kind,&stime,&ttime,&etime,&score,term);竹吱膦 竹吱膦 tail-next=null;/尾结点的数据域为空 竹吱膦 return head; 竹吱膦 竹吱膦void savefile()/保存文件竹吱膦 竹吱膦 sub *p; /申明一个sub型的指针变量p 竹吱膦 file *fp; /fp是指向file结构的指针变量 竹吱膦 fp=fopen(zsl1314010731.txt,w);/打开文件 竹吱膦 if(fp=null) 竹吱膦 竹吱膦 printf(ncannot open the file!n);/打开文件失败 竹吱膦 竹吱膦 fprintf(fp,课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期n); /在文本的第一行输入该信息 竹吱膦 for(p=head;p;p=p-next) 竹吱膦fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%11sn,p-num,p-name,p-kind,p-stime,p-ttime,p-etime,p-score,p-term); /在文件里写入信息 竹吱膦 fclose(fp); /关闭文件 竹吱膦 printf(创建后的信息已放入zsl1314010731.txt文件中n); 竹吱膦 system(pause); 竹吱膦 竹吱膦void savefile1()/保存文件竹吱膦竹吱膦 sub *p; /申明一个sub型的指针变量p 竹吱膦 file *fp; /fp是指向file结构的指针变量竹吱膦 fp=fopen(3.txt,w); 竹吱膦 if(fp=null) exit(0); 竹吱膦 fprintf(fp,课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期n); /在文本的第一行输入该信息竹吱膦 for(p=head;p;p=p-next) 竹吱膦 fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%11sn,p-num,p-name,p-kind,p-stime,p-ttime,p-etime,p-score,p-term); /在文本里写入信息 竹吱膦 fclose(fp); /关闭文件竹吱膦 printf(创建后的信息已放入3.txt文件中n); 竹吱膦 system(pause); 竹吱膦 竹吱膦void readfile()/阅读文件竹吱膦 竹吱膦 void *myinsert(sub*);/申明该函数 竹吱膦 sub *newsub;/申明一个sub型的指针变量newsub竹吱膦 int num,stime,ttime,etime; 竹吱膦 int score; 竹吱膦 char c,name20,kind10,fname20,term;竹吱膦printf(请输入课程信息所在的文件名称:); 竹吱膦 scanf(%s,fname); 竹吱膦 file *fp; /fp是指向file结构的指针变量竹吱膦 fp=fopen(fname,r); /打开文件竹吱膦while(!feof(fp) /判断文件是否到了结尾 竹吱膦 if(c=fgetc(fp)=n) break; 竹吱膦 竹吱膦 while(!feof(fp) 竹吱膦 newsub=(sub*)malloc(sizeof(sub);/给结点p申请内存 竹吱膦fscanf(fp,%d%s%s%d%d%d%d%sn,&newsub-num,newsub-name,newsub-kind,&newsub-stime,&newsub-ttime,&newsub-etime,&newsub-score,&newsub-term); /在文本里写入信息 竹吱膦 myinsert(newsub);/调用该函数 竹吱膦 竹吱膦 fclose(fp);/关闭文件 竹吱膦 竹吱膦void prin() /浏览所有课程函数 竹吱膦 竹吱膦 readfile();/申明该函数竹吱膦 sub *ptr;/申明一个sub型的指针变量ptr 竹吱膦 head=null; 竹吱膦 if(head=null) 竹吱膦 printf(nnt*no records!*n); 竹吱膦 return; 竹吱膦 竹吱膦 printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); 竹吱膦 for(ptr=head;ptr;ptr=ptr-next) 竹吱膦printf(%5d%12s%9s%9d%9d%11d%11d%11sn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); 竹吱膦 竹吱膦 system(pause); 竹吱膦 竹吱膦void *myinsert(sub* subj)/链表插入操作竹吱膦 竹吱膦 sub *ptr,*ptr2; /申明一个sub型的指针变量ptr,ptr2竹吱膦 ptr=subj; 竹吱膦 if(head=null)竹吱膦 竹吱膦 head=ptr; 竹吱膦 head-next=null; 竹吱膦 竹吱膦 else 竹吱膦 for(ptr2=head;ptr2;ptr2=ptr2-next) 竹吱膦 if(ptr2-next=null)竹吱膦 竹吱膦 ptr2-next=subj;/连接结点 竹吱膦 subj-next=null;/下一个结点为空 竹吱膦 break; 竹吱膦 竹吱膦 竹吱膦 return 0; 竹吱膦 竹吱膦void *insert()/插入课程信息函数 竹吱膦 竹吱膦 int size=sizeof(sub);/申明并给分配内存 竹吱膦 char ch,ch1;竹吱膦sub *ptr,*subj;/申明一个sub型的指针变量ptr,subj 竹吱膦 while(ch!=0)竹吱膦 竹吱膦 subj=(sub *)malloc(size);/分配内存 竹吱膦 ptr=subj; 竹吱膦 printf(输入要插入的课程信息:n); /以下为元素输入信息 竹吱膦 printf(ntt请输入课程编号:);scanf(%d,&subj-num); 竹吱膦 printf(ntt请输入课程名称:);scanf(%s,&subj-name); 竹吱膦 printf(ntt请输入课程性质:);scanf(%s,&subj-kind); 竹吱膦 printf(ntt请输入总学时:);scanf(%d,&subj-stime); 竹吱膦 printf(ntt请输入授课学时:);scanf(%d,&subj-ttime); 竹吱膦 printf(ntt请输入实践或上机学时:);scanf(%d,&subj-etime); 竹吱膦 printf(ntt请输入学分:);scanf(%d,&subj-score); 竹吱膦 printf(ntt请输入开课学期:);scanf(%s,&subj-term); 竹吱膦 myinsert(subj); /调用该函数目的是是否继续接受下一个结点 竹吱膦 printf(n添加完毕,新信息存入文件中n); 竹吱膦 printf(n继续插入请按回车n); 竹吱膦 printf(n结束添加课程按0: bb); 竹吱膦 ch1=getchar(); /将回车键赋给ch1,否则subj-term输完后输入的回车键会赋给ch,因此用ch1填补。竹吱膦 ch=getchar(); 竹吱膦 竹吱膦 return head; 竹吱膦竹吱膦void *del() /删除课程函数 竹吱膦 竹吱膦 sub *p1,*p2;/申明一个sub型的指针变量p1,p2 竹吱膦 char ch,ch1; 竹吱膦 int num; 竹吱膦 while(ch!=0) 竹吱膦 printf(输入想要删除的课程编号: bbbbb); 竹吱膦 scanf(%d,&num); 竹吱膦 if(head-num=num) 竹吱膦 p2=head; /以下为删除结点操作 竹吱膦 head=head-next; 竹吱膦 free(p2); 竹吱膦 竹吱膦 if(head=null) return null; 竹吱膦 p1=head; 竹吱膦 p2=head-next; 竹吱膦 while(p2)竹吱膦 if(p2-num=num) 竹吱膦 p1-next=p2-next; 竹吱膦 free(p2);竹吱膦 竹吱膦 else p1=p2; 竹吱膦 p2=p1-next; 竹吱膦 竹吱膦 printf(n继续删除请按回车n); 竹吱膦 printf(n结束删除课程按 0: bb); 竹吱膦 ch1=getchar();/将回车键赋给ch1,否则num输完后再输入的回车键会赋给ch,因此用ch1填补。竹吱膦 ch=getchar(); 竹吱膦 printf(n删除完毕,新信息存入文件中n); 竹吱膦 system(pause); 竹吱膦 竹吱膦 return head; 竹吱膦 system(pause); 竹吱膦竹吱膦void gonggkinfor()/查询公共课信息函数 竹吱膦 竹吱膦 int t=1;竹吱膦 char min20;竹吱膦 sub *ptr;/申明一个sub型的指针变量ptr竹吱膦 file *fp;/fp是指向file结构的指针变量 竹吱膦竹吱膦fp=fopen(gonggkinfor.txt,w);/打开文件 竹吱膦printf(请输入要查找的课程性质:); 竹吱膦 scanf(%s,min);竹吱膦 printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); 竹吱膦 for(ptr=head;ptr;ptr=ptr-next) 竹吱膦 竹吱膦 if(strcmp(min,ptr-kind)=0)/通过比较两个字符串来进行实现 竹吱膦 竹吱膦 printf(%5d%12s%9s%9d%9d%11d%11d%11sn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); 竹吱膦 t=0; 竹吱膦 竹吱膦 t=1; 竹吱膦 竹吱膦if(fp=null) 竹吱膦竹吱膦 printf(文件存取失败!);竹吱膦exit(0);竹吱膦竹吱膦 fprintf(fp,课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n);/在文本的第一行输入该信息 竹吱膦 for(ptr=head;ptr;ptr=ptr-next) 竹吱膦 if(strcmp(min,ptr-kind)=0)竹吱膦 竹吱膦fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%11sn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term);/在文本里写入信息 竹吱膦 t=0; 竹吱膦 竹吱膦 t=1; 竹吱膦 fclose(fp);/关闭文件 竹吱膦 printf(已把性质为公共课的信息存入文件gonggkinfor.txt里!);竹吱膦 system(pause); 竹吱膦竹吱膦void search()/课程信息查询函数 竹吱膦 竹吱膦 int a,num; 竹吱膦 int t=1; 竹吱膦 char type10,min10,term10;竹吱膦 sub *ptr; /申明一个sub型的指针变量ptr 竹吱膦 l1:system(cls);/清屏功能,每次操作完返回到该功能首菜单 竹吱膦 printf(nntt*请选择查询方式*n); 竹吱膦 printf(nttt1-按学期查找n);竹吱膦 printf(nttt2-按课程性质查找n); 竹吱膦 printf(nttt3-按学分查找n); 竹吱膦 printf(nttt4-退出查找n); 竹吱膦 printf(nntt*n); 竹吱膦 printf(nn请选择(1-4): bb); 竹吱膦 scanf(%d,&a); 竹吱膦 switch(a) 竹吱膦 case 1:printf(请输入要查找的课程学期:); 竹吱膦 scanf(%s,min); 竹吱膦 printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); 竹吱膦 for(ptr=head;ptr;ptr=ptr-next) 竹吱膦 竹吱膦 if(strcmp(min,ptr-term)=0)/通过比较两个字符串来进行实现 竹吱膦 竹吱膦printf(%5d%12s%9s%9d%9d%11d%11d%11sn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); 竹吱膦 t=0; 竹吱膦 t=1; 竹吱膦 竹吱膦 system(pause); 竹吱膦 goto l1;/再次返回到该菜单进行下一个操作 竹吱膦 case 2:printf(请输入要查找的课程的性质:); 竹吱膦 scanf(%s,type); 竹吱膦 printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); 竹吱膦 for(ptr=head;ptr;ptr=ptr-next)竹吱膦 竹吱膦 if(strcmp(type,ptr-kind)=0)竹吱膦 竹吱膦printf(%5d%12s%9s%9d%9d%11d%11d%11sn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); 竹吱膦 t=0; 竹吱膦 t=1; 竹吱膦 竹吱膦 system(pause); 竹吱膦 goto l1; 竹吱膦 case 3:printf(输入要查找的课程的学分:); 竹吱膦 scanf(%d,&num); 竹吱膦 printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n);竹吱膦 for(ptr=head;ptr;ptr=ptr-next) 竹吱膦 竹吱膦 if(ptr-score=num)竹吱膦 竹吱膦printf(%5d%12s%9s%9d%9d%11d%11d%11sn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,ptr-etime,ptr-score,ptr-term); 竹吱膦 t=1; 竹吱膦 竹吱膦 system(pause); 竹吱膦 goto l1;竹吱膦 竹吱膦 case 4:break;竹吱膦 竹吱膦 竹吱膦void mangers()/选修课函数 竹吱膦 竹吱膦 int n,w=1,flag=0,j,i=3; 竹吱膦 do 竹吱膦 system(cls); /选修课信息菜单 竹吱膦 printf(nntt*选修课菜单*nn); 竹吱膦 printf(tttt 1-录入课程n);竹吱膦 printf(tttt 2-浏览课程n); 竹吱膦 printf(tttt 3-查询课程n); 竹吱膦 printf(tttt 4-存取公共课课程n); 竹吱膦 printf(tttt 5-返回主菜单); 竹吱膦printf(nntt*n); 竹吱膦 printf(请选择(1-5): bb); 竹吱膦 scanf(%d,&n); 竹吱膦 switch(n)竹吱膦 竹吱膦 case 1:insert();savefile();break;竹吱膦 case 2:prin();break;竹吱膦 case 3:search();break;竹吱膦 case 4:gonggkinfor();break; 竹吱膦 case 5:return; 竹吱膦 default:; 竹吱膦 竹吱膦 while(w=1); 竹吱膦 竹吱膦struct student 竹吱膦 竹吱膦 long int snum;/学生学号 竹吱膦 int cnum;/所选课程编号 竹吱膦 char cname20;/所选课程名称 竹吱膦;/定义一个学生结构体 竹吱膦void xuan_ke()/学生选课函数 竹吱膦 竹吱膦 struct student s;/定义学生结构体变量s 竹吱膦 char c; 竹吱膦sub *c;/定义课程结构体变量c竹吱膦file *fp; /fp是指向file结构的指针变量竹吱膦printf(n 请输入您的学号及您要选择的课程编号:); 竹吱膦 scanf(%d %d,&s.snum,&um);竹吱膦 fp=fopen(zsl1314010731.txt,r);竹吱膦if(fp=null) /打开选课记录文件2.txt 竹吱膦 printf(ncannot open course!n); 竹吱膦 while(!feof(fp) 竹吱膦 if(c=fgetc(fp)=n) break; 竹吱膦 while(!feof(fp)竹吱膦 竹吱膦 c=(sub*)malloc(sizeof(sub);/给结点申请空间 竹吱膦fscanf(fp,%d %s %s %d %d %d %d %sn,&c-num,c-name,c-kind,&c-stime,&c-ttime,&c-etime,&c-score,&c-term); 竹吱膦 if(c-num=um) /通过学生选课输入的编号,和选修课程中的编号进行匹配,若匹配成功就结束,并带回当前指针 竹吱膦 break;竹吱膦 竹吱膦 fclose(fp);/关闭选课记录文件zsl1314010731.txt竹吱膦 if(fp=fopen(student.txt,a+)=null)竹吱膦 printf(ncannot open student!n); 竹吱膦 /将学生选课信息输入student.txt文件竹吱膦 fprintf(fp,%d %d %sn,s.snum,um,c-name);/把选课学生的学号,所选课程编号,课程名称写入文件里 竹吱膦 fclose(fp);竹吱膦printf(n 恭喜您选课成功!信息已存入到“student.txt”中。n); 竹吱膦 system(pause);竹吱膦 竹吱膦void xuanke_information()/学生选课信息统计函数 竹吱膦 竹吱膦 int total=0;/人数统计变量竹吱膦 file *fp;/fp是指向file结构的指针变量竹吱膦 struct student s;/定义一个student结构体类型的变量s 竹吱膦if(fp=fopen(student.txt,r)=null)/打开选课记录文件student.txt竹吱膦 printf(ncannot open student!n); 竹吱膦 for(;!feof(fp);) 竹吱膦 竹吱膦 printf(ntt 学号 课程编号 课程名称n); 竹吱膦 fscanf(fp,%d %d %sn,&s.snum,&um,&ame); 竹吱膦 total+; 竹吱膦 printf(%22d %17d %18sn,s.snum,um,ame); 竹吱膦 竹吱膦 printf(n 选课学生总人数为:%d人,total);竹吱膦 fclose(fp);/关闭文件 竹吱膦 system(pause);竹吱膦 竹吱膦 void students()/学生信息函数 竹吱膦 竹吱膦 int n,w=1; 竹吱膦 do 竹吱膦 system(cls); 竹吱膦 printf(nntt*学生选课菜单*nn); 竹吱膦 printf(tttt1-浏览所有课程n); 竹吱膦 printf(tttt2-选择选修课程n); 竹吱膦 printf(tttt3-浏览我选修的课程n); 竹吱膦 printf(tttt4-返回主菜单); 竹吱膦printf(nntt*n); 竹吱膦 printf(请选择(1-4): bb); 竹吱膦 scanf(%d,&n); 竹吱膦 switch(n) 竹吱膦 case 1:prin();break; 竹吱膦 case 2:xuan_ke();break; 竹吱膦 case 3:xuanke_information();break; 竹吱膦 case 4:return; 竹吱膦 default:; 竹吱膦 竹吱膦 while(w=1); 竹吱膦 竹吱膦int main()/主函数 竹吱膦 竹吱膦 int n,w=1; 竹吱膦 do 竹吱膦 system(cls); 竹吱膦 printf(nnt*学生选课系统*nn); 竹吱膦 printf(ttt 1.选修课信息n); 竹吱膦 printf(ttt 2.学生选课n); 竹吱膦 printf(ttt 3.退出); 竹吱膦 printf(nnt*n); 竹吱膦 printf(请选择(1-3): bb); 竹吱膦 scanf(%d,&n); 竹吱膦 switch(n)竹吱膦 case 1:mangers();break; 竹吱膦 case 2:students();break; 竹吱膦 case 3:w=0;break; 竹吱膦 default:; 竹吱膦 竹吱膦 while(w=1); 竹吱膦 return 0;竹吱膦 竹吱膦竹吱膦竹吱膦4、 程序运行界面竹吱膦 主界面竹吱膦竹吱膦竹吱膦竹吱膦选修课菜单 竹吱膦竹吱膦a录入课程(并存入到zsl1314010731.txt)竹吱膦竹吱膦竹吱膦竹吱膦竹吱膦1. 将所有录入的课程存入zsl1314010731.txt文件竹吱膦竹吱膦竹吱膦b浏览课程竹吱膦竹吱膦c查询课程竹吱膦竹吱膦1. 按学期查找(考试增加功能)竹吱膦竹吱膦2. 按课程性质查找竹吱膦竹吱膦3. 按学分查找竹吱膦竹吱膦d判断并存取公共课课程竹吱膦竹吱膦竹吱膦将公共课的课程信息写入gonggkinfor.txt文件竹吱膦竹吱膦学生选课菜单竹吱膦竹吱膦a学生开始选课竹吱膦竹吱膦竹吱膦将学生选课信息存入student.txt文件竹吱膦竹吱膦b查询学生所选课程竹吱膦竹吱膦返回主菜单竹吱膦竹吱膦生成的三个文件竹吱膦 竹吱膦5、 程序的优点和不足竹吱膦 【程序的优点】竹吱膦算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。竹吱膦算法上的优点主要体现在以下三点:竹吱膦1. 该程序采用main主函数方式设计,程序的主体的功能大都由该功能完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。竹吱膦2. 程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进行一系列操作,最终再写入文件。竹吱膦3. 插入操作在本程序中是将课程信息插入到链表的最后一个节点,从而减少了数据的相互移动,节省了时间,提高了效率。竹吱膦功能上的优点主要体现在以下两点:竹吱膦1有简洁明了的程序菜单。程序主要采用了层次嵌套的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。竹吱膦2. 有人性化的程序提示语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论