C++选修课系统.docx_第1页
C++选修课系统.docx_第2页
C++选修课系统.docx_第3页
C++选修课系统.docx_第4页
C++选修课系统.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

#include#include#include#include#include#include#includeusing namespace std;ofstream fout;ifstream fin;typedef struct subjects /课程结构体int num; /课程编号char name20; /课程名称char kind10; /课程性质int stime; /总学时int ttime; /授课学时int etime; /实验或上机学时int score; /学分int term; /开课学期 struct subjects *next; SUB;SUB *head=NULL;/创建链表模块SUB *create_form() /创建链表 SUB *head,*tail,*p;int num,stime,ttime;int etime,score,term;char name20,kind10;int size=sizeof(SUB);head=tail=NULL;coutt输入选修课程信息:num;cinname;cinkind;cinstime;cinttime;cinetime;cinscore;cinterm;while(num!=0)p=(SUB *)malloc(size);p-num=num;strcpy(p-name,name);strcpy(p-kind,kind);p-stime=stime;p-ttime=ttime;p-etime=etime;p-score=score;p-term=term;if(head=NULL)head=p;elsetail-next=p;tail=p;cinnum; cinname; cinkind; cinstime; cinttime; cinetime; cinscore; cinterm;tail-next=NULL;return head;/保存文件模块void savefile() /保存文件 SUB *p;FILE *fp;fp=fopen(1.txt,w);if(fp=NULL)exit(0);fout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期next)foutsetw(5)numsetw(12)namesetw(9)kindsetw(9)stime setw(9)ttimesetw(11)etimesetw(11)scoresetw(7)termendl;fclose(fp);foutt创建后的信息已放入1.txt文件中endl; system(pause); void savefile1() /保存文件2 SUB *p;FILE *fp;fp=fopen(2.txt,w);if(fp=NULL)exit(0);fout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期next)foutsetw(5)numsetw(12)namesetw(9)kind setw(9)stimesetw(9)ttimesetw(11)etimesetw(11)scoresetw(7)termendl;fclose(fp);foutt创建后的信息已放入2.txt文件中endl;system(pause);/读取文件模块void readfile() /读取文件 void *myInsert(SUB*);SUB *newSub;/新课程 int num,stime,ttime,etime;int score,term;char c,name20,kind10,fname20;couttfname;FILE *fp;fp=fopen(fname,r);while(!feof(fp)if(c=fgetc(fp)=n)break; while(!feof(fp)newSub=(SUB*)malloc(sizeof(SUB);finnewSub-num;finnewSub-name;finnewSub-kind;finnewSub-stime;finnewSub-ttime;finnewSub-etime;finnewSub-score;finnewSub-term;myInsert(newSub);fclose(fp); /浏览模块void display()SUB *ptr;head=NULL;readfile();if(head=NULL)coutendl;coutendl;coutt*没有相关记录*endl;return;fout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期next) foutsetw(5)numsetw(12)namesetw(9)kind setw(9)stimesetw(9)ttimesetw(11)etime setw(11)scoresetw(7)termnext=NULL;elsefor(ptr2=head;ptr2;ptr2=ptr2-next)if(ptr2-next=NULL)ptr2-next=subj;subj-next=NULL;break;return head;/添加模块void *insert() /插入课程信息SUB *ptr,*subj;int size=sizeof(SUB);int n;char ch,ch1;while(ch=0)subj=(SUB *)malloc(size);ptr=subj;coutt*endl;coutt输入要插入的课程信息endl;coutt*endl;coutendl;couttsubj-num;coutendl;couttsubj-name;coutendl;couttsubj-kind;coutendl;couttsubj-stime;coutendl;couttsubj-ttime;coutendl;couttsubj-etime;coutendl;couttsubj-score;coutendl;couttsubj-term;myInsert(subj);coutendl;cout继续插入请按回车键term输完后输入的回车键会赋给ch,因此用ch1填补cout结束添加课程请输入0:;ch=getchar(); return head; /删除模块void *del() /删除课程 SUB *p1,*p2;char ch,ch1;int num;while(ch!=0)coutnum;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);elsep1=p2;p2=p1-next;coutendl;cout继续删除请按回车键,结束删除请按0:;ch1=getchar();ch=getchar();return head;system(pause); /选修课程模块void choose()SUB *p,*q;int a5;int num,total=0,i=0,j;couttnum;couttnext)if(p-num=num)total=total+p-score;ai=num;i+;cinnum; if(total60)cout选修总学分为total,未达到60,选修失败!endl;system(pause);elseFILE *fp;fp=fopen(3.txt,w);fout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期endl;for(j=0;jnext)if(q-num=aj)foutsetw(5)numsetw(12)namesetw(9)kindsetw(9)stime setw(9)ttimesetw(11)etimesetw(11)scoresetw(7) termendl;fclose(fp);/printf(tt*选修成功*n);couttt*选修成功*endl;/printf(n你选修的课程总学分为%d,课程分别为:n,total);coutendl;cout你选修的课程总学分为total,课程分别为:课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期endl;for(j=0;jnext)if(q-num=aj)coutsetw(5)numsetw(12)namesetw(9)kind setw(9)stimesetw(9)ttimesetw(11)etime setw(11)scoresetw(7)termendl;coutendl;cout以上信息全部保存在3.txt中endl;system(pause); /查询模块void search()int a,num;int t=1;char type10,min10;SUB *ptr;L1:system(cls);puts(t*请选择查询方式*n);puts(t* 1.按课程名称查找 *n);puts(t* 2.按课程性质查找 *n);puts(t* 3.按学分查找 *n);puts(t* 4.退出查找 *n);puts(t*n);coutta;switch(a)case 1:couttmin; cout*endl; cout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期next) if(strcmp(min,ptr-name)=0) coutsetw(5)numsetw(12)namesetw(9)kind setw(9)stimesetw(9)ttimesetw(11)etime setw(11)scoresetw(7)termendl;t=0; if(t) coutendl; cout*未找到!*endl; t=1; system(pause); goto L1; case 2:coutttype; cout*endl; cout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期next) if(strcmp(type,ptr-kind)=0) coutsetw(5)numsetw(12)namesetw(9)kind setw(9)stimesetw(9)ttimesetw(11)etime setw(11)scoresetw(7)termendl; t=0; if(t) coutendl; cout*未找到!*endl; t=1; system(pause); goto L1; case 3:couttnum; cout*endl; cout课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期next) if(ptr-score=num) coutsetw(5)numsetw(12)namesetw(9)kind setw(9)stimesetw(9)ttimesetw(11)etime setw(11)scoresetw(7)termendl; t=0; if(t) coutendl; cout*未找到!*endl; t=1; system(pause); goto L1; case 4:break;/退出查找 /管理员功能模块 /*void Managers()int a,j;int n,w=1,flag=0,i=3;char s8;char password=000;docoutt请输入密码:;j=0;while(1)a=getch();if(a=13)break;sj=a;j+;cout*;sj=0;if(!strcmp(s,password) /进行密码验证flag=1;break; elsecouttt密码错误!你还有i-1次机会0);if(!flag)coutt你输入的密码错误超过3次!自动退出.;exit(0);dosystem(cls);puts(t*管理员菜单*n);puts(t* 1.浏览课程 *n);puts(t* 2.查询课程 *n);puts(t* 3.添加课程 *n);puts(t* 4.删除课程 *n);puts(t* 5.返回菜单 *n);puts(t*n);couttn;switch(n)case 1:display();break;case 2:search();break;case 3:insert();savefile();break;case 4:del();savefile();break;case 5:return;default:;while(w=1);*/void Managers()int n;system(cls);puts(t*管理员菜单*n);puts(t* 1.浏览课程 *n);puts(t* 2.查询课程 *n);puts(t* 3.添加课程 *n);puts(t* 4.删除课程 *n);puts(t* 5.返回菜单 *n);puts(t*n);couttn;switch(n)case 1:display();break;case 2:search();break;case 3:insert();savefile();break;case 4:del();savefile();break;case 5:retu

温馨提示

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

评论

0/150

提交评论