精华内容
下载资源
问答
  • 总体需求 假设每位学生必须完成基础课50学分,专业课50学分,选修课24学分,人文类课程8学分...4) 给定某位学生的学号,修改该学生的学分信息。 5) 按照某类课程的学分高低进行排序。 界面样式 输入: 程序正常运行后

    总体需求

    假设每位学生必须完成基础课50学分,专业课50学分,选修课24学分,人文类课程8学分,实践性课程20学分才能够毕业
    因此,在管理学分时,要考虑每个学分所属于的课程类别。

    功能需求

    1)能够通过键盘输入某位学生的学分。//该需求涵盖在下面的需求中。所以不单独在菜单中设置选项
    2) 给定学号,显示某位学生的学分完成情况。
    3) 给定某个班级的班号,显示该班所有学生学分完成情况。
    4) 给定某位学生的学号,修改该学生的学分信息。
    5) 按照某类课程的学分高低进行排序。

    界面样式

    输入:
    程序正常运行后屏幕上显示一个文字菜单(根据序号选定相应的操作项目),当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘上输入相应的数据。
    输出:

    1. 应用程序正常运行后,要在屏幕上显示一个文字菜单。
    2. 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等

    类设计

    设计Student类
    private:

    姓名name,学号sid,班号cid,课程信息类Course
    

    public:

    空构造函数:给所有私有属性赋默认值,string全部为“null”,int全部为0
    Student(){
    		name="null";
    		sid="null";
    		cid="null";
    		course.setBasicCla(0);
    		course.setCultureCla(0);
    		course.setPracticeCla(0);
    		course.setProfessionCla(0);
    		course.setSelectCla(0);
    	}
    setRecord(int,int ,int,int,int);//重新设置课程学分
    Course* getCourse()//返回课程信息对象指针
    私有属性的set,get方法
    void setName(string name)
    void setSid(string sid)
    void setCid(string cid)
    string getName()
    string getSid()
    string getCid()
    

    设计Course类
    private:

    	int basicCla//基础课程学分
    	int professionCla//专业课程学分
    	int selectCla//选修课程学分
    	int cultureCla//人文课程学分
    	int practiceCla//实践课程学分
    

    public:

    空构造函数,默认初始化int型为0
    Course(){
    		this->basicCla=0;
    		this->professionCla=0;
    		this->selectCla=0;
    		this->cultureCla=0;
    		this->practiceCla=0;
    	}
    set,get方法:
    	int getBasicCla()//获取基础课程学分
    	int getProfessionCla()//获取专业课程学分
    	int getSelectCla()//获取选修课程学分
    	int getCultureCla()//获取人文课程学分
    	int getPracticeCla()//获取实践课程学分
    
    	void setBasicCla()//设置基础课程学分
    	void setProfessionCla()//设置专业课程学分
    	void setSleectCla()//设置选修课程学分
    	void setCultureCla()//设置人文课程学分
    	void setPracticeCla()//设置实践课程学分
    

    程序编写流程:

    void ViewBySid(string sid,Student *students);//根据学号查询学生信息
    void ViewCidAll(string cid,Student *students); //根据班号查询全班信息
    void changeRecord(string sid,Student *students,int basicCla,int professionCla,int selectCla,int cultureCla,int practiceCla);//重新设置课程分数
    void setStudents(Student* students);//文件数据读入
    void updateStudents(Student *students);//文件数据更新
    void sortByRecord(int num,Student *students);//按照分数排序
    

    业务逻辑

    创建一个对象数组用来读取文件中的数据。
    setStudents中进行文件流的操作,对象数组的指针传到该方法中,将文件中的数据存储到这个对象数组中
    输出功能菜单,if else,else if实现对应功能的调用
    

    设计功能菜单

    1.给定学号,显示某位学生的学分完成情况。
    用户界面输入学号,拿到学号后通过循环Student对象数组,该学号与Student[i].couse->getSid()比对,若比对成功,输出该学生的信息
    2.给定某个班级的班号,显示该班所有学生学分完成情况。
    同需求1一样,拿到班号后循环Student对象数组,然后将对应班号Student类的信息全部输出,即该班级所有学生信息
    3.给定某位学生的学号,修改该学生的学分信息。
    同需求1,拿到学号和学分修改信息(暂且功能为不能单独设置学分,必须传入所有课程学分),
    循环数组找到对象,通过set方法更改
    4.按照某类课程的学分高低进行排序。
    定义一个指针数组,里边的指针元素一一指向对象数组中的对象,用排序算法(冒泡)进行排序,改变指针数组中指针的指向,然后遍历输出该数组

    编写中可能遇到的问题**

    问题1:c++输入和输出的问题
    解决方案:
    输入:

    char filename[]="D://student.txt";
    	char buff[1024]= {0};
    	ifstream fin;
            fin.open(filename,ios::in);
            fin.getline(buff,1024);                //通过getline函数读取字符串
            cout<<buff<<endl;        
            fin.close();
    

    写出:

    	char fname[] = "d:/file1.txt";
            char buff[1024]= {0};
            /***********  写文件  *************/
            //方式1 输出流ofstream对象调用fopen函数
            ofstream fout;
            fout.open(fname,ios::out);
            if(!fout)
            {
                    cout<<"打开文件失败"<<fname<<endl;
            }
            fout<< "hello world !";  //通过左移运算符写入字符串
            fout.flush();
            fout.close();
    

    问题2:根据课程分数进行排序

    for(int i=0;i<size-1;i++){
    		for(int j=0;j<size-i-1;j++){
    			Course *course=stus[j]->getCourse();
    			Course *course2=stus[j+1]->getCourse();
    			if(course->getProfessionCla() > course2->getProfessionCla()){
    					Student *temp;
    					temp=stus[j];
    					stus[j]=stus[j+1];
    					stus[j+1]=temp;
    			}
    		}
    	}
    

    问题3:Student类中Course还是Course*属性:
    必须是course属性,因为临时在方法中创建的对象给course指针,方法的消亡,对象也会消亡,每一次调用就会创建新的对象,所以应该将Course对象作为属性,而不是它的指针。
    另外,getCourse类应该返回指针,实现引用传递

    问题4:文件编码格式和输入流读入编码格式不同
    解决方案:文件读入时是GBK编码格式,将txt文件中的数据转为GBK格式
    使用工具notePad++

    问题5:提取文件中的数字字符串转换为整型数据进行存储,比如basicCla为整型,但文件是字符串。
    解决方案:basicStr是字符串 int basicCla=atoi(basicStr.c_str());

    完整代码

    Student类

    #include <string>
    #include "Course.h"
    using namespace std;
    class Student{
    	private:
    		string name;
    		string sid;
    		string cid;
    		Course course;
    	public:
    	
    		Student(){
    			name="null";
    			sid="null";
    			cid="null";
    		}
    		
    	
    	
    		void setRecord(int basicCla,int professionCla,int selectCla,int cultureCla//重新设置课程学分 
    				,int practiceCla){
    					course.setBasicCla(basicCla);
    					course.setProfessionCla(professionCla);
    					course.setSelectCla(selectCla);
    					course.setCultureCla(cultureCla);
    					course.setPracticeCla(practiceCla);
    		}
    		
    		
    		
    		Course* getCourse(){//返回课程信息对象 
    				return &course;
    		}
    		
    		
    		
    		
    		
    		
    		void setName(string name){
    			this->name=name;
    		}
    		void setSid(string sid){
    			this->sid=sid;
    		}
    		void setCid(string cid){
    			this->cid=cid;
    		}
    		
    	
    		string getName(){
    			return name;
    		}
    		string getSid(){
    			return sid;
    		}
    		string getCid(){
    			return cid;
    		}
    	
    };
    

    Course类

    #include <string>
    using namespace std;
    
    class Course{
    	private:
    		int basicCla;//基础课程学分50
    		int professionCla;//专业课程学分50
    		int selectCla;//选修课程学分24
    		int cultureCla;//人文课程学分8
    		int practiceCla;//实践课程学分20
    	public:
    		
    		Course(){
    			this->basicCla=0;
    			this->professionCla=0;
    			this->selectCla=0;
    			this->cultureCla=0;
    			this->practiceCla=0;
    		}
    		
    		int getBasicCla(){//获取基础课程学分
    			return basicCla;
    		}
    		int getProfessionCla(){//获取专业课程学分
    			return professionCla;
    		}
    		int getSelectCla(){//获取选修课程学分
    			return selectCla;
    		}
    		int getCultureCla(){//获取人文课程学分
    			return cultureCla;
    		}
    		int getPracticeCla(){//获取实践课程学分
    			return practiceCla;
    		}
    		
    		
    		void setBasicCla(int basicCla){//设置基础课程学分
    			this->basicCla=basicCla;
    		}
    		void setProfessionCla(int professionCla){//设置专业课程学分
    			this->professionCla=professionCla;
    		}
    		
    		void setSelectCla(int selectCla){//设置选修课程学分
    			this->selectCla=selectCla;
    		}
    		
    		void setCultureCla(int cultureCla){//设置人文课程学分
    			this->cultureCla=cultureCla;
    		}
    		
    		void setPracticeCla(int practiceCla){//设置实践课程学分
    			this->practiceCla=practiceCla;
    		}
    		
    
    
    		
    		
    		
    				
    	};
    
    

    main.cpp逻辑代码

    #include <iostream>
    #include <string>
    #include "fstream"
    #include "Student.h" 
    #include "fstream"
    #include <sstream>
    #include<stdlib.h>
    
    //数组长度函数  int sizeof(array) 
    using namespace std;
    const int size=5;
    
    int main(){
    	//函数声明 
    	void ViewBySid(string sid,Student *students);
    	void ViewCidAll(string cid,Student *students); 
    	void changeRecord(string sid,Student *students,int basicCla,int professionCla,int selectCla,int cultureCla,int practiceCla);
    	void setStudents(Student* students);
    	void updateStudents(Student *students);
    	void sortByRecord(int num,Student *students);
    	
    	
    	
    	
    	//将文件中的数据存入对象数组中 
    		Student students[size];
    		setStudents(students);
    		string strNum="";
    		
    		cout<<"菜单"<<endl;
    		cout<< "1.查询某个学生信息"<<endl;
    		cout<< "2.查询班级学生信息" <<endl;
    		cout<< "3.修重置某个学生学分"<<endl;
    		cout<< "4.根据学分排序" <<endl; 
    		
    		cout<<"请输入序号选择对应功能:" ;
     		strNum=cin.get();
     		
     		
    		while(strNum!="esc") {
    		int num=atoi(strNum.c_str());
     		//输入 
     		if(num==1){
     			cout<<"请输入学生的学号"<<endl;
    			string sid;
    			cin>>sid;
    			ViewBySid(sid,students);
    		 }else if(num==2){
    		 	cout<<"请输入班级"<<endl;
    			 string cid;
    			 cin>> cid;
    			 ViewCidAll(cid,students);
    		 }else if(num==3){
    		 	cout<<"请输入学号"<<endl;
    			 string sid;
    			 int basicCla;
    			 int professionCla;
    			 int selectCla;
    			 int cultureCla;
    			 int practiceCla;
    			 cin>>sid;
    			 cout<<"请输入基础课学分"<<endl;
    			 cin>>basicCla;
    			 cout<<"请输入专业课学分"<<endl;
    			 cin>>professionCla;
    			 cout<<"请输入选修课学分"<<endl;
    			 cin>>selectCla;
    			 cout<<"请输入文体课学分"<<endl;
    			 cin>>cultureCla;
    			 cout<<"请输入实践课学分"<<endl;
    			 cin>>practiceCla;
    			 changeRecord(sid,students,basicCla,professionCla,selectCla,cultureCla,practiceCla);
    			 
    			  
    		 }else if(num==4){
    		 	cout<<"输入下列序号选择排序的种类"<<endl; 
    		 	cout<<"1.按照基础课程学分进行排序"<<endl;
    		 	cout<<"2.按照专业课程学分进行排序"<<endl;
    		 	cout<<"3.按照选修课程学分进行排序"<<endl;
    		 	cout<<"4.按照文体课程学分进行排序"<<endl;
    		 	cout<<"5.按照实践课程学分进行排序"<<endl;
    		 	string orderNum;
    		 	cin>>orderNum;
    		 	int num=atoi(orderNum.c_str());
    		 	sortByRecord(num,students);
    		 }
     		updateStudents(students);
     		cout<<endl;
     		cout<<"继续输入序号使用其他功能,输入esc退出程序"<<endl; 
     		cin.get();
    		cin>>strNum;
     	}
     	cout<<"谢谢使用!"<<endl; 
     		
                         
            
    	
    		
    	
    	
    	
    	return 0;
    }
    
    //传入学号,显示该学生的信息 
    void ViewBySid(string sid,Student *students){
    	for(int i=0;i<size;i++){
    		if(sid==students[i].getSid()){
    			Course *course=students[i].getCourse();
    			cout<<students[i].getName()<<"  ";
    			cout<<students[i].getSid()<<"  ";
    			cout<<students[i].getCid()<<"  ";
    			cout<<course->getBasicCla()<<"  ";
    			cout<<course->getProfessionCla()<<"  ";
    			cout<<course->getSelectCla()<<"  ";
    			cout<<course->getCultureCla()<<"  ";
    			cout<<course->getPracticeCla()<<"  ";
    			break;
    			
    		}
    	}
    }
    
    //传入班号,显示所有学生的信息 
    void ViewCidAll(string cid,Student *students){
    	for(int i=0;i<size;i++){
    		if(cid==students[i].getCid()){
    			Course *course=students[i].getCourse();
    			cout<<students[i].getName()<<"  ";
    			cout<<students[i].getSid()<<"  ";
    			cout<<students[i].getCid()<<"  ";
    			cout<<course->getBasicCla()<<"  ";
    			cout<<course->getProfessionCla()<<"  ";
    			cout<<course->getSelectCla()<<"  ";
    			cout<<course->getCultureCla()<<"  ";
    			cout<<course->getPracticeCla()<<"  "<<endl;
    			
    		}
    	}
    }
    
    
    // 传入学号,修改学分信息
    void changeRecord(string sid,Student *students,int basicCla,int professionCla,int selectCla,int cultureCla,int practiceCla){
    		for(int i=0;i<size;i++){
    		if(sid==students[i].getSid()){
    			Course *course=students[i].getCourse();
    			course->setBasicCla(basicCla);
    			course->setProfessionCla(professionCla);
    			course->setSelectCla(selectCla);
    			course->setCultureCla(cultureCla);
    			course->setPracticeCla(practiceCla);
    		}
    	}
    
    
    
    } 
    //将文件中信息存储到students对象数组中 
    
    void setStudents(Student* students){
    	char filename[]="D://student.txt";
    		ifstream fin;
            fin.open(filename,ios::in);
            if(!fin){
            	cout<<"文件打开失败"; 
    		}
    		for(int i=0;i<size;i++){
    			string str;
    			fin>>str;
    			students[i].setName(str);
    			
    			fin>>str;
    			students[i].setSid(str);
    			
    			fin>>str;
    			students[i].setCid(str);
    			
    			
    			fin>>str;
    			students[i].getCourse()->setBasicCla(atoi(str.c_str()));
    			fin>>str;
    			students[i].getCourse()->setProfessionCla(atoi(str.c_str()));
    			fin>>str;
    			students[i].getCourse()->setSelectCla(atoi(str.c_str()));
    			fin>>str;
    			students[i].getCourse()->setCultureCla(atoi(str.c_str()));
    			fin>>str;
    			students[i].getCourse()->setPracticeCla(atoi(str.c_str()));
     		
    		}
    		fin.close();
    		
    } 
    //将数组信息更新到文件中 
    
    void updateStudents(Student *students){
    	 	char filename[] = "D://student.txt";
            char buff[1024]= {0};
            /***********  写文件  *************/
            //输出流ofstream对象调用fopen函数
            ofstream fout;
            fout.open(filename,ios::out);
            if(!fout)
            {
                    cout<<"打开文件失败"<<filename<<endl;
            }
            
            
            
            
            for(int i=0;i<size;i++){
            	if(students[i].getName()==""){
            		fout<<"null"<<" ";
    			}else{
    				fout<<students[i].getName()<<" ";
    			}
    			if(students[i].getSid()==""){
            		fout<<"null"<<" ";
    			}else{
    				fout<<students[i].getSid()<<" ";
    			}
    			if(students[i].getCid()==""){
            		fout<<"null"<<" ";
    			}else{
    				fout<<students[i].getCid()<<" ";
    			}
     			
     			
     			
     			
     			Course * course =students[i].getCourse();
     			fout<<course->getBasicCla()<<" ";
    			fout<<course->getProfessionCla()<<" ";
    			fout<<course->getSelectCla()<<" ";
    			fout<<course->getCultureCla()<<" ";
    			fout<<course->getPracticeCla()<<endl;
    		}
            
            
            
            fout.flush();
            fout.close();
    
    }
    
    
    //对某类课程的分数进行排序    通过switch让用户进行数字选择,对应相应的课程 
    void sortByRecord(int num,Student *students){
    	Student *stus[5];
    	for(int i=0;i<size;i++){
    		stus[i]=&students[i];
    	}
    	
    	if(num==1){//根据基础课程进行排序 
    		for(int i=0;i<size-1;i++){
    			for(int j=0;j<size-i-1;j++){
    				Course *course=stus[j]->getCourse();
    				Course *course2=stus[j+1]->getCourse();
    				if(course->getBasicCla() > course2->getBasicCla()){
    					
    					Student *temp;
    					temp=stus[j];
    					stus[j]=stus[j+1];
    					stus[j+1]=temp;
    				}
    			}
    		}
    		
    	
    		
    	}else if(num==2){//根据专业课程进行排序 
    		for(int i=0;i<size-1;i++){
    			for(int j=0;j<size-i-1;j++){
    				Course *course=stus[j]->getCourse();
    				Course *course2=stus[j+1]->getCourse();
    				if(course->getProfessionCla() > course2->getProfessionCla()){
    					
    					Student *temp;
    					temp=stus[j];
    					stus[j]=stus[j+1];
    					stus[j+1]=temp;
    				}
    			}
    		}
    		
    		
    	}else if(num==3){//根据 选修课程进行排序 
    		for(int i=0;i<size-1;i++){
    			for(int j=0;j<size-i-1;j++){
    				Course *course=stus[j]->getCourse();
    				Course *course2=stus[j+1]->getCourse();
    				if(course->getSelectCla() > course2->getSelectCla()){
    					
    					Student *temp;
    					temp=stus[j];
    					stus[j]=stus[j+1];
    					stus[j+1]=temp;
    				}
    			}
    		}
    		
    	}else if(num==4){//根据文体课程进行排序 
    		for(int i=0;i<size-1;i++){
    			for(int j=0;j<size-i-1;j++){
    				Course *course=stus[j]->getCourse();
    				Course *course2=stus[j+1]->getCourse();
    				if(course->getCultureCla() > course2->getCultureCla()){
    					
    					Student *temp;
    					temp=stus[j];
    					stus[j]=stus[j+1];
    					stus[j+1]=temp;
    				}
    			}
    		}
    		
    		
    	}else if(num==5){//根据实践课程进行排序 
    		
    		for(int i=0;i<size-1;i++){
    			for(int j=0;j<size-i-1;j++){
    				Course *course=stus[j]->getCourse();
    				Course *course2=stus[j+1]->getCourse();
    				if(course->getPracticeCla() > course2->getPracticeCla()){
    					
    					Student *temp;
    					temp=stus[j];
    					stus[j]=stus[j+1];
    					stus[j+1]=temp;
    				}
    			}
    		}
    		
    		
    	}else{}
    	for(int i=0;i<size;i++){
    		Student stu=*stus[i];
    			Course *course=stu.getCourse();
    			cout<<stu.getName()<<"  ";
    			cout<<stu.getSid()<<"  ";
    			cout<<stu.getCid()<<"  ";
    			cout<<course->getBasicCla()<<"  ";
    			cout<<course->getProfessionCla()<<"  ";
    			cout<<course->getSelectCla()<<"  ";
    			cout<<course->getCultureCla()<<"  ";
    			cout<<course->getPracticeCla()<<"  "<<endl;
    		}
    } 
    
    
    展开全文
  • 二、课程名称C程序设计三、学时数与学分总学时:90 总学分:4实验学时:28 实验学分:1四、教学目的和基本要求目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握...

    《C程序设计》实验教学大纲

    一、适用范围

    大纲适用信息管理专业本科教学使用。

    二、课程名称

    C程序设计

    三、学时数与学分

    总学时:90 总学分:4

    实验学时:28 实验学分:1

    四、教学目的和基本要求

    目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤

    其是通过上机来掌握语法规则,使学生全面了解C语言的特点,熟练掌握C语言程序设计

    的基本方法和编程技巧。

    基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。

    五、实验项目与学时分配

    1-622-png_6_0_0_0_0_0_0_1433.879_2029.679-954-0-8-954.jpg

    注:带的实验项目为选做实验项目

    六、教材、讲义及参考书

    《C程序设计题解与上机指导》谭浩强主编清华大学出版社

    七、实验成绩评定办法

    实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%

    实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。

    1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫

    生等方面的表现进行综合考核。

    展开全文
  • 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]C语言程序报告学生学籍信息管理系统C语言课程设计院系:工程学院姓名:刘若愚班号指导教师:王老师日期:2007年9月C语言...

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

    C语言程序报告学生学籍信息管理系统

    C语言课程设计

    院系:工程学院

    姓名:刘若愚

    班号指导教师:王老师

    日期:2007年9月

    C语言程序设计报告

    第一部分 题目要求

    程序设计题目:学生学籍信息管理系统设计

    【要求】

    使用下面的数据,设计一个简单的学籍信息管理系统。

    学生基本信息文件及其内容:

    学号 姓名 性别 宿舍号码 电话号码

    07 张园园 女 102

    …. …… …. ….. ……….

    学生成绩基本信息文件及其内容:

    学号 课程编号 课程名称 学分 平时成绩 试验成绩 卷面成绩

    01 A

    02 B03 高等数学 4 78 -1 90

    01 B03 高等数学 4 45 -1 88

    02 C

    …. ….. ……… .. …. …. …..

    功能要求及说明:

    数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、试验成绩、卷面成绩共7个数据。综合成绩、实得分根据条件自动运算。

    综合成绩的计算:

    如果本课程的试验成绩为-1,则表示无试验,综合成绩=平时成绩*30%+卷面成绩*70%;

    如果试验成绩不为-1,表示本课程有试验,综合成绩=平时成绩*15%+试验成绩*15%+卷面成绩*70%。

    实得学分的计算:采用等级学分制。

    综合成绩在90-100之间,应得学分=学分*100%;

    综合成绩在80-90之间,应得学分=-学分*80%;

    综合成绩在70-80之间,应得学分=学分*75%;

    综合成绩在60-70之间,应得学分=学分*60%;

    综合成绩在60以下,应得学分=学分*0%。

    (2)查询功能;分为学生基本情况查询和成绩查询两种

    1》学生基本情况查询:

    输入一个学生的学号活姓名,查出此生的基本信息并显示输出。

    输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。

    成绩查询:

    输入一个学号时,查询出此生的所有课程情况,格式如下:

    学号: 姓名;

    课程编号: 课程名称: 综合成绩: 实得学分:

    课程编号: 课程名称: 综合成绩: 实得学分:

    课程编号; 课程名称: 综合成绩: 实得学分:

    ………… ………… …….. …………

    共修:XX科, 实得总学分为:XXX

    删除功能:当在中删除一个学生时,自动地在中删除此人所有的信息

    排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

    第二部分 需求分析

    根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;在程序中要浏览学生的信息,应提供显示、查找、排序等操作;另外还应该提供键盘式选择菜单实现功能选择。

    第三部分 总体设计

    根据上面的需求分析,可以将这个系统的设计分为以下几个模块:

    数据输入学生成绩管理系统数据显示数据查找

    数据输入

    学生成绩管理系统

    数据显示

    数据查找

    数据插入

    成绩排序

    第四部分 详细设计

    主函数

    主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。

    【流程图】

    显示一系列功能选项

    显示一系列功能选项

    输入n,判断n是否是0-7

    根据n的值调用各功能模块函数

    N

    Y

    [程序]

    #include<>

    void menu()

    { int n,w;

    do{ puts("\t\t**********MENU***********\n\n");

    puts("\t ");

    puts("\t ");

    puts("\t ");

    puts("\n\n\t\t*************************\n");

    printf("Choice your number(1-7):[ ] \b\b\b\b");

    scanf("%d",&n);

    if(n<1||n>7) /对选择的数字作判断/

    {w=1;getchar();}

    else w=0;}

    while (w

    展开全文
  • 《C语言程序报告学生学籍信息管理系统(总21页》由会员分享,可在线阅读,更多相关《C语言程序报告学生学籍信息管理系统(总21页(21页珍藏版)》请在人人文库网上搜索。1、C语言课程设计院系:工程学院姓名:刘若愚学号...

    《C语言程序报告学生学籍信息管理系统(总21页》由会员分享,可在线阅读,更多相关《C语言程序报告学生学籍信息管理系统(总21页(21页珍藏版)》请在人人文库网上搜索。

    1、C语言课程设计院系:工程学院姓名:刘若愚学号:20051001606班号:05205235指导教师:王老师日期:2007年9月C语言程序设计报告第一部分 题目要求程序设计题目:学生学籍信息管理系统设计【要求】使用下面的数据,设计一个简单的学籍信息管理系统。学生基本信息文件(A.TXT)及其内容:学号 姓名 性别 宿舍号码 电话号码01 张成成 男 501 8773211102 李成华 女 101 8772311203 王成凤 女 101 8772311204 张明明 男 502 8773433305 陈东 男 501 8773211106 李果 男 502 8773433307 张园园 女 1。

    2、02 87756122. . . .学生成绩基本信息文件(B.TXT)及其内容:学号 课程编号 课程名称 学分 平时成绩 试验成绩 卷面成绩 01 A01 大学物理 3 66 78 8202 B03 高等数学 4 78 -1 9001 B03 高等数学 4 45 -1 8802 C01 VF 3 65 76 66. . . . . .功能要求及说明:数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、试验成绩、卷面成绩共7个数据。综合成绩、实得分根据条件自动运算。综合成绩的计算:如果本课程的试验成绩为-1,则表示无试验,综合成绩=平时成绩*30%+卷面成绩*70%;如果试验成。

    3、绩不为-1,表示本课程有试验,综合成绩=平时成绩*15%+试验成绩*15%+卷面成绩*70%。实得学分的计算:采用等级学分制。综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=-学分*80%;综合成绩在70-80之间,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下,应得学分=学分*0%。(2)查询功能;分为学生基本情况查询和成绩查询两种1学生基本情况查询:输入一个学生的学号活姓名,查出此生的基本信息并显示输出。输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。成绩查询:输入一个学号时,查询出此生的。

    4、所有课程情况,格式如下:学号: 姓名;课程编号: 课程名称: 综合成绩: 实得学分:课程编号: 课程名称: 综合成绩: 实得学分:课程编号; 课程名称: 综合成绩: 实得学分: . 共修:XX科, 实得总学分为:XXX删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有的信息排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。第二部分 需求分析根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;在程序中要浏览学生的信息,应提供显示、查找、排序等操作;另外还应该提供键盘式选择菜单实现功能选择。第三部分 总体设计根据上面的需求分析,可以。

    5、将这个系统的设计分为以下几个模块:数据输入学生成绩管理系统数据显示数据查找数据插入成绩排序第四部分 详细设计主函数主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。【流程图】显示一系列功能选项输入n,判断n是否是0-7根据n的值调用各功能模块函数NY程序#includevoid menu() int n,w;do puts(tt*MENU*nn);puts(t 1.browse 2.enter 3.Search );puts(t 4.browse2 5.enter2 6.Search2);puts(t 7.exit );puts(nntt*n);prin。

    6、tf(Choice your number(1-7): bbbb);scanf(%d,&n);if(n7) /对选择的数字作判断/w=1;getchar();else w=0;while (w=1);switch(n)case 1: browse();break; /浏览模块/case 2: enter();break; /输入模块/case 3: search();break; /查找模块/case 4: browse2();break; /浏览模块/case 5: enter2();break; /输入模块/case 6: search2();break; /查找模块/case 7: ex。

    7、it(0);break; /退出/main() menu();2各功能模块设计输入模块:先采用结构体数组存储数据struct a int xuehao;char name15;char sex10;int shushenum;int telenum;a10;struct bint xuehao;int kechenghao;char kechengming15;int xuefen;int pingshichengji;int shiyanchengji;int juanmianchengji;int zonghechengji;int shidechengji;b10; a10.b10 中每。

    8、个数组元素对应一个学生void jisuan()int i, n,n1, n2, n3,n4;for(i=0;i90&bi.zonghechengji80&bi.zonghechengji70&bi.zonghechengji60&bi.zonghechengjivoid menu() int n,w;do puts(tt*MENU*nn);puts(t 1.browse 2.enter 3.Search );puts(t 4.browse2 5.enter2 6.Search2);puts(t 7.exit );puts(nntt*n);printf(Choice your number(1。

    9、-7): bbbb);scanf(%d,&n);if(n7)w=1;getchar();else w=0;while (w=1);switch(n)case 1: browse();break;case 2: enter();break;case 3: search();break;case 4: browse2();break;case 5: enter2();break;case 6: search2();break;case 7: exit(0);break;main() menu();struct a int xuehao;char name15;char sex10;int shus。

    10、henum;int telenum;a10;struct bint xuehao;int kechenghao;char kechengming15;int xuefen;int pingshichengji;int shiyanchengji;int juanmianchengji;int zonghechengji;int shidechengji;b10;void jisuan()int i, n,n1, n2, n3,n4;for(i=0;i90&bi.zonghechengji80&bi.zonghechengji70&bi.zonghechengji60&bi.zonghechen。

    11、gjinn);puts( 1).xuehao 2).kechenghao 3).kechengming 4).xuefen 5).pingshichengji 6).shiyanchengji 7).juanmianchengji 8)zonghechengji 9)shidechengji 10).all data 11).cancel and back );printf(Which you needed?: bbbb);scanf(%d,&c);if(c11|c11|cnn);puts( 1).xuehao 2).name 3).sex 4).shushenum 5)telenum 6).。

    12、all data 7).cancel and back );printf(Which you needed?: bbb);scanf(%d,&c);if(c7|c7|c1);do switch(c)case 1:printf(xuehao:);scanf(%d,&ai.xuehao);break;case 2:printf(name:);scanf(%s,ai.name);break;case 3:printf(sex:);scanf(%s,ai.sex);break;case 4:printf(shushenum:);scanf(%d,&ai.shushenum);break;case 5:。

    13、printf(telenum:);scanf(%d,&ai.telenum);break;case 6:input(i);break;case 7:menu();break;puts(nNow:n);printf_face2();printf_one2(i);printf(nAre you sure?nnt 1).Sure 2).No and remodify 3).Back without save in this time bbb);scanf(%d,&w1); while(w1=2);return(w1);insert2()int c,i;struct a s;i=load2();put。

    14、s(n Input one data.n);doprintf_face2();printf(nnAre you sure?nnt1).Suret 2).Cancel and againt 3).Back without save bbb);scanf(%d,&c);if(c=1)printf(nnPlease write you data!);input2(i);save2(i+1);printf_back2();else if(c!=2)menu();while(c=2);五、上机操作1 主菜单函数2 输入模块在主界面出现后输入1后回车看到下图,输入要输入的学生信息3 修改模块六、总结一个星期的实习结束了,通过此次C语言课程设计实习,我收获颇多。以前只是为了考试去学习,而这次实习才是真正意义上的将所学知识运用到实际中。C语言上机实习,可以更加深刻的了解自己的能力,了解在程序设计方面的能力。

    展开全文
  • 学分管理系统

    2012-06-04 16:33:48
    1. 录入某位学生的学分信息 2. 给定学号,显示某位学生的学分完成情况 3. 给定班号,显示该班所有学生的学分完成情况 4. 给定学号,修改该学生的学分情况 5. 按照某类课程的学分高低进行排序 6. 给定学号,对该学生...
  • C语言与数据结构实习 实现一个简单的学生学分管理系统 假设每位学生必须完成基础课50学分...(4) 给定某位学生的学号,修改该学生的学分信息; (5) 按照某类课程的学分高低进行排序; (6) 提供一些统计各类信息的功能。
  • 信息管理系统\学分制下学生信息管理系统的设计初探.PDF
  • 学生学分管理系统c++

    2010-01-14 20:27:52
    学分信息应该包括学号、姓名、课程类别、学分等。 2) 基本要求 该程序应该具有下列功能: (1) 通过键盘输入某位学生的学分; (2) 给定学号,显示某位学生的学分完成情况; (3) 给定某个班级的班号,显示该班所有...
  • 学生学分管理程序

    2011-12-05 20:21:56
    实验报告+源代码 能实现学分信息的录入,显示,查询,修改,删除,排序,文件存储及读取 代码完整无错,附运行结果
  • 不符合通常学分认定流程的,疑难杂症的处理表格
  • 学分绩点计算器是一款用于大学里面...可以自己添加适合自己的参数(有专门的添加界面 ,很方便),内置有西南石油大学部分专业的学分信息。相信这款软件一定会助您办公更方便,有感兴趣的朋友们。可以前来下载使用哦!
  • (1)管理员对教师信息、学生信息、课程学分信息进行添加。 (2)教师登录系统后,可获取所管理的课程信息,并且给对应课程的学生成绩进行打分,当学生成绩及格后自动获取对应的学分。 (3)学生登录系统后,可以查看本...
  • 3:学分管理程序:设计一个学生的学分管理程序,学生人数自定,假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8学分和实验性课程20学分才能够毕业。...1)学分信息应该包括学号
  • (l)录入某位学生的学分信息; (2)给定某位学生的学号,显示该学生的学分完成情况; (3)给定某个班级的班号,显示该班所有学生的学分完成情况; (4)给定某位学生的学号,修改该学生的学分信息; (5)给定某...
  • 学分修补系统

    2018-10-21 21:37:54
    工商管理专业信息管理系统中选题为学分修补系统,其中的组织结构图
  • 学分制环境下学习预警信息系统的设计与实现
  • 试手登录了下我们学校的研究生信息管理系统,自动计算学分绩点 1 # -*- coding:utf-8 -*- 2 import urllib 3 import urllib2 4 import re 5 import cookielib 6 from bs4 import BeautifulSoup 7 ...
  • 在上个版本的计算器发布后,陆陆续续收到十多个来自各个地方的反馈信息, 问题主要是上个版本的计算器不支持分数是小数和学分不支持小数。 我当时做这个计算器主要是为了方便自己和同学的计算,我们学校的学分是...
  • 社团活动学分管理系统

    千次阅读 2017-07-09 10:28:52
    看见可选题目里有关于学分管理系统,考虑到时间紧迫,同时兼顾期末考试,故选择了这个社团学分管理系统。这里我也很感谢自己在校团委管理全校活动学分的同学为我这次课设提供了真实的学分数据。资源已经上传,如要...
  • 学生学分管理系统

    2015-06-24 09:35:58
    学生学分管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生学分管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理,这种...
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学分制选课管理系统, 该项目可用各类java课程设计大作业中, 学分制选课管理系统的系统架构分为前后台两部分, 最终实现在线上进行学分制选课管理系统各项功能,...
  • Java EE课程设计是对所学Java EE与中间件课程的小结,是提高学生对所学...统计出自己添加的必修课的学分和选修课的学分。 (2)添加课程信息 (3)查看课程信息 (4)删除课程信息 (5)分别统计必修课和选修课的总学分

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,457
精华内容 6,182
关键字:

学分信息