学生选课系统c语言程序代码

(25页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

#include #includestruct couse * head1;struct student * head2;struct couse//课程信息结构体{ int num1; char name1[20]; int score; int nelepeo;//课程已选人数 int Melepeo;//课程人数上限 struct couse * next;};struct student//学生信息结构体{ int num2; char name2[20]; int nelenum[50];//已选课程编号 int nelen;//已选课程数量 struct student * next;};void keyboardc()//录入课程子函数(从键盘录入){struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf("\n课程编号\t课程名称\t学分\t课程人数上限\n");scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0;head1=NULL;while(p1->num1!=0&&p1->num1!='#'){ N1=N1+1; if(N1==1)head1=p1; else p2->next=p1; p2=p1; p1=(struct couse * )malloc(sizeof(struct couse)); scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo); p1->nelepeo=0;}p2->next=NULL;}void inputc()//录入课程主函数{ int i; printf("\n录入课程信息\n"); printf("\n1.从键盘录入\n"); printf("\n2.返回主菜单\n"); printf("\n请选择编号(1~3):\n"); scanf("%d",&i); switch(i) { case(1):keyboardc();break; case(2):break; }}void insertc(struct couse *incouse)//课程信息增加子函数{ struct couse *p0,*p1,*p2; p1=head1; p0=incouse; if(head1==NULL) { head1=p0; p0->next=NULL; } else { while((p0->num1>p1->num1)&&(p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num1 <= p1->num1) { if(head1==p1) head1=p0; else p2->next=p0; p0->next=p1; } else { p1->next=p0; p0->next=NULL; } } N1=N1+1;}void delc(int num1)//课程信息删除子函数{ struct couse *p1,*p2; if(head1==NULL) { printf("\n没有课程,无法删除!\n"); goto end; } p1=head1; while(num1!=p1->num1 && p1->next!=NULL) { p2=p1; p1=p1->next; } if(num1==p1->num1) { if(p1==head1) head1=p1->next; else p2->next=p1->next; printf("\n已删除该编号课程!\n"); N1=N1-1; } else printf("\n无该编号的课程!\n"); end:;}void managementc()//课程信息管理主函数{ struct couse * incouse; int i,num1; printf("\n课程管理\n"); printf("\n1.新增课程\n"); printf("\n2.删除课程\n"); printf("\n3.返回主菜单\n"); printf("\n请选择编号(1~3):\n"); scanf("%d",&i); switch(i) { case(1): { incouse=(struct couse *)malloc(sizeof(struct couse)); printf("\n课程编号\t课程名称\t学分\t课程人数上限\n"); scanf("%d%s%d%d",&incouse->num1,incouse->name1,&incouse->score,&incouse->Melepeo); incouse->nelepeo=0; insertc(incouse); break; } case(2): { printf("\n请输入要删除课程的编号:\n"); scanf("%d",&num1); delc(num1); break; } case(3):break; }}void keyboards()//录入学生信息子函数(从键盘录入){ int i; struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student)); printf("\n学生学号\t学生姓名\n"); scanf("%d%s",&p1->num2,p1->name2); p1->nelen=0; for(i=0;i<20;i++) p1->nelenum[i]=0; head2=NULL; while(p1->num2!=0) { N2=N2+1; if(N2==1)head2=p1; else p2->next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student)); scanf("%d%s",&p1->num2,p1->name2); p1->nelen=0; for(i=0;i<20;i++) p1->nelenum[i]=0; } p2->next=NULL;}void inputs()//录入学生信息主函数{ int i; printf("\n录入学生信息\n"); printf("\n1.从键盘录入\n"); printf("\n2.返回主菜单\n"); printf("\n请选择编号(1~2):\n"); scanf("%d",&i); switch(i) { case(1):keyboards();break; case(2):break; }}void inserts(struct student * incouse)//学生信息增加子函数{ struct student *p0,*p1,*p2; p1=head2; p0=incouse; if(head2==NULL) { head2=p0; p0->next=NULL; } else { while((p0->num2 > p1->num2) && (p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num2 <= p1->num2) { if(head2==p1) head2=p0; else p2->next=p0; p0->next=p1; } else { p1->next=p0; p0->next=NULL; } } N2=N2+1;}void dels(int num2)//学生信息删除子函数{ struct student *p1,*p2; if(head2==NULL) { printf("\n没有该学生信息,无法删除!\n"); goto end; } p1=head2; while(num2!=p1->num2 && p1->next!=NULL) { p2=p1; p1=p1->next; } if(num2==p1->num2) { if(p1==head2) head2=p1->next; else p2->next=p1->next; printf("\n已删除该学生信息!\n"); N2=N2-1; } else printf("\n无该学号的学生!\n"); end:;}void managements()//学生信息管理主函数{ struct student * incouse; int i,num2; printf("\n学生信息管理\n"); printf("\n1.新增学生信息\n"); printf("\n2.删除学生信息\n"); printf("\n3.返回主菜单\n"); printf("\n请选择编号(1~3):\n"); scanf("%d",&i); switch(i) { case(1): { incouse=(struct student *)malloc(sizeof(struct student)); incouse->nelen=0; incouse->nelenum[0]=0; printf("\n学生学号\t学生姓名\n"); scanf("%d%s",&incouse->num2,incouse->name2); inserts(incouse); break; } case(2): { printf("\n请输入要删除学生的学号:\n"); scanf("%d",&num2); dels(num2); break; } case(3):break; }}void elect(struct student * s)//学生选课子函数(进行选课){ struct couse * p; int num1,i; printf("\n请输入要选课的编号:\n"); scanf("%d",&num1); for(i=0;s->nelenum[i]!=0;i++); s->nelenum[i]=num1; (s->nelen)++; p=head1; while(p->num1!=num1) p=p->next; (p->nelepeo)++;}void cheak()//学生选课子函数(查询可选课程){ char e; struct couse * c; struct student * s; int num2,i,j=0,t=0; printf("\n请输入你的学号:\n"); scanf("%d",&num2); s=head2; while(s->num2!=num2 && s->next!=NULL) s=s->next; if(s->num2!=num2) { printf("\n不存在你的信息,请进入主菜单录入你的信息!\n"); goto end; } c=head1; printf("\n你的可选课程编号:\n"); while(c!=NULL) { for(t=0,i=0;s->nelenum[i]!=0;i++) { if(c->num1==s->nelenum[i]) t=1; } if(t==0 && (c->nelepeo!=c->Melepeo)) { printf("%d ",c->num1); j++; } c=c->next; } if(j==0) { printf("\n你已选完所有课程,无法再多选!\n"); goto end; } printf("\n选课(y/n)?:\n"); getchar(); e=getchar(); i=0; while(e=='y') { elect(s); printf("\n继续选课(y/n)?:\n"); getchar(); e=getchar(); } end:;}void back(struct student * p)//退选课程{ struct couse * p1; int num1,i,j; printf("\n请输入你要退掉的课程编号:\n"); scanf("%d",&num1); p1=head1; while(p1->num1!=num1) p1=p1->next; for(i=0;p->nelenum[i]!=num1;i++); for(j=i;p->nelenum[j]!=0;j++) p->nelenum[j]=p->nelenum[j+1]; p->nelenum[--j]=0; (p1->nelepeo)--; printf("\n退课成功!\n");}void hcheak()//学生选课子函数(查询已选课程){ char c; struct couse * p0; struct student * p; int num2,i,f=0; printf("\n请输入学号:\n"); scanf("%d",&num2); p=head2; while(p->num2!=num2 && p!=NULL) p=p->next; if(p==NULL) { printf("\n不存在你的信息,请回主菜单录入信息:\n"); goto end; } printf("\n已选课程编号:\n"); if(p->nelenum[0]==0) { printf("\n你还没选课!\n"); goto end; } for(i=0;p->nelenum[i]!=0;i++) { printf("%d\n",p->nelenum[i]); p0=head1; while(p0->num1!=p->nelenum[i]) p0=p0->next; f=f+p0->score; } printf("\n总学分:%d\n",f); printf("\n是否进行退课(y/n)?\n"); getchar(); c=getchar(); while(c=='y') { back(p); printf("\n继续退课(y/n)?"); getchar(); c=getchar(); (p->nelen)--; } end:;}void elective()//学生选课主函数{ int i; printf("\n学生选课\n"); printf("\n1.查询可选课程\n"); printf("\n2.查询已选课程\n"); printf("\n3.返回主菜单\n"); printf("\n请输入(1~3):\n"); scanf("%d",&i); switch(i) { case(1):cheak();break; case(2):hcheak();break; case(3):break; }}void listc()//查看课程信息{ struct couse * p; p=head1; printf("\n课程编号 课程名称 学分 课程已选人数 课程人数上限\n"); while(p!=NULL) { printf("%-8d%10s%6d%8d%12d\n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; }}void lists()//查看学生信息{ struct student * p; p=head2; printf("\n学生学号 学生姓名 已选课程数量\n"); while(p!=NULL) { printf("%-4d %10s %6d\n",p->num2,p->name2,p->nelen); p=p->next; }}void store()//系统信息查看主函数{ int i; printf("\n系统信息查看\n"); printf("\n1.查看课程信息\n"); printf("\n2.查看学生信息\n"); printf("\n3.返回主菜单\n"); printf("\n请输入编号(1~3):\n"); scanf("%d",&i); switch(i) { case(1):listc();break; case(2):lists();break; case(3):break; }}int main()//主函数{ system("color f0"); int i; start: printf("\n******************************欢迎使用学生选课系统******************************\n"); printf("\n 菜单 \n"); printf("\n 1.录入课程信息 \n"); printf("\n 2.课程信息管理 \n"); printf("\n 3.录入学生信息 \n"); printf("\n 4.学生信息管理 \n"); printf("\n 5.进入选课程序 \n"); printf("\n 6.系统信息查看 \n"); printf("\n 7.退出选课系统 \n"); printf("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf("\n请输入菜单选项编号(1~7):\n"); scanf("%d",&i); if(i<1 || i>7) { printf("\n输入错误,请重输:\n"); goto start; } switch(i) { case(1): { system("cls");//清屏函数 inputc(); goto start; break; } case(2): { system("cls"); managementc(); goto start; break; } case(3): { system("cls"); inputs(); goto start; break; } case(4): { system("cls"); managements(); goto start; break; } case(5): { system("cls"); elective(); goto start; break; } case(6): { system("cls"); store(); goto start; break; } case(7): { system("cls"); printf("\n感谢使用本系统!再见!\n"); } } return(0);} 关 键 词: 学生 选课 系统 语言 程序代码

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

c语言p1-melepeo,学生选课系统c语言程序代码相关推荐

  1. c语言选课系统课程设计,用C语言写一个 学生选课系统

    匿名用户 1级 2009-07-05 回答 #include #include int N1,N2,kk1,kk2,kk3; struct couse * head1; struct student ...

  2. c语言p1-melepeo,C语言做个学生选课系统 -电脑资料

    #include #include int N1,N2,kk1,kk2,kk3; struct couse * head1; struct student * head2; struct couse/ ...

  3. 学生证选课系统c语言大作业,学生选课管理系统c语言程序

    #include #include #include int N1,N2; struct couse * head1; struct student * head2; struct couse //课 ...

  4. c语言课程设计 选课系统,学生选课系统c语言课程设计.doc

    西安理工大学C语言课程设计任务: 题目:学生选修课程系统设计 功能:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息.试设计一选修课程系统 ...

  5. 学生选课系统c语言程序总结,学生选课系统C语言程序代码总结.doc

    #include #include struct couse * head1; struct student * head2; struct couse//课程信息结构体 { int num1; ch ...

  6. 学生选课系统C语言系统的说明文档,C语言学生选课系统(代码)

    #include #include #include int N1,N2; struct student { int num2; char name2[20]; int nelenum[50]; // ...

  7. (附源码)mysql+ssm学生选课系统 毕业设计 170920

     摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前 ...

  8. ssm+mysql+ssm学生选课系统 毕业设计-附源码170920

    摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前背 ...

  9. c语言-实现学生选课系统

    下载源代码链接: https://download.csdn.net/download/qq_44176343/64109300 1.本文使用C语言写的一个简单项目,学生的选课系统,主要实现对学生和课 ...

最新文章

  1. 一个完整的操作UI线程的例子,用到了多种方式
  2. 如何设计订单系统?不妨看看这篇文章
  3. 徐磊(Devops):一名写了十几年代码但还没写够的程序员
  4. 线程打印状态_Java线程状态的转换
  5. poj 1250 解题(链表法)
  6. cloud一分钟 | 腾讯金融云总经理胡利明:腾讯云服务金融的“加减 乘除”法。...
  7. 百度启用Baidu.co.jp域名,有利于其在日本推广
  8. 服务端设置忽略更新_深入理解Kafka服务端之日志对象的读写数据流程
  9. 扫地机器人作文说明文提纲_扫地机器人说明文500字
  10. g2(t)用matlab,数字信号处理实验报告
  11. RDV需要什么服务器系统,锐起RDV的教程
  12. 学习halcon的论坛与书籍
  13. Dlink PHP p308av,D-Link系列路由器漏洞挖掘
  14. 基于RFID的资产智能盘点及仓储管理云平台
  15. 树莓派 天猫精灵智能灯泡_智能灯泡即使在关闭时也会用完电吗?
  16. 数据加密技术在计算机网络安全中的应用实例,数据加密技术在计算机网络安全中的应用.doc...
  17. 结对作业 微软学术搜索分析
  18. oracle判断if函数,ORACLE判断奇偶数函数
  19. 自媒体达人早已月入过万,为何同是自媒体人却依旧没收益
  20. 如何在AE中快速预览?

热门文章

  1. 首发:徐亦达教授团队最新发表的两篇机器学习论文
  2. 推荐:周志华《机器学习》西瓜书精炼版笔记来了!
  3. 网易云信携手SNH48 GROUP,打造在线追星新体验
  4. node.js邮箱注册,激活,登陆相关案例
  5. SpringMVC默认欢迎页面的问题
  6. Vertica的这些事lt;十五gt;—— Vertica备份元数据信息
  7. 数学之美笔记(十三)
  8. Extending_and_embedding_php翻译
  9. 写linux程序测试吞吐量,Linux下测试磁盘性能(IO、吞吐量)
  10. containerd镜像导入import和push命令 gzip压缩解压缩命令