学生信息管理系统(C++)
学生信息管理系统c语言代码
#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN 15#define N 100struct record //定义结构体{char code[LEN];char name[LEN];int age;char sex[3];char time[LEN];char add[30];char tel[LEN];char mail[30];}stu[N];int k=1,n,m; //引用void readfile();void seek();void modify();void insert();void del();void display();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void help(){printf("\n0.欢迎使用系统帮助!\n");printf("\n1.进入系统后,先刷新学生信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加学生信息后,切记保存按;\n");printf("\n4.谢谢您的使用!\n");}void readfile()//建立信息{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","r+"))==NULL){printf("Open file %s error! Strike any key to exit!",p);system("pause");//暂停的意思,等待用户信号exit(0);}while(fscanf(fp,"%s %s %d %s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,s tu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() //查找信息{int i,item,flag;char s1[21];printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0)//{flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);if(flag==0){printf("该学号不存在!\n");}}break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() //修改信息{int i,item,num;char sex1[3],s1[LEN],s2[LEN];printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");}while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].name,s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s",sex1);strcpy(stu[num].sex,sex1); break;case 4:printf("请输入新的出生年月:\n");scanf("%s",s2);strcpy(stu[num].time,s2); break;case 5:printf("请输入新的地址:\n");scanf("%s",s2);strcpy(stu[num].add,s2); break;case 6:printf("请输入新的电话号码:\n");scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s",s2);strcpy(stu[num].mail,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()//排序{int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0)//比较学号的大小{strcpy(temp,stu[j-1].code); //交换学号以及以下的信息(冒泡排序)strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}void insert()//插入函数{int i=n,j,flag;printf("请输入待增加的学生数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第%d 个学生的学号:\n",i+1);scanf("%s",stu[i].code);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf("已有该学号,请检查后重新录入!\n");flag=1;break;}}printf("请输入第%d 个学生的姓名:\n",i+1);scanf("%s",stu[i].name);printf("请输入第%d 个学生的年龄:\n",i+1);scanf("%d",&stu[i].age);printf("请输入第%d 个学生的性别:\n",i+1);scanf("%s",stu[i].sex);printf("请输入第%d 个学生的出生年月:(格式:年.月)\n",i+1);scanf("%s",stu[i].time);printf("请输入第%d 个学生的地址:\n",i+1);scanf("%s",stu[i].add);printf("请输入第%d 个学生的电话:\n",i+1);scanf("%s",stu[i].tel);printf("请输入第%d 个学生的E-mail:\n",i+1);scanf("%s",stu[i].mail);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n\n");sort();}void del()//删除信息{int i,j,flag=0;char s1[LEN+1];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("该学号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单\n");n--;}}void display() //浏览信息{int i;printf("所有学生的信息为:\n");printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].ti me,stu[i].add,stu[i].tel,stu[i].mail);}}void save() // 保存{int i;FILE *fp;fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","a");for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i]. add,stu[i].tel,stu[i].mail);}fclose(fp);}void menu()//菜单{int num;printf(" \n\n 学生信息管理系统\n\n");printf("*********************系统功能菜单************************ \n");printf("友情提示:查询前请先刷新系统!\n");printf(" ---------------------- ---------------------- \n");printf(" ********************************************* \n");printf(" * 0.系统帮助及说明* * 1.刷新学生信息* \n");printf(" ********************************************* \n");printf(" * 2.查询学生信息* * 3.修改学生信息* \n");printf(" ********************************************* \n");printf(" * 4.增加学生信息* * 5.按学号删除信息* \n");printf(" ********************************************* \n");printf(" * 6.显示当前信息* * 7.保存当前学生信息* \n");printf(" ********************** ********************** \n");printf(" * 8.退出系统* \n");printf(" ********************** \n");printf(" ---------------------- ---------------------- \n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择\n");} }。
学生管理系统c语言源代码
int main()
{
initLinkTable(&head);//初始化表头
readStu();//读入源文件
while (1)
{
menu();
system("cls");
}
}
void initLinkTable(studentLinkPoint *p)
int sum(studentLinkPoint);//求和
void avg(studentLinkPoint);//求平均分
void disAvgSum(studentLinkPoint);//显示总分和平均分
char *inputNumber();//专门用来输入一个学生的学号,返回该字符串的指针
char name[20];
char number[18];
int i;
if(temp==0)
{
error("input");
return 0;
}
else
{
temp->student=(studentPint)malloc(sizeof(studentNod));
break;
case 0:
del(head,end);
break;
}
if(c==0)
exit(1);
}
void del(studentLinkPoint p,studentLinkPoint End)
{
studentLinkPoint q;
if(end==head)
printf(" %3.1f %3.1f\n",p->student->sum,p->student->avg);
C语言学籍管理系统(内含源代码)
学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查询学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。
系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。
程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。
以下是这些函数原型及功能设计。
(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。
学生信息管理系统C语言源代码
#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define len sizeof(struct student)FILE *fp;struct student{long num;char name[15];int age;char sex[3];char chushen[10];char dizhi[20];char phone[11];char email[20];struct student *next;};void menu(){printf("===========学生信息管理系统==========\n\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");printf("=====================================\n");}struct student *creat() //录入学生信息{int n;struct student *head;struct student *p1,*p2;n=0;p1=p2=(struct student *) malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen ,p1->dizhi,p1->phone,p1->email);head=NULL;while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chu shen,p1->dizhi,p1->phone,p1->email);}p2->next=NULL;return(head);}void insert(struct student *head) //插入学生信息{int search_num;struct student *p,*q,*s;p=head;printf("在哪个学生前插入请输入学号:\n");scanf("%d",&search_num);while((p!=NULL)&&(p->num!=search_num)){q=p;p=p->next;}s=(struct student *)malloc(len);q->next=s;system("cls");printf("请输入学生信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&s->num,&s->age,s->name,s->sex,s->chushen,s->diz hi,s->phone,s->email);s->next=p;}void printList(struct student *head) //浏览全部学生信息{struct student *p;p=head;if(head==NULL)printf("没有学生信息!!\n");else{do{fread(p,len,1,fp);printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);p=p->next;}while(p!=NULL);}}void findList_num(struct student *head,long search_num) //按学号查找{struct student *p;p=head;while((p!=NULL)&&(p->num!=search_num))p=p->next;if(p!=NULL)printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);elseprintf("没有该学生信息!!\n");}void findList_name(struct student *head,char *search_name) //按姓名查找{struct student *p;int cmp1=0,cmp=0;p=head;while(p!=NULL)if(strcmp(p->name,search_name)!=0){p=p->next;cmp++;}else{printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);p=p->next;cmp1=1;}if(cmp!=0&&cmp1==0)printf("没有该学生信息!!\n");}void xiugai(struct student *p1,long xiu_num) //修改学生信息{struct student *p2;p2=p1;while((p2!=NULL)&&(p2->num!=xiu_num))p2=p2->next;if(p2!=NULL){scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p2->num,&p2->age,p2->name,p2->sex,p2->chu shen,p2->dizhi,p2->phone,p2->email);}elseprintf("没有该学生信息!!\n");}struct student *delList(struct student *head,long del_num) // 删除学生信息{struct student *p,*q;p=head;q=head;while(p &&(p->num != del_num)){q=p;p=p->next;}if(p==NULL)printf("无此学号!\n");else{if(p == head){head = p->next;free(p);}else{q->next = p->next;free(p);}}return head;}void paixu(struct student *head) //按学号排序{struct student *p,*f,*t;char ch[100];int i;t=f=p=head;for(p=head;p->next!=NULL;p=p->next){for(t=head,f=t->next;t->next!=NULL;t=t->next,f=f->next){if(t->num>f->num>0){i=t->num;t->num=f->num;f->num=i;i=t->age;t->age=f->age;f->age=i;strcpy(ch,t->name);strcpy(t->name,f->name);strcpy(f->name,ch);strcpy(ch,t->sex);strcpy(t->sex,f->sex);strcpy(f->sex,ch);strcpy(ch,t->chushen);strcpy(t->chushen,f->chushen);strcpy(f->chushen,ch);strcpy(ch,t->dizhi);strcpy(t->dizhi,f->dizhi);strcpy(f->dizhi,ch);strcpy(ch,t->phone);strcpy(t->phone,f->phone);strcpy(f->phone,ch);strcpy(ch,t->email);strcpy(t->email,f->email);strcpy(f->email,ch);}}}// return head;}void save(struct student *head) //保存为磁盘文件{struct student *p;if((fp=fopen("keshe","w"))==NULL){printf("cannot open this file\n");exit(0);}p=head;while(p!=NULL){fprintf(fp,"%d\n",p->num);fprintf(fp,"%d\n",p->age);fprintf(fp,"%s\n",p->name);fprintf(fp,"%s\n",p->sex);fprintf(fp,"%s\n",p->chushen);fprintf(fp,"%s\n",p->dizhi);fprintf(fp,"%s\n",p->phone);fprintf(fp,"%s\n",p->email);p=p->next;}fclose(fp);}struct student *read() //从磁盘读取文件{struct student *head=NULL;struct student *p=NULL;struct student *t=NULL;int a;// fp=fopen("keshe","r");if((fp=fopen("keshe","r"))==NULL){printf("cannot open this file\n");exit(0);}while(1){t=(struct student *)malloc(len);a=fscanf(fp,"%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&t->num,&t->age,t->name,t->sex,t->chush en,t->dizhi,t->phone,t->email);if(a==0||a==-1)return head;t->next=NULL;if(p==NULL){p=t;head=t;}else{p->next=t;p=p->next;p->next=NULL;}}fclose(fp);}void main(){int code=0;struct student *pt = NULL;while(code!=8){menu();printf("请输入上述序号进行操作:\n");scanf("%d",&code);system("cls");switch(code){case 1:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=creat();save(pt);system("cls");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("************录入学生信息成功***********!!\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 2:{system("cls");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();printList(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 3:{int search=0;system("cls");printf("===========================查询学生信息==============================\n");printf("---------------------------------------------------------------------\n");while(search!=3){printf("1、按学号查询\n2、按姓名查询\n3、退出查询\n");scanf("%d",&search);switch(search){case 1:{long search_num;system("cls");printf("请输入学生学号\n");scanf("%d",&search_num);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 2:{char search_name[15];system("cls");printf("请输入学生姓名\n");scanf("%s",search_name);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_name(read(),search_name);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};}}system("cls");};break;case 4:{long del_num;system("cls");printf("===========================删除学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("请输入要删除学生信息的学号:\n");scanf("%d",&del_num);system("cls");pt=delList(read(),del_num);save(pt);printf("===========================删除结果================================\n");printf("-------------------------------------------------------------------\n");printf("学号为%d的学生信息成功删除\n",del_num);printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 5:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");insert(pt);save(pt);system("cls");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("****插入学生信息成功***!!\n\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");}break;case 6:{long search_num;system("cls");printf("请输入要修改的学生学号:\n");scanf("%d",&search_num);system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================修改学生信息==================================\n");printf("-------------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("\n");printf("请输入修改信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();xiugai(pt,search_num);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("****修改学生信息成功***!!\n\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 7:{system("cls");printf(" 按学号从小到大排序\n\n");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();paixu(pt);printList(pt);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 8:read();break;}}}。
c语言学生信息管理系统设计报告
c语言学生信息管理系统设计报告随着教学质量和教学管理的要求不断提高,校园管理系统对于诸多困难领域的改善服务开始发挥着重要作用,而学生信息技术系统设计是实现校园管理质量提升的重要手段之一。
实施学生信息管理系统可以提高人力资源管理的效率,降低办理各项业务的成本,将学校管理变得更加规范和有效。
本报告旨在设计一套C语言学生信息管理系统,用于学校信息管理与市场营销管理,实现数据的及时收集、存储和处理,同时,改善学校的教学管理,提高教学质量,提升学生的学习体验。
首先,系统设计将涉及到C语言的语法和结构,以便理解和实现学生信息的管理。
其次,关于系统的功能,可以从学生信息管理、任课管理、教学管理、学术科研、职位设置、绩效考核等方面进行完善。
针对关键管理系统,为了实现系统的可靠性和安全性,将采用多种数据库技术,包括SQL Server、Oracle、MySQL等数据库技术,以及主流计算机语言C++、Java等,实现数据库的操作、学生信息管理系统的开发、学习管理系统的开发等技术需求。
此外,本报告还将对相关技术以及软件测试等内容进行分析,以保证学生信息管理系统的可靠性和稳定性。
本报告的完成,必须充分考虑C语言的基本知识,以及C语言学生信息管理系统在实施过程中的可能风险。
在实施过程中,应该通过计算机技术的应用、软件测试、数据库技术的改进等多方面分析,以保证系统在实施过程中的高效稳定性。
综上所述,本报告将实施C语言学生信息管理系统,实现学校信息管理与市场营销管理,旨在收集、存储和处理数据,同时提高教学管理的质量,提升学生的学习体验,实现学校的管理变得更加规范和有效。
此外,本报告还将深入探讨如何利用计算机技术、数据库技术、软件测试等相关技术,保证学生信息管理系统的可靠性和安全性。
学生管理系统c语言简单版
学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
用C语言编写的一个学生信息管理系统
用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。
在主函数里能实现以下功能。
运行后出现一个选择提示。
可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
学生信息管理系统操作手册
学生信息管理系统操作手册I.1 引言I.1.1编写目的学生信息管理系统操作手册可以让广大用户更加熟悉的使用和操作学生信息管理系统。
I.1.2背景a、软件系统名称:学生信息管理系统;b、软件项目开发者:学生信息管理系统开发小组第13组;c、软件系统用户:内江师范学院全校师生。
I.1.3 定义学生信息管理系统:学生信息管理是帮助教学人员、行政人员对学生信息进行管理的系统,使用C#编程语言,独立完成其功能。
I.1.4参考资料a、项目开发计划b、需求规格说明书c、概要设计说明书d、详细设计说明书e、测试计划I.2系统概述I.2.1系统功能a密码设置:每个操作人员有着自己的密码,可以防止非系统人员进入本系统,每个人的权限不一样,可以防止越权操作;b系统管理:添加新用户,修改登录人员的密码,退出系统;c用户管理:系统管理员添加新用户后,由添加的新用户完成自己的完整信息;d信息管理:学生和教师基本信息的添加、修改、查询和删除;e课程设置:课程的添加、查询、修改、删除等以及学生选择课程;f成绩管理:学生选课成绩的添加、查询、修改、删除等。
I.2.2系统性能要求系统响应时间,更新处理时间,数据处理,计算时间都在1秒以内;操作指令既可以用鼠标点击输入,也可以用键盘输入操作命令;此系统可以在当前所有windows 2000以上的操作系统上运行使用。
I.2.3 系统运行环境a、硬件:P800、内存64M以上的PC机;b、支持软件:Windows2000以上,Microrsoft SQL Sever 2012支持framework 库。
I.3安装与初始化只需要PC机器Microsoft SQL Sever 2012启动软件,进入登录界面。
I.4运行说明I.4.1 运行表I.4.2运行步骤I.4.2.1运行控制通过窗体的按钮可以进行控制I.4.2.2操作信息给出为操作中心的操作人员和管理人员所需要的信息,如:a、运行目的:对信息进行管理;b、操作要求:要求PC机装有SQl sever 2012,操作系统Windows2000以上;c、启动方法:直接启动;d、预计的运行时间:响应时间1s以内;e、操作命令格式及说明:通过窗体按钮进行操作;f、与运行有联系的其他事项:暂无。
c语言课程设计学生学籍管理系统
c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。
通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。
四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。
以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。
五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。
学生信息管理系统操作手册
学生信息管理系统操作手册一、简介学生信息管理系统是一种用于学校管理学生信息的工具。
它可以用来记录学生的个人信息、课程安排、成绩等内容,并提供一系列功能供教师、学生和家长使用。
本篇文章将为您详细介绍学生信息管理系统的操作手册,帮助您熟悉该系统的各项功能和使用方法。
二、登录与注册1. 用户登录a. 打开学生信息管理系统的登录页面,输入用户名和密码;b. 点击“登录”按钮,进入系统的主界面。
2. 用户注册a. 打开学生信息管理系统的注册页面,填写必要的个人信息;b. 点击“注册”按钮,完成注册。
三、个人信息管理1. 查看个人信息a. 在系统主界面,点击个人信息选项卡;b. 查看自己的个人信息,如姓名、学号、性别、出生日期等。
2. 修改个人信息a. 在个人信息页面,点击“修改”按钮;b. 修改需要更新的个人信息,如联系方式、地址等;c. 点击“保存”按钮,更新个人信息。
四、课程信息管理1. 查看课程信息a. 在系统主界面,点击课程信息选项卡;b. 查看自己所选修的课程信息,如课程名称、课程时间、授课教师等。
2. 选择课程a. 在课程信息页面,点击“选择课程”按钮;b. 在弹出的课程列表中选择需要选修的课程;c. 点击“确认选择”按钮,完成选课。
五、成绩查询与管理1. 成绩查询a. 在系统主界面,点击成绩查询选项卡;b. 查看自己的成绩信息,如课程成绩、平均成绩等。
2. 成绩管理a. 对于教师用户,可以在教师专用界面进行成绩录入;b. 在成绩管理页面,选择相应的课程和学生,录入对应的成绩;c. 点击“保存”按钮,完成成绩录入。
六、考勤管理1. 查看考勤记录a. 在系统主界面,点击考勤管理选项卡;b. 查看考勤记录,如出勤次数、请假记录等。
2. 考勤记录管理a. 对于教师用户,可以在教师专用界面进行考勤记录管理;b. 在考勤记录管理页面,选择相应的课程和学生,录入考勤记录;c. 点击“保存”按钮,完成考勤记录管理。
学生信息管理系统c语言版源代码
学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。
学生管理系统 C语言代码
#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i] .cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。
学生信息管理系统c语言代码
学生信息管理系统c语言代码以下是一个简单的学生信息管理系统的 C 语言代码示例,包含了学生信息的添加、查询、修改和删除功能。
由于代码超过了 400 字,我将提供一个简化的版本,你可以根据需要进行扩展和改进。
```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STUDENTS 100// 学生结构体struct Student {char id[10];char name[50];int age;};// 学生信息列表struct Student students[MAX_STUDENTS];// 学生数量int studentCount = 0;// 添加学生信息void addStudent() {if (studentCount >= MAX_STUDENTS) {printf("学生数量已满,无法添加更多学生。
\n");return;}printf("请输入学生 ID: ");scanf("%s", students[studentCount].id);printf("请输入学生姓名: ");scanf("%s", students[studentCount].name);printf("请输入学生年龄: ");scanf("%d", &students[studentCount].age);studentCount++;printf("学生信息添加成功。
\n");}// 查询学生信息void queryStudent() {if (studentCount == 0) {printf("没有学生信息可供查询。
C语言 学生信息管理系统(完整版)
电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。
本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。
本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。
它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。
学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。
学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。
关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。
C#学生信息管理系统
C#学生信息管理系统C学生信息管理系统一、系统概述学生信息管理系统是一个用于管理学生相关信息的软件应用程序。
它涵盖了学生的基本信息、课程成绩、考勤记录、奖惩情况等多个方面。
通过这个系统,学校管理人员、教师和学生可以方便地查询、更新和分析学生的各类信息,从而更好地支持教学和管理决策。
二、系统功能1、学生信息录入与编辑能够方便地录入新生的信息,包括姓名、性别、出生日期、家庭住址等基本资料。
同时,对于已录入的信息,也支持随时修改和更新。
2、课程管理可以设置课程名称、课程编号、学分、授课教师等课程相关信息。
还能够将学生与课程进行关联,便于后续的成绩录入和统计。
3、成绩管理教师能够录入学生的课程成绩,系统可以自动计算平均分、总分等统计数据。
学生和家长可以查询成绩,了解学习情况。
4、考勤管理记录学生的出勤情况,如迟到、早退、旷课等,并生成相应的考勤报表。
5、奖惩管理记录学生在校期间的奖励和处罚情况,为综合素质评价提供依据。
6、报表生成能够根据用户的需求生成各种报表,如学生信息报表、成绩报表、考勤报表等,方便打印和存档。
7、用户权限管理为不同的用户设置不同的权限,如管理员拥有最高权限,可以进行系统的全面管理;教师可以录入和查询与教学相关的信息;学生只能查询自己的信息等。
三、系统设计1、数据库设计合理的数据库设计是系统稳定运行的基础。
根据系统的需求,设计了学生表、课程表、成绩表、考勤表、奖惩表等多个数据表,并通过主键和外键建立了表之间的关联。
2、界面设计系统界面采用简洁、直观的设计风格,方便用户操作。
对于重要的操作,如数据录入和修改,会进行数据有效性验证,确保数据的准确性。
3、代码架构采用分层架构,将系统分为表示层、业务逻辑层和数据访问层。
表示层负责与用户进行交互,业务逻辑层处理各种业务逻辑,数据访问层负责与数据库进行交互。
四、系统实现1、数据录入与编辑功能的实现通过 C的控件和数据库操作语句,实现了对学生信息、课程信息等的录入和编辑功能。
C++课程设计(学生管理系统)
课程设计目的熟悉程序设计的基本流程,掌握程序设计基本方法,基本技巧、并能综合运用,提高程序设计能力。
通过实践,熟悉掌握C++语言中面向过程部分的内容,能够运用C++语言解决一个实际问题。
设计环境及语言VC+集成开发环境(IDE)Microsoft visual C++ 6。
0语言。
课题设计步骤1.需求分析从软件使用者处获得用户需求,确定课题开发应具备的功能;2.系统结构设计将整个系统功能分块,考虑各个功能模块应具备的功能,模块间的联系,划分不同的子系统进行设计;3.数据设计设计系统中新的数据类型、存储类型;4.代码设计在以上阶段的基础上编写代码;5.软件测试使用实现设计好的测试用例、测试次数对编制的程序进行测试,发现存在错误(包括潜在的问题),加以修改,完善。
课程设计内容:1.学生个人信息管理系统。
本课程设计通过建立、修改、查询、显示、排序等显示学生个人信息等功能,具体的技术有:(1)结构、枚举类型的定义与使用;(2)数组的定义使用;(3)程序的三种基本控制流程的综合、灵活运用;(4)普通指针和数组指针的定义和使用;(5)各类函数的定义和调用;(6)文件的输入/输出(7)程序的调试。
2.具备的功能有:(1)新增学生数据的添加:姓名,成绩.(2)修改学生信息:输入姓名,根据姓名,修改该学生的三项学生信息数据并显示;(3)删除一个学生信息:输入姓名,根据学生姓名删除该生信息;(4)根据学生姓名查询:输入姓名,查找该学生并显示学生个人信息;(5)显示全部学生信息;(6)根据学生姓名首字母先后排序学生个人信息;3.设计要求(1)在Visual C++控制台应用程序方式下设计课题。
(2)设计的程序完成该课程规定的功能。
(3) 程序具有一定的健壮性.4.设计部分#include<iostream。
h〉#include〈string.h>#include〈fstream。
h〉class stu //定义一个stu类{char name[20];double math,chinese,english,average,sum;public:stu(){}stu(char n[20],double ma,double chin,double eng){strcpy(name,n);math=ma;chinese=chin;english=eng;}double getsum(){sum=chinese+english+math;return sum;}double getaver(){average=getsum()/3;return average;}friend void main();};void main(){cout<〈"请选择您需要的操作!"〈<endl;cout〈〈”操作:"<〈endl;cout〈〈”(0)数据录入"<<endl;cout〈〈"(1)增加人员"〈〈endl;cout<〈”(2)删除人员”〈〈endl;cout<<”(3)修改数据"<<endl;cout〈〈"查询:"<<endl;cout〈<”(4)按总成绩查询”〈〈endl;cout<<"(5)按姓名查询”〈〈endl;cout<〈"(6)输出所有学生的数据"〈〈endl;cout<<"成绩名词"<<endl;cout<〈"(7)按总分查询排名”〈<endl;cout<〈"(8)按语文查询排名"<〈endl;cout<<"(9)按数学查询排名"〈〈endl;cout〈<”(y)按英语查询排名”〈<endl;cout〈<”选择相关操作请输入相对的括号里的阿拉伯数字!"<〈endl;char p;char w;stu *s[50];ofstream *file[50];int i=0;int j=0;bool flag2=0;do{cin>>p;if((p>='0'&&p〈='10'))flag2=1;elsecout<<"指令错误!请重新输入:"<<endl;}while(flag2==0);do{switch(p){case '0':{char c;char name[20];double math,chinese,english;do{cout<<"请输入姓名"<<endl;cin〉>name;cout〈〈”请输入数学成绩:”〈〈endl;cin>>math;cout<〈"请输入语文成绩:"<<endl;cin〉>chinese;cout<<"请输入外语成绩:"〈<endl;cin>〉english;file[j]=new ofstream(”d:\\document",ios::ate);*file[j]<<”姓名"〈<name〈<”数学成绩”〈〈math<〈”语文成绩"〈<chinese<〈”外语成绩”<〈english〈〈endl;j++;s[i]=new stu(name, math, chinese, english);i++;cout〈〈”数据录入成功,想继续录入吗(y/n)"<〈endl;cin>>c;flag2=0;do{if(c!=’y’&&c!='n'){cout<<”指令错误!请重新输入!"<<endl;cin〉>c;}elseflag2=1;}while(flag2==0);}while(c==’y’);break;}case '4’:{double t;char c;do{int flag1=0;cout〈<”请输入你要查询学生的总成绩"<<endl;cin〉>t;for(int q=0;q〈i;q++){if(s[q]—〉getsum()==t){flag1=1;cout<〈”您要查询的学生是:”〈<(*s[q])。
C语言学生管理系统代码
struct scores *snext;
}stscores;
//宏定义学生个人信息
#define stmes (stmessage *)malloc(sizeof(stmessage)) //为学生个人信息结构体开辟动态内存空间
fflush(stdin);
s--;
}
switch(a)
{
case '1': mainmessage(); continue;//学生基本信息
case '2': mainresult();continue;//学生的成绩信息
case '3': exit(1);//退出系统
void xiugairesult();//修改学生成绩信息
void delatemessag1();//删除学生个人基本信息
void delatemessag2();//删除班级学生基本信息
void delatemessag3();//删除系基本信息
void delatemessag4();//删除全校基本信息
void ziresult4();//学生成绩信息修改菜单
void addmessage();//添加学生基本信息
void judgefile();//判断文件是否存在
void addresult();//添加学生成绩信息
void searchresult();//查询学生成绩信息
void readresult();//加载学生成绩信息到程序
//全局变量
stmessage *head=NULL;
stscores *shead=NULL;
学生信息管理系统C语言报告
学生信息管理系统C语言报告简介学生信息管理系统是一种可以对学生信息进行管理的软件系统。
通过该系统,可以方便地添加、修改、查询和删除学生信息,提高学生信息管理的效率和准确性。
本报告将介绍学生信息管理系统的设计和实现过程,包括系统功能、技术选型和代码结构等方面。
通过该报告的阅读,读者可以了解到该系统的开发背景和主要功能,以及查看源代码和运行效果。
系统功能学生信息管理系统的主要功能如下:1. 添加学生信息:可以输入学生的姓名、年龄、性别、学号等基本信息,并保存到系统中。
2. 修改学生信息:可以根据学生的学号或姓名,修改学生的基本信息。
3. 查询学生信息:可以根据学生的学号、姓名、年龄、性别等条件,查询学生的基本信息。
4. 删除学生信息:可以根据学生的学号或姓名,将学生的基本信息从系统中删除。
技术选型为了实现学生信息管理系统的需求,我们选择使用C语言进行开发。
C语言是一种高效、可靠的编程语言,有着丰富的开发资源和庞大的用户群体。
在开发过程中,我们采用了以下技术选型:- 编程语言:C语言C语言作为一种结构化的编程语言,具有强大的计算能力和灵活的控制语句,非常适合开发类似学生信息管理系统这样的小规模应用。
代码结构学生信息管理系统的代码结构如下:cinclude <stdio.h>struct Student {char name[50];int age;char gender[10];int student_id;};void add_student(struct Student *students, int *count) {添加学生信息的代码逻辑}void modify_student(struct Student *students, int count) {修改学生信息的代码逻辑}void query_student(struct Student *students, int count) {查询学生信息的代码逻辑}void delete_student(struct Student *students, int *count) {删除学生信息的代码逻辑}int main() {struct Student students[100];int count = 0;主程序逻辑,包括用户界面等}在代码结构中,我们定义了一个`Student`结构体,用于存储学生的基本信息。
学生成绩管理系统c语言代码(供参考)
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h”#include”stdlib.h”#include”string.h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf(”=〉初始化失败!”);return 0;}else{p->next=NULL;p-〉date.number=0;//头结点存放学生人数printf(”初始化成功!\n”);return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=>请输入新生姓名!\n”);gets(p—〉);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d”,&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q—〉date。
number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n”);q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与工程学院C++课程设计报告起止日期: 2013年 06月 17 日至 2013 年 07 月 05 日学生姓名班级电气信息类学号指导教师2013年07月03号目录1引言 (3)1.1 课题背景及意义 (3)1.2 课程设计的目的及内容 (4)2系统需求分析 (5)2.1 功能需求分析 (5)2.2 系统总体结构设计 (5)3详细设计 (6)3.1 数据结构设计 (6)3.2系统函数的组成、功能、参数说明、相互调用关系 8 4设计测试流程 (10)5课程设计总结 (17)参考文献 (17)附录 (17)1引言为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理效率。
使用该程序之后,学校管理者可以查询某位学生、某个科目的成绩情况,还可以对学生成绩进行排名,对学生的数据进行修改和删除,其中排名包括总分排名和各个科目的排名,学生可以更具自己的个人信息进行成绩查询,查询结果包括各个科目的分数、总分和平均分。
通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。
1.1 课题背景及意义一直以来人们使用传统的人工方式管理学生成绩,在计算机尚未在学校广泛使用之前,学生成绩管理主要依靠手工。
一个最典型的手工处理过程就是:当考试完后,老师就要把学生成绩登记到文档中,当老师或学生要查询成绩的时候要一个一个去找,总分、平均分都需要一个一个累加起来算,很麻烦,不过最麻烦的还是排名,不能一目了然。
以上所描述的手工过程的不足之处显而易见,首先处理学生成绩的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。
利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。
我们很清晰的看到自己的各个科目成绩和每个科目的排名和总分排名以及所有学生的成绩分布,而且还是零失误,所有的都是一目了然。
极大的方便了学生和老师。
为提高成绩管理效率,管理人员的工作负担,有必要开发一个小型成绩管理系统来对学生成绩实施有效管理。
1.2 课程设计的目的及内容目的:1、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;2、使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力;3、使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
内容:(一)小型学生成绩管理系统1、需要处理的基础数据✧学生基本信息:如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。
✧学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。
2、系统的基本功能✧数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;✧数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;✧数据的插入:插入某个学生信息;✧数据的查询:如按学号查询、按姓名查询等;✧数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;✧平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;✧列出不及格学生清单(学号、姓名、不及格的课程和成绩)。
考虑用文件把数据保存起来(可选)。
2系统需求分析2.1 功能需求分析0)录入数据:将学生的信息利用函数写入对象数组内。
1)增加人员:增加学生,将学生的信息利用函数写入对象数组内。
2)删除人员:删除学生信息和成绩。
3)修改数据:修改学生成绩。
4)按学号查询:根据学生学号,查询学生信息。
5)按姓名查询:根据学生姓名,查询学生信息。
6)输出所有学生成绩。
7)按总平均分排名:按照总平均分从高到低排序。
8)列出不及格学生:按照总平均分列出不及格学生信息。
2.2 系统总体结构设计对学生成绩进行管理的系统,主要划分为以下三个模块:1)操作:包括录入数据、增加人员、删除人员、修改数据。
2)查询:包括按总成绩查询、按姓名查询、输出所有学生成绩。
3)排名:按总分排名、按语文成绩排名、按数学成绩排名、按英语成绩排名根据需求分析的结果,总体结构如图2-1所示。
图2.1系统总体结构3详细设计3.1 数据结构设计(1)类的设计表3-1 Stu类成员列表(2)系统包含的类库#include<iostream> 输入输出流#include<string> String类(2)各个变量的定义和作用char name[20]; //姓名char cla[20]; //班级int number; //学号char sex[20]; //性别int age; //年龄int tele; //电话char class1[100]; //课程为字符串char class2[100];char class3[100];double C11; //C12的平时成绩double C12; //C11的考试成绩double C21;double C22;double C31;double C32;double C1; //为这门课的综合成绩double C2;double C3;double sum; //总成绩double aver; //平均成绩Stu *s[50]; 对象数组记录学生成绩3.2系统函数的组成、功能、参数说明、相互调用关系主函数main()调用菜单操作函数handle_menu()实现菜单的输出和操作,调用index()打印首页。
以及删除动态对象。
菜单操作函数 void handle_menu()这是一个无参的函数,通过调用菜单函数menu()实现菜单的输出,利用do-while()语句和switch()语句实现各函数的调用,系统根据输入的字符选项来调用相应的函数,进行相应的操作。
菜单函数 void menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的十一大功能,根据每个功能前面的序号进行选择。
打印首页函数 void index()这是一个无参函数,主要功能是打印本系统的相关信息。
默认构造函数Stu:: Stu()这是Stu类中的一个默认构造函数,实现对象的初始化。
求总分函数double Stu::getsum()这是一个无参函数,主要功能是将每个对象的语文、数学、英语三科成绩求和,返回总分sum。
求平均分函数double Stu::getaver()这是一个无参函数,调用double Stu::getsum()平均分,返回平均分aver操作0数据录入函数void operate0()这是一个无参函数,是Stu类的一个友元函数,该函数可将用户输入的学生的信息在每一个对象数组内,输入完成后会提示用户是否要继续录入。
操作1增加人员函数void operate1()这是一个无参函数,是Stu类的一个友元函数,该函数可以增加学生人数,提示用户输入的学生的信息,输入完成后会提示用户是否要继续录入。
操作2删除人员函数void operate2()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要删除学生的姓名,然后查找该学生,删除该学生数据,并将其后数组往前移动一位,最后提示用户是否继续删除。
操作3修改数据函数void operate3()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要修改学生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错误,保证了系统的完备性。
操作4按总成绩查询函数void operate4()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要查询的总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续查询。
操作5按姓名查询函数void operate5()这是一个无参函数,是Stu类的一个友元函数。
进入后系统会提示用户输入需要查询的学生姓名,然后输出该学生的成绩,并提示用户是否需要继续查询。
操作6输出所有学生的数据函数void operate6()这是一个无参函数,是Stu类的一个友元函数,进入后系统将自动输出该系统下所有学生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示用户是否需要进行其它操作。
操作7按平均分分排名函数void operate7()这是一个无参函数,是Stu类的一个友元函数,进入后系统将按照平均分分从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。
操作8按这平均分是否大于60列出不及格学生void operate8()这是一个无参函数,是Stu类的一个友元函数,进入后系统将按照总平均分是否大于60列出不及格学生的成绩,输出之后提示用户是否需要进行其它操作。
4设计测试流程1.进入系统,显示本系统相关信息。
如图。
2.根据系统提示,进入菜单界面。
如图3.输入0,回车,按提示输入数据。
如图4.回到菜单界面在输入1,回车,增加人员,按提示输入数据。
如图5.回到菜单界面再输入6,回车,输出所有学生的数据,检测操作0和操作1。
运行结果如图6.回到菜单界面再输入7,回车,测试按总分排名。
运行结果如图7.回到菜单界面再输入3,回车,测试修改数据。
修改完后,进入菜单,选择操作6输出所有学生数据。
修改如图运行结果如图8.运用修改后的数据,测排名9.列出不及格学生信息:10.回到菜单界面再输入4,测试按学号查询,运行结果如图11.回到菜单界面再输入5,测试按姓名查询,运行结果如图12.测试完毕。
输入n,退出系统。
5结束语在本次课程设计过程中,老师从选题、构思、资料收集到最后定稿的各个环节给予细心指导,使我对软件工程有了更深刻的认识,在此表示衷心地感谢。
在整个过程中,我查阅了大量的关于书籍借阅管理系统的资料和网站,在老师的指导和自己的努力下,终于完成了本次课程设计。
在为期两周的课程设计过程中,使我熟悉了C++编程语言,但也体现了我的种种不足,希望在以后的学习生活当中能够改正。
同时我还要感谢指导过我的老师,他们给了我很大的指导和帮助,还有在我陷入困境时帮助过我的同学们。
参考文献[1] 杨路明,C语言程序设计教程.北京:北京邮电大学出版社,2005(2009.7)[2] 谭浩强,C++程序设计.北京:清华大学出版社,2004.6[3] 杨路明,C语言程序设计上机指导与习题选解.北京:北京邮电大学出版社,2005附录设计源程序清单#include<string>#include<iostream>using namespace std;extern int j=0; //定义全局变量/*********************** 声明Stu类 ***********************/class Stu{public:char name[20];char cla[20];int number;char sex[20];int age;int tele;char class1[100]; //课程为字符串char class2[100];char class3[100];double C11; //C12的平时成绩double C12; //C11的考试double C21;double C22;double C31;double C32;double C1; //为这门课的综合成绩double C2;double C3;double sum;double aver;public:Stu(){};double getsum(); //声明求总分函数double getaver(); //声明求平均分函数friend void operater(); //声明有友元函数操作0 数据录入friend void operate1(); //声明有友元函数操作1 增加人员friend void operate2(); //声明有友元函数操作2 删除人员friend void operate3(); //声明有友元函数操作3 修改数据friend void operate4(); //声明有友元函数操作4 按总成绩查询friend void operate5(); //声明有友元函数操作5 按姓名查询friend void operate6(); //声明有友元函数操作6 输出所有学生数据friend void operate7(); //声明有友元函数操作7 按总分排名friend void operate8(); //声明有友元函数操作8 列出不及格的学生信息};Stu s[50]; //定义对象数组/*********************** 声明函数原型 ***********************/void index();void menu(); //声明菜单函数void handle_menu(); //声明菜单操作函数double Stu::getsum() //定义求总分函数{sum=C1+C2+C3;return (sum);}double Stu::getaver() //定义求平均分函数{aver=((C1+C2+C3)/3);return (aver);}/*********************** *操作0数据录入函数定义***********************/void operate0(){char c;int flag2=0;do{cout<<"请输入姓名:"<<endl;cin>>s[j].name;cout<<"请输入班级:"<<endl;cin>>s[j].cla;cout<<"请输入学号:"<<endl;cin>>s[j].number;cout<<"请输入年龄:"<<endl;cin>>s[j].age;cout<<"请输入性别:"<<endl;cin>>s[j].sex;cout<<"请输入电话号码:"<<endl;cin>>s[j].tele;cout<<"请输入所选课程1:"<<endl;cin>>s[j].class1;cout<<"请输入所选课程2:"<<endl;cin>>s[j].class2;cout<<"请输入所选课程3:"<<endl;cin>>s[j].class3;cout<<s[j].class1<<"考试成绩: "<<"平时成绩:"<<endl;cin>>s[j].C11>>s[j].C12;cout<<s[j].class2<<"考试成绩: "<<"平时成绩:"<<endl;cin>>s[j].C21>>s[j].C22;cout<<s[j].class3<<"考试成绩: "<<"平时成绩:"<<endl;cin>>s[j].C31>>s[j].C32;s[j].C1=((s[j].C11)*0.7+(s[j].C12)*0.3);s[j].C2=((s[j].C21)*0.7+(s[j].C22)*0.3);s[j].C3=((s[j].C31)*0.7+(s[j].C32)*0.3);j++;cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;cin>>c;flag2=0;do{if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}elseflag2=1;}while(flag2==0);}while(c=='y');}/*********************** *操作1增加人员函数定义***********************/void operate1(){char c;int flag2=0;do{cout<<"请输入姓名:"<<endl;cin>>s[j].name;cout<<"请输入班级:"<<endl;cin>>s[j].cla;cout<<"请输入学号:"<<endl;cin>>s[j].number;cout<<"请输入年龄:"<<endl;cin>>s[j].age;cout<<"请输入性别:"<<endl;cin>>s[j].sex;cout<<"请输入电话号码:"<<endl;cin>>s[j].tele;cout<<"请输入所选课程1:"<<endl;cin>>s[j].class1;cout<<"请输入所选课程2:"<<endl;cin>>s[j].class2;cout<<"请输入所选课程3:"<<endl;cin>>s[j].class3;cout<<s[j].class1<<"考试成绩: "<<"平时成绩:"<<endl; cin>>s[j].C11>>s[j].C12;cout<<s[j].class2<<"考试成绩: "<<"平时成绩:"<<endl; cin>>s[j].C21>>s[j].C22;cout<<s[j].class3<<"考试成绩: "<<"平时成绩:"<<endl; cin>>s[j].C31>>s[j].C32;s[j].C1=((s[j].C11)*0.7+(s[j].C12)*0.3);s[j].C2=((s[j].C21)*0.7+(s[j].C22)*0.3);s[j].C3=((s[j].C31)*0.7+(s[j].C32)*0.3);j++;cout<<"数据录入成功,想继续录入吗(y/n)"<<endl; cin>>c;flag2=0;do{if(c != 'y' && c != 'n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}elseflag2 = 1;}while(flag2 == 0);}while(c == 'y');}/*********************** *操作2删除人员函数定义 ***********************/ void operate2(){char n[20];char c;int flag3=0;do{cout<<"请输入您要删除的学生姓名:"<<endl;cin>>n;for(int h=0;h<j;h++){if(strcmp(n, s[h].name) == 0){cout<<"删除成功"<<endl;flag3 = 1;j--;do{s[h]=s[h+1];h++;}while(h<=j);}}if(flag3==0){cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";}cout<<"要继续删除吗?(y/n)"<<endl;cin>>c;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}}while(c=='y');}/*********************** *操作3修改数据函数定义 ***********************/ void operate3(){int num;char c;int flag2=0;do{cout<<"请输入您要修改的学生的学号:"<<endl;cin>>num;for(int h=0;h<j;h++){if(num==s[h].number){flag2=1;cout<<"请输入新的姓名:"<<endl;cin>>s[h].name;cout<<"请输入新的班级:"<<endl;cin>>s[h].cla;cout<<"请输入新的性别:"<<endl;cin>>s[h].sex;cout<<"请输入新的年龄:"<<endl;cin>>s[h].age;cout<<"请输入新的电话号码:"<<endl;cin>>s[h].tele;cout<<"请输入所选课程1:"<<endl;cin>>s[h].class1;cout<<"请输入所选课程2:"<<endl;cin>>s[h].class2;cout<<"请输入所选课程3:"<<endl;cin>>s[h].class3;cout<<s[h].class1<<"考试成绩: "<<"平时成绩:"<<endl;cin>>s[h].C11>>s[h].C12;cout<<s[h].class2<<"考试成绩: "<<"平时成绩:"<<endl;cin>>s[h].C21>>s[j].C22;cout<<s[h].class3<<"考试成绩: "<<"平时成绩:"<<endl;cin>>s[h].C31>>s[j].C32;s[h].C1=((s[h].C11)*0.7+(s[h].C12)*0.3);s[h].C2=((s[h].C21)*0.7+(s[h].C22)*0.3);s[h].C3=((s[h].C31)*0.7+(s[h].C32)*0.3);cout<<"数据修改成功!";}}if(flag2==0){cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;}cout<<"想继续修改吗(y/n)"<<endl;cin>>c;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}}while(c=='y');}/************************** *操作4按学号查询函数定义**************************/void operate4(){char c;int num;do{int flag1=0;cout<<"请输入你要查询学生的学号"<<endl;cin>>num;for(int q=0;q<j;q++){if(s[q].number==num){flag1=1;cout<<"您要查询的学生是:"<<s[q].name<<endl;cout<<"班级:"<<s[q].cla<<" 学号: "<<s[q].number<<" 性别: "<<s[q].sex<<" 年龄: "<<s[q].age<<endl;cout<<s[q].class1<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C11<<" "<<s[q].C12<<" "<<s[q].C1<<endl;cout<<s[q].class2<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C21<<" "<<s[q].C22<<" "<<s[q].C2<<endl;cout<<s[q].class3<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C31<<" "<<s[q].C32<<" "<<s[q].C3<<endl;cout<<"您想继续查询吗?(y/n)"<<endl;cin>>c;}}if(flag1==0){cout<<"对不起!您要查询的学生不存在!"<<endl;cout<<"您想继续查询吗?(y/n)"<<endl;cin>>c;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}}}while(c=='y');}/************************** *操作5按姓名查询函数定义**************************/void operate5(){char c;char name[20];do{int flag=0;cout<<"请输入你要查询的学生姓名"<<endl;cin>>name;for(int q=0;q<j;q++){if(strcmp(name,s[q].name)==0){flag=1;cout<<"您要查询的学生是:"<<s[q].name<<endl;cout<<"班级:"<<s[q].cla<<" 学号: "<<s[q].number<<" 性别: "<<s[q].sex<<" 年龄: "<<s[q].age<<endl;cout<<s[q].class1<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C11<<" "<<s[q].C12<<" "<<s[q].C1<<endl;cout<<s[q].class2<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C21<<" "<<s[q].C22<<" "<<s[q].C2<<endl;cout<<s[q].class3<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C31<<" "<<s[q].C32<<" "<<s[q].C3<<endl;cout<<"您想继续查询吗?(y/n)"<<endl;cin>>c;}}if(flag==0){cout<<"对不起!您要查询的学生不存在!"<<endl;cout<<"您想继续查询吗?(y/n)"<<endl;cin>>c;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!"<<endl;cin>>c;}}} while(c=='y');}/******************************* *操作6输出所有学生的数据函数定义*******************************/void operate6(){char name[20];char c;int flag2=0;cout<<"本系统所有学生数据如下:"<<endl;if(j==0){cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;}for(int q=0;q<j;q++){cout<<"姓名:"<<s[q].name<<" 班级:"<<s[q].cla<<" 学号: "<<s[q].number<<" 性别: "<<s[q].sex<<" 年龄: "<<s[q].age<<endl;cout<<s[q].class1<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C11<<" "<<s[q].C12<<" "<<s[q].C1<<endl;cout<<s[q].class2<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C21<<" "<<s[q].C22<<" "<<s[q].C2<<endl;cout<<s[q].class3<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C31<<" "<<s[q].C32<<" "<<s[q].C3<<endl;}}/******************************* *操作7按平均成绩排序*******************************/void operate7(){char c;int flag2=0;int t;Stu b;cout<<"本系统所有学生排名如下:"<<endl;for(int x=0;x<j-1;x++){t=x;for(int y=x+1;y<j;y++){if((s[t].getaver())<(s[y].getaver())){t=y;}}b=s[t];s[t]=s[x];s[x]=b;}if(j==0){cout<<"管理系统中没有录入数据或者数据已经被删除!" <<endl;}for(int q=0;q<j;q++) //数据输出{cout<<"姓名:"<<s[q].name<<" 班级:"<<s[q].cla<<" 学号: "<<s[q].number<<" 性别: "<<s[q].sex<<" 年龄: "<<s[q].age<<endl;cout<<"平均成绩:"<<s[q].getaver()<<endl;cout<<s[q].class1<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C11<<" "<<s[q].C12<<" "<<s[q].C1<<endl;cout<<s[q].class2<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C21<<" "<<s[q].C22<<" "<<s[q].C2<<endl;cout<<s[q].class3<<"考试成绩:"<<"平时成绩:"<<"综合成绩:"<<endl;cout<<s[q].C31<<" "<<s[q].C32<<" "<<s[q].C3<<endl;}}/******************************* *操作8列出不及格的学生名单*******************************/void operate8(){for(int k=0;k<j;k++){if(s[k].C1<60||s[k].C2<60||s[k].C3<60){cout<<s[k].name<<" 学号: "<<s[k].number<<endl;if(s[k].C1<60){cout<<" 课程:"<<s[k].class1<<" 综合成绩:"<<s[k].C1<<endl;}if(s[k].C2<60){cout<<" 课程:"<<s[k].class2<<" 综合成绩:"<<s[k].C2<<endl;}if(s[k].C3<60){cout<<" 课程:"<<s[k].class3<<" 综合成绩:"<<s[k].C3<<endl;}}if(j==0){cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;}}int main(){index();cout<<endl;cout<<" ********欢迎进入学生成绩管理系统******** "<<endl;cout<<" 诚朴自信励志拼搏 "<<endl;cout<<endl;cout<<" 相信自己的成绩! "<<endl;handle_menu();return 0;}/************************ *菜单处理函数 ************************/ void handle_menu() //定义菜单操作函数{menu();char p,w;int flag2=0;do{cin>>p; system("cls");if((p>='0'&&p<='8')){flag2=1;}else{cout<<"指令错误!请重新输入:"<<endl;}} while(flag2==0);switch(p){case '0':operate0(); //操作0数据录入break;case '1':operate1(); //操作1增加人员break;case '2':operate2(); //操作2删除人员break;case '3':operate3(); //操作3修改数据break;case '4':operate4(); //操作4按总成绩查询break; \case '5':operate5(); //操作5按姓名查询break;case '6':operate6(); //操作6输出所有学生的数据break;case '7':operate7(); //操作7排序break;case '8':operate8(); //操作8列出不及格的学生信息break;}cout<<"您想继续进行其他操作吗?(y/n)"<<endl;int flag4=0;do{cin>>w;if(w!='y'&&w!='n'){cout<<"指令错误!请重新输入!"<<endl;}else{ flag4=1;}}while(flag4==0); system("cls");if(w=='y'){handle_menu();}}void menu() //定义菜单函数{cout<<endl;cout<<endl;cout<<" 本系统能进行的功能!"<<endl;cout<<endl;cout<<" 一操作:"<<endl;cout<<" (0)数据录入"<<endl;cout<<" (1)增加人员"<<endl;cout<<" (2)删除人员"<<endl;cout<<" (3)修改数据"<<endl;cout<<" 二查询:"<<endl;cout<<" (4)按学号查询"<<endl;cout<<" (5)按姓名查询"<<endl;cout<<" (6)输出所有学生的数据"<<endl;cout<<" 三排名:"<<endl;cout<<" (7)按平均成绩排名"<<endl;cout<<" (8)列出不及格的学生"<<endl;cout<<" 请选择~ V ~"<<endl<<endl;}void index() //首页打印设置{char input;cout<<"****************************************************\n";cout<<" * 学生成绩管理系统 *\n";cout<<" * *\n";cout<<" *--------------------------------------------------*\n";cout<<" * 说你行~~~ *\n";cout<<" * 你就行! *\n";cout<<" * *\n";cout<<" * *\n";cout<<" * *\n";cout<<" * *\n";cout<<" * *\n";cout<<" * 欢迎进入... *\n";cout<<" * *\n";cout<<" * 指导老师:陈再良 *\n";cout<<" * 学生:刘金宝 *\n";cout<<" * *\n";cout<<" **************************************************** ";input=getchar(); //让用户输入一个字符后再进行下一步system("cls"); //清屏}。