问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言学生信息管理系统代码

发布网友 发布时间:2022-04-30 14:54

我来回答

7个回答

懂视网 时间:2022-04-09 01:39

dao.CourseDao; import model.Course; import view.C2SView; import view.CourseView; import view.StudentView; import java.sql.SQLException; import java.util.List; import java.util.Scanner; /** * Created by yinus * Date:2016/4/8 * Time:16:09 */ public class Main { private static final String PROMPT="Main[S/C/C2S/E]>"; private static final String menu="" + "[S]STUDENT " + "[C]COURSE " + "[C2S]COURSE2STUDENT " + "[E]EXIT " + PROMPT; public static void main(String[] args) throws SQLException,NullPointerException { System.out.print(menu); Scanner in = new Scanner(System.in); while (in.hasNext()){String keyWord = in.next(); if (keyWord.equals("E")){ return; } else if (keyWord.equals("S")){ StudentView.view(); System.out.print(PROMPT); } else if (keyWord.equals("C")){ CourseView.view(); System.out.print(PROMPT); } else if (keyWord.equals("C2S")){ C2SView.view(); System.out.print(PROMPT); } } } }

 

第二次数据库作业--Main

标签:

热心网友 时间:2022-04-08 22:47

代码如下:

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct examinee //考生信息结构
{   char examno[20]; //准考证号
char name[10]; //姓名
char sex[4]; //性别
short age; //年龄
char examtype[10]; //报考科目
}ElemType;

typedef struct Node //定义链表结点
{
ElemType data; //数据域
struct Node *next; //指针域
}Node,*List,*position;

List make_empty( List L ); //创建一个带头结点的空表
int is_empty( List L ); //测试链表是否是空表
int is_last( position p, List L ); //测试当前位置是否是表尾
position make_node( position p,int n ); //创建结点并输入考生信息
void put_information( position p ); //是否输出该考生信息
void put_name_information( List L ); //输出姓名为xx的考生信息
int put_pos_information( position p ); //输出该地址考生信息
void link_to_tail( List L, position p ); //将结点连接到表尾
int ciculation_make(); //循环创建考生信息
int judge_put_all(); //是否输出所有考生信息
void put_all(List L); //输出所有考生信息。
position find( List L ); //查找第一个姓名为xx的元素并返回位置
position find_previous( List L ); //查找第一个姓名为xx的元素并返回该元素直接前驱的位置
//int judge_delete_val(); //询问是否删除考生数据
int delete_val( List L ); //删除指定考生信息并输出其信息
void menu(List L); //菜单函数
List L;
//position p;

int
main( void ) 
{
List L = NULL; //定义头结点指针
position p = NULL; //定义表工作指针
L = make_empty( L ); //创建空表
printf("\t\t\t★★考生报名管理程序★★\n\t\t----------------------------------------\n");
menu(L);
return 0;
}

//创建一个带头结点的空表
List
make_empty( List L)
{
L = ( List ) malloc (sizeof( Node ));
if(NULL == L)
{
printf("内存分配失败");
exit( 1 );
}
L->next = NULL;
//printf("空表创建成功。\n");
return L;
}

//创建结点并输入考生信息
position
make_node( position p ,int n)
{
if(n) //n为1是创建结点并输入,n为0是修改
{
p = ( position ) malloc ( sizeof ( Node ));
p->next = NULL ;
}
printf("请输入考生准考证号:");
gets(p->data.examno);
printf("请输入考生姓名:");
gets(p->data.name);
do
{
printf("请输入考生性别,只能输入“男”或者“女”:");
gets(p->data.sex);
}
while( 0 != strcmp( p->data.sex, "男" ) && 0 != strcmp( p->data.sex, "女" )); //判断性别是否有误
printf("请输入考生年龄:");
scanf("%hd",&p->data.age);
getchar();  //如果把这句删掉,就“无法执行”下面的报考类别
/*下面的do while用来判断报考类别是否输入有误*/
do
{
printf("请输入报考类别,只能输入“数学”或“英语”或者“数据结构”:");
gets(p->data.examtype);
}
while( 0 != strcmp( "英语", p->data.examtype ) && 0 != strcmp( "数学", p->data.examtype ) && 0 != strcmp( "数据结构", p->data.examtype ));
if(n)
{
printf("报名成功\n");
}
else
{
printf("修改成功\n");
}
return p;
}

