C语言课程设计报告选课管理系统_第1页
C语言课程设计报告选课管理系统_第2页
C语言课程设计报告选课管理系统_第3页
C语言课程设计报告选课管理系统_第4页
C语言课程设计报告选课管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计题目:学生选课管理系统 语言程序设计课程设计任务书实验目的:本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用,使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自己的编程能力并逐步培养编程思维,进而不断提高同学们解决问题的能力,并为以后的语言学习打下良好的基础。实验要求:1. 每人一题,独立完成;设计要求有界面菜单。2. 此次课程设计在规定的时间必须在实验室完成,不得以任何理由在其他地点进行;3每个人需按照选题规则确定好自己的题目(注意不是多人完成一题,每人独立完成一题),不得以任何理由选择其他的题目

2、,当然在完成自己的题目之后根据个人兴趣可以继续选做其他的题目;4每人必须撰写课程设计报告(格式附后)。并上交程序代码电子稿(每位同学先建立一个文件夹,取名规则为“学号+姓名”,文件夹里存放上交电子内容,每班取一文件夹名,取名规则为班级号,内放该班同学上交内容,每班学习委员统一收齐后拷贝给指导老师)。5课程设计的成绩由两部分组成:考勤(30%)程序检查成绩(40)报告检查成绩(30)实现思路:该程序的主要功能包括:· 学生选课信息的添加(学生选课信息包括学生学号、课程名称、学分)· 学生选课信息的删除· 学生选课信息查询(查询每个学生的选课信息,每个学生选课的总学分

3、,选具体某门课程(课程名输入)的学生名单)个人信息用结构体定义,解决的方案可以用结构体数组,或是链表作为临时数据处理,用文件来存储数据。注意数据定义的数据类型,用函数实现相应的功能,然后在主程序中调用,程序运行的时候用菜单选择功能,比如:添加个人信息按数字键1修改个人信息按数字键2. 开始打开文件并将课程信息读入数组输入查询类型Inset()查询模块增加模块删除模块修改模块选课模块显示课程信息模块显示选课情况模块退出结束在次函数中用户通过输入选项进入不同的函数模块。当每次运行一个模块后,又进行选择。 实验正文: #include<stdio.h>#include<string

4、.h>#include<stdlib.h> #define M 20#define N 100 int x; /x为供选课程数 /*主主菜单函数开始*/void menu()int n,w;void enter_linformation();void browse_linformation();void enter_sinformation();void search_num();void search_score();void l_choice_num();doputs("tt*MENU*nn");puts("tttt 1.课程信息录入&quo

5、t;);puts("tttt 2.学生选课信息录入");puts("tttt 3.课程信息浏览");puts("tttt 4.按课程号查询");puts("tttt 5.按学分查询");puts("tttt 6.某门课程学生选修情况");puts("tttt 7.退出");puts("nntt*n");printf("Choice your number(1-7): bb");scanf("%d",&n);i

6、f(n<1|n>7)w=1;getchar();else w=0;while(w=1);switch(n)case 1:enter_linformation();break;/课程信息录入case 2:enter_sinformation();break;/学生选课信息录入case 3:browse_linformation();break;/课程信息浏览case 4:search_num();break;/按课程号查询case 5:search_score();break;/按学分查询case 6:l_choice_num();/某门课程学生选修情况case 7:exit(0);

7、/退出void main()menu(); /*主函数结束*/ struct lesson int num; /课程编号 char name20; /课程名称 char kind10; /课程性质 int stime; /总学时 int ttime; /授课学时 int etime; /实验或上机学时 int score; /学分 int term; /开课学期 int choice_num; /选修该课的学生人数lesM; /lesM中每个数组元素对应一条课程信息struct student int number; /学号 int num20; /课程编号stuN; /stun中每个数组元素

8、对应一条学生选课信息 void printf_face()/公共函数1:显示数据结构项目函数 printf("ntnumber name kind stime etime ttime score termn");void printf_one(int i) /公共函数2:显示一个课程信息记录printf("nt%d %s %s %d %d %d %d %dn ",lesi.num,,lesi.kind,lesi.stime,lesi.ttime,lesi.etime,lesi.score,lesi.term); /课程信息录入模块voi

