精华内容
下载资源
问答
  • C语言课程设计,学生选修课程管理系统,增删查改,通过文件读取写入数据都实现了
  • C语言课程设计--学生选修课程管理系统,可用于课程设计,答辩。
  • c++课程设计:学生选修课程管理系统设计报告,内含完整代码。
  • 数据库课程设计,用SQL语句制作学生选修管理系统
  • 学生选修管理系统课程设计说明书,内容我觉得还不错,欢迎下载评论
  • 假定有n门课程,每门课程有课程...试设计一选修课程系统,使之能提供以下功能: (1)课程信息录入功能(课程信息用文件保存) (2)课程信息浏览功能 (3)查询功能:按学分查询,按课程性质查询 (4)选修和退选课程
  • 学生选修管理系统
  • 学生选修课程系统

    2013-07-06 11:15:58
    本课程设计的目的是设计一个学生选修课程系统的程序,用来实现对学生成绩的管理,其中包括学生信息的文件读入、添加、查询、保存、删除以及相应的课程信息管理。程序设计了两个类,其中一个包含学生的学号、姓名、...
  • 选修课程管理系统V1.2.3.rar
  • C#选修课程管理系统

    2009-03-17 15:37:24
    C#做的选修课程管理系统 建立一个计算机的选修课程管理系统,解决传统人工的选课信息查询和学生成绩的查询,以达到减少工作量以及人数需要,提高管理效率和速度的目的
  • c程序设计 学生选修课程系统
  • C语言程序设计报告—学生选修课程系统
  • . Word 资料 #include<iostream.h> #include<string.h> #include<fstream.h> #include <stdlib.h> #include <time.h> //using namespace std; const int count =3; class situaction; class student { public: int ...
  • 学生信息管理,用java语言编写的 本设计的目的是综合面向对象程序设计课程中所学到的知识来开发一个小型的Java应用程序—选修管理系统学生必须选择1-2个模块实现。
  • 学生选修管理系统设计C语言版学生选修... TECHNOLOGY课程设计(论文)题目: 学生选修管理系统设计学生姓名:江元学 号:201153100121班 级: 信息与计算科学11-01班所在院部: 数学与计算科学学院指导教师:龚红仿2...

    学生选修课管理系统设计C语言版

    学生选修课管理系统设计

    第 PAGE \* MERGEFORMAT 35页 共22页

    CHANGSHA UNIVERSITY OF SCIENCE & TECHNOLOGY

    课程设计(论文)

    题目: 学生选修课管理系统设计

    学生姓名:江元学 号:201153100121班 级: 信息与计算科学11-01班所在院部: 数学与计算科学学院指导教师:龚红仿

    2013 年 1 月

    学生选修课管理系统设计

    学生姓名:江元学 号:201153100121班 级:信计11-01班指导教师:龚红仿 完成日期: 2013年1月11日

    学生选修课管理系统设计

    摘要

    C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次学生选修课系统管理设计时间虽然仅有一个星期,但确实使我受益非浅。通过学生选修课系统管理设计我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对Microsoft Visual C++ 6.0的使用技巧。C语言是在国内外广泛使用的一种计算机语言 。语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

    关键词:学生选修课系统管理;C语言课程设计;计算机技术;模块化程序设计;信息录入;浏览信息;选课;查询

    Students Elective Courses Management System Design

    ABSTRACT

    C language curriculum design and modern computer technology in the practical application of the combination, we are at this stage of learning theory course on their own side of the ability of a good test, from the beginning of the algorithm to run after the beautiful graphical interface and exciting available procedures, is a very good learning and training process. We consolidate the original theory of knowledge, cultivate our flexible application and integration of the knowledge learned and skills of analysis, ability to solve practical problem. So that we realize that their knowledge and ability in practical application and play. Can not only stimulate consciousness of innovation, also can develop creative ability, communication skills training. The student elective system management design time although only a week, but it does make me benefit. Students elective system management design my rich experience in computer operation, more deep understanding of the C language, familiar with the environment, more increased to Microso

    展开全文
  • 课程设计,学生选修管理系统,未编译,可以任意修改。
  • 不错的课程设计 学生选修管理系统 用vb6.0 SQL 2000
  • 学生包含学号等属性,通过登记系统保存学生成绩的信息。... 用户直接输入各种操作代码,其中包括对系统管理原的的创建,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。
  • 学生选修系统设计 一设计目的 当今时代是飞速发展的信息时代在各行各业中离不开信息处理这正是计算机被广泛应用于信息系统的环境计算机的最到好处的于利用它能够进行信息管理使用计算机进行信息控制不仅提高了工作...
  • 版本号:华立小学 Beta1 已编译,可运行
  • C语言课设:学生选修课程系统设计

    千次阅读 2020-11-04 08:38:06
    学生选修课程系统设计 假定有 n 门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机 学时,学分,开课学期等信息,学生可按要求(如总学分不得少于 60)自由选课。试设计一选修课 程...

    学生选修课程系统设计

    假定有 n 门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机
    学时,学分,开课学期等信息,学生可按要求(如总学分不得少于 60)自由选课。试设计一选修课
    程系统,使之能提供以下功能:
    系统以菜单方式工作
    课程信息录入功能(课程信息用文件保存)--输入
    课程信息浏览功能--输出
    查询功能:--算法
    按学分查询
    按课程性质查询
    学生选修课程
    有一个清晰美观界面来调用各个功能,界面设计以用户为中心,操作方便、美观大方。
    要求设置有不同的操作权限密码。

    参考代码1

    权限密码功能有错

    #include <stdio.h>
    #include <malloc.h>
    #include <stdlib.h>
    #include <string.h>
    #include <conio.h> 
    #define SIZE_STU 10
    #define SIZE_COU 10
    #define SIZE_SEL 10
    //函数声明部分 
    void home(void);
    void stu_operate(void);
    void cou_operate(void);
    void statistic(void);
    void choose(void);
    void delete_sel(int);
    char menu1();
    char zhuce();
    char stuu();
    char teaa();
    void house();
    //--学生信息部分: 
    void input_stu(void);
    void search_stu(void);
    void search_stu_id(void);
    void search_stu_name(void);
    void show_stu(void);
    void edit_stu(void);
    void renew_stu(void); 
    void delete_stu(void);
    //--课程信息部分: 
    void input_cou(void);
    void search_cou(void);
    void search_cou_id(void);
    void search_cou_name(void);
    void show_cou(void);
    void edit_cou(void);
    void renew_cou(void); 
    void delete_cou(void);
     
    /*学生信息结构体*/
    struct student_info {
     char stu_ID[9];
     char stu_name[5];
     char sex[9];
     char age[9];
     char collage[9];
     char grade[9];
     char contact[9];
    }stu[SIZE_STU];
     
    /*课程信息结构体*/
    struct course_info {
     char course_ID[9];
     char course_name[9];
     char property[9];
     char period[9];
     char credit[9];
     char time[9];
     int people;
    }cou[SIZE_COU];
     
    /*选课记录结构体*/
    struct select {
     int s;//存放学生信息的数组下标 
     int c;//存放课程信息的数组下标 
    }sel[SIZE_SEL]; 
     
    //全局变量i,j,x分别是学生,课程,选课信息数组下标
    int i = -1;
    int j = -1;
    int x = -1;
    
     struct Code				//权限 
    {
    	char stu[10];
    	int tea; 
    };
    
    struct Code code[40];
    
    char count1=0;
    char count2=0;
    char one=1;
    char two=2;
    
    int main(void){
     //进入欢迎界面 
     menu1();
     if(one>1)
     {
     	one = 1;
     	system("cls"); 
     	house();
     	
     }
     else if(two>2)
     {
     	two=2;
     	system("cls"); 
     	home();
     }
     return 0;
    }
    
    char menu1()
    {
    
    	system("cls");
    	int num;
    	while(1)
    	{
    		system("cls");
    		printf("\t\t--------------------------\n\n");
    		printf("\t\t1.学生登陆\t2.管理员登陆\n\n");
    		printf("\t\t3.注册      4.退出系统\n\n");
    		printf("\t\t--------------------------\n\n");
    		scanf("%d",&num);
    		char c,d;
    		switch(num)
    		{
    			case 1:
    				stuu();
    				c=stuu();
    				if(c==0)
    				{
    					c=2;
    					one++;
    					return -1;
    				}
    			
    				break;
    			case 2:
    				teaa();
    				d=teaa();
    				if(d==0)
    				{
    					d=2;
    					two++;
    					return -1;
    				}
    			
    				break;
    			case 3:
    				zhuce();
    				break;
    			case 4:
    				exit(0);
    				break;
    		}	
    	}
    }
    
    char stuu()//学生登陆
    {
    	char num[32];
    	int i;
    	printf("请输入您的密码\n"); 
    	scanf("%s",num);
    	if(strlen(num)<=10)
    	{
    		for(i=0;i<40;i++)
    		{
    			if(strcmp(code[i].stu,num)==0)
    			{
    				printf("登陆成功\n"); 
    				_getch();
    				return 0; 
    			}
    		}
    	}
    	printf("输入错误,请重新输入\n"); 
    	return -1; 
    } 
    
    char teaa()//管理员登陆
    {
    	char m;
    	int cod = 123456;
    	for(m=0;m<40;m++)
    	{
    		code[m].tea=cod;	//设置唯一管理员密码 
    	}	 
    	int num;
    	int i;
    	printf("请输入您的密码\n"); 
    	scanf("%d",&num);	
    	for(i=0;i<40;i++)
    	{
    		if(code[i].tea==num)
    		{
    			printf("登陆成功\n"); 
    			_getch();
    			return 0; 
    		}
    	}
    	printf("输入错误,请重新输入\n"); 
    	return -1;
    } 
    
    char zhuce() //注册 
    {	
    	int i;
    	char num[32];
    	printf("请输入数字,不可超出10位\n");
    	scanf("%s",num);
    	if(strlen(num)<=10)
    	{
    		for(i=0;i<40;i++)
    		{
    			if(strcmp(code[i].stu,num)==0)
    			{
    				printf("数字已存在,请重新输入\n"); 
    				getch();
    				return -1; 
    			}
    		}
    		printf("注册成功\n");
    		strcpy(code[count2].stu,num);
    		count2++; 
    		_getch();
    		return -1; 
    	}
    	printf("输入错误,请重新输入\n"); 
    	_getch();	
    	return -1; 
    }
    
    //欢迎界面 
    void home(void) {
     printf("\n-------------------------欢迎进入选课系统!----------------------"); 
     int h;
     printf("\n\n      请选择你要进行的操作:");
     printf("\n\n        1.学生操作");
     printf("\n        2.课程操作");
     printf("\n        3.开始选课");
     printf("\n        4.选课统计");
     printf("\n        5.退出系统");
     printf("\n              ");
     printf("\n      请输入:");
     scanf("%d",&h);
     system("cls");
     switch(h){
      case 1:
       stu_operate();
       break;
      case 2:
       cou_operate(); 
       break;
      case 3:
       choose();
       break;
      case 4:
       statistic();
       break;
      default:
       system("cls");
       printf("BYE!");
       break;
     }
    }
    void house(void) {
     printf("\n-------------------------欢迎进入选课系统!----------------------"); 
     int h;
     printf("\n\n      请选择你要进行的操作:");
     printf("\n\n        1.学生操作");
     printf("\n        2.开始选课");
     printf("\n        3.选课统计");
     printf("\n        4.退出系统");
     printf("\n              ");
     printf("\n      请输入:");
     scanf("%d",&h);
     system("cls");
     switch(h){
      case 1:
       stu_operate();
       break;
       break;
      case 2:
       choose();
       break;
      case 3:
       statistic();
       break;
      default:
       system("cls");
       printf("BYE!");
       break;
     }
    }
    
    /*开始选课*/
    void choose(void){
     char stu_id[10],cou_id[10];
     printf("\n-------------------------欢迎进入选课系统!----------------------"); 
     //输入选课学生信息 
     printf("\n\n     请输入选课人学号:");
     fflush(stdin);
     scanf("%s",stu_id);
     int h,flag = 0;
     for(h = 0;h <= i;h++){
      if(strcmp(stu[h].stu_ID,stu_id)==0){
       flag = 0;
       break;
      } else {
       flag = 1;
      }
     }
     if(flag||i==-1){
      printf("\n     不存在此学号\n");
      system("pause");
      system("cls");
      home();
     }
     //录入姓名信息 
     x++;
     sel[x].s = h; 
     //输入课程信息 
     printf("\n\n     请输入选修课程号:");
     fflush(stdin);
     scanf("%s",cou_id);
     flag = 0;
     for(h = 0;h <= j;h++){
      if(strcmp(cou[h].course_ID,cou_id)==0){
       flag = 0;
       break;
      } else {
       flag = 1;
      }
     }
     if(flag||j==-1){
      printf("\n     不存在此课程号\n");
      x--;
      system("pause");
      system("cls");
      home();
     }
     //录入课程信息
     sel[x].c = h;
     cou[h].people++; 
     printf("\n     录入成功!\n");
     system("pause");
     system("cls");
     home();
    }
    /*删除选课记录*/
    void delete_sel(int q){//删除第q+1条记录 
    /*注意!本函数没有将x减1,请在函数外手动减1(考虑外层函数循环的需要)*/
     int h;
     cou[sel[q].c].people--;
     for(h = q;q < x;h++){
      q++;
      sel[h].c = sel[q].c;
      sel[h].s = sel[q].s;
     }
      
    }
    //对学生记录进行操作
    void stu_operate(void) {
     printf("\n-------------------------欢迎进入选课系统!----------------------"); 
     printf("\n\n     请选择你要对学生记录进行的操作:");
     printf("\n\n        1.添加");
     printf("\n        2.查询");
     printf("\n        3.显示");
     printf("\n        4.返回主页面");
     printf("\n              ");
     printf("\n      请输入:");
     int i;
     scanf("%d",&i);
     system("cls");
     switch(i){
      case 1://添加学生信息 
       input_stu();
       break;
      case 2://查询学生信息 
       search_stu(); 
       break;
      case 3://显示所有学生信息
       show_stu(); 
       break;
      case 4:
       home();
       break; 
     }
    }
    //对课程记录进行操作 
    void cou_operate(void) {
     printf("\n-------------------------欢迎进入选课系统!----------------------"); 
     printf("\n\n     请选择你要对课程记录进行的操作:");
     printf("\n\n        1.添加");
     printf("\n        2.查询");
     printf("\n        3.显示");
     printf("\n        4.返回主页面");
     printf("\n              ");
     printf("\n      请输入:");
     int i;
     scanf("%d",&i);
     system("cls");
     switch(i){
      case 1:
       input_cou();
       break;
      case 2:
       search_cou();
       break;
      case 3:
       show_cou();
      case 4:
       home();
       break; 
     }
    }
    //选课信息统计记录
    void statistic(void){
     printf("\n-------------------------欢迎进入选课系统!----------------------"); 
     printf("\n\n      共有学生信息:%d 条",i+1); 
     printf("\n      共有课程信息:%d 条",j+1);
     if(x == -1){
      printf("\n      选课记录:0 条");
      printf("\n\n      "); 
      system("pause");
      system("cls");
      home();
     } else {
      printf("\n\n      选课记录 %d 条:",x+1);
      int m;
      for(m = 0;m <= x;m++){
       printf("\n      ================");
       printf("\n      第%d条",m+1);
       printf("\n      学生学号:%s",stu[sel[m].s].stu_ID);
       printf("\n      学生姓名:%s",stu[sel[m].s].stu_name);
       printf("\n      课程号:%s",cou[sel[m].c].course_ID);
       printf("\n      课程名:%s",cou[sel[m].c].course_name); 
      }
      printf("\n\n   "); 
      system("pause");
      system("cls");
      home();
     }
      
    }
     
     
    //--------------------------------------学生信息插入--------------------------------------
    void input_stu(void){
     char flag;
     FILE * fp;
     //--判断文件是否为空 
     fp = fopen("student.txt","r+");
     flag = fgetc(fp);
     if(flag==EOF){
      fprintf(fp,"学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式\n");
     }
     fclose(fp);
     //-- 
     fp = fopen("student.txt","a+");
     if(fp == NULL){
      printf("打开文件失败!");
      system("cls");
      stu_operate();
     }
     printf("学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式\n");
     while(1){
      i++;
      scanf("%s %s %s %s %s %s %s",&stu[i].stu_ID,&stu[i].stu_name,&stu[i].sex,&stu[i].age,&stu[i].collage,&stu[i].grade,&stu[i].contact);
      //--数据查重
      int h; 
      for(h = 0;h < i;h++){
       if(i == 0) break;//第一条数据不需要查重 
       if (strcmp(stu[h].stu_ID,stu[i].stu_ID)==0) {
        printf("该学号已存在,请重新输入!\n");
        scanf("\n%s %s %s %s %s %s %s",&stu[i].stu_ID,&stu[i].stu_name,&stu[i].sex,&stu[i].age,&stu[i].collage,&stu[i].grade,&stu[i].contact);
        h = -1;
       }
      }
      //-- 
      fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[i].stu_ID,stu[i].stu_name,stu[i].sex,stu[i].age,stu[i].collage,stu[i].grade,stu[i].contact);
      printf("\n录入成功,继续录入输入y,返回上一级请按任意键:");
      fflush(stdin); 
      scanf("%c",&flag); 
      fclose(fp);
      if(flag!='y'&&'Y') break;
      fp = fopen("student.txt","a");
     }
     renew_stu();
     system("cls");
     stu_operate();
    } 
    /*查询学生信息*/
    void search_stu(void){
     system("cls");
     printf("\n请选择查询方式:");
     printf("\n 1.学号查询");
     printf("\n 2.姓名查询");
     printf("\n请选择:");
     int h;
     scanf(" %d",&h);
     switch(h){
      case 1:
       search_stu_id();
       break;
      case 2:
       search_stu_name();
       break;
        
     } 
    }
    /*学号查询*/
    void search_stu_id(void){
     system("cls");
     char id[9];
     printf("\n输入学生的学号:");
     fflush(stdin); 
     scanf("%s",id);
     int h;
     for(h = 0;h <= i;h++){
      if(strcmp(stu[h].stu_ID,id)==0){
       system("cls");
       printf("查找成功!"); 
       printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
       printf("\n\t-----------------------------------------------------------------"); 
       printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
       system("pause");
       system("cls");
       stu_operate();
      }
     }
     system("cls");
     printf("没有此学号!\n");
     system("pause");
     system("cls");
     stu_operate();
    } 
    /*姓名查询*/
    void search_stu_name(void){
     system("cls");
     char name[9];
     printf("\n输入学生的姓名:");
     fflush(stdin); 
     scanf("%s",name);
     int h;
     for(h = 0;h <= i;h++){
      if(strcmp(stu[h].stu_name,name)==0){
       system("cls");
       printf("查找成功!"); 
       printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
       printf("\n\t---------------------------------------------------------"); 
       printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
       system("pause");
       system("cls");
       stu_operate();
      }
     }
     system("cls");
     printf("没有此姓名!");
     system("pause");
     system("cls");
     stu_operate();
    } 
    /*显示所有学生信息*/
    void show_stu(void){
     int h;
     if(i == -1){
      printf("\n还没有录入信息!\n");
      system("pause");
      system("cls");
      stu_operate();
     }
     system("cls");
     printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
     printf("\n\t---------------------------------------------------------"); 
     for(h = 0;h <= i;h++){
      printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
     }
     //
     fflush(stdin);
     printf("\n\t1.修改");
     printf("\n\t2.删除"); 
     printf("\n\t3.返回");
     printf("\n\n 选择要进行的操作:");
     int flag;
     fflush(stdin);
     scanf("%d",&flag);
     switch(flag){
      case 1:
       edit_stu();
       break; 
      case 2:
       delete_stu();
       break;
      default:
       system("cls");
       stu_operate();
       break;
        
     } 
    }
    /*编辑学生信息*/
    void edit_stu(void){
     printf("\n输入需要编辑的学生的学号:");
     char id[10];
     getchar();
     scanf("%s",id);
     int h;
     for(h = 0;h <= i;h++){
      if(strcmp(stu[h].stu_ID,id)==0){//找到需要编辑的行 
       system("cls");
       printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
       printf("\n\t---------------------------------------------------------"); 
       printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
       printf("\n这是修改前的数据,请依次输入修改值:\n\t");
       fflush(stdin);
       scanf("%s %s %s %s %s %s %s",&stu[h].stu_ID,&stu[h].stu_name,&stu[h].sex,&stu[h].age,&stu[h].collage,&stu[h].grade,&stu[h].contact);
       int k;
       for(k = 0;k <= i;k++){
        if(strcmp(stu[k].stu_ID,stu[h].stu_ID)==0){
         if(k==h){
          continue;
         } else {//学号不唯一 
          printf("\n此学号已存在!重新输入学号:");
          fflush(stdin);
          scanf("%s",&stu[h].stu_ID);
          k = -1;
         }
        }
       }
       /*将修改信息写入文件*/
       //思想:将原文件重新写入一遍
       renew_stu();
       system("cls");
       printf("修改成功!\n");
       system("pause"); 
       system("cls");
       stu_operate();
      }
     }
     printf("\n此学号不存在!\n");
     system("pause");
     system("cls");
     stu_operate();
    }
    /*删除学生信息*/
    void delete_stu(void){
     printf("\n输入需要编辑的学生的学号:");
     char id[10];
     getchar();
     scanf("%s",id);
     int h;
     for(h = 0;h <= i;h++){
      if(strcmp(stu[h].stu_ID,id)==0){//找到需要编辑的行 
       system("cls");
       //检查他/她是否选课了
       int a;
       for(a = 0;a <= x;a++){
        if(h==sel[a].s){//选课了则将对应课程记录减1,以及选课数组减1 
         delete_sel(a);
         a = -1;
         x--;
         continue;
        }
       } 
       //如果只有一条记录
       if(i==0){
        i = -1;
        renew_stu();
        printf("修改成功!\n");
        system("pause"); 
        system("cls");
        stu_operate();
       } 
        
       int k;
       for(k = h+1;k <= i;k++,h++){//将数组直接向前移动 
        strcpy(stu[h].stu_ID,stu[k].stu_ID); 
        strcpy(stu[h].stu_name,stu[k].stu_name); 
        strcpy(stu[h].sex,stu[k].sex); 
        strcpy(stu[h].grade,stu[k].grade); 
        strcpy(stu[h].contact,stu[k].contact); 
        strcpy(stu[h].collage,stu[k].collage); 
        strcpy(stu[h].age,stu[k].age); 
       }
       /*将修改信息写入文件*/
       //思想:将原文件重新写入一遍
       renew_stu();
       i--;
       system("cls");
       printf("修改成功!\n");
       system("pause"); 
       system("cls");
       stu_operate();
      }
     }
     printf("\n此学号不存在!\n");
     system("pause");
     system("cls");
     stu_operate();
    }
    //--------------------------------------课程信息插入--------------------------------------
    void input_cou(void){
     char flag;
     FILE * fp;
     //--判断文件是否为空 
     fp = fopen("course.txt","r+");
     flag = fgetc(fp);
     if(flag==EOF){
      fprintf(fp,"代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数\n");
     }
     fclose(fp);
     //-- 
     fp = fopen("course.txt","a+");
     if(fp == NULL){
      printf("打开文件失败!");
      system("cls");
      cou_operate();
     }
     printf("代码\t名称\t性质\t总学时\t学分\t开课学期\n");
     while(1){
      j++;
      scanf("%s %s %s %s %s %s",&cou[j].course_ID,&cou[j].course_name,&cou[j].property,&cou[j].period,&cou[j].credit,&cou[j].time);
      //--数据查重
      int h; 
      for(h = 0;h < j;h++){
       if(j == 0) break;//第一条数据不需要查重 
       if (strcmp(cou[h].course_ID,cou[j].course_ID)==0) {
        printf("该课程号已存在,请重新输入!\n");
        scanf("\n%s %s %s %s %s %s",&cou[j].course_ID,&cou[j].course_name,&cou[j].property,&cou[j].period,&cou[j].credit,&cou[j].time);
        h = -1;
       }
      }
      //-- 
      fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[j].course_ID,cou[j].course_name,cou[j].property,cou[j].period,cou[j].credit,cou[j].time,cou[j].people);
      printf("\n录入成功,继续录入输入y,返回上一级请按任意键:");
      fflush(stdin); 
      scanf("%c",&flag); 
      fclose(fp);
      if(flag!='y'&&'Y') break;
      fp = fopen("course.txt","a");
     }
     renew_cou();
     system("cls");
     cou_operate();
    } 
    /*查询课程信息*/
    void search_cou(void){
     system("cls");
     printf("\n请选择查询方式:");
     printf("\n 1.课程号查询");
     printf("\n 2.课程名查询");
     printf("\n请选择:");
     int h;
     scanf(" %d",&h);
     switch(h){
      case 1:
       search_cou_id();
       break;
      case 2:
       search_cou_name();
       break;
        
     } 
    }
    /*课程号查询*/
    void search_cou_id(void){
     system("cls");
     char id[9];
     printf("\n输入课程号:");
     fflush(stdin); 
     scanf("%s",id);
     int h;
     for(h = 0;h <= j;h++){
      if(strcmp(cou[h].course_ID,id)==0){
       system("cls");
       printf("查找成功!"); 
       printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数");
       printf("\n\t-----------------------------------------------------------------"); 
       printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people);
       system("pause");
       system("cls");
       cou_operate();
      }
     }
     system("cls");
     printf("没有此课程号!\n");
     system("pause");
     system("cls");
     cou_operate();
    } 
    /*课程名查询*/
    void search_cou_name(void){
     system("cls");
     char name[9];
     printf("\n输入课程名:");
     fflush(stdin); 
     scanf("%s",name);
     int h;
     for(h = 0;h <= j;h++){
      if(strcmp(cou[h].course_name,name)==0){
       system("cls");
       printf("查找成功!"); 
       printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数");
       printf("\n\t---------------------------------------------------------"); 
       printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people);
       system("pause");
       system("cls");
       cou_operate();
      }
     }
     system("cls");
     printf("没有此课程名!");
     system("pause");
     system("cls");
     cou_operate();
    } 
    /*显示所有课程信息*/
    void show_cou(void){
     int h;
     if(j == -1){
      printf("\n还没有录入信息!\n");
      system("pause");
      system("cls");
      cou_operate();
     }
     system("cls");
     printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数");
     printf("\n\t-------------------------------------------------------------"); 
     for(h = 0;h <= j;h++){
      printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people);
     }
     //
     fflush(stdin);
     printf("\n\t1.修改");
     printf("\n\t2.删除"); 
     printf("\n\t3.返回");
     printf("\n\n 选择要进行的操作:");
     int flag;
     fflush(stdin);
     scanf("%d",&flag);
     switch(flag){
      case 1:
       edit_cou();
       break; 
      case 2:
       delete_cou();
       break;
      default:
       system("cls");
       cou_operate();
       break;
        
     } 
    }
    /*编辑课程信息*/
    void edit_cou(void){
     printf("\n输入需要编辑的课程号:");
     char id[10];
     getchar();
     scanf("%s",id);
     int h;
     for(h = 0;h <= j;h++){
      if(strcmp(cou[h].course_ID,id)==0){//找到需要编辑的行 
       system("cls");
       printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期");
       printf("\n\t-------------------------------------------------------------"); 
       printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time);
       printf("\n这是修改前的数据,请依次输入修改值:\n\t");
       fflush(stdin);
       scanf("%s %s %s %s %s %s",&cou[h].course_ID,&cou[h].course_name,&cou[h].property,&cou[h].period,&cou[h].credit,&cou[h].time);
       int k;
       for(k = 0;k <= j;k++){
        if(strcmp(cou[k].course_ID,cou[h].course_ID)==0){
         if(k==h){
          continue;
         } else {//课程号不唯一 
          printf("\n此课程号已存在,重新输入:");
          fflush(stdin);
          scanf("%s",&cou[h].course_ID);
          k = -1;
         }
        }
       }
       /*将修改信息写入文件*/
       //思想:将原文件重新写入一遍
       renew_cou();
       system("cls");
       printf("修改成功!\n");
       system("pause"); 
       system("cls");
       cou_operate();
      }
     }
     printf("\n此课程号不存在!\n");
     system("pause");
     system("cls");
     cou_operate();
    }
    /*删除课程信息*/
    void delete_cou(void){
     printf("\n输入需要编辑的课程号:");
     char id[10];
     getchar();
     scanf("%s",id);
     int h;
     for(h = 0;h <= j;h++){
      if(strcmp(cou[h].course_ID,id)==0){//找到需要编辑的行 
       system("cls");
       //如果只有一条记录
       if(j==0){
        j = -1;
        renew_cou();
        printf("修改成功!\n");
        system("pause"); 
        system("cls");
        cou_operate();
       }
       //查看是否有人选课
       if(cou[h].people!=0){//有人选课时
        int a;
        for(a = 0;a <= x;a++){
         if(sel[a].c == h){
          delete_sel(a);
          a = -1;
          x--;
          continue;
         }
        }
       }
       int k;
       for(k = h+1;k <= j;k++,h++){//将数组直接向前移动 
        strcpy(cou[h].course_ID,cou[k].course_ID); 
        strcpy(cou[h].course_name,cou[k].course_name); 
        strcpy(cou[h].property,cou[k].property); 
        strcpy(cou[h].period,cou[k].period); 
        strcpy(cou[h].credit,cou[k].credit); 
        strcpy(cou[h].time,cou[k].time); 
       }
       /*将修改信息写入文件*/
       //思想:将原文件重新写入一遍
       renew_cou();
       j--;
       system("cls");
       printf("修改成功!\n");
       system("pause"); 
       system("cls");
       cou_operate();
      }
     }
     printf("\n此课程号不存在!\n");
     system("pause");
     system("cls");
     cou_operate();
    }
     
    //--功能函数
    /*更新系统数据至文件*/
    void renew_stu(void){
     FILE * fp;
     fp = fopen("student.txt","w+");
     if(fp == NULL){
      printf("\n打开文件失败,无法保存至文件。\n");
      fclose(fp);
      return ;
     }
     fprintf(fp,"学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式\n");
     if(i == -1){
      fclose(fp);
      return;
     }
     int h;
     for(h = 0;h <= i;h++){
      fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
     }
     fclose(fp);
      
    } 
    void renew_cou(void){
     FILE * fp;
     fp = fopen("course.txt","w+");
     if(fp == NULL){
      printf("\n打开文件失败,无法保存至文件。\n");
      fclose(fp);
      return ;
     }
     fprintf(fp,"代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数\n");
     if(j == -1){
      fclose(fp);
      return;
     }
     int h;
     for(h = 0;h <= j;h++){
      fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t\t%s\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people); }
     fclose(fp);
      
    }
    
    

    参考代码2

    权限密码有错,选课功能没有完善

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>
    
    struct Student
    {
    	int num;		//课程编号 
    	char name[32];	//名称 
    	char nat[32];	//性质 
    	int time1;		//总学时 
    	int time2;		//授课学时 
    	int time3;		//实验学时 
    	int fen;		//学分 
    	int cho;		//选课人数 
    };
    struct Student wor[40];
    
    int count=0,i=0;				//全局变量,当读取时,i,count已有值,可再次进行录入功能时继续添加信息,且原有信息不被覆盖
    struct Code				//权限 
    {
    	char stu[10];
    	char tea[10];
    };
    
    struct Code code[40];
    
    char count1=0;
    char count2=0;
    char one=1;
    char two=2;
    
    char stuu()//学生登陆
    {
    	char num[32];
    	int i;
    	printf("请输入您的密码\n"); 
    	scanf("%s",num);
    	if(strlen(num)<=10)
    	{
    		for(i=0;i<40;i++)
    		{
    			if(strcmp(code[i].stu,num)==0)
    			{
    				printf("登陆成功\n"); 
    				_getch();
    				return 0; 
    			}
    		}
    	}
    	printf("输入错误,请重新输入\n"); 
    	return -1; 
    } 
    
    char teaa()//管理员登陆
    {
    	char num[32];
    	int i;
    	printf("请输入您的密码\n"); 
    	scanf("%s",num);
    	if(strlen(num)<=10)
    	{
    		for(i=0;i<40;i++)
    		{
    			if(strcmp(code[i].tea,num)==0)
    			{
    				printf("登陆成功\n"); 
    				_getch();
    				return 0; 
    			}
    		}
    	}
    	printf("输入错误,请重新输入\n"); 
    	return -1;
    } 
    
    char zhuce() //注册 
    {	
    	int i,j;
    	printf("管理员注册请按1,学生注册请按2!\n");
    	scanf("%d",&j);
    	if(j==1)
    	{
    		char num[32];
    		printf("请输入数字,不可超出10位\n");
    		scanf("%s",num);
    		if(strlen(num)<=10)
    		{
    			for(i=0;i<40;i++)
    			{
    				if(strcmp(code[i].tea,num)==0)
    				{
    					printf("数字已存在,请重新输入\n"); 
    					_getch();
    					return -1; 
    				}
    				printf("注册成功\n");
    				strcpy(code[count1].tea,num);
    				count1++; 
    				_getch();
    				return -1; 
    			}
    		}
    		printf("输入错误,请重新输入\n"); 
    		_getch();
    	 	return -1;
    	}
    	else if(j==2)
    	{
    		char num[32];
    		printf("请输入数字,不可超出10位\n");
    		scanf("%s",num);
    		if(strlen(num)<=10)
    		{
    			for(i=0;i<40;i++)
    			{
    				if(strcmp(code[i].stu,num)==0)
    				{
    					printf("数字已存在,请重新输入\n"); 
    					_getch();
    					return -1; 
    				}
    			}
    			printf("注册成功\n");
    			strcpy(code[count2].stu,num);
    			count2++; 
    			_getch();
    			return -1; 
    		}
    		printf("输入错误,请重新输入\n"); 
    		_getch();	
    		return -1; 
    	}
    	printf("输入错误,请重新输入\n"); 
    	_getch();
    	return -1; 	
    }
    char menu1()
    {
    
    	system("cls");
    	int num;
    	while(1)
    	{
    		system("cls");
    		printf("\t\t--------------------------\n\n");
    		printf("\t\t1.学生登陆\t2.管理员登陆\n\n");
    		printf("\t\t3.注册      4.退出系统\n\n");
    		printf("\t\t--------------------------\n\n");
    		scanf("%d",&num);
    		char c,d;
    		switch(num)
    		{
    			case 1:
    				stuu();
    				c=stuu();
    				if(c==0)
    				{
    					c=2;
    					one++;
    					return -1;
    				}
    			
    				break;
    			case 2:
    				teaa();
    				d=teaa();
    				if(d==0)
    				{
    					d=2;
    					two++;
    					return -1;
    				}
    			
    				break;
    			case 3:
    				zhuce();
    				break;
    			case 4:
    				exit(0);
    				break;
    		}	
    	}
    }
    
    void input()					
    {
    	for(;i<40;i++)
    	{
    		printf("\n");
    		printf("****************      数据录入      ***********\n");
    		printf("\n\n");
    		printf("请输入课程编号:");
    	    scanf("%d",&wor[i].num);
    		fflush(stdin);
    	    if(wor[i].num==0) break;          //当输入的课程编号为“0”时,录入结束
    		printf("请输入课程名称:");
    	    scanf("%s",&wor[i].name);
    		printf("请输入课程性质:");
    	    scanf("%s",&wor[i].nat);
    		printf("请输入总学时:");
    	    scanf("%d",&wor[i].time1);
    		printf("请输入授课学时:");
    	    scanf("%d",&wor[i].time2);
    		printf("请输入实验学时:");
    	    scanf("%d",&wor[i].time3);
    		printf("请输入课程学分:");
    	    scanf("%d",&wor[i].fen);
    	
    		count++;	    //记录录入信息的个数
    		system("cls");	//清屏
    	}
    }
    void brouse()//浏览课程 
    {
    	int i;
    	printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    	printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分 选课人数 \n");
    	printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    	for(i=0;i<count;i++)
    	{
    		printf(" %d    %s     %s    %d    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen,wor[i].cho);
    	    printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    	}
    	
    	
    	printf("请按任意键返回");
    	_getch();
    }
    void search()//信息查询
    {
    	void num();
    	void name();
    	int i;
    	printf("\n\n");
    	printf("请选择查询方式:\n");
    	printf("\n");
    	printf("┏━━━━━━━━━━━━━━━━━━━━━┓\n");
    	printf("┃  1.按课程学分查询     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  2.按课程性质查询     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  4.返回系统页面       ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("\n");
    	printf("请输入您的选择,小系为您服务:\n");
    	scanf("%d",&i);
    	system("cls");
    	switch(i)
    	{
            case 1: num();break;
    		case 2: name();break;
    		case 3:break;
    	}
    }
    void num()//学分查询
    {
    	int i,num;
    	printf("请输入所查询的课程学分:\n");
    	scanf("%d",&num);
    	for(i=0;i<count;i++)
    		if(wor[i].num==num)
    		{
    			printf("查询结果如下:\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("*********    很抱歉,没有查到      *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void name()//名称查询
    {
    	int i;
    	char name[10];
    	printf("请输入所查课程名称:\n");
    	scanf("%s",name);
    	for(i=0;i<count;i++)		
    		if(strcmp(wor[i].name,name)==0)
    		{
    			printf("查询结果如下:\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");	
    			break;
    		}
    	
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    
    }
    
    char choice()	//选课 
    {
    	int i;
    	char name[10];
    	printf("请输入所选课程名称:\n");
    	scanf("%s",name);
    	for(i=0;i<count;i++)		
    		if(strcmp(wor[i].name,name)==0)
    		{
    			printf("*******************************************\n");
    			printf("*********      恭喜,选课成功     *********\n");
    			printf("*******************************************\n");
    			wor[i].cho++;
    			_getch();
    			return -1;
    		}
    	
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    
    
    }
    
    
    void revise()//课程信息修改。
    {
    	void renum();
    	void re_name();
    	void renat();
    	void retime1();
    	void retime2();
    	void retime3();
    	void refen();
    	int j;
    	printf("选择修改内容:\n");
    	printf("┏━━━━━━━━━━━━━━━━━━━━━┓\n");
    	printf("┃  1.课程编号修改     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  2.课程名称修改     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  3.课程性质修改     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  4.总学时修改       ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  5.授课学时修改     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  6.实验学时修改     ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  7.学分修改         ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("┃  8.返回管理系统页面 ┃\n");
    	printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
    	printf("请输入您的选择,小系为您服务:\n");
    	scanf("%d",&j);
    	system("cls");
    	switch(j)
    	{
    		case 1: renum();break;
            case 2: re_name();break;
    		case 3: renat();break;
    		case 4: retime1();break;
    		case 5: retime2();break;
    		case 6: retime3();break;
    		case 7: refen();break;
    		case 8:break;
    	}
    }
    
    void renum()//课程编号修改
    {
    	char name[32];
    	int i,t;
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("本课程初始编号是:%d\n",wor[i].num);
    	        printf("修改后的之后的编号是:");
    			scanf("%d",&t);
    	        wor[i].num=t;
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("****************************************************\n");
    			printf("以下是修改之后的信息\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");	
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void re_name()//名称修改
    {
    	char name[32];
    	int i;
    	char t[32];
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("本课程初始名称是:%d\n",wor[i].name);
    	        printf("修改后的之后的名称是:");
    			scanf("%s",t);
    	        strcpy(wor[i].name,t);
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("****************************************************\n");
    			printf("以下是修改之后的课程信息\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");	
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    	    printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void renat()//课程性质修改
    {
    	char name[32];
    	int i;
    	char nat[32];
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("课程初始性质是:%d\n",wor[i].nat);
    	        printf("修改后的之后的性质是:");
    			scanf("%s",nat);
    	        strcpy(wor[i].nat,nat);
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("****************************************************\n");
    			printf("以下是修改之后的课程信息\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");	
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void retime1()//总学时修改
    {
    	int t,i;
    	char name[32];
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("本课程初始总学时是:%d\n",wor[i].time1);
    	        printf("修改后的总学时是:");
    			scanf("%d",&t);
    	        wor[i].time1=t;
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("****************************************************\n");
    			printf("以下是修改之后的课程信息\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");	
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void retime2()//授课学时修改
    {
    	int time2;
    	char name[32];
    	int i;
    	printf("请输入您要修改的课程的名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("本课程初始授课学时是:%s\n",wor[i].time2);
    	        printf("修改后的之后的授课学时是:");
    			scanf("%d",&time2);
    	        wor[i].time2=time2;
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("****************************************************\n");
    			printf("以下是修改之后的课程信息\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");	
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    
    }
    void retime3()//实验学时修改 
    {
        int  time3;
    	char name[32];
    	int i;
    	printf("请输入您要修改的课程的名称是:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("本课程的初始实验学时是:%d\n",wor[i].time3);
    			printf("修改后的实验学时是:");
    			scanf("%d",&time3);
    			wor[i].time3=time3;		
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("****************************************************\n");
    			printf("以下是修改之后的课程信息\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void refen()//课程学分修改 
    {
    	int fen;
    	char name[32];
    	int i;
    	printf("请输入您要修改的课程名称是:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(wor[i].name,name)==0)
    		{
    	        printf("本课程初始课程学分是:%s\n",wor[i].fen);
       	        printf("修改后的课程学分是:");
    			scanf("%d",&fen);
    	        wor[i].fen=fen;			
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("******       o(≧v≦)o~~好棒!!修改成功!!!     ******\n");
    			printf("\n");
    			printf("以下是修改之后的课程信息\n");
    			printf("****************************************************\n");
    			printf("┏━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┓\n");
    			printf(" 课程编号 课程名称 课程性质  总学时 授课学时 实验学时 学分  \n");
    			printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			printf(" %d    %s     %s    %d    %d    %d    %d\n",wor[i].num,wor[i].name,wor[i].nat,wor[i].time1,wor[i].time2,wor[i].time3,wor[i].fen);
    	  		printf("┗━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┃━━━━┛\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("*******************************************\n");
    		printf("********* 很抱歉,没有该课程的信息 *********\n");
    		printf("*******************************************\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    
    void dele()//课程删除 
    { 
    	
    	int i,j;
    	char del_name[10];
    	printf("请输入需要删除的课程名称:\n");
    	scanf("%s",del_name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	{
    		if((strcmp(wor[i].name,del_name)==0))
    		{
    			for(j=i;j<count;j++)
    			{
    				wor[j]=wor[j+1];
    			}
    			printf("****************************************************\n");
    	        printf("\n");
    		    printf("             o(≧v≦)o~~好棒!!删除成功!!!           \n");
    		    printf("      您可以返回菜单在浏览功能项中查看删除结果!!!   \n");
    			printf("\n");
    	        printf("****************************************************\n");			
    		    count--;
    		}
    	}
    	
    	printf("请按任意键返回");
    	_getch();
    }
    
    void save()//文件建立及保存                                                                                                        
    {
    	FILE * fp;
    	int i;	
    	if((fp=fopen("Stu_list","wb"))==NULL)
    	{
    		printf("不能打开文件\n");
    		return;
    	}
    	for(i=0;i<count;i++)
    	{
    		if(fwrite(&wor[i],sizeof(struct Student),1,fp)!=1)
    			printf("文件输出错误\n");
    	}	
    	fclose(fp);
    	printf("\n\n");
    	printf("***********************************************\n");
    	printf("\n");
    	printf("******    o(≧v≦)o~~好棒!!保存成功!!!   ******\n");
    	printf("\n");
    	printf("***********************************************\n");
    	printf("请按任意键返回");
    	_getch();
    }
    void read()//数据的读取
    {
    	FILE * fp;
    	fp=fopen("Stu_list","rb");
    	do
    	{
    		fread(&wor[i],sizeof(struct Student),1,fp);//地址  长度   条数  指针
    		count++;
    		i++;
    	}
    	while(!feof(fp));//判断不等于0
    	i--;
    	count--;
    	fclose(fp);
    	printf("\n\n");
    	printf("***********************************\n");
    	printf("\n");
    	printf("    o(≧v≦)o~~好棒!!读取成功!!!   \n");
    	printf("\n");
    	printf("***********************************\n");
    	printf("请按任意键返回");
    	_getch();
    }
    char quit()
    {
    	int q;
    	printf("***********************************\n");
    	printf("**********  确认退出吗?  **********\n");
    	printf("\n");
    	printf("*******       1,确定        *******\n");
        printf("*******       2,取消        *******\n");
    	printf("\n");
    	printf("***********************************\n");
    	printf("请输入您的选择,小系为您服务:\n");
    	scanf("%d",&q);
    	switch(q)
    	{
            case 1:exit(1);break;
    		case 2:break;
    	}
    }
    
    
     
    int main()
    {
    	int m;
    	for(m=0;m<40;m++)
    	{
    		wor[m].cho=0;
    	}
    	
    	int k;
    	menu1();
    	if(one>1) 
    	{
    		one=1;
    		system("cls"); 
    		while(1)
    		{
    			system("cls");
    			printf("\n");
    			printf("\t欢迎来到学生界面\n");
    			printf("\n");
    			printf("\t(1)   课程信息浏览                      \n");
    			printf("\t(2)   课程信息查询                      \n");
    			printf("\t(3)   课程信息读取                      \n");
    			printf("\t(4)   学生选课                      \n");
    		    printf("\t(5)   退出                              \n");
    			printf("\n\n");
    			printf("请输入您的选择,小系为您服务:\n");
        	    scanf("%d",&k);
    		    switch(k)
    			{
    			   case 1:system("cls");brouse();break;
    			   case 2:system("cls");search();break;
    			   case 3:system("cls");read();break;
    			   case 4:system("cls");choice();break;
    			   case 5:system("cls");quit();break;
    			}
    		}
    	}else if(two>2) 
    	{
    		two=2;
    		system("cls");
    		while(1)
    		{
    			system("cls");
    			printf("\n");
    			printf("\t欢迎来到管理者界面 \n");
    			printf("\n");
    		    printf("\t(1)   课程信息录入                      \n");
    			printf("\t(2)   课程信息浏览                      \n");
    			printf("\t(3)   课程信息查询                      \n");
    			printf("\t(4)   课程信息修改                      \n");
    			printf("\t(5)   课程信息删除                      \n");
    			printf("\t(6)   课程数据文件建立                  \n");
    			printf("\t(7)   课程信息读取                      \n");
    		    printf("\t(8)   退出                              \n");
    			printf("\n\n");
    			printf("请输入您的选择,小系为您服务:\n");
        	    scanf("%d",&k);
    		    switch(k)
    			{
    			   case 1:system("cls");input();break;
    			   case 2:system("cls");brouse();break;
    			   case 3:system("cls");search();break;
    		       case 4:system("cls");revise();break;
    			   case 5:system("cls");dele();break;
    			   case 6:system("cls");save();break;
    			   case 7:system("cls");read();break;
    			   case 8:system("cls");quit();break;
    			}
    		}
    	}
    	
    
    	return 0;
    }
    
    

    参考代码3

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>
    
    struct Student
    {
    	int num;		//课程编号 
    	char name[32];	//名称 
    	char nat[32];	//性质 
    	int time1;		//总学时 
    	int time2;		//授课学时 
    	int time3;		//实验学时 
    	int fen;		//学分 
    };
    
    struct Student stu[40];
    int count=0,i=0;
    
    void input()					
    {
    	printf("\n\n");
    	printf("请输入课程编号:");scanf("%d",&stu[i].num);
    	printf("请输入课程名称:");scanf("%s",&stu[i].name);
    	printf("请输入课程性质:");scanf("%s",&stu[i].nat);
    	printf("请输入总学时:");scanf("%d",&stu[i].time1);
    	printf("请输入授课学时:");scanf("%d",&stu[i].time2);
    	printf("请输入实验学时:");scanf("%d",&stu[i].time3);
    	printf("请输入课程学分:");scanf("%d",&stu[i].fen);
    	count++;	    //记录录入信息的个数
    	system("cls");	//清屏
    	printf("-------------------------------------------\n\n");
    	printf("                  修改成功                 \n\n");
    	printf("-------------------------------------------\n\n");
    	printf("\n\n请按任意键返回");
    	_getch();	
    }
    void brouse()					//浏览课程 
    {
    	int i;
    	printf("\n");
    	printf("编号  名称   性质   总学时   授课学时   实验学时   学分\n");
    	printf("\n");
    	for(i=0;i<count;i++)
    	{
    		printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].nat,stu[i].time1,stu[i].time2,stu[i].time3,stu[i].fen);
    	    printf("\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void search()					//查询课程 
    {
    	void num();
    	void name();
    	int i;
    	printf("\n\n");
    	printf("  1.按课程学分查询     \n");
    	printf("  2.按课程性质查询     \n");
    	printf("  3.返回系统页面       \n");
    	printf("\n");
    	scanf("%d",&i);
    	system("cls");
    	switch(i)
    	{
            case 1: num();break;
    		case 2: name();break;
    		case 3:break;
    	}
    }
    void num()//学分查询
    {
    	int i,num;
    	printf("请输入所查询的课程学分:\n");
    	scanf("%d",&num);
    	for(i=0;i<count;i++)
    		if(stu[i].num==num)
    		{
    			printf("查询结果如下:\n\n");
    			printf("\n编号  名称   性质   总学时   授课学时   实验学时   学分\n\n");
    			printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n\n",stu[i].num,stu[i].name,stu[i].nat,stu[i].time1,stu[i].time2,stu[i].time3,stu[i].fen);
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void name()//名称查询
    {
    	int i;
    	char name[10];
    	printf("请输入所查课程名称:\n");
    	scanf("%s",name);
    	for(i=0;i<count;i++)		
    		if(strcmp(stu[i].name,name)==0)
    		{
    			printf("查询结果如下:\n\n");
    			printf("\n编号  名称   性质   总学时   授课学时   实验学时   学分\n\n");
    			printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n\n",stu[i].num,stu[i].name,stu[i].nat,stu[i].time1,stu[i].time2,stu[i].time3,stu[i].fen);
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    
    }
    
    void revise()//课程信息修改。
    {
    	void renum();
    	void re_name();
    	void renat();
    	void retime1();
    	void retime2();
    	void retime3();
    	void refen();
    	int j;
    
    	printf("  1.课程编号修改     \n");
    	printf("  2.课程名称修改     \n");
    	printf("  3.课程性质修改     \n");
    	printf("  4.总学时修改       \n");
    	printf("  5.授课学时修改     \n");
    	printf("  6.实验学时修改     \n");
    	printf("  7.学分修改         \n");
    	printf("  8.返回管理系统页面 \n");
    	scanf("%d",&j);
    	system("cls");
    	switch(j)
    	{
    		case 1: renum();break;
            case 2: re_name();break;
    		case 3: renat();break;
    		case 4: retime1();break;
    		case 5: retime2();break;
    		case 6: retime3();break;
    		case 7: refen();break;
    		case 8:break;
    	}
    }
    
    void renum()//课程编号修改
    {
    	char name[32];
    	int i,t;
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("本课程初始编号是:%d\n",stu[i].num);
    	        printf("修改后的之后的编号是:");
    			scanf("%d",&t);
    	        stu[i].num=t;
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void re_name()//名称修改
    {
    	char name[32];
    	int i;
    	char t[32];
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("本课程初始名称是:%d\n",stu[i].name);
    	        printf("修改后的之后的名称是:");
    			scanf("%s",t);
    	        strcpy(stu[i].name,t);
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void renat()//课程性质修改
    {
    	char name[32];
    	int i;
    	char nat[32];
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("课程初始性质是:%d\n",stu[i].nat);
    	        printf("修改后的之后的性质是:");
    			scanf("%s",nat);
    	        strcpy(stu[i].nat,nat);
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void retime1()//总学时修改
    {
    	int t,i;
    	char name[32];
    	printf("请输入您要查询的课程名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("本课程初始总学时是:%d\n",stu[i].time1);
    	        printf("修改后的总学时是:");
    			scanf("%d",&t);
    	        stu[i].time1=t;
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void retime2()//授课学时修改
    {
    	int time2;
    	char name[32];
    	int i;
    	printf("请输入您要修改的课程的名称:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("本课程初始授课学时是:%s\n",stu[i].time2);
    	        printf("修改后的之后的授课学时是:");
    			scanf("%d",&time2);
    	        stu[i].time2=time2;
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    
    }
    void retime3()//实验学时修改 
    {
        int  time3;
    	char name[32];
    	int i;
    	printf("请输入您要修改的课程的名称是:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("本课程的初始实验学时是:%d\n",stu[i].time3);
    			printf("修改后的实验学时是:");
    			scanf("%d",&time3);
    			stu[i].time3=time3;		
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    void refen()//课程学分修改 
    {
    	int fen;
    	char name[32];
    	int i;
    	printf("请输入您要修改的课程名称是:");
    	scanf("%s",name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	    if(strcmp(stu[i].name,name)==0)
    		{
    	        printf("本课程初始课程学分是:%s\n",stu[i].fen);
       	        printf("修改后的课程学分是:");
    			scanf("%d",&fen);
    	        stu[i].fen=fen;			
    			printf("-------------------------------------------\n\n");
    			printf("                  修改成功                 \n\n");
    			printf("-------------------------------------------\n\n");
    			break;
    		}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,没有查到              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	printf("请按任意键返回");
    	_getch();
    }
    
    void dele()							//删除课程 
    { 
    	
    	int i,j;
    	char del_name[10];
    	printf("请输入需要删除的课程名称:\n");
    	scanf("%s",del_name);
    	printf("\n\n");
    	for(i=0;i<count;i++)
    	{
    		if((strcmp(stu[i].name,del_name)==0))
    		{
    			for(j=i;j<count;j++)
    			{
    				stu[j]=stu[j+1];
    			}
    			printf("-------------------------------------------\n\n");
    			printf("                  删除成功                 \n\n");
    			printf("-------------------------------------------\n\n");			
    		    count--;
    		}
    	}
    	if(i>=count)
    	{
    		printf("-------------------------------------------\n\n");
    		printf("              很抱歉,删除失败              \n\n");
    		printf("-------------------------------------------\n\n");
    	}
    	
    	printf("请按任意键返回");
    	_getch();
    }
    
    void save()							//文件保存                                                                                                        
    {
    	FILE * fp;
    	int i;	
    	if((fp=fopen("Stu_list","wb"))==NULL)
    	{
    		printf("不能打开文件\n");
    		return;
    	}
    	for(i=0;i<count;i++)
    	{
    		if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1)
    			printf("文件输出错误\n");
    	}	
    	fclose(fp);
    	printf("\n\n");
    	printf("-------------------------------------------\n\n");
    	printf("                  保存成功                 \n\n");
    	printf("-------------------------------------------\n\n");
    	printf("请按任意键返回");
    	_getch();
    }
    void read()							//文件读取 
    {
    	FILE * fp;
    	fp=fopen("Stu","rb");
    	do
    	{
    		fread(&stu[i],sizeof(struct Student),1,fp);
    		count++;
    		i++;
    	}
    	while(!feof(fp));//判断不等于0
    	i--;
    	count--;
    	fclose(fp);
    	printf("\n\n");
    	printf("-------------------------------------------\n\n");
    	printf("                  读取成功                 \n\n");
    	printf("-------------------------------------------\n\n");
    	printf("请按任意键返回");
    	_getch();
    }
    void quit()
    {
    	int q;
    
    	printf("\n\t确认退出吗?\n\n");
    	printf("\t1,确定\n");
        printf("\t2,取消\n\n");
    	scanf("%d",&q);
    	switch(q)
    	{
            case 1:return;break;
    		case 2:break;
    	}
    }
    void main()
    {
    	int k;
    	while(1)
    	{
    		system("cls");
    		printf("\n");
    	    printf("1.增加课程              \n");
    		printf("2.浏览课程              \n");
    		printf("3.查询课程              \n");
    		printf("4.修改课程              \n");
    		printf("5.删除课程              \n");
    		printf("6.课程文件创建          \n");
    		printf("7.课程文件读取          \n");
    	    printf("8.退出选修课程系统      \n\n\n");
            scanf("%d",&k);
    	    switch(k)
    		{
    		   case 1:system("cls");input();break;
    		   case 2:system("cls");brouse();break;
    		   case 3:system("cls");search();break;
    	       case 4:system("cls");revise();break;
    		   case 5:system("cls");dele();break;
    		   case 6:system("cls");save();break;
    		   case 7:system("cls");read();break;
    		   case 8:system("cls");quit();break;
    		}
    	}
    }
    
    展开全文
  • 学生选修管理系统

    2018-06-19 19:45:23
    C语言编写,系统以菜单方式工作实现课程信息录入功能(课程信息用文件保存)并可对课程进行增加、修改、删除、可以用多种方式查看。
  • 此为大三数据库课程设计、后几经修改,有需要...学生、教师、课程的添加、修改、删除、查询等模块 学生信息录入模块 课程信息浏览(查询)模块 最新版本V1.2.3 下载地址: http://www.codesky.net/showhtml/20669.htm
  • C++学生选修课程系统设计

    千次阅读 多人点赞 2020-07-24 17:55:51
    学生信息包括:学号,姓名,性别,年龄,班级,专业等信息。课程信息包括:课程代码,课程名称,课程性质,总学分,学时,..."欢迎使用学生选课系统 "<<endl; cout<<setw(10)<<’ '<<"* * * *

    学生信息包括:学号,姓名,性别,年龄,班级,专业等信息。课程信息包括:课程代码,课程名称,课程性质,总学分,学时,显示选课人信息等。

    总体模块设计
    功能模块
    运行截图
    在这里插入图片描述

    代码

    using namespace std;
    void menu() //主菜单
    {
    cout<<endl;
    cout<<setw(14)<<’ ‘<<"欢迎使用学生选课系统 "<<endl;
    cout<<setw(10)<<’ '<<"* * * * * * * * * * * * * * * * \n";//输出提示性信息
    cout<<setw(12)<<’ ‘<<“请选择要进行的操作:\n”;//输出提示性信息
    cout<<setw(18)<<’ ‘<<" 1—信息录入 "<<endl;
    cout<<setw(18)<<’ ‘<<" 2—信息浏览 "<<endl;
    cout<<setw(18)<<’ ‘<<" 3—选择课程 "<<endl;
    cout<<setw(18)<<’ ‘<<" 4—删除信息 "<<endl;
    cout<<setw(18)<<’ ‘<<" 5—修改信息 "<<endl;
    cout<<setw(18)<<’ ‘<<" 6—退出程序 "<<endl;
    cout<<setw(10)<<’ '<<"
    * * * * * * * * * * * * * * * *\n";//输出提示性信息
    }
    class student //学生类
    {
    public:
    double xuehao; //学号
    char name[100]; //姓名
    char major[100]; //专业
    char coursename[100];//学生所选课程名
    void set() //学生信息录入,通过set()函数给学生类赋值
    {

    student stu; //定义类的对象stu
    cout<<endl;
    cout<<"请输入学生学号: ";
    cin>>stu.xuehao;
    cout<<"请输入学生姓名: ";
    cin>>stu.name;
    cout<<"请输入学生专业: ";
    cin>>stu.major;
    ofstream out("studentInfo.text",ios::app|ios::binary);//用于studentInfo.text的输出,并且文件以二进制方式操作和在文件尾部添加数据
    out.write((char *)(&stu),sizeof(stu));  //对二进制文件(studentInfo.text)进行写操作(起始地址,读取或者写入的字节数)
    out.close(); //关闭文件
    menu();//返回主菜单 
    

    }
    void checkstudent() //查询学生信息
    {
    student stu;//用于临时保存学生信息的变量
    cout<<“学生学号\t学生姓名\t所学专业”<<endl;
    ifstream is(“studentInfo.text”,ios::binary); //创建输入流对象is
    while(!is.peek())//判断文件
    {
    is.read((char *)(& stu),sizeof(stu)); //对二进制文件(学生.text)进行读操作
    cout<<""<<stu.xuehao<<"\t\t"<<stu.name<<"\t\t"<<stu.major<<"\t\t"<<endl;
    }
    is.close();
    menu();
    }

    void cancleStudent() //删除学生信息
    {
    string xueHaoNum,line,xuehao; //定义变量
    ifstream fin(“studentInfo.text.text”); //建立ifstream的对象fin与文件"studentInfo.text.text"相关联
    fstream outfile(“studentInfo.text.text”,ios::trunc|ios::out); //用于selectCourseResult.text文件的输出,打开一个文件进行写操作和使同名文件被删除
    cout<<endl;
    cout<<“请输入您要删除学生的学号: “;
    cin>>xueHaoNum;
    while(!fin.eof()) //文件不结束,执行循环体
    {
    getline(fin,line);
    istringstream stream(line); //串流输入
    xueHaoNum = line.substr(0,line.find(””,0));//复制子字符串
    if(xuehao != xueHaoNum)
    outfile<<line<<endl;//向outfile输出流中输出line
    }
    outfile.close();
    fin.close();
    fstream f(“studentInfo.text”,ios::trunc|ios::out); //打开一个文件进行写操作和使同名文件被删除
    ifstream outf(“studentInfo.text”); //用于selectCourseResult.text文件的输入
    f<<outf.rdbuf();//输出整个文件的内容
    outf.close();
    f.close();
    cout<<endl;
    menu();
    }

    void changestudent() //修改学生信息
    {
    student stu;
    int mark;
    cout<<endl;
    cout<<"请输入需要修改信息的学生学号 ";
    double xuehao;
    cin>>xuehao;
    ifstream is(“studentInfo.text”,ios::binary); //用于选课.text文件的输入
    for(int i=0;!is.eof();i++)
    {
    is.seekg(48*i); //对输入文件定位,第一个参数是偏移量,第二个参数是基地址
    is.read((char )(&stu),sizeof(stu)); //对二进制文件(学生.text)进行读操作
    if(stu.xuehao==xuehao)
    {
    cout<<"请输入要修改的学生姓名 ";
    cin>>stu.name;
    cout<<"请输入要修改的学生专业 ";
    cin>>stu.major;
    cout<<“修改完毕!”<<endl<<endl;
    mark=48
    i;
    menu();
    break;
    }
    }
    is.close();
    if(stu.xuehao!=xuehao)
    {
    cout<<“没有这个学生!”<<endl<<endl;
    menu();
    }
    else
    {
    ofstream os(“studentInfo.text”,ios::in|ios::binary); //用于选课.text的输出,并且文件进行读操作和二进制方式打开
    os.seekp(mark);//移动文件指针的标记
    os.write((char *)(&stu),sizeof(stu)); //对二进制文件(学生.text)进行写操作
    os.close();
    }
    }
    };

    class course //课程类
    {
    public:
    double coursenum; //课程编码
    char coursename[50];
    char coursetapy[50];
    double xuefen;
    double xueshi;
    char courseteacher[50];
    void set() //课程信息录入, 通过set()函数给课程类赋值
    {
    course cus; //作为临时的课程信息保存
    cout<<"请输入课程编码: ";
    cin>>cus.coursenum;
    cout<<"请输入课程名称: ";
    cin>>cus.coursename;
    cout<<"请输入课程类型: ";
    cin>>cus.coursetapy;
    cout<<"请输入课程学分: ";
    cin>>cus.xuefen;
    cout<<“请输入课程学时: “;
    cin>>cus.xueshi;
    cout<<“请输入主讲教师: “;
    cin>>cus.courseteacher;
    ofstream os(“courses.text”,ios::binary|ios::app);//将课程保存在“courses.txt”文件中
    os.write((char )(&cus),sizeof(cus)); //对二进制文件(课程.text)进行写操作
    os.close(); //文件(课程.text)的关闭
    menu();
    }
    void checkcourse() //浏览课程信息
    {
    cout<<endl;
    ifstream is(“courses.text”,ios::binary); //用于课程.text文件的输入
    cout<<“课程编码 课程名称 课程类型 课程学分 课程学时 主讲教师”<<endl;
    course cus;//临时保存课程信息
    while(!is.peek()) //检测文件结束
    {
    is.read((char
    )(&cus),sizeof(cus)); //对二进制文件(courses.text)进行读操作
    cout<<””<<cus.coursenum<<”\t “<<cus.coursename<<”\t “<<cus.coursetapy<<”\t “<<cus.xuefen<<”\t “<<cus.xueshi<<””<<cus.courseteacher<<endl; //setw()是控制输入的宽度
    }
    is.close();
    menu();
    }
    void canclecourse() //删除课程信息
    {
    string coursenum,line,course;
    ifstream fin(“courses.text”); //用于courses.text文件的输入
    fstream outfile(“courses.text”,ios::trunc|ios::out);// 打开一个文件进行写操作和使同名文件被删除
    cout<<endl;
    cout<<“请输入您要删除课程的编码: “;
    cin>>coursenum;
    while(!fin.eof()) //文件不结束,继续循环
    {
    getline(fin,line);
    istringstream stream(line); //串流输入
    coursenum = line.substr(0,line.find(””,0));
    if(course != coursenum)
    outfile<<line<<endl;
    }
    outfile.close();
    fin.close();
    fstream f(“courses.text”,ios::trunc|ios::out); //用于courses.text文件的输出,打开一个文件进行写操作和使同名文件被删除
    ifstream outf(“courses.text”); //用于学courses.text文件的输入
    f<<outf.rdbuf();//输出整个文件的内容
    outf.close();
    f.close();
    cout<<endl;
    menu();
    }
    void changecourse() //修改课程信息
    {
    course cus;
    int mark;//标记
    cout<<endl;
    cout<<"请输入要修改课程信息的编码 ";
    double coursenum;
    cin>>coursenum;
    ifstream is(“courses.text”,ios::binary); //用于课程.text文件的输入
    for(int i=0;!is.eof();i++)
    {
    is.seekg(28*i); //对输入文件定位,第一个参数是偏移量,第二个参数是基地址
    is.read((char )(& cus),sizeof(cus)); //对二进制文件(课程.text)进行读操作
    if(cus.coursenum==coursenum)
    {
    cout<<"请输入要修改的课程名称 ";
    cin>>cus.coursename;
    cout<<"请输入要修改的课程类型 ";
    cin>>cus.coursetapy;
    cout<<"请输入要修改的课程学分 ";
    cin>>cus.xuefen;
    cout<<"请输入要修改的课程学时 ";
    cin>>cus.xueshi;
    cout<<"请输入要修改的主讲教师 ";
    cin>>cus.courseteacher;
    cout<<“修改完毕!”<<endl<<endl;
    mark=28
    i;
    menu();
    break;
    }
    }
    is.close();
    if(cus.coursenum!=coursenum)
    {
    cout<<“没有这门课程!”<<endl<<endl;
    menu();
    }
    else
    {
    ofstream os(“courses.text”,ios::in|ios::binary); //用于课程.text的输出,并且文件进行读操作和二进制方式打开
    os.seekp(mark);//移动文件指针的标记
    os.write((char *)(& cus),sizeof(cus)); //对二进制文件(学生.text)进行写操作
    os.close();
    }
    }
    };
    void selectCoures()//选课函数
    {
    student stu;//用于保存将要选课的那名同学的信息
    int countCoures=0;//用来统计该学生选了多少门课程
    int countStudent=0;//用来统计学生的个数
    loop://循环结构
    cout<<endl<<"请输入你的学生学号: ";
    double m_xuehao,m_coursenum;//利用学号和课程号分别找出哪位同学选了哪门课
    cin>>m_xuehao;
    ifstream is(“studentInfo.text”,ios::binary);
    is.seekg(0,ios::beg);//从文件头开始,文件指针向前移动
    while(!is.peek())//判断文件结束
    {
    is.read((char *)(&stu),sizeof(stu)); //从"studentInfo.text"文件中一次读取学生的信息
    if(m_xuehao == stu.xuehao)
    {
    loob:
    countStudent++;
    cout<<“请输入学号为”<<m_xuehao<<"的学生想要选择的课程编码(1001-9999): ";
    cin>>m_coursenum;
    ifstream inCourse(“courses.text”,ios::binary); //用于从"courses.text"文件中找出该同学想选择的课程信息
    inCourse.seekg(0,ios::beg);从文件头开始,文件指针向前移动
    while(!inCourse.eof())//选课核心代码
    {
    course cus;//用于此同学将要选择的课程信息
    inCourse.read((char *)(&cus),sizeof(cus));// (char *)(&cus)起始地址,sizeof(cus)读取的字节数
    if(m_coursenum == cus.coursenum)
    {//若找到那门课程则选它
    countCoures++;
    strcpy(stu.coursename,cus.coursename);
    ofstream outStu(“selectCourseResult.text”,ios::binary|ios::app);//现将选课的同学信息放入选课结果的文件中
    outStu.write((char *)(&stu),sizeof(stu));//写入的字节数
    outStu.close();
    cout<<“学号为”<<m_xuehao<<“成功选了课程号为”<<m_coursenum<<“的课程!”<<endl;
    }
    if(countCoures>2)
    {
    cout<<“同学:你选择的课程已经超过”<<countCoures<<“门了!”<<endl;
    break;
    }
    }
    if(countCoures == 0)
    {
    cout<<“没有这门课程,还要继续选择其他课程吗y/n?”<<endl;
    char ch;
    cin>>ch;
    if((‘y’==ch)||('Y’ch))
    goto loob;
    else
    break;
    }
    inCourse.close();
    }
    }
    if(countStudent
    0)
    {
    cout<<“没有这个学生,是否重新输入y/n?”<<endl;
    char ch;
    cin>>ch;
    if((‘y’==ch)||(‘Y’==ch))
    goto loop;
    }
    is.close();
    menu();
    }

    void scanResult()//查询选课结果
    {
    student stu;//用于保存将要选课的那名同学的信息
    cout<<“学生学号\t学生姓名\t所学专业\t选课名称”<<endl;
    ifstream is(“selectCourseResult.text”,ios::binary);
    for(int i=0;!is.peek();i++)
    {
    is.read((char*)(&stu),sizeof(stu));//对二进制文件(selectCourseResult.text)进行读操作
    cout<<stu.xuehao<<"\t\t"<<stu.name<<"\t\t"<<stu.major<<"\t\t"<<stu.coursename<<endl;
    }
    is.close();
    menu();
    }

    void set() //信息录入菜单
    {
    cout<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌1. 录入学生信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌2. 录入课程信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌3. 返回前面菜单﹌﹌﹌﹌﹌﹌"<<endl<<endl;
    student stu;
    course cus;
    int choose;
    cout<<"请输入选项序号: ";
    cin>>choose;
    switch(choose)
    {
    case 1: stu.set();break; //录入学生信息函数
    case 2: cus.set();break; //录入课程信息函数
    case 3: menu();break;
    default: cout<<“没有这个选项,请重新输入,谢谢!”<<endl;
    set();
    break;
    }
    }

    void check() //查询信息
    {
    cout<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌1. 查询学生信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌2. 查询课程信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌3. 查询学生选课结果信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌4. 返回主要菜单﹌﹌﹌﹌﹌﹌"<<endl<<endl;
    cout<<"请输入选项序号 ";
    int choose;
    cin>>choose;
    student stu;
    course cus;
    switch(choose)
    {

    case 1: stu.checkstudent();break;  //查询学生信息函数
    case 2: cus.checkcourse();break; //查询课程信息函数
    case 3: scanResult();break;  //查询学生选课结果信息
    case 4: menu();break;
    }
    

    }

    void cancle() //删除信息
    {
    cout<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌1. 删除学生信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌2. 删除课程信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌3. 返回主要菜单﹌﹌﹌﹌﹌﹌"<<endl<<endl;
    cout<<“请输入选项序号 “;
    student stu;
    course cus;
    int choose;
    cin>>choose;
    switch(choose)
    {
    case 1: stu.cancleStudent();break; //删除学生信息函数
    case 2: cus.canclecourse();break; //删除课程信息函数
    case 3: menu();break;
    default: cout<<“没有这个选项,请重新输入,谢谢!”<<endl;
    break;
    }
    }
    void change() //修改信息
    {
    cout<<endl;
    cout<<”﹌﹌﹌﹌﹌﹌1. 修改学生信息﹌﹌﹌﹌﹌﹌”<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌2. 修改课程信息﹌﹌﹌﹌﹌﹌"<<endl;
    cout<<"﹌﹌﹌﹌﹌﹌3. 返回主要菜单﹌﹌﹌﹌﹌﹌"<<endl<<endl;
    cout<<"请输入选项序号 ";
    student stu;
    course cus;
    int choose;
    cin>>choose;
    switch(choose)
    {
    case 1: stu.changestudent();break; //修改学生信息函数
    case 2: cus.changecourse();break; //修改课程信息函数
    case 3: cout<<endl;menu();break;
    default: cout<<“没有这个选项,请重新输入,谢谢!”<<endl;
    change();
    }
    }
    int main() //主函数
    {
    menu();
    do
    {
    cout<<endl<<"请输入所选择的菜单项序号: ";
    int choose;
    cin>>choose;
    switch(choose)
    {
    case 1: set();break; //信息录入
    case 2: check();break; //信息浏览
    case 3: selectCoures();break; //选择课程
    case 4: cancle();break;//删除信息
    case 5: change();break; //修改信息
    case 6: exit(1);
    }
    }while(1);
    return 0;
    }

    展开全文
  • 系统中学生包含学号,姓名等属性,通过登记系统保存学生成绩的信息。...用户通过SQL SERVER 2000 的查询分析器输入各种操作代码,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。
  • 湖南人文科技学院计算机系 课程设计说明书 课程名称 : 软件工程导论 课程代码 题 目 : 学生选修课信息管理系统 年级/专业/班 : 09级计科2班 学生姓名 : 赵浩胡碧山文盼聂惠俊杨晨 学号 : 09408237 ;09408207 ; ...
  • (C语言课程设计)学生选修课程系统设计

    千次阅读 多人点赞 2020-01-12 00:59:36
    1、需求分析 系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;由于课程信息要用文件保存,因而要提供文件...数据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。 Struct { Char course...

    1、需求分析

    系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;由于课程信息要用文件保存,因而要提供文件的输入输出操作;由于要浏览信息,所以要提供显示功能;要实现查询功能,故要提供查找操作。

    2、总体设计

    整个系统可以设计为信息输入模块、信息查询模块以及信息浏览模块。

    3、详细设计

    数据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。
    Struct
    {
    Char courseCode[10]; //课程编号
    Char courseName[20]; //课程名称
    Char courseType[10]; //课程类别
    Int totalPeriod; //总学时
    Int classPeriod; //授课学时
    Int experiPeriod; //上机学时
    Float creditHour; //学分
    Int term; //开课学期
    }CourseInfo[N]; //课程信息结构体
    Struct
    {
    Int stuNo; //学号;
    Char courseCode[10]; //课程编号
    }StuCourInfo[N]; //学生选课信息结构体
    (1) 信息输入模块
    从键盘输入课程信息和学生选课信息,写入文件。(fwrite, fprintf)
    (2)信息浏览模块
    分屏显示课程信息,每屏10条课程记录,按任意键继续。从文件中读数据(fread,fscanf),然后再显示。
    (3)信息查询模块
    通过菜单选择查询字段,可以按照课程编号、课程名称、课程性质、开课学期、学分对课程信息文件进行查找,查找算法可以选择基本查找、二分查找等算法。
    可以通过菜单选择课程编号,在学生选课信息文件中查询该课程学生选修情况。

    4、编程实现

    开发环境:Code::Blocks 13.12
    说明:为了简化,本程序约定程序运行后,首先就必须先把所有数据输入,之后就不能再输入数据了。输入的数据会以文件的形式出现在和本程序文件同目录的文件夹内。

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    /*
        约定程序运行后,首先就必须先把所有数据输入,之后就不能再输入数据了。
    */
    
    struct CourseInfo {
        char courseCode[10];    //课程编号
        char courseName[20];    //课程名称
        char courseType[10];    //课程类别
        int  totalPeriod;       //总学时
        int  classPeriod;       //授课学时
        int  experiPeriod;      //上机学时
        float creditHour;      //学分
        int  term;              //开课学期
    };
    
    struct StuCourInfo {
        int stuNo;              //学号;
        char courseCode[10];    //课程编号
    };
    
    struct CourseInfo courses[100];
    struct StuCourInfo stus[100];
    
    int courseCnt = 0; // 录入的课程数目
    int stuCnt = 0;    // 录入的学生选课数目
    
    // 程序入口
    void go();
    
    // 打印菜单
    void menu();
    
    // 录入数据
    void input();
    
    // 浏览课程数据
    void browseCourses();
    
    // 查询选课
    void getSelectedCourses();
    
    // 查询课程信息
    void getCourseInfo();
    
    int main(){
        go();
        return 0;
    }
    
    void go(){
        while(true){
            menu();
            printf("请按照菜单提示输入您的操作编号:\n");
            int choice = 0;
            scanf("%d", &choice);
            if(choice == 0){
                printf("您已经退出系统!\n");
                return;
            }else if(choice == 1){
                input();
            }else if(choice == 2){
                browseCourses();
            }else if(choice == 3){
                getCourseInfo();
            }else if(choice == 4){
                getSelectedCourses();
            }else{
                printf("输入错误!\n");
            }
        }
    }
    
    void menu(){
        printf("***选课系统***\n");
        printf("1-->录入数据\n");
        printf("2-->浏览课程\n");
        printf("3-->查询课程\n");
        printf("4-->查询选课\n");
        printf("0-->退出\n");
    }
    
    void input(){
        printf("11-->录入课程数据\n");
        printf("12-->录入选课数据\n");
        printf("请输入录入您的选择(11/22):\n");
        int choice = 0;
        scanf("%d", &choice);
        int cnt = 0;
        printf("请输入录入数据条数:\n");
        scanf("%d", &cnt);
        if(choice == 11){
            courseCnt = cnt;
            printf("请录入课程信息(格式示例:1 C语言 编程语言 30 20 10 1 1):\n");
            for(int i = 0; i < cnt; i++){
                scanf("%s", &courses[i].courseCode);
                scanf("%s", &courses[i].courseName);
                scanf("%s", &courses[i].courseType);
                scanf("%d", &courses[i].totalPeriod);
                scanf("%d", &courses[i].classPeriod);
                scanf("%d", &courses[i].experiPeriod);
                scanf("%f", &courses[i].creditHour);
                scanf("%d", &courses[i].term);
            }
    
            FILE * fp=fopen ("course.txt", "w") ; //打开文件
            if(NULL==fp)
            {
                printf ("Failed to open the file !\n");
                exit(0);
            }
    
            for(int i = 0; i < cnt; i++){
                fputs(courses[i].courseCode, fp);
                fputs(" ", fp);
                fputs(courses[i].courseName, fp);
                fputs(" ", fp);
                fputs(courses[i].courseType, fp);
                fputs(" ", fp);
    
                char strTotalPeriod[10];
                itoa(courses[i].totalPeriod, strTotalPeriod, 10);
                fputs(strTotalPeriod, fp);
                fputs(" ", fp);
    
                char strClassPeriod[10];
                itoa(courses[i].classPeriod, strClassPeriod, 10);
                fputs(strClassPeriod, fp);
                fputs(" ", fp);
    
                char strExperiPeriod[10];
                itoa(courses[i].experiPeriod, strExperiPeriod, 10);
                fputs(strExperiPeriod, fp);
                fputs(" ", fp);
    
                char strCreditHour[10];
                sprintf(strCreditHour, "%.1f", courses[i].creditHour);
                fputs(strCreditHour, fp);
                fputs(" ", fp);
    
                char strTerm[10];
                itoa(courses[i].term, strTerm, 10);
                fputs(strTerm, fp);
                fputs("\n", fp);
            }
            fclose(fp); //关闭文件
            printf("数据已经录入完毕!\n");
        }else if(choice == 12){
            stuCnt = cnt;
            printf("请录入选课信息(格式示例:201901 1):\n");
            for(int i = 0; i < cnt; i++){
                scanf("%d", &stus[i].stuNo);
                scanf("%s", &stus[i].courseCode);
    
            }
    
            FILE * fp=fopen ("student.txt", "w") ; //打开文件
            if(NULL==fp)
            {
                printf ("Failed to open the file !\n");
                exit(0);
            }
    
            for(int i = 0; i < cnt; i++){
                char strStuNo[10];
                itoa(stus[i].stuNo, strStuNo, 10);
                fputs(strStuNo, fp);
                fputs(" ", fp);
    
                fputs(stus[i].courseCode, fp);
                fputs(" ", fp);
    
                fputs("\n", fp);
            }
            fclose(fp); //关闭文件
            printf("数据已经录入完毕!\n");
        }else{
            printf("输入错误!\n");
        }
        printf("\n");
    }
    
    void browseCourses(){
        printf("课程信息如下(每次显示10个,按任意键继续显示):");
        FILE * fp=fopen ("course.txt", "r") ; //打开文件
        if(NULL==fp)
        {
            printf ("Failed to open the file !\n");
            exit(0);
        }
    
        for(int i = 0; i < courseCnt; i++){
            fscanf(fp, "%s %s %s %d %d %d %f %d\n",
                   &courses[i].courseCode,
                   &courses[i].courseName,
                   &courses[i].courseType,
                   &courses[i].totalPeriod,
                   &courses[i].classPeriod,
                   &courses[i].experiPeriod,
                   &courses[i].creditHour,
                   &courses[i].term);
        }
        fclose(fp); //关闭文件
    
        for(int i = 0; i < courseCnt; i++){
            if(i != 0 && (i%10 == 0)){
                printf("请输入任意键,继续显示...\n");
                getchar();
                getchar();
            }
            printf("%s %s %s %d %d %d %f %d\n",
                   courses[i].courseCode,
                   courses[i].courseName,
                   courses[i].courseType,
                   courses[i].totalPeriod,
                   courses[i].classPeriod,
                   courses[i].experiPeriod,
                   courses[i].creditHour,
                   courses[i].term);
        }
        printf("数据已经全部显示!\n\n");
    }
    
    void getSelectedCourses(){
        printf("请输入课程号:\n");
        char classCode[10];
        scanf("%s", classCode);
        printf("选修课程号为%s的学生如下:\n", classCode);
        FILE * fp=fopen ("student.txt", "r") ; //打开文件
        if(NULL==fp)
        {
            printf ("Failed to open the file !\n");
            exit(0);
        }
        for(int i = 0; i < stuCnt; i++){
            fscanf(fp, "%d %s\n", &stus[i].stuNo, &stus[i].courseCode);
        }
        fclose(fp); //关闭文件
        for(int i = 0; i < stuCnt; i++){
            if(strcmp(classCode, stus[i].courseCode) == 0){
                printf("%d\n", stus[i].stuNo);
            }
        }
        printf("数据已经全部显示!\n\n");
    }
    
    void getCourseInfo(){
        printf("31-->根据课程编号查询课程\n");
        printf("32-->根据课程名称查询课程\n");
        printf("33-->根据课程类别查询课程\n");
        printf("34-->根据开课学期查询课程\n");
        printf("35-->根据课程学分查询课程\n");
    
        FILE * fp=fopen ("course.txt", "r") ; //打开文件
        if(NULL==fp)
        {
            printf ("Failed to open the file !\n");
            exit(0);
        }
    
        for(int i = 0; i < courseCnt; i++){
            fscanf(fp, "%s %s %s %d %d %d %f %d\n",
                   &courses[i].courseCode,
                   &courses[i].courseName,
                   &courses[i].courseType,
                   &courses[i].totalPeriod,
                   &courses[i].classPeriod,
                   &courses[i].experiPeriod,
                   &courses[i].creditHour,
                   &courses[i].term);
        }
        fclose(fp); //关闭文件
    
        printf("请输入您的查询条件编号:\n");
        int choice = 0;
        scanf("%d", &choice);
        if(choice == 31){
            printf("请输入课程编号:\n");
            char courseCode[10];
            scanf("%s", courseCode);
            for(int i = 0; i < courseCnt; i++){
                if(strcmp(courseCode, courses[i].courseCode) == 0){
                    printf("%s %s %s %d %d %d %f %d\n",
                       courses[i].courseCode,
                       courses[i].courseName,
                       courses[i].courseType,
                       courses[i].totalPeriod,
                       courses[i].classPeriod,
                       courses[i].experiPeriod,
                       courses[i].creditHour,
                       courses[i].term);
                }
            }
            printf("数据已经全部显示!\n");
        }else if(choice == 32){
            printf("请输入课程名称:\n");
            char courseName[10];
            scanf("%s", courseName);
            for(int i = 0; i < courseCnt; i++){
                if(strcmp(courseName, courses[i].courseName) == 0){
                    printf("%s %s %s %d %d %d %f %d\n",
                       courses[i].courseCode,
                       courses[i].courseName,
                       courses[i].courseType,
                       courses[i].totalPeriod,
                       courses[i].classPeriod,
                       courses[i].experiPeriod,
                       courses[i].creditHour,
                       courses[i].term);
                }
            }
            printf("数据已经全部显示!\n");
        }else if(choice == 33){
            printf("请输入课程类别:\n");
            char courseType[10];
            scanf("%s", courseType);
            for(int i = 0; i < courseCnt; i++){
                if(strcmp(courseType, courses[i].courseType) == 0){
                    printf("%s %s %s %d %d %d %f %d\n",
                       courses[i].courseCode,
                       courses[i].courseName,
                       courses[i].courseType,
                       courses[i].totalPeriod,
                       courses[i].classPeriod,
                       courses[i].experiPeriod,
                       courses[i].creditHour,
                       courses[i].term);
                }
            }
            printf("数据已经全部显示!\n");
        }else if(choice == 34){
            printf("请输入开课学期:\n");
            int term = 0;
            scanf("%d", &term);
            for(int i = 0; i < courseCnt; i++){
                if(term == courses[i].term){
                    printf("%s %s %s %d %d %d %f %d\n",
                       courses[i].courseCode,
                       courses[i].courseName,
                       courses[i].courseType,
                       courses[i].totalPeriod,
                       courses[i].classPeriod,
                       courses[i].experiPeriod,
                       courses[i].creditHour,
                       courses[i].term);
                }
            }
            printf("数据已经全部显示!\n");
        }else if(choice == 35){
            printf("请输入学分:\n");
            float creditHour = 0.0;
            scanf("%f", &creditHour);
            for(int i = 0; i < courseCnt; i++){
                if(creditHour == courses[i].creditHour){
                    printf("%s %s %s %d %d %d %f %d\n",
                       courses[i].courseCode,
                       courses[i].courseName,
                       courses[i].courseType,
                       courses[i].totalPeriod,
                       courses[i].classPeriod,
                       courses[i].experiPeriod,
                       courses[i].creditHour,
                       courses[i].term);
                }
            }
            printf("数据已经全部显示!\n");
        }else{
            printf("输入错误!\n");
        }
        printf("\n");
    }
    
    

    5、演示

    为了演示方便,可以先构造一些数据放入data.txt文件内,后续录入数据的时候可以直接复制粘贴到控制台。

    1 C语言 编程语言  30 20 10 1.0 1
    2 C语言 编程语言  30 20 10 1.0 1
    3 C语言 编程语言  30 20 10 1.0 1
    4 C语言 编程语言 30 20 10 1.0 1
    5 C语言 编程语言 30 20 10 1.0 1
    6 C语言 编程语言 30 20 10 1.0 1
    7 C语言 编程语言 30 20 10 1.0 1
    8 C语言 编程语言 30 20 10 1.0 1
    9 C语言 编程语言 30 20 10 1.0 1
    10 C语言 编程语言 30 20 10 1.0 1
    11 C语言 编程语言 30 20 10 1.0 1
    12 C语言 编程语言 30 20 10 1.0 1
    13 C语言 编程语言 30 20 10 1.0 1
    14 C语言 编程语言 30 20 10 1.0 1
    15 C语言 编程语言 30 20 10 1.0 1
    16 C语言 编程语言 30 20 10 1.0 1
    17 C语言 编程语言 30 20 10 1.0 1
    18 C语言 编程语言 30 20 10 1.0 1
    19 C语言 编程语言 30 20 10 1.0 1
    20 C语言 编程语言 30 20 10 1.0 1
    21 C语言 编程语言 30 20 10 1.0 1
    22 C语言 编程语言 30 20 10 1.0 1
    23 C语言 编程语言 30 20 10 1.0 1
    24 C语言 编程语言 30 20 10 1.0 1
    
    201901 1 
    201902 1 
    201903 1 
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 系统分为学生登录和管理员登录两个模块,实现了增加查询和验证功能,特色是差错检验!几乎实现了除输入流错误之外的所有不合法操作。
  • 学生选修课程系统(C语言/C++实现)

    千次阅读 多人点赞 2020-11-24 20:17:13
    话不多说,先上代码 #include <stdio.h> #include <... //声明浏览学生所有选修课程函数 void choose(); //声明学生选课函数 typedef struct subjects //定义结构体叫作SUB,在后面就可以直接使用 {

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,885
精华内容 3,554
关键字:

学生选修课程管理系统