//前插法;
void
link_to_tail( List L, position p)
{
p->next = L->next;
L->next = p;
}

//查找第一个姓名为xx的元素并返回位置
position
find( List L )
{
position p = L->next;
char name[10];
printf("请输入你要查找的考生姓名:");
gets(name);
while( p != NULL && 0 != strcmp( p->data.name , name))
{
p=p->next;
}
return p;
}

//测试链表是否是空表
int
is_empty( List L )
{
return L->next == NULL;
}

//测试当前位置是否是表尾
int
is_last( position p, List L )
{
return p->next == NULL;
}

//输出姓名为xx的考生信息
void
put_name_information( List L )
{
position p = find(L);
if(p!=NULL)
{
printf("您要查找的考生信息:\n");
printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
}
else
{
printf("没有您要找的学生。\n");
}

}

//循环创建考生信息
int
ciculation_make()
{
int n = 2;
do
{
printf("是否继续创建考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//是否输出考生信息
void
put_information( position p )
{
int n=2;
do
{
printf("是否输出该考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
if(n)
{
printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
}
}


//是否输出所有考生信息
int
judge_put_all()
{
int n = 2;
do
{
printf("是否输出所有考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//输出所有考生信息
void
put_all(List L)
{
if(L->next == NULL)
{
printf("现无考生报名!\n");
}
else
{
position p=L->next;
while( p != NULL )
{
printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
p=p->next;
}
}
//getchar();

}

//询问是否删除考生数据
int
judge_delete_val()
{
int n = 2;

do
{
printf("是否要删除某个考生数据?是请输入“1”,不是输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//查找第一个姓名为xx的元素并返回其直接前驱的位置
position
find_previous( List L )
{
position q = L;
position p = L->next;
char name[10];
printf("请输入你要查找的考生姓名:");
gets(name);
while( p != NULL && 0 != strcmp( p->data.name , name))
{
q=p;
p=p->next;
}
if( p != NULL )
{
return q;
}
else
return p;
}

//删除指定考生信息并输出其信息
int
delete_val(List L)
{
int n=2;
position q=NULL;
position p=find_previous( L ); //返回考生信息地址
if( NULL == p )
{
printf("你要删除的考生不存在\n");
return 0;
}
else
{
q = p->next;
p->next = q->next;
printf("删除成功。\n删除的考生信息为:\n");
printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",q->data.examno,q->data.name,q->data.sex,q->data.age,q->data.examtype);
free(q);
return 1;
}

}

//输出该地址考试信息
int
put_pos_information( position p )
{
if(p != NULL )
{
printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
return 1;
}
else
{
printf("没有您要查找的学生。");
return 0;
}
}
//菜单函数
void
menu(List L)
{
printf("\t\t\t   a. 考生报名入口\n");
printf("\t\t\t   b. 查询考生信息\n");
printf("\t\t\t   c. 修改考生信息\n");
printf("\t\t\t   d. 删除考生信息\n");
printf("\t\t\t   e. 全部考生信息\n");
printf("\t\t\t   f. 程序作者信息\n");
printf("\t\t\t   g.   退出程序\n");
char n='h';

while(n != 'g')
{
do  //确定正确输入
{
printf("请通过字母序号选择功能:");
n = getchar();
getchar();
putchar('\n');
if( n < 'a' || n > 'g')
{
printf("错误的字母序号。\n");
}
}
while( n < 'a' || n > 'g' );
switch (n)
{
case 'a':
{
printf("请输入报名考生信息:\n");
position p = make_node( p, 1 ); //创建新结点
link_to_tail( L, p ); //将新结点连接到表上
put_information( p );   //是否输出该考生信息
putchar('\n');
}
break;

case 'b':
{
put_name_information( L );
putchar('\n');
}
break;

case 'c':
{
int n=0;
position p = NULL;
printf("您正在进行修改操作。\n");
p = find(L);
n = put_pos_information( p );
if(n)
{
make_node( p , 0 );
put_information( p );   //是否输出该考生信息
}
putchar('\n');
}
break;

case 'd':
{
printf("您正在进行删除操作。\n");
delete_val( L );
putchar('\n');
}
break;

case 'e':
{
put_all( L );
putchar('\n');
}
break;

case 'f':
{
printf("              修改日期    版本号      修改人      修改内容    \n");
printf("        --------------------------------------------------------\n");
printf("              2018.6.19    v2.0       陈百川     增加主菜单\n");
printf("              2018.6.23    v3.0       陈百川   增加生成文件功能\n\n");
printf("            该版本号为v2.0\n");
putchar('\n');
}
break;

default:
break;
}
}
printf("                     感谢本次使用,祝您生活愉快。");
getch();
}

扩展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:

百度百科——C语言

热心网友 时间:2022-04-09 00:05

/*引用库函数*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*定义结构体数组*/
typedef struct
{
char num[12]; /*学号*/
char name[20]; /*姓名*/
char sex[2]; /*性别*/
int score[3]; /*成绩*/
float avg; /*平均分*/
int sum; /*总成绩*/
}Student;

Student studentAll[80]; /*结构体数组*/
int student_number = 0; /*总人数*/
/*菜单函数*/
int menu_select()
{
int check_number;
do{
system("cls"); /*运行前清屏clear screen,在stdlib.h中*/
printf("\t★☆☆☆☆☆☆学生成绩管理系统☆☆☆☆☆☆★\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("\t★| 9. 待定功能 |★\n");
printf("\t★| 0. 保存退出 |★\n");
printf("\t★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★\n");
printf("请输入选择(0-9):");
scanf("%d",&check_number); /*读入选择*/
}while(check_number<0||check_number>9);
return(check_number); /*返回选择*/
}

//以下的student都是形式参数,真正的数组是在全局变量里定义的studentAll数组

/*输入若干条记录*/
void Input(Student student[])
{
int i=0,j;
char flag,clear[10]; /*clear[10]为清除多余的数据所用*/
char studentNum[12]; //暂存某学生学号
//判断是否已经存在相同学生的学号
while(flag!='n'&&flag!='N') //判断flag是不是n/N,以此判断是否继续输入学生信息
{
printf("请输入学生学号: ");
scanf("%s",studentNum);

while(strcmp(student[i].num,studentNum)!=0&&i<student_number)
{
i++; /*查找判断*/
}
//查找到学生,无法增加学生信息,返回主函数
if(i<student_number)
printf("已有相同学号的学生,请重新输入\n");
//如果没有查找到学生,即可增加学生信息
else
{ if(i==student_number)
{memset(student[i].num, 0, sizeof(student[i].num));//字符串清空
strcpy(student[i].num,studentNum);

printf("学生姓名:");
scanf("%s",student[student_number].name);
printf("学生性别:");
scanf("%s",student[student_number].sex);
printf("c语言成绩:");
scanf("%d",&student[student_number].score[0]);
printf("数据结构成绩:");
scanf("%d",&student[student_number].score[1]);
printf("数据库成绩:");
scanf("%d",&student[student_number].score[2]);

student[student_number].sum=0;
for(j=0;j<3;j++)
student[student_number].sum+=student[student_number].score[j];
student[student_number].avg = (float)student[student_number].sum/3;
//printf("%.2f\n",student[student_number].avg);
gets(clear); //*清除多余的输入
printf("此学生信息录入完毕,是否继续?(Y/N)");
scanf("%c",&flag); //输入判断
student_number++;//总人数加1
i=0;}
}

}

}

/*显示所有记录*/
void Display(Student student[])
{
int i=0;
printf("——————————————————————————————————————\n");
printf("|学号 姓名 性别 C语言成绩 数据结构成绩 数据库成绩 平均成绩 总成绩|\n");
printf("——————————————————————————————————————\n");
while(i!=student_number)
{
printf("| %s %s %s %d %d %d %f %d\n",student[i].num,student[i].name,student[i].sex,student[i].score[0],student[i].score[1],student[i].score[2],student[i].avg,student[i].sum);
i=i+1;
}
}
/*按学号排序*/
void Sort_by_num(Student student[])
{
Student student_sort;
int i,j;
for(i=0;i<student_number-1;i++)
{
for(j=0;j<student_number-1;j++)
{
if(strcmp(student[j].num,student[j+1].num)>0)
{
student_sort=student[j];
student[j]=student[j+1];
student[j+1]=student_sort;
}
}
}
}
/*按总成绩排序*/
void Sort_by_sum(Student student[])
{
Student student_sort;
int i,j;
for(i=0;i<student_number-1;i++)
{
for(j=0;j<student_number-1;j++)
{
if(student[j].sum>student[j+1].sum)
{
student_sort=student[j];
student[j]=student[j+1];
student[j+1]=student_sort;
}
}
}
}
/*按姓名查找并显示一个记录*/
void Query_a_record(Student student[])
{
int i,j;
char findname[20]; //输入学生的姓名
scanf("%s",findname);
for(j=0;j<student_number;j++)
{
if(strcmp(student[j].name,findname)==0)
{i=j;
} /*查找判断*/
}

printf("|学号 姓名 性别 C语言成绩 数据结构成绩 数据库成绩 平均成绩 总成绩|\n");
printf("———————————————————————————————————————\n");
printf("| %s %s %s %d %d %d %f %d\n",student[i].num,student[i].name,student[i].sex,student[i].score[0],student[i].score[1],student[i].score[2],student[i].avg,student[i].sum);
}
/*按学号查找,删除一条记录*/
void Delete_a_record(Student student[])
{
int i,j;
char findname[20];
printf("请输入将要删除的学生名字"); //输入学生的姓名
scanf("%s",findname);
for(j=0;j<student_number;j++)
{
if(strcmp(student[j].name,findname)==0)
{
i=j;
}
} /*查找判断*/
for(;i<student_number-1;i++)
{
student[i]=student[i+1];
}
student_number--;
}
/*修改学生信息*/
void modifyStudentinformation(Student student[])
{
char changenum[20];
int i=0;
printf("输入将要修改的学生学号");
scanf("%s",changenum);
while(strcmp(student[i].num,changenum)!=0&&i<student_number)
{
i++; /*查找判断*/
}
if(i<student_number)
{
printf("输入新的学生学号");
scanf("%s",student[i].num);
printf("输入新的学生姓名:");
scanf("%s",student[i].name);
printf("输入新的学生性别:");
scanf("%s",student[i].sex);
printf("输入新的c语言成绩:");
scanf("%d",&student[i].score[0]);
printf("输入新的数据结构成绩:");
scanf("%d",&student[i].score[1]);
printf("输入新的数据库成绩:");
scanf("%d",&student[i].score[2]);
}
student[i].sum=student[i].score[0]+student[i].score[1]+student[i].score[2];
student[i].avg=(float)student[i].sum/3;
}

/*查看各门课程的成绩情况*/
void showClass(Student student[])
{
int i;
int score[3]={0,0,0};
int average[3]={0,0,0};
for(i=0;i<student_number;i++)
{
score[0]=score[0]+student[i].score[0];
score[1]=score[1]+student[i].score[1];
score[2]=score[2]+student[i].score[2];
}

average[0]=score[0]/student_number;
average[1]=score[1]/student_number;
average[2]=score[2]/student_number;
printf("C语言的平均成绩是 %d总成绩是%d\n",average[0],score[0]);
printf("数据结构的平均成绩是%d总成绩是%d\n",average[1],score[1]);
printf("数据库的平均成绩是 %d总成绩是%d\n",average[2],score[2]);
}
/*从文件中读入数据*/
void AddfromText(Student student[])
{
int i=0;
int number = 0;
FILE *fp; /*定义文件指针*/
if((fp=fopen("C:\\xin\\student2.txt","rb"))==NULL) /*打开二进制文件,如果不存在则创建*/
{
fp=fopen("C:\\xin\\student2.txt","wb");
}
fscanf(fp,"共有%d条记录\n",&student_number); /*读入总记录量*/

while(i<student_number) /*循环读入数据*/
{
fscanf(fp,"%s %s %s %d %d %d %f %d\n",student[i].num,student[i].name,student[i].sex,&student[i].score[0],&student[i].score[1],&student[i].score[2],&student[i].avg,&student[i].sum);
i++;
}
fclose(fp);
}
/*将所有记录写入文件*/
WritetoText(Student student[])
{
int i=0;
FILE *fp;
fp=fopen("C:\\xin\\student2.txt","wb");
fprintf(fp,"共有%d条记录\n",student_number);
while(i<student_number)
{
fprintf(fp," %s %s %s %d %d %d %f %d\n",student[i].num,student[i].name,student[i].sex,student[i].score[0],student[i].score[1],student[i].score[2],student[i].avg,student[i].sum);
i++;
}
fclose(fp);
}

/*主函数*/
int main()
{
AddfromText(studentAll);
for(;;)
{
switch(menu_select()) /*选择判断*/
{
case 1:
printf("插入学生信息\n"); /*输入若干条记录*/
Input(studentAll);
break;
case 2:
printf("显示记录\n"); /*显示所有记录*/
Display(studentAll);
system("pause");
break;
case 3:
printf("按学号排序\n");
Sort_by_num(studentAll); /*按学号排序*/
printf("按学号排序成功!\n");
Display(studentAll);
system("pause");
break;
case 4:
printf("按总成绩排序\n");
Sort_by_sum(studentAll); /*按总成绩排序*/
printf("按总成绩排序成功!\n");
Display(studentAll);
system("pause");
break;
case 5:
printf("查找单个学生\n");
Query_a_record(studentAll); /*按姓名查找学生*/
system("pause");
break;
case 6:
printf("删除指定学生\n");
Delete_a_record(studentAll); /*按姓名查找,删除一条记录*/
system("pause");
break;
case 7:
printf("修改学生信息\n");
modifyStudentinformation(studentAll); /*修改学生信息*/
system("pause");
break;
case 8:
printf("查看各门课程的成绩情况\n");
showClass(studentAll); /*查看各门课程的成绩情况*/
system("pause");
break;
case 9:
printf("待定功能\n");
printf("功能描述");
system("pause");
break;
case 0:
WritetoText(studentAll);
printf("已保存,退出系统\n"); /*结束程序*/
system("pause");
exit(0);
}
}
}

热心网友 时间:2022-04-09 01:40

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void frist_print()
{
printf("\t\t********************************\n\n"); //欢迎信息
printf("\t\t\t欢迎进入学生成绩系统\n");
}
void menu()
{

printf("\n\t\t********************************\n"); //管理菜单
printf("\t\t==\t1.录入学生成绩\n\t\t+\n");
printf("\t\t==\t2.显示学生成绩\n\t\t+\n");
printf("\t\t==\t3.查询学生成绩\n\t\t+\n");
printf("\t\t==\t4.添加学生成绩\n\t\t+\n");
printf("\t\t==\t5.修改学生成绩\n\t\t+\n");
printf("\t\t==\t6.删除学生成绩\n\t\t+\n");
printf("\t\t==\t7.清空页面\n\t\t+\n");
printf("\t\t==\t8.退出系统\n");
printf("\t\t********************************\n");
printf("please choise 1--8:\t");
putchar(10);
}

struct MM // 结构体定义变量
{
char num[20];
char name[10];
float pay;
int many;

}mm;
void scanf_1() //第一次输入信息并保存在文件中
{
char ch;
FILE *fp;
if((fp=fopen("dd.dat","wb+"))==NULL)
{
printf("cannot open file\n");
exit(0);
}

do
{
printf("请输入成绩的--编号:\t");
getchar();
gets(mm.num);
printf("姓名:\t");
gets(mm.name);
printf("成绩:\t");
scanf("%f",&mm.pay);
printf("学号:\t");
scanf("%d",&mm.many);
if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)
{
printf("file write error\n");
exit(0);
}

printf("是否继续输入y or n ?\t");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);

}
void find() //查询成绩的信息
{ int a,b=0;
char ch[20];
FILE *fp;
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("请输入要查询的成绩的方式\n\t1.编号 2.姓名:\n\t请选择 1 or 2 \t");
scanf("%d",&a);
if(a==1)
{ getchar();
printf("请输入成绩的编号:\t");
gets(ch);
while(fread(&mm,sizeof(struct MM),1,fp)==1)
if(strcmp(mm.num,ch)==0)
{
b++;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
if(b==0) printf("对不起!没有找到相关信息:\n");
}
else if(a==2)
{ printf("请输入成绩的姓名:\t");
getchar();
gets(ch);
while(fread(&mm,sizeof(struct MM),1,fp)==1)
if(strcmp(mm.name,ch)==0)
{
b++;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
if(b==0) printf("input error!\n");
}
fclose(fp);
}

void scanf_2() //第二次输入信息并保存在文件中
{
char ch;
FILE *fp;
if((fp=fopen("dd.dat","ab"))==NULL)
{
printf("cannot open file\n");
exit(0);
}

do
{
printf("请输入要添加成绩的--编号:\t");
getchar();
gets(mm.num);
printf("姓名:\t");
gets(mm.name);
printf("价格:\t");
scanf("%f",&mm.pay);
printf("学号:\t");
scanf("%d",&mm.many);
if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)
{
printf("file write error\n");
exit(0);
}

printf("是否继续输入y or n ?\t");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
}
void print() //输出文档中的信息
{
FILE *fp;
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
return ;
}
printf("编号\t姓名\t价格\t\t学号\n");
while(fread(&mm,sizeof(struct MM),1,fp)==1)
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
fclose(fp);
}
void change()
{ //修改信息的函数,定义另一个文件,把要修改的信息放到该文件中
struct XX //然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名
{ //把原来的文件移除;
char num[20];
char name[10];
float pay;
int many;
}xx;
FILE *fp2;
int a,b=0,c=0,n=0;
char ch[20],ck;
FILE *fp;
do{

if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("temp.dat","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}

printf("请输入要修改成绩的编号:\t");
scanf("%s",ch);
n++;
while(fread(&mm,sizeof(struct MM),1,fp)==1)
{
if((strcmp(mm.num,ch)==0))
{
b++; //b的值如果一直没有改变说明,没有找到相关的信息;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
getchar();
printf("请输入成绩的新编号:\t");
gets(xx.num);
printf("请输入成绩的新姓名:\t");
gets(xx.name);
printf("请输入成绩的新价格:\t");
scanf("%f",&xx.pay);
printf("请输入成绩新学号:\t");
scanf("%d",&xx.many);
getchar();
fwrite(&xx,sizeof(struct XX),1,fp2);
}
if(strcmp(mm.num,ch)!=0)
fwrite(&mm,sizeof(struct MM),1,fp2);
}
if(b==0)
{
printf("\t没有找到相关信息!\n");
getchar();
}
rewind(fp); //如果要继续修改的话,要把标记返回到文件的开头;

printf("是否继续修改?enter 'y' or 'n' \t");
ck=getchar();
fclose(fp);
fclose(fp2);
remove("dd.dat");
rename("temp.dat","dd.dat");

}while(ck=='y'||ck=='Y');
if(b!=0) //如果没有找到相关信息就不能输出
printf("\t修改成功:\n");

}

void del()
{ //删除函数和修改很相似
FILE *fp2;
int a,b=0,c=0,n=0;
char ch[20],ck;
FILE *fp;

do {
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("temp.dat","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("请输入要删除成绩的编号:\t");
scanf("%s",ch);
n++;
while(fread(&mm,sizeof(struct MM),1,fp)==1)
{
if((strcmp(mm.num,ch)==0))
{
b++; //b的值如果一直没有改变说明,没有找到相关的信息;
printf("编号\t姓名\t价格\t\t学号\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
else if(strcmp(mm.num,ch)!=0)
fwrite(&mm,sizeof(struct MM),1,fp2);
}
if(b==0)
{
printf("\t没有找到相关信息!\n");
getchar();
}
rewind(fp);
getchar();
getchar();
printf("删除成功!");
getchar(); //如果要继续修改的话,要把标记返回到文件的开头;
printf("是否继续删除?enter 'y' or 'n' \t");
ck=getchar();
fclose(fp);
fclose(fp2);
remove("dd.dat");
rename("temp.dat","dd.dat");
}while(ck=='y'||ck=='Y');
if(b!=0) //如果没有找到相关信息就不能输出
printf("\t保存成功:\n");

}
void myexit()
{
int a;
char ch;
printf("\t是否确定退出?请选择 y or n: ");
getchar();
ch=getchar();
if(ch=='y'||ch=='Y') exit(0);
else
menu();

}
int main()
{
int a;
frist_print();
menu();
while(1)
{
scanf("%d",&a);
if(a==1)
scanf_1();
else if(a==2)
print();
else if(a==3)
find();
else if(a==4)
scanf_2();
else if(a==5)
change();
else if(a==6)
del();
else if(a==7)
system("cls");
else if(a==8)
myexit();
else printf("输入错误!!!请重新输入:\t");

printf("\t按任意键继续!\n");
getch();
menu();
}
getch();

}
一个成绩管理系统,注释不是太多,写的不太好,能运行,符合你初级水平。
满意请采纳。

热心网友 时间:2022-04-09 03:31

这是成绩管理系统

热心网友 时间:2022-04-09 05:39

热心网友 时间:2022-04-09 08:04

c语言。可编制的程序有很多种。
c语言学生信息管理系统代码

position make_node( position p,int n ); //创建结点并输入考生信息void put_information( position p ); //是否输出该考生信息 void put_name_information( List L ); //输出姓名为xx的考生信息int put_pos_information( position p ); //输出该地址考生信息 void link_to_tail( List L, position p ...

学生信息管理系统最简单源代码。

1、创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入intmian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、在Stu源文件的...

如何用C语言编写学生信息管理系统

参考如下学生信息管理系统的C源代码吧。include &lt;stdio.h&gt;#include &lt;string.h&gt;/*定义学生结构体*/struct Student{ char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average;};/*声明学生数组及学生数量*/struct Student students[1000];int num=...

用C语言编写学生信息管理系统,十万火急!

可以参考 include "stdio.h" /*I/O函数*/ include "stdlib.h" /*其它说明*/ include "string.h" /*字符串函数*/ include "conio.h" /*屏幕操作函数*/ include "mem.h" /*内存操作函数*/ include "ctype.h" /*字符操作函数*/ include "alloc.h" /*动态地址分配函数*/ struct score ...

c语言学生管理系统源代码

2008-06-10 c语言程序学生成绩管理系统源代码 161 2016-06-26 c语言学生成绩管理系统1000行源代码 4 2013-08-13 求一个C语言学生学籍管理系统源代码 7 2014-05-22 c语言学生信息管理系统代码 406 2011-09-21 求C语言学习成绩管理系统源代码 2 2017-07-18 学生信息管理系统c语言源代码,跪求源代码 ...

如何用c语言制作一个学生信息管理系统,要求以文件形式保存

printf("欢迎进入信息管理版块!\n\n");printf("\025 1、添加学生\n");printf("\025 2、删除学生\n");printf("\025 3、修改学生信息\n");printf("\025 4、返回\n");printf("请输入您的选择编号:\n");scanf("%d",&amp;j);getchar();if ( 1 == j) head = AddStu(head);else...

如何用C语言编写一个学生管理系统

void output() /*输出全部的学生信息*/ { int i,j;printf("全部学生信息如下:\n");printf("学号 姓名 性别 班级 成绩1 成绩2 成绩3 总分 平均分\n");for (i=0;i&lt;2;i++){printf("%s%8s",stu[i].num,stu[i].name);printf("%4c%8s",stu[i].sex,stu[i].clas);for (j=0;...

C语言课程设计:学生学籍管理系统。有谁有代码给我做个参考吗?谢谢了...

case '1': read(); //调用建立链表的函数;输出链表信息;print();printf("\nPress any key Continue ");//getchar();getchar();break;case '2': //调用按学号查找学生信息的函数;并输出查找结果信息;long c;printf("input the number you want to find:");scanf("%ld",&amp;c);find(c...

用标准C语言编写学生信息管理系统

printf("1.输入学生信息 \n");printf("2.按总分进行排榜 \n");printf("3.查找相应的学生信息 \n");printf("4.退出学生成绩管理系统 \n\n");printf("请输入功能选择编号:");fflush(stdin); //清空输入缓冲区 scanf("%c",&amp;selmenu); //接受用户选择的功能编号 switch(...

学生信息管理系统(C语言版)

2007-09-16 学生信息管理系统c语言程序 15 2014-05-22 c语言学生信息管理系统代码 406 2010-07-09 学生信息管理系统C语言编程 148 2011-06-13 用C语言编写学生信息管理系统(带说明,每句说明) 14 2010-07-13 c语言编写学生信息管理系统 174 更多类似问题 &gt; 为...

学生管理系统c语言代码简易 c语言编写学生管理系统 c语言学籍管理系统 c语言输出自己的姓名和学号 c语言学生信息管理系统登录功能 大一c语言程序设计实验报告 c语言文件中数字变为7位怎么取消 c语言学生成绩管理系统代码 c语言医院收费系统代码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...高三平时数学很好,但是一考试简单的题都成难题了,脑子凝滞了一样... ...了,做题效率很低,特别是数学,不会的题太多,一道题要想跟长时间,两... 云南昆明乘坐公交有没有类似北京的公交卡 昆明公交卡办理方法是怎样的? 小学数学报第1324期答案如果一张纸的厚度是0.1毫米,一包只有五百张, ...资格证考试好久报名,好久考试呢?有没有培训学校呢 一张纸厚1毫米,将它对折再对折共四次,现在的厚度是__ 草舍名院哪个系列好 烟台草房是什么意思? 评价员工表现好的评语 谁有北师大的初三的英语单词啊 莱维特小金人还需要调试吗 50%TT预付,50%LC付款,PI怎么做 capital surplus是什么意思 你好,可以给我调试声卡吗,创新内置声卡7.1声卡,麦克风莱维特的? 怎么把陶瓷酒瓶改花瓶 含pay的单词 帕萨特插电混动值得买吗? 陶瓷酒瓶怎么开 如何切割废酒瓶 帕萨特插电混动不充电可以吗 如何完美切割酒瓶,需要什么工具~ 最好有步骤~~ 谢谢~ 企业薪酬管理&quot;3p1m&quot;具体指什么 帕萨特混动能直接在电动汽车直流快速充电机充电嘛? 瓷酒瓶如何切割 大众帕萨特新能源车在高速行驶时自充电耗油吗 烧制陶罐(酒瓶)用什么能锯开? 油电混合动力汽车能自动充电吗 养老保险 (PI EE Actual) 中,“EE”的全称是什么?为什么加上“Actual”? 美的多联机通电显示FE怎么解决? 赫兹我都没设置青少年模式密码为什么会弹出来? 勤劳创业财源旺;和睦家庭福寿多隶书繁体字 为什么我下载了很多隶书,可怎么也到不了,这是为什么? 在没有字格的宣纸上写字,如何保证字距与行距一致?如何做到横平竖直? 物理方面的考研有哪些科目? 华为p40怎么给别的手机充 物理考研都考什么科目 多的隶书怎么写 考研专业课考大学物理的专业都有哪些啊? 请问一下物理学考研哪一科比较好考,就业也比较好,可以当老师的,还有我不知道现在应该看什么书籍 本来手电筒光是白色的 不知道怎么变成红色的了 隶书多字有那些写法 优学派学生平板电脑什么设置密码? 请问东北师范大学考研的物理专业的课程与教学论和学科教育除了考*英语外,还看什么专业课啊? 想考在职研究生,山东师范大学学科教育(物理)专业,需要考什么内容,初试资料有什么? vivo手机手电茼打开是红光 非苹果手机怎样下载苹果手表app 我是物理学专业的,请问考研的科目是什么? 物理学考研考哪些科目 隶书共有多少种风格?