9、d l_input(int i) /输入一个记录到函数 scanf("%d",&lesi.num);scanf("%s",&);scanf("%s",&lesi.kind);scanf("%d",&lesi.stime);scanf("%d",&lesi.ttime); scanf("%d",&lesi.etime);scanf("%d",&lesi.score);scanf(&qu

10、ot;%d",&lesi.term);l_save(int n) /保存课程信息到文件函数FILE *fp;int i;if(fp=fopen("lesrecord.txt","wb")=NULL)printf("n Cannot open filen");return NULL;for(i=0;i<n;i+)fprintf(fp,"%d %s %s %d %d %d %d %dn ",lesi.num,,lesi.kind,lesi.stime,lesi.ttime,le

11、si.etime,lesi.score,lesi.term);fclose(fp);void enter_linformation() /课程信息录入函数int i,m,k,w1;printf("总共多少门课(0-%d)?",M-1);scanf("%d",&m);printf_face();for(i=0;i<m;i+)printf("n 请输入第%d条课程信息n",i+1);l_input(i);/调用输入函数if(i!=0)l_save(m);/调用保存函数printf("请选择下一步操作:<1&g

12、t;返回继续录入课程信息 <2>回到主菜单 <3>退出程序 bb"); scanf("%d",&k); if(k<1|k>3) w1=1; getchar(); else w1=0; while(w1=1); switch(k) case 1:enter_linformation();break; case 2:menu();break; case 3:break;/课程信息浏览模块void browse_linformation()/课程信息浏览函数 int k,w1;int load_lesson();void pr

13、intf_n(int n);x=load_lesson();/从文件读入课程信息printf_n(x);/显示课程信息printf("请选择下一步操作:<1>回到主菜单 <2>退出程序 bb"); scanf("%d",&k); if(k<1|k>2) w1=1; getchar(); else w1=0; while(w1=1);/ switch(k) case 1:menu();break; case 2:break;int load_lesson() /加载课程信息记录并可以计算记录个数FILE*fp;i

14、nt i;if(fp=fopen("lesrecord.txt","r")=NULL) printf("ncannot open filen");return 0;for(i=0;!feof(fp);i+)fscanf(fp,"%d %s %s %d %d %d %d %d ",&lesi.num,&,&lesi.kind,&lesi.stime,&lesi.ttime,&lesi.etime,&lesi.score,&lesi.te

15、rm);fclose(fp);return (i); void printf_n(int x)/显示所有课程信息记录int j; printf_face();for(j=0;j<x;j+)if(j%10=0)printf("nnpass any key to continue>.");getchar();puts("nn");printf_one(j);getchar();/选课信息录入模块void enter_sinformation() /学生选课信息录入函数 void s_input(int i);int i,n,k,w1;x=load

16、_lesson();printf("n 总共有多少学生(0-%d)?:",N-1);scanf("%d",&n);for(i=0;i<n;i+) printf("n 请输入第%d个学生学号:n",i+1); s_input(i); printf("请选择下一步操作: <1>返回继续录入选课信息 <2>回到主菜单 <3>退出程序 bb"); scanf("%d",&k); if(k<1|k>3) w1=1; getchar();

17、 else w1=0; while(w1=1); switch(k) case 1:enter_sinformation();break; case 2:menu();break; case 3:break;void s_input(int i) /输入一个记录到函数 int j,k,m,n,w1,total=0;scanf("%d",&stui.number); printf("n你想选多少门课 bb");scanf("%d",&m);printf("现在输入课程编号,依次用空格隔开!n");fo

18、r(j=0;j<m;j+)scanf("%d",&stui.numj);for(k=0;k<x;k+)if(lesk.num=stui.numj)total+=lesk.score;lesk.choice_num+;if(total<60) printf("警告:你所选课程总学分不到60!请选择下一步操作:<1>返回重新录入选课信息 <2>回到主菜单 <3>退出程序 bb"); scanf("%d",&n); if(n<1|n>3) w1=1; getc

19、har(); else w1=0; while(w1=1); switch(n) case 1:printf("请重新输入你的学号:");s_input(i);break; case 2:menu();break; case 3:break; void dele()/删除模块 int i,j,num;char a8,b;system("cls");printf("请输入删除的姓名:"); getchar(); gets(a);for(i=0;i<num;i+)if(strcmp(,a)=0)break;for(

20、j=i;j<num;j+) stui=stui+1; num-; printf("是否继续删除(y/n)?n"); b=getchar();if(b='y')dele();elsemenu();/按课程号查询模块/按课程号查询函数 void search_num()int i,k,flag=0,w1;struct lesson s; printf("nn输入你要查询的课程编号:");scanf("%d",&s.num);load_lesson();printf_face();for(i=0;i<x;

21、i+)if(s.num=lesi.num)flag=1; printf_one(i);if(flag=1)printf("Found!");else printf("Not found!");printf("请选择下一步操作: <1>返回继续查找课程信息 <2>回到主菜单 <3>退出程序 bb"); scanf("%d",&k); if(k<1|k>3) w1=1; getchar(); else w1=0; while(w1=1); switch(k) ca

22、se 1:search_num();break; case 2:menu();break; case 3:break;/按学分查询模块/按学分查询函数void search_score()int i,k,flag=0,w1;int mark; printf("nn输入你要查询的课程学分:");scanf("%d",&mark);load_lesson();printf_face();for(i=0;i<x;i+)if(mark=lesi.score)flag=1; printf_one(i);if(flag=1)printf("Found!");else printf("Not found!");printf("请选择下一步操作:<1>返回继续查找课程信息 <2>回到主菜单 <3>退出程序 bb"); scanf("%d",&k); if(k<1|k&

温馨提示

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

评论

0/150

提交评论