精华内容
下载资源
问答
  • 大二实践周作业--C语言学生成绩管理系统(内含c文件、心得体会)
  • C 语言课程设计学生成绩管理系统 个人心得体会 徐州工程学院 14 计嵌 1 班 07 组 张凯 这一周以来的课程设计不仅让我明白了 C 语言的确是一门很有用的但是又是不容 易的一门课程 起初刚开始做课程设计时 以为这个...
  • 主要为大家详细介绍了Python实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • php学生成绩管理系统

    2019-06-20 12:57:28
    php学生成绩管理系统,大三的php课程设计,有实验报告和源代码加mysql数据库备份文件。可以直接拿来用
  • 学生成绩管理系统,功能分为: (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:...
  • 竭诚为您提供优质文档/双击可除学生成绩管理系统心得体会篇一:成绩管理系统心得成绩管理系统心得学生成绩管理系统是一功能十分強大的管理系统,它集各种功用于一身,可以完成教学中的各种操作,如对学生的成绩的...

    竭诚为您提供优质文档

    /

    双击可除

    学生成绩管理系统心得体会

    篇一:成绩管理系统心得

    成绩管理系统心得

    学生成绩管理系统是一功能十分強大的管理系统,

    它集各种功用于一

    身,可以完成教学中的各种操作,如对学生的成绩的添加

    .

    删除等。

    学生成绩管理系统功能大,

    程序编写也十分复杂,工作量很大,编写一定要认真。一个小小的失

    误都可能使程序出现大的漏洞。

    建立学生成绩管理系统,

    采用计算机对学生成绩进行管理,

    进一步提

    高办学效益和现代化水平。

    帮助广大教师提高工作效率,

    实现学生成

    绩信息管理工作流程的系统化、规范化和自动化。

    我们这次完成学生成绩管理系统分三步

    .

    一是对要写成的学生成绩管理系统做全面的分析

    ,

    即对学生成绩管理

    系统要使用的编写方法

    ,

    管理功用

    ,

    运行方式进行分析

    ,

    并作出明确的

    解决方案

    .

    针对这次的学生成绩管理系统

    ,

    它的流程是

    :

    以老师和学生两种方式进

    ,

    要有密码认证

    .

    学生进入系统在能查看此学生的各科目的成绩

    ,

    均分

    ,(:

    学生成绩管理系统心得体会

    )

    各科最高分和总分

    .

    老师进入系统

    也能查看

    各位学生的成绩

    ,

    并能添加

    ,

    删除学生和学生成绩

    ,

    对学生成绩进行总

    展开全文
  • 5.管理员可查看所有学生的排名成绩和对指定学生查看排名成绩信息 6.管理员可查看所有学生某学科的平均分 7.管理员可查看多有学生某学科的及格人数和不及格人数 8.管理员可对某学科成绩信息进行数据备份 关于模块:...
  • 包括总体设计,界面设计,详细设计与实现,系统测试,设计总结等。适合参考模板。
  • 1、C语言课程设计学生成绩管理系统 个人心得体会(徐州工程学院 14计嵌1班 07组 张凯)这一周以来的课程设计,不仅让我明白了C语言的确是一门很有用的,但是又是不容易的一门课程。起初刚开始做课程设计时,以为这个...

    《C语言课程设计学生成绩管理系统个人总结》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统个人总结(1页珍藏版)》请在人人文库网上搜索。

    1、C语言课程设计学生成绩管理系统 个人心得体会(徐州工程学院 14计嵌1班 07组 张凯)这一周以来的课程设计,不仅让我明白了C语言的确是一门很有用的,但是又是不容易的一门课程。起初刚开始做课程设计时,以为这个课程设计不会有多难,只不过是把多个函数组合起来就好了,但是,经过这一星期的编程,发现要完完整整把程序按照要求编出来是一件很不容易的事情。然而在这一周以来的学习中,也对C语言这门课程有了更加的了解和学习。在整个编程的过程中,可以说遇到了很多难题,但是让我印象最深刻的是在编写从某文件中读取学生信息这个程序时所遇到的困难。起初,程序时编写出来了,在组建时也没有错误,但是就是实现不了这个功能,接着。

    2、就是整整一天的苦战;终于,能够读取文件中的信息了,可是,新问题又来了,在显示读取的信息时出现了乱序。另外在编写加密代码的时候竟然忘记了将其放在主函数中运行闹了笑话,在指导老师的帮助下最后解决了这个问题。每天看到一行行代码着实有时让人头大。然而在这个程序完整地编写下来,我觉得编写程序需要很大的耐心,一个稍微大点的程序就有个几百甚至上千行,没有耐心是很难做得成功的。当然细心也很需要,在编程的过程中有很多错误都是自己的粗心造成的,有时甚至自己多次检查都看不出来,这样一来,会造成时间的大量浪费。这次的课程设计也是一次很好的对自我的检查。它让我知道了自己在C语言的学习上还不够认真刻苦,很多知识点还是没有很好的掌握,甚至有些知识点很生疏,这也许就是我在编写从某文件中读取学生信息这一函数时老碰壁的原因所在!从这一点上来看,发现我对待学习的态度还不够端正,有待加强。不管怎么说,经过这一次课程设计,在C语言方面的收获最大,让我读代码的能力大大提升了不少,也巩固了很多知识。同时也受到了指导老师刘云、邹文辉的细心指导,非常感谢。

    展开全文
  • 阶段 1.1 成绩管理系统实体关系设计 一实验目的和要求 1熟练掌握实体关系设计的方法 2 通过需求分析结果掌握 E-R 图 二实验内容和原理 实体关系设计是在需求分析的一个环节过程 在这一过程中产生 E-R 图该图由实体 ...
  • C 语言课程设计学生成绩管理系统 个人心得体会 徐州工程学院 14 计嵌 1 班 07 组 张凯 这一周以来的课程设计不仅让我明白了 C 语言的确是一门很有用的但是又是不容易的一门课程 起初刚开始做课程设计时 以为这个课程...
  • JAVA学生成绩管理系统课程设计报告
  • 课程设计 学生成绩管理系统 实验报告 PHP Apache mysql
  • c语言学生成绩管理系统总结

    千次阅读 2020-12-27 11:09:03
    一、系统功能 1.基本功能 1.录入信息 2.按照学号查找信息 3.按照学号修改信息 4.按照学号删除信息 5.插入信息 6.浏览全部信息 7.按c语言成绩排序 8.保存到文件 2.结构体 typedef struct student { char num[20]; /...

    c语言的大作业,主要功能是录入、修改、删除、插入、排序等,可能有些地方仍然有点bug。

    一、系统功能
    1.基本功能

    1.录入信息
    2.按照学号查找信息
    3.按照学号修改信息
    4.按照学号删除信息
    5.插入信息
    6.浏览全部信息
    7.按c语言成绩排序
    8.保存到文件
    

    2.结构体
    只写了几个基础的,学号刚开始写的int型的,但后来不知道怎么去查重等,改成了char型。

    typedef struct student
    {
    	char num[20];     //学号
    	char name[10];    //姓名
    	char sex[10];     //性别
    	char duty[10];    //专业
    	int eng;          //英语成绩
    	int math;         //数学成绩
    	int c;            //c语言成绩
    	struct student *next;next是指针变量,指向结构体变量 
    }stu;
    

    3.main函数

    int main()
    {
    	system("color 3F");//背景颜色
    	stu *head=(stu *)malloc(sizeof(stu));
    	head->next=NULL;//使head中的next部分为空
    	while(1)
    	{
    	printf("\t\t\t\t**********新生管理系统************\n");
        printf("\t\t\t\t请选择你的操作\n");
        printf("\t\t\t\t1.录入信息\n");
        printf("\t\t\t\t2.按照学号查找信息\n");
    	printf("\t\t\t\t3.按照学号修改信息\n");
    	printf("\t\t\t\t4.按照学号删除信息\n");
    	printf("\t\t\t\t5.插入信息\n");
    	printf("\t\t\t\t6.浏览全部信息\n");
    	printf("\t\t\t\t7.按c语言成绩排序\n");
    	printf("\t\t\t\t8.保存到文件\n");
    	printf("\t\t\t\t0.退出\n");
        printf("\t\t\t\t**********************************\n");
        printf("\t\t\t\t请按键选择操作:\n");
        fflush(stdin);//清除多余的未被保存的数据,防止乱码
        int c;
        scanf("%d",&c);
        switch(c)//用switch语句进行选择和调用函数
        {
        	case 1:
        		input(head);
    			break;
        	case 2:
        		seek(head);
    			break; 
        	case 3:
        		revise(head);
    			break;
    		case 4:
    			del(head);
    			break; 
    		case 5:
    			add(head); 
    			break;
    		case 6:
    		    traver(head);
    			break; 
    		case 7:
    		    sort(head); 
    			break;
    		case 8:
    		    save(head);
    		    break;
    		case 0:
    		     return 0; 
        	default:
        		printf("输入错误!\n"); 
    	}
    	} 
    } 
    

    while循环在外,系统程序能够持续运行,switch判断语句进行功能选择与函数切换。

    color[attr]
    attr        指定控制台输出的颜色属性。
    颜色属性由两个十六进制数字指定
    第一个对应于背景,第二个对应于前景:
        0 = 黑色              8 = 灰色
        1 = 蓝色              9 = 淡蓝色
        2 = 绿色              A = 淡绿色
        3 = 浅绿色            B = 淡浅绿色
        4 = 红色              C = 淡红色
        5 = 紫色              D = 淡紫色
        6 = 黄色              E = 淡黄色
        7 = 白色              F = 亮白色
    

    二、录入学生信息
    在第一次验课设的时候,只简单地写了录入,没有写查重以及格式等的限制。在最后一次验的时候,学号查重依然有问题,遍历时应注意不能直接动头指针p,使q2=p,用q2实现遍历。

    void input(stu *p)//录入 
    {
    	int n,x;
    	system("cls");   //清屏函数
    	stu *q1,*q2;     //定义该结构体类型q1,q2指针
    	q1=p;
    	
    	printf("请输入要录入的学生人数:");
    	scanf("%d",&n); 
    	while(n--)  //while循环n次,n个要录入的学生
    	{
    	stu *q=(stu *)malloc(sizeof(stu)); //给q分配内存
    	
    	int i=1; //定义i循环三次使学号只能输入数字
    	int flag=1,flag1=1,flag2=1,flag3=1,flag4=1; 
    		loop1:while(flag)
    		{
    		printf("请输入学号(三位):");
    		scanf("%s",q->num);
    	    if(strlen(q->num)!=3)//用strlen函数计算字符串长度使学号为三位数
    	    {
    		  printf("学号格式输入错误!\n");
    		  fflush(stdin);//清除多余的未被保存的数据,防止乱码
    		  continue;
    		}
    		q2=p; //头指针赋给q2
    		while(q2)
        {
        	if(strcmp(q->num,q2->num)==0)//用strcmp函数,q2遍历查重
        	{
        		printf("输入的学号重复,请重新输入!\n");
        		goto loop1;//重复重新跳到上一个while循环
    		}
    		q2=q2->next;
    	}
    		while(i<3)
    		{
    			if(q->num[i]-'0'<0 || q->num[i]-'0'>9)//让学号只能输入数字
    			{
    				printf("学号格式输入错误!\n"); 
    				break;
    			}
    			else{
    			   i++;
    				if (i==3)
    				flag=0;
    		}
    		}
    		}
    		printf("请输入学生姓名:");
    		scanf("%s",q->name);
    			
    		while(flag1)
    	{	
    		printf("请输入性别(w/m):");
    	    scanf("%s",q->sex);
    	    if(strcmp(q->sex,"w")==0)//用strcmp函数限制输入的字符,只能输入w/m
    		  flag1=0;//跳出循环
    		else if(strcmp(q->sex,"m")==0)
    		  flag1=0;//跳出循环
    		else
    		{
    		  printf("性别格式输入错误!(请输入w/m)\n");
    		}
    	}
    		printf("请输入专业:");
    		scanf("%s",q->duty);
    		
    	while (flag2)
    		{
    		  printf("请输入英语成绩(0<=eng<=150):");
    		  x=scanf("%d",&q->eng); //如果输入数字x=1
    		  if(q->eng >= 0 && q->eng <= 150 && x==1 )//限制成绩范围
    		  flag2=0;//跳出循环
    		  else{
    		  	 printf("成绩格式输入错误!\n");
    		  	 fflush(stdin);//清理未被保存的数据
    		  }
    		}
    	
    	while(flag3)
    	{
    		printf("请输入数学成绩(0<=math<=150):");
    		x=scanf("%d",&q->math);
    		if(q->math>=0 && q->math<=150 && x==1)
    		flag3=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag3=1;
    		}
    	} 
    	
    	while(flag4){
    		printf("请输入c语言成绩(0<=c<=150):");
    		x=scanf("%d",&q->c);
    		if(q->c>=0 && q->c<=150 && x==1)
    		flag4=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag4=1;
    		}
    	}
    		printf("录入成功!\n"); 
    		q->next=NULL; //使q中的next定义为空
    		q1->next=q;
    		q1=q;
    	}
    }
    

    三、查找学生信息

    void seek(stu *p)//查找 
    {
    	stu *q=p->next; 
    	char num[20];
    	int flag = 0;
    	system("cls"); 	//清屏函数
    	printf("请输入查找学生的学号:");
    	scanf("%s",num);
    	while(q!=NULL)
    	{ 
    		if(strcmp(q->num,num) == 0)//strcmp函数查找学生学号
    		{
    			printf("学生学号:%s\n",q->num);
    			printf("学生姓名:%s\n",q->name);
    			printf("学生性别:%s\n",q->sex);
    			printf("专业:%s\n",q->duty);
    			printf("英语成绩:%d\n",q->eng);
    			printf("数学成绩:%d\n",q->math);
    			printf("c语言成绩:%d\n",q->c);
    			flag = 1;
    			break;
    		}
    		q=q->next;//遍历
    	}
    	if(flag == 0)
    	{
    		printf("查无此人\n");
    	}
    }
    

    四、按照学号修改学生信息
    在录入函数源代码的基础上写了修改功能。

    void revise(stu *p)//修改
    {
    	stu *q=p->next;
    	stu *q1,*q2; 
    	int x;
    	char num[200];
    	system("cls"); 	
    	printf("请输入要修改的学号:");
    	scanf("%s",num);
    	while(q!=NULL)
    	{
    		if(strcmp(q->num,num) == 0)
    		{
    			int i=1;
    	int flag=1,flag1=1,flag2=1,flag3=1,flag4=1;
    		loop1:while(flag)
    		{
    		printf("请输入学号(三位):");
    		scanf("%s",q->num);
    	    if(strlen(q->num)!=3){
    		  printf("学号格式输入错误!\n");
    		  fflush(stdin);
    		  continue;
    		}
    	    q2=p;
    		while(q2)
        {
        	if(strcmp(q->num,q2->num)==0)
        	{
        		printf("输入的学号重复,请重新输入!\n");
        		goto loop1;
    		}
    		else{
    			break;
    		}
    		q2=q2->next; 
    	}
    		while(i<3)
    		{
    			if(q->num[i]-'0'<0 || q->num[i]-'0'>9){
    				printf("学号格式输入错误!\n"); 
    				break;
    			}
    			else{
    			   i++;
    				if (i==3)
    				flag=0;
    		}
    		}
    		}
    		printf("请输入学生姓名:");
    		scanf("%s",q->name);
    			
    		while(flag1)
    	{	
    		printf("请输入性别(w/m):");
    	    scanf("%s",q->sex);
    	    if(strcmp(q->sex,"w")==0)
    		  flag1=0;
    		else if(strcmp(q->sex,"m")==0)
    		  flag1=0;
    		else
    		{
    		  printf("性别格式输入错误!(请输入w/m)\n");
    		}
    	}
    		printf("请输入专业:");
    		scanf("%s",q->duty);
    		
    	while (flag2)
    		{
    		  printf("请输入英语成绩(0<=eng<=150):");
    		  x=scanf("%d",&q->eng);
    		  if(q->eng >= 0 && q->eng <= 150 && x==1 )
    		  flag2=0;
    		  else{
    		  	 printf("成绩格式输入错误!\n");
    		  	 fflush(stdin);
    		  }
    		}
    	
    	while(flag3)
    	{
    		printf("请输入数学成绩(0<=math<=150):");
    		x=scanf("%d",&q->math);
    		if(q->math>=0 && q->math<=150 && x==1)
    		flag3=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag3=1;
    		}
    	} 
    	
    	while(flag4){
    		printf("请输入c语言成绩(0<=c<=150):");
    		x=scanf("%d",&q->c);
    		if(q->c>=0 && q->c<=150 && x==1)
    		flag4=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag4=1;
    		}
    	}
            printf("修改成功!\n");
    		return; 
    		}
    	    q=q->next;
    		q2->next=q;
    		q2=q;
    	} 
         printf("查无此人");
    }
    

    五、按照学号删除信息
    注意while(!strcmp(q2->num,num)),刚开始写时while(strcmp(q2->num,num))一直删除不成功,当q2->num和num相等时为0,while循环无法进行。

    void del(stu *p)//删除
    {
    	stu *q1,*q2;//定义该结构体类型q1,q2指针
    	q1=p; //q1头结点,p头指针
    	q2=q1->next;
    	char num[200];
    	system("cls"); 	
    	printf("请输入想要删除的学号:");
    	scanf("%s",num);
    	while(q2!=0)
    	{
    		while(!strcmp(q2->num,num))
    		{
    			q1->next=q2->next;
    			free(q2);//释放q2
    			q2=NULL;
    			printf("删除成功\n");
    		    return;
    		}
    		q1=q2;
    		q2=q2->next;
    	}
     } 
    

    六、插入信息(头插法)
    插入部分也是结合的头插法和录入函数

    void add(stu *p) //插入 
    {
    	int n,x;
    	int i=1;
    	int flag=1,flag1=1,flag2=1,flag3=1,flag4=1;
    	stu *q,*q1,*q2;//不用像尾插法一样生成一个终端结点
    	q=(stu*)malloc(sizeof(stu));//给q分配内存
    	q1=(stu*)malloc(sizeof(stu));//给q1分配内存
    	q = p;//q为头结点
    	if(q1==NULL)
    	{
    		printf("插入失败\n");
    		exit(1);
    	}
        for(int a=0;a<n;a++);
        {
           	
    		loop1:while(flag)
    		{
    		printf("请输入学号(三位):");
    		scanf("%s",q1->num);
    	    if(strlen(q1->num)!=3){
    		  printf("学号格式输入错误!\n");
    		  fflush(stdin);
    		  continue;
    		}
    		q2=p;
    		while(q2)
        {
        	if(strcmp(q1->num,q2->num)==0)
        	{
        		printf("输入的学号重复,请重新输入!\n");
        		goto loop1;
    		}
    		q2=q2->next;
    	}
    		while(i<3)
    		{
    			if(q1->num[i]-'0'<0 || q1->num[i]-'0'>9){
    				printf("学号格式输入错误!\n"); 
    				break;
    			}
    			else{
    			   i++;
    				if (i==3)
    				flag=0;
    		}
    		}
    		}
    		printf("请输入学生姓名:");
    		scanf("%s",q1->name);
    			
    		while(flag1)
    	{	
    		printf("请输入性别(w/m):");
    	    scanf("%s",q1->sex);
    	    if(strcmp(q1->sex,"w")==0)
    		  flag1=0;
    		else if(strcmp(q1->sex,"m")==0)
    		  flag1=0;
    		else
    		{
    		  printf("性别格式输入错误!(请输入w/m)\n");
    		}
    	}
    		printf("请输入专业:");
    		scanf("%s",q1->duty);
    		
    	while (flag2)
    		{
    		  printf("请输入英语成绩(0<=eng<=150):");
    		  x=scanf("%d",&q1->eng);
    		  if(q1->eng >= 0 && q1->eng <= 150 &&x==1 )
    		  flag2=0;
    		  else{
    		  	 printf("成绩格式输入错误!\n");
    		  	 fflush(stdin);
    		  }
    		}
    	
    	while(flag3)
    	{
    		printf("请输入数学成绩(0<=math<=150):");
    		x=scanf("%d",&q1->math);
    		if(q1->math>=0 && q1->math<=150 && x==1)
    		flag3=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag3=1;
    		}
    	} 
    	
    	while(flag4){
    		printf("请输入c语言成绩(0<=c<=150):");
    		x=scanf("%d",&q1->c);
    		if(q1->c>=0 && q1->c<=150 && x==1)
    		flag4=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			  fflush(stdin);
    			flag4=1;
    		}
    	}
    	q1->next=p->next;将p指向的地址赋值给q1;
    	p->next=q1;头指针的指针域next指向q1节点,使得q1成为开始节点
    	q1=q1->next;
    	printf("插入成功!\n");
    }
    } 
    

    在这里插入图片描述

    七、浏览全部信息

    void traver(stu *p) //遍历输出
    {	
    	stu *q = p->next ;//使p的next给q
    	system("cls"); 	//清屏
    	while(q!=NULL)
        {
    		printf("学号:%s\n姓名:%s\n性别:%s\n专业:%s\n英语成绩:%d\n数学成绩:%d\nc语言成绩:%d\n",q->num,q->name,q->sex,q->duty,q->eng,q->math,q->c);
    		q=q->next;
    	}
    }
    

    八、按c语言成绩排序(降序)

    void sort(stu *p)//排序 (c语言成绩) 
     {							
    	stu *q=NULL;
    	system("cls"); 							
    	while(q!=p->next) //q不等于头指针是一次循环
    	{
    		stu *pre=p;
    		stu *cur=pre->next;
    		while(cur!=q&&cur->next !=q) 
    		{
    			if(cur->c<cur->next->c )
    			 {
    				pre->next =cur->next;
    				cur->next =cur->next->next;
    				pre->next->next =cur;
    			}
    			pre=pre->next;
    			cur=pre->next;
    		}
    		q=cur;
    	}
            traver(p);//调用traver函数输出结果
    }
    

    九、保存文件

    void save(stu *p)//文件 
    {
      	FILE*fp = fopen("学生信息.txt","w");//创建文件指针
    	if(fp!=NULL)
    	{
    		
    		while(p->next!=NULL)
    		{  
       			fprintf(fp,"学号:%s\n",p->next->num);
       			fprintf(fp,"姓名:%s\n",p->next->name);
       			fprintf(fp,"性别:%s\n",p->next->sex);
       			fprintf(fp,"专业:%s\n",p->next->duty);
       			fprintf(fp,"英语成绩:%d\n",p->next->eng);
       			fprintf(fp,"数学成绩:%d\n",p->next->math);
       			fprintf(fp,"c语言成绩:%d\n",p->next->c);
       			fprintf(fp,"---------------------------\n");
      			p=p->next;
    	  	}
    	  	printf("保存成功!\n");
    	}
    	fclose(fp);
    }
    

    全部代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct student
    {
    	char num[20];
    	char name[10];
    	char sex[10];
    	char duty[10];
    	int eng;
    	int math;
    	int c; 
    	struct student *next;
    }stu;
    
    void input(stu *p)//录入 
    {
    	int n,x;
    	system("cls");
    	stu *q1,*q2;
    	q1=p;
    	
    	printf("请输入要录入的学生人数:");
    	scanf("%d",&n); 
    	while(n--)
    	{
    	stu *q=(stu *)malloc(sizeof(stu));
    	
    	int i=1;
    	int flag=1,flag1=1,flag2=1,flag3=1,flag4=1;
    		loop1:while(flag)
    		{
    		printf("请输入学号(三位):");
    		scanf("%s",q->num);
    	    if(strlen(q->num)!=3){
    		  printf("学号格式输入错误!\n");
    		  fflush(stdin);
    		  continue;
    		}
    		q2=p;
    		while(q2)
        {
        	if(strcmp(q->num,q2->num)==0)
        	{
        		printf("输入的学号重复,请重新输入!\n");
        		goto loop1;
    		}
    		q2=q2->next;
    	}
    		while(i<3)
    		{
    			if(q->num[i]-'0'<0 || q->num[i]-'0'>9){
    				printf("学号格式输入错误!\n"); 
    				break;
    			}
    			else{
    			   i++;
    				if (i==3)
    				flag=0;
    		}
    		}
    		}
    		printf("请输入学生姓名:");
    		scanf("%s",q->name);
    			
    		while(flag1)
    	{	
    		printf("请输入性别(w/m):");
    	    scanf("%s",q->sex);
    	    if(strcmp(q->sex,"w")==0)
    		  flag1=0;
    		else if(strcmp(q->sex,"m")==0)
    		  flag1=0;
    		else
    		{
    		  printf("性别格式输入错误!(请输入w/m)\n");
    		}
    	}
    		printf("请输入专业:");
    		scanf("%s",q->duty);
    		
    	while (flag2)
    		{
    		  printf("请输入英语成绩(0<=eng<=150):");
    		  x=scanf("%d",&q->eng);
    		  if(q->eng >= 0 && q->eng <= 150 && x==1 )
    		  flag2=0;
    		  else{
    		  	 printf("成绩格式输入错误!\n");
    		  	 fflush(stdin);
    		  }
    		}
    	
    	while(flag3)
    	{
    		printf("请输入数学成绩(0<=math<=150):");
    		x=scanf("%d",&q->math);
    		if(q->math>=0 && q->math<=150 && x==1)
    		flag3=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag3=1;
    		}
    	} 
    	
    	while(flag4){
    		printf("请输入c语言成绩(0<=c<=150):");
    		x=scanf("%d",&q->c);
    		if(q->c>=0 && q->c<=150 && x==1)
    		flag4=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag4=1;
    		}
    	}
    		printf("录入成功!\n"); 
    		q->next=NULL;
    		q1->next=q;
    		q1=q;
    	}
    }
    
    void traver(stu *p) //遍历输出
    {	
    	stu *q = p->next ;
    	system("cls"); 	
    	while(q!=NULL)
        {
    		printf("学号:%s\n姓名:%s\n性别:%s\n专业:%s\n英语成绩:%d\n数学成绩:%d\nc语言成绩:%d\n",q->num,q->name,q->sex,q->duty,q->eng,q->math,q->c);
    		q=q->next;
    	}
    }
    
    void add(stu *p) //插入 
    {
    	int n,x;
    	int i=1;
    	int flag=1,flag1=1,flag2=1,flag3=1,flag4=1;
    	stu *q,*q1,*q2;
    	q=(stu*)malloc(sizeof(stu));
    	q1=(stu*)malloc(sizeof(stu));
    	q = p;
    	if(q1==NULL)
    	{
    		printf("插入失败\n");
    		exit(1);
    	}
        for(int a=0;a<n;a++);
        {
           	
    		loop1:while(flag)
    		{
    		printf("请输入学号(三位):");
    		scanf("%s",q1->num);
    	    if(strlen(q1->num)!=3){
    		  printf("学号格式输入错误!\n");
    		  fflush(stdin);
    		  continue;
    		}
    		q2=p;
    		while(q2)
        {
        	if(strcmp(q1->num,q2->num)==0)
        	{
        		printf("输入的学号重复,请重新输入!\n");
        		goto loop1;
    		}
    		q2=q2->next;
    	}
    		while(i<3)
    		{
    			if(q1->num[i]-'0'<0 || q1->num[i]-'0'>9){
    				printf("学号格式输入错误!\n"); 
    				break;
    			}
    			else{
    			   i++;
    				if (i==3)
    				flag=0;
    		}
    		}
    		}
    		printf("请输入学生姓名:");
    		scanf("%s",q1->name);
    			
    		while(flag1)
    	{	
    		printf("请输入性别(w/m):");
    	    scanf("%s",q1->sex);
    	    if(strcmp(q1->sex,"w")==0)
    		  flag1=0;
    		else if(strcmp(q1->sex,"m")==0)
    		  flag1=0;
    		else
    		{
    		  printf("性别格式输入错误!(请输入w/m)\n");
    		}
    	}
    		printf("请输入专业:");
    		scanf("%s",q1->duty);
    		
    	while (flag2)
    		{
    		  printf("请输入英语成绩(0<=eng<=150):");
    		  x=scanf("%d",&q1->eng);
    		  if(q1->eng >= 0 && q1->eng <= 150 &&x==1 )
    		  flag2=0;
    		  else{
    		  	 printf("成绩格式输入错误!\n");
    		  	 fflush(stdin);
    		  }
    		}
    	
    	while(flag3)
    	{
    		printf("请输入数学成绩(0<=math<=150):");
    		x=scanf("%d",&q1->math);
    		if(q1->math>=0 && q1->math<=150 && x==1)
    		flag3=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag3=1;
    		}
    	} 
    	
    	while(flag4){
    		printf("请输入c语言成绩(0<=c<=150):");
    		x=scanf("%d",&q1->c);
    		if(q1->c>=0 && q1->c<=150 && x==1)
    		flag4=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			  fflush(stdin);
    			flag4=1;
    		}
    	}
    	q1->next=p->next;
    	p->next=q1;
    	q1=q1->next;
    	printf("插入成功!\n");
    }
    } 
    
    void seek(stu *p)//查找 
    {
    	stu *q=p->next;
    	char num[20];
    	int flag = 0;
    	system("cls"); 	
    	printf("请输入查找学生的学号:");
    	scanf("%s",num);
    	while(q!=NULL)
    	{ 
    		if(strcmp(q->num,num) == 0)
    		{
    			printf("学生学号:%s\n",q->num);
    			printf("学生姓名:%s\n",q->name);
    			printf("学生性别:%s\n",q->sex);
    			printf("专业:%s\n",q->duty);
    			printf("英语成绩:%d\n",q->eng);
    			printf("数学成绩:%d\n",q->math);
    			printf("c语言成绩:%d\n",q->c);
    			flag = 1;
    			break;
    		}
    		q=q->next;
    	}
    	if(flag == 0)
    	{
    		printf("查无此人\n");
    	}
    }
    
    void revise(stu *p)//修改
    {
    	stu *q=p->next;
    	stu *q1,*q2; 
    	int x;
    	char num[200];
    	system("cls"); 	
    	printf("请输入要修改的学号:");
    	scanf("%s",num);
    	while(q!=NULL)
    	{
    		if(strcmp(q->num,num) == 0)
    		{
    			int i=1;
    	int flag=1,flag1=1,flag2=1,flag3=1,flag4=1;
    		loop1:while(flag)
    		{
    		printf("请输入学号(三位):");
    		scanf("%s",q->num);
    	    if(strlen(q->num)!=3){
    		  printf("学号格式输入错误!\n");
    		  fflush(stdin);
    		  continue;
    		}
    	    q2=p;
    		while(q2)
        {
        	if(strcmp(q->num,q2->num)==0)
        	{
        		printf("输入的学号重复,请重新输入!\n");
        		goto loop1;
    		}
    		else{
    			break;
    		}
    		q2=q2->next; 
    	}
    		while(i<3)
    		{
    			if(q->num[i]-'0'<0 || q->num[i]-'0'>9){
    				printf("学号格式输入错误!\n"); 
    				break;
    			}
    			else{
    			   i++;
    				if (i==3)
    				flag=0;
    		}
    		}
    		}
    		printf("请输入学生姓名:");
    		scanf("%s",q->name);
    			
    		while(flag1)
    	{	
    		printf("请输入性别(w/m):");
    	    scanf("%s",q->sex);
    	    if(strcmp(q->sex,"w")==0)
    		  flag1=0;
    		else if(strcmp(q->sex,"m")==0)
    		  flag1=0;
    		else
    		{
    		  printf("性别格式输入错误!(请输入w/m)\n");
    		}
    	}
    		printf("请输入专业:");
    		scanf("%s",q->duty);
    		
    	while (flag2)
    		{
    		  printf("请输入英语成绩(0<=eng<=150):");
    		  x=scanf("%d",&q->eng);
    		  if(q->eng >= 0 && q->eng <= 150 && x==1 )
    		  flag2=0;
    		  else{
    		  	 printf("成绩格式输入错误!\n");
    		  	 fflush(stdin);
    		  }
    		}
    	
    	while(flag3)
    	{
    		printf("请输入数学成绩(0<=math<=150):");
    		x=scanf("%d",&q->math);
    		if(q->math>=0 && q->math<=150 && x==1)
    		flag3=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag3=1;
    		}
    	} 
    	
    	while(flag4){
    		printf("请输入c语言成绩(0<=c<=150):");
    		x=scanf("%d",&q->c);
    		if(q->c>=0 && q->c<=150 && x==1)
    		flag4=0;
    		else{
    			printf("成绩格式输入错误!\n");
    			fflush(stdin);
    			flag4=1;
    		}
    	}
            printf("修改成功!\n");
    		return; 
    		}
    	    q=q->next;
    		q2->next=q;
    		q2=q;
    	} 
         printf("查无此人");
    }
    
    void del(stu *p)//删除
    {
    	stu *q1,*q2;
    	q1=p;
    	q2=q1->next;
    	char num[200];
    	system("cls"); 	
    	printf("请输入想要删除的学号:");
    	scanf("%s",num);
    	while(q2!=0)
    	{
    		while(!strcmp(q2->num,num))
    		{
    			q1->next=q2->next;
    			free(q2);
    			q2=NULL;
    			printf("删除成功\n");
    		    return;
    		}
    		q1=q2;
    		q2=q2->next;
    	}
     } 
     
    void sort(stu *p)//排序 (c语言成绩) 
     {							
    	stu *q=NULL;
    	system("cls"); 							
    	while(q!=p->next) 
    	{
    		stu *pre=p;
    		stu *cur=pre->next;
    		while(cur!=q&&cur->next !=q) 
    		{
    			if(cur->c<cur->next->c )
    			 {
    				pre->next =cur->next;
    				cur->next =cur->next->next;
    				pre->next->next =cur;
    			}
    			pre=pre->next;
    			cur=pre->next;
    		}
    		q=cur;
    	}
            traver(p);
    }
    
    void save(stu *p)//文件 
    {
      	FILE*fp = fopen("学生信息.txt","w");
    	if(fp!=NULL)
    	{
    		
    		while(p->next!=NULL)
    		{  
       			fprintf(fp,"学号:%s\n",p->next->num);
       			fprintf(fp,"姓名:%s\n",p->next->name);
       			fprintf(fp,"性别:%s\n",p->next->sex);
       			fprintf(fp,"专业:%s\n",p->next->duty);
       			fprintf(fp,"英语成绩:%d\n",p->next->eng);
       			fprintf(fp,"数学成绩:%d\n",p->next->math);
       			fprintf(fp,"c语言成绩:%d\n",p->next->c);
       			fprintf(fp,"---------------------------\n");
      			p=p->next;
    	  	}
    	  	printf("保存成功!\n");
    	}
    	fclose(fp);
    }
    
    int main()
    {
    	system("color 3F");
    	stu *head=(stu *)malloc(sizeof(stu));
    	head->next=NULL;
    	while(1)
    	{
    	printf("\t\t\t\t**********新生管理系统************\n");
        printf("\t\t\t\t请选择你的操作\n");
        printf("\t\t\t\t1.录入信息\n");
        printf("\t\t\t\t2.按照学号查找信息\n");
    	printf("\t\t\t\t3.按照学号修改信息\n");
    	printf("\t\t\t\t4.按照学号删除信息\n");
    	printf("\t\t\t\t5.插入信息\n");
    	printf("\t\t\t\t6.浏览全部信息\n");
    	printf("\t\t\t\t7.按c语言成绩排序\n");
    	printf("\t\t\t\t8.保存到文件\n");
    	printf("\t\t\t\t0.退出\n");
        printf("\t\t\t\t**********************************\n");
        printf("\t\t\t\t请按键选择操作:\n");
        fflush(stdin);
        int c;
        scanf("%d",&c);
        switch(c)
        {
        	case 1:
        		input(head);
    			break;
        	case 2:
        		seek(head);
    			break; 
        	case 3:
        		revise(head);
    			break;
    		case 4:
    			del(head);
    			break; 
    		case 5:
    			add(head); 
    			break;
    		case 6:
    		    traver(head);
    			break; 
    		case 7:
    		    sort(head); 
    			break;
    		case 8:
    		    save(head);
    		    break;
    		case 0:
    		     return 0; 
        	default:
        		printf("输入错误!\n"); 
    	}
    	} 
    } 
    
    展开全文
  • 软件工程实验报告_学生成绩管理系统
  • 数据库学生成绩管理系统课程设计报告 数据库课程设计报告1.功能需求 本报告主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都 进行详细的叙述。该系统是利用 SQL 开发出来的。通过 SQL 建立...

    41528d3028836879cd698677c3999917.gif数据库学生成绩管理系统课程设计报告

    数据库课程设计报告1.功能需求 本报告主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都 进行详细的叙述。该系统是利用 SQL 开发出来的。通过 SQL 建立学生成绩管理系统,大大 方便和简化了数据的查询和处理,管理员可以通过 SQL 语言对表内数据进行添加,删除, 修改,查询等操作,还可以建立多用户,对其使用权限进行分配和回收。 报告分为 4部分,第一部分是课题简介及设计的内容与目的,需求分析,此阶段是数据 库设计的起点。第二部分是概念设计,逻辑结构设计,它是将需求分析的用户需求抽象为信 息结构,并将概念模型转换为某个 DBMS 所支持的数据模型。第三部分是数据库的实施与 运行,它包括数据的载入及数据困的运行和数据库和数据表的创建(代码) 。第四部分是课 程设计的总结。 1.1开发环境及开发语言 本次课程设计是以学生信息管理系统为模拟模型,运用 C++编程语言结合 SQL 数据库 所开发系统。开发平台为 VC6.0 和 SQL2008。 1.2 设计目的 随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使学生成绩的管理 更加系统化,数字化,因此我们设计了该学生信息管理系统。 1.3 设计内容 运用基于 E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计 直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。首先做 好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需 求抽象为信息结构,得到 E-R 图,然后就是逻辑结构设计,将 E-R 图转换为计算机系统所 支持的逻辑模型。最后利用 SQL 完成具体的实例。 1.4.需求分析 1、 问题的提出:为了高效率的完成学生成绩的管理,决定开发学生成绩管理系统。 2、 需完成的功能: (1) 能提供管理员及普通用户(除删除和修改)录入、注销、显示当前用户、修改、删 除、查询、输出,学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。 (2) 触发器,索引,存储过程的建立及使用。 2. 概念设计 (1)(E-R图) Studen t Sname Sex Birthday Tel Sno Address Grade Score Politica Culture Cource Sno Cno Test User UserNm UserPw UserTyp (2)物理结构设计 Student Column Name Date Type Width 空值情况 Sno nchar 10 主关键字 Sname nchar 10 不为空 Sex nchar 10 不为空 Birthday numeric 10 可为空 Address nchar 10 可为空 Grade nchar 10 不为空 Po;itic nchar 10 不为空 Cuture nchar 10 不为空 Tel Nchar 10 不为空Cource Column Name Date Type Width 空值情况 Sno nchar 10 主关键字 Cno nchar 10 不为空 Score nchar 10 可为空 User Column Name Date Type Width 空值情况 User_name nchar 20 主关键字 User_Pswd nchar 20 不为空 User_Type int 可为空 (3)分析关系模式 对于关系模式 Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cuture )假定姓名 也具有唯一性,那么 Student 就有两个码,这两个码都由单个属性组成,彼此不相交。其它属性不存在对码的传递依赖与 部分依赖,又因为 Student 中除学号、姓名外没有其它的因素,所以 Student 属于 BCNF。对 于关系模式Cource(|Sno|Cno|Score|)有两个码,这两个码都由单个属性组成,彼此不相交, 其它属性不存在对码的传递依赖与部分依赖,又因为成绩中除学号、课程号外没有其它的决 定因素,所以成绩属于 BCNF。对于关系模式User(|UserName|UserType|UserPswd|)中, 它只有一个码,这里没有任何属性对课程号部分依赖或传递依赖,同时用户名是唯一的决定 因素,所以课程属于 BCNF。它和学生信息和成绩没有直接的联系,因此它是一张单独的表。 3.SQL 语句 3.1 创建表 学生表 create table Student ( Sno nchar(10) primary key,Sname nchar(10) not nullSex nchar(10) not null Age numeric(10) Address nchar(10)Class nchar(10) not null Grade nchar(10) not null Tel nchar(10) not null Politic nchar(10) not null Cuture nchar(10) not null ) 成绩表 create table Exam ( Sno nchar(10) primary key //主键约束Cno nchar(10) Not nullScore nchar(10) foreign key (Cno) references Course //外键约束 check(Score>=0) //完整性约束 ) 用户表 create table Teacher ( Username nchar(10) not nullUserPswd nchar(10) not nullUserType nchar(10) not null ) 3.2数据初始化 将学生类别加入表 Student 中 insert into Student values ( 000’,’张明’,’M’,’’,’哈尔滨’,’计科一班’,’大一’,’15880000’, ’无’,’群众’) insert into Student values( 001’,’李三’,’M’,’’,’长春’,’计科二班’,’大三’ ’15233000’.’无’, ’群众’) insert into Student values( 002’,’王强’,’M’,’’,’哈尔滨’,’软件二班’,’大二’ ’15850040’.’无’, ’群众’) insert into Student values( 003’,’张雪’,’F’,’’,’哈尔滨’,’软件一班’,’大一’ ’156809802’.’无’, ’群众’) insert into Student values( 004’,’李力’,’M’,’’,’大连’,’软件一班’,’大三’ ’15980000’.’无’, ’群众’)

    展开全文
  • 实训项目学生成绩管理系统测试用例,是excel表格
  • MFC课程设计 --学生成绩管理系统

    万次阅读 多人点赞 2018-07-26 21:12:55
    MFC课程设计 ,C++课程设计 --学生成绩管理系统 ps:因为课设完成的过程大家都不太一样,以下的代码仅供学习一下在MFC下各个控件的用法,有问题欢迎留言讨论。     实验目的 使用MFC类库编制应用程序:按钮...
  • 《oracle学生成绩管理系统设计》由会员分享,可在线阅读,更多相关《oracle学生成绩管理系统设计(11页珍藏版)》请在人人文库网上搜索。1、阶段1.1成绩管理系统实体关系设计一、实验目的和要求(1)熟练掌握实体关系...
  • 精品文档2016全新精品资料-全新公文范文-全程指导写作–独家原创1/14成绩管理系统心得(精选多篇)学生成绩管理系统是一功能十分強大的管理系统,它集各种功用于一身,可以完成教学中的各种操作,如对学生的成绩的添加...
  • 决定整个软件系统的布局。 帮助确定组件的分区。因此,他们确保组件相互粘合,但不紧密耦合。 与开发人员共同编写代码,了解日常生活中面临的挑战。 为开发微服务的团队提供某些工具和技术的建议。 提供技术治理,...
  • 目 录TOC \o "1-2" \h \z \u HYPERLINK \l "_Toc303696065" 1、开发背景 PAGEREF _Toc303696065 \h 2HYPERLINK \l "_Toc303696066" 2、系统描述 PAGEREF _Toc303696066 \h 2HYPERLINK \l "_Toc303696067" 3、数据...
  • 实训报告 实训名称 学生成绩管理系统 系部 专业班级 学生姓名 学 号 指导教师 完成日期 南京铁道职业技术学院 目 ? ? ? ? ? ? ? ? ? ? ? 装 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
  • C语言 学生成绩管理系统实验报告 利用C语言编写的学生成绩管理系统
  • 学生信息管理系统 项目数据库设计说明书 第一部分:课程设计内容 2 第一章 绪论 2 1课题简介 2 2设计目的 3 3设计内容 3 第二章 需求分析 4 1功能需求 4 1.1 学生(Student)用户 4 1.2教师(Teacher)用户 4 1.3 ...
  • 篇一:成绩管理系统心得导读: 学生成绩管理系统是一功能十分強大的管理系统,它集各种功用于一身,可以完成教学中的各种操作,如对学生的成绩的添加 删除等。学生成绩管理系统是一功能十分強大的管理系统,它集各种...
  • C语言_学生信息管理系统项目心得

    千次阅读 2020-06-22 20:40:07
    标题@## C语言_学生信息管理系统项目(文件版)心得 简介: 初步实现学生信息的增删改查功能,并将对学生数据的操作结果同步到txt文档。先上一波图看效果: 修改学生信息界面 思路: 先实现控制台部分的增删改...
  • )1 / 14成绩管理系统心得(精选多篇)第一篇:成绩管理系统心得学生成绩管理系统是一功能十分強大的管理系统,它集各种功用于一身,可以完成教学中的各种操作,如对学生的成绩的添加.删除等。学生成绩管理系统功能大,...
  • MySQL学生成绩管理系统设计实验报告

    万次阅读 多人点赞 2020-12-01 21:46:15
    主要介绍学生成绩管理系统项目开发的背景、目的、对象以及研究内容。 1.1项目背景 每个学校都需要在期末进行考试成绩的统计分析工作,而这些工作都必须在考试结束后一个星期的时间内完成。大量的成绩数据的统计工作...
  • 学生成绩管理系统功能:增.删.改.查.排序.这五个部份组成.均由单独的函数完成.其中信息的存取均以字典形式表达.#student_info.py#插入学生信息def input_student():infos=[]while True:n=input("请输入学生...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,918
精华内容 1,167
关键字:

学生成绩管理系统设计心得