本文目录一览:
- 1、用c语言制作学生档案管理系统
- 2、c语言课程设计--班级档案管理系统
- 3、用C语言设计学生档案管理
- 4、求C语言学生档案管理界面的源代码
- 5、c语言学生档案管理系统要全面的,无错的
- 6、编写一个c语言程序,实现录入学生学号和姓名信息的功能
用c语言制作学生档案管理系统
我以前做的
给你了
#includestdio.h
#includestdlib.h
#includestring.h
struct student
{char name[30];
char number[20];
char sex[10];
char nation[10];
char address[60];
char born[20];
char family[60];
char course[60];
int sign;
struct student *next;
}record;
struct student *head;
static int n;
int menu_select(),i;
void enter();
void delete();
void search();
void group();
void change();
void savefile();
void openfile();
main()
{char s[80],choice;
head=NULL;
for(;;)
switch(menu_select())
{case 1:enter();break;
case 2:delete();break;
case 3:search();break;
case 4:change();break;
case 5:group();break;
case 6:savefile();break;
case 7:openfile();break;
case 8:exit(0);
}
}
void group()
{struct student *p,*p1;
int j=1;
p1=head;
printf("\nyou can know every student's main information from this\n");
do
{printf("Sign number:%4d. Name:%10s. Number:%8s. Sex:%4s. Nation:%4s. Born:%6s\n",p1-sign,p1-name,p1-number,p1-sex,p1-nation,p1-born);
p1=p1-next;j++;
}while(p1-name!=0);
}
int menu_select()
{char s[80];
int n;
printf("1----Enter a name\n");
printf("2----Delete arecord\n");
printf("3----Search\n");
printf("4----Change\n");
printf("5----Group\n");
printf("6----savefile\n");
printf("7----openfile\n");
printf("8----Quit\n");
do
{printf("please input you choice:\n");
gets(s);
n=atoi(s);
}
while(n1||n8);
return(n);
}
void enter()
{struct student *info;
void circle();
float a;
for(n=0;;n++)
{info=(struct student *)malloc(sizeof(record));
if(info==NULL)
{printf("\n Out of memory");
return;
}
getchar();
printf("enter name:");
gets(info-name);
if(info-name[0]=='0')
{info-next=0;break; }
else
{
printf("enter number:");
gets(info-number);
printf("enter Sex:");
gets(info-sex);
printf("enter nation:");
gets(info-nation);
printf("enter Address:");
gets(info-address);
printf("enter Born date:");
gets(info-born);
printf("enter Family:");
gets(info-family);
printf("enter Course:");
gets(info-course);
printf("enter Sign number:");
scanf("%d",info-sign);
circle(info);
}
}
}
void circle(struct student *info)
{ struct student *p2,*p1,*p0;
p1=head;
p0=info;
if(head==NULL)
{head=p0;p0-next=NULL;}
else
{while((p0-signp1-sign)(p1-next!=NULL))
{p2=p1;
p1=p1-next;}
if(p0-signp1-sign)
{if(head==p1)head=p0;
else p2-next=p0;
p0-next=p1;}
else
{p1-next=p0;p0-next=NULL;}
}
}
void display(info)
struct student *info;
{printf("Name:%s\n",info-name);
printf("Number:%s\n",info-number);
printf("Sex:%s\n",info-sex);
printf("Nation:%s\n",info-nation);
printf("Address:%s\n",info-address);
printf("Born date:%s\n",info-born);
printf("Family:%s\n",info-family);
printf("Course:%s\n",info-course);
printf("Sign number:%d\n",info-sign);
printf("\n\n");
}
void search()
{char name[40],street[30],s[30],t[30];
struct student *info,*find();
printf("you want by what to find name? number? sign(_number)?");
gets(t);
printf("\n input please:");
gets(s);
if((info=find(s))==NULL)
printf("not found\n");
else display(info);
}
struct student *find(char *s)
{
struct student *info;
info=head;
while(info)
{if((!strcmp(s,info-name))||(!strcmp(s,info-number))||(!strcmp(s,info-sign)))
return(info);
else
info=info-next;
}
return(info);
}
void delete()
{char s[80];
struct student *p1,*p2,*info;
printf("enter name:");
gets(s);
info=find(s);
if(info!=NULL)
{
if(head==info)
{
head=info-next;
printf("delete:%s\n",info-name);
free(info);
}
else
{p2=head;
p1=head-next;
while(info!=p1)
{p2=p1;p1=p1-next;}
p2-next=p1-next;
printf("delete:%s\n",info-name);
free(info);
}
}else
printf("%s not found!\n",info-name);
}
void change()
{char s[30],a[30];
float sum,b;
int i;
struct student *p;
printf("enter name:");
gets(s);
p=find(s);
if(p!=NULL)
{printf("what you want to change:\n name? number? sex? nation? born? family? course?");
gets(a);
printf("please enter %s:",a);
if(strcmp(a,"name")==0)
scanf("%s",p-name);
if(strcmp(a,"number")==0)
scanf("%s",p-number);
if(strcmp(a,"sex")==0)
scanf("%s",p-sex);
if(strcmp(a,"nation")==0)
scanf("%s",p-nation);
if(strcmp(a,"born")==0)
scanf("%s",p-born);
if(strcmp(a,"family")==0)
scanf("%s",p-family);
if(strcmp(a,"course")==0)
scanf("%s",p-course);
circle(p);
}
}
void savefile()
{struct student *p;
FILE *fp;
p=head;
fp=fopen("xue.c","wb");
printf("saving ...");
while(head)
{
fwrite(head,sizeof(record)-2,1,fp);
head=head-next;
}
fclose(fp);
printf("\n the file has been saved\n");
}
void openfile()
{FILE *fp;
struct student *back,*next;
fp=fopen("xue.c","rb");
printf("loading ...");
head=back=next=(struct student *)malloc(sizeof(record));
while(fread(next,sizeof(record)-2,1,fp)==1)
{
back=next;
next=(struct student *)malloc(sizeof(record));
back-next=next;
}
free(next);
back-next=NULL;
printf("\nfile has been opened\n");
}
c语言课程设计--班级档案管理系统
//****************************************************************************
//**** 说明:密码所在的文件位于c盘,文件名为1.txt。
//**** 学生基本信息最好保存在C盘,文件名为student.txt。
//****************************************************************************
#include stdio.h
#include stdlib.h
#include string.h
#include conio.h
#define N 3
struct student
{
char name[10];
char no[10];
char sex;
int age;
char bnote[100];
};
void print(bool menu)//打印基本信息
{
if (!menu)
{
printf("学生基本信息录入 ,press 1\n");
}
else
{
printf("学生基本信息显示 ,press 2\n");
printf("学生基本信息保存 ,press 3\n");
printf("学生基本信息删除 ,press 4\n");
printf("学生基本信息修改 ,press 5\n");
printf("学生基本信息查询 ,press 6\n");
}
printf("退出学生信息系统 ,press 7\n");
}
bool Check(char pas[6])//密码验证
{
FILE *fp;
char ch;
char a[7]={" "};
int i = 0;
if ((fp=fopen("c:\\1.txt","r"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
ch=fgetc(fp);
while (ch!=EOFi6)
{
a[i] = ch;
ch=fgetc(fp);
i++;
}
a[6] = '\0';
if (!strcmp(pas,a))
{
return true;
}
else
{
printf("密码错误\n");
return false;
}
fclose(fp);
}
void GetInfo(struct student *arr,int n)//学生基本信息录入
{
for (int i = 0;in;i++)
{
printf("输入学生的基本信息:name no sex age bnote\n");
scanf("%s %s %c %d %s",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
}
}
void Display(struct student* arr,int n)//学生基本信息显示
{
printf("学生信息: Name NO Sex age Note\n");
for (int i = 0;in;i++)
{
printf("%15s%15s%15c%15d%15s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
}
}
void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt
{
FILE * fp;
fp= fopen("c:\\student.txt","w+");
if (fp == NULL)
{
printf("文件不存在!\n");
exit(0);
}
fwrite(arr,sizeof(struct student)*n,n,fp);
fclose(fp);
}
void Modfiy(struct student* arr,int n)//学生基本信息修改
{
char number[10];
bool flag=false;
char pass[6];
printf("请输入密码:\n");
scanf("%s",pass);
if (Check(pass))
{
printf("修改学生信息:\n");
printf("请输入学号:\n");
scanf("%s",number);
for (int i =0;in;i++)
{
if (!strcmp(number,arr[i].no))
{
printf("infor: name no sex age note\n");
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
printf("please input information:\n");
scanf("%s%s%c%d%s",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
Save(arr,n);
flag = true;
}
}
if (flag == false)
{
printf("该学生不存在!:\n");
}
}
}
void Delete(struct student* arr,int n)//学生基本信息删除
{
char number[10];
bool flag=false;
printf("Delete information:\n");
printf("please input the no:\n");
scanf("%s",number);
for (int i =0;in;i++)
{
if (!strcmp(number,arr[i].no))
{
strcpy(arr[i].name," ");
strcpy(arr[i].no," ");
strcpy(arr[i].bnote," ");
arr[i].sex = ' ';
arr[i].age = 0;
Save(arr,n);
flag = true;
}
}
if (flag == true)
{
printf("该学生不存在!:\n");
}
}
void Search(struct student* arr,int n)//学生基本信息查询
{
int temp,i;
bool flag=false;
printf("---------------通过学号查询,press 1-------------\n");
printf("---------------通过姓名查询,press 2-----------\n");
printf("---------------通过性别查询,press 3------------\n");
printf("---------------通过年龄查询,press 4------------\n");
printf("---------------退出,press 5 ------------\n");
scanf("%d",temp);
switch (temp)
{
case 1://按照学号查询
{
char num[10];
printf("请输入学号:\n");
scanf("%s",num);
for ( i =0;in;i++)
{
if (!strcmp(num,arr[i].no))
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.\n");
}
}
break;
case 2://按照名字查询
{
char num[10];
printf("please input name:\n");
scanf("%s",num);
for ( i =0;in;i++)
{
if (!strcmp(num,arr[i].name))
{
printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.\n");
}
}
break;
case 3://按照性别查询
{
char ch;
printf("请输入性别:\n");
//scanf("%c",ch);
ch = getch();
for ( i =0;in;i++)
{
if (ch == arr[i].sex)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("t该学生不存在.\n");
}
}
break;
case 4://按照年龄查询
{
char num_age;
printf("请输入年龄:\n");
scanf("%d",num_age);
for ( i =0;in;i++)
{
if (num_age == arr[i].age)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.\n");
}
}
break;
default:
break;
}
}
void main()
{
struct student arr[N];
char ps[6];
bool flag =false;
printf("请输入密码:\n");
scanf("%s",ps);
flag = Check(ps);
if (flag)
{
int select;
print(false);
scanf("%d",select);
while (0select select 7 )
{
switch (select)
{
case 1:
GetInfo(arr,N);
print(true);
break;
case 2:
Display(arr,N);
print(true);
break;
case 3:
Save(arr,N);
print(true);
break;
case 4:
Delete(arr,N);
print(true);
break;
case 5:
Modfiy(arr,N);
print(true);
break;
case 6:
Search(arr,N);
print(true);
break;
default:
break;
}
printf("请选择:\n");
scanf("%d",select);
}
}
}
用C语言设计学生档案管理
/*用C语言设计学生档案管理
1. 题目描述
编写一个程序来管理学生档案,系统能实现以下功能:
输入信息:学生信息的输入;
修改信息:对学生信息进行添加、删除与修改;
查询:能够根据学号或姓名查询某个学生的信息;
输出:输出所有学生信息或查询学生信息的结果。
2. 设计提示
1)先确定学生档案管理的数据结构。如每个学生信息:学号、姓名、性别、年龄、地址 ……等,每个数据项各用什么数据类型;
2)划分实现学生档案管理的功能模块:如主菜单、输入数据、修改、查询、输出等功能,并确定各功能模块的实现算法。
3)画出各模块的流程图或S-R图;
4)选择C语言的技术:普通数组、结构体数组、函数、指针、单链表或文件等。
5)编写程序代码。*/
#includestdio.h
#includestdlib.h
#includestring
typedef struct student{
char ID[10];
char name[10];
char sex[3];
int age;
char addr[30];
struct student *next;
}stu;
void Input(stu *head)
{
stu *temp,*current;
temp=(stu *)malloc(sizeof(stu));
printf("输入学生信息:\n");
printf("学号\t姓名\t性别\t年龄\t地址\t\n");
fflush(stdin);
scanf("%s%s%s%d%s",temp-ID,temp-name,temp-sex,temp-age,temp-addr);
temp-next=NULL;
if(head==NULL)
{head=(stu *)malloc(sizeof(stu));head-next=temp;}
else
{
current=head-next;
while(current-next)
current=current-next;
current-next=temp;}
printf("添加成功\n");
system("pause");
}
void FindByID(stu *head)
{
if(head==NULL)
{printf("数据为空\n");
system("pause");return ;}
else
{stu *current =head-next;
bool flag=0;
char a[10];
printf("输入要查询的学号:\n");
fflush(stdin);
scanf("%s",a);
do
{
if(strcmp(current-ID,a)==0)
{flag=1;break;}
current=current-next;
}while(current!=NULL);
if(flag)
{
printf("学号:%s 姓名:%s 性别:%s 年龄:%d 地址:%s\n",current-ID,current-name,current-sex,current-age,current-addr);
system("pause");
}
else
{
printf("没有找到\n");
system("pause");
}
}
}
void FindByName(stu *head)
{
if(head==NULL)
{printf("数据为空\n");
system("pause");return ;}
else
{
stu *current =head-next;
bool flag=0;
char a[10];
printf("输入要查询的姓名:\n");
fflush(stdin);
scanf("%s",a);
do
{
if(strcmp(current-name,a)==0)
{flag=1;break;}
current=current-next;
}while(current!=NULL);
if(flag)
{
printf("学号:%s 姓名:%s 性别:%s 年龄:%d 地址:%s\n",current-ID,current-name,current-sex,current-age,current-addr);
system("pause");
}
else
{
printf("没有找到\n");
system("pause");
}
}
}
void Delete(stu *head)
{
if(head==NULL)
{printf("数据为空\n");
system("pause");return ;}
else
{ stu *current =head-next;
stu *prev=NULL;
char a[10];
printf("输入要删除的学号:\n");
fflush(stdin);
scanf("%s",a);
while(current!=NULL)
{
if(strcmp(current-ID,a)==0)break;
prev=current;
current=current-next;
}
if(prev==NULL)
{head-next=current-next;free(current);}
else
{prev-next=current-next;
free(current);}
printf("删除成功\n");
system("pause");
}
}
void Show(stu *head)
{
stu *current =head-next;
if(current==NULL)
{printf("数据为空\n");
system("pause");return ;}
printf("学号\t姓名\t性别\t年龄\t地址\t\n");
while(current!=NULL)
{
printf("%s\t%s\t%s\t%d\t%s\n",current-ID,current-name,current-sex,current-age,current-addr);
current=current-next;
}
system("pause");
}
void Modify(stu *head)
{
if(head==NULL)
{printf("数据为空\n");
system("pause");return ;}
bool flag=0;
char a[10];
printf("输入要查询的学号:\n");
fflush(stdin);
scanf("%s",a);
stu *current=head-next;
do
{
if(strcmp(current-ID,a)==0)
{flag=1;break;}
current=current-next;
}while(current!=NULL);
if(flag)
{
printf("学号:%s 姓名:%s 性别:%s 年龄:%d 地址:%s\n",current-ID,current-name,current-sex,current-age,current-addr);
printf("请重新输入该学生信息:\n");
printf("学号\t姓名\t性别\t年龄\t地址\t\n");
scanf("%s%s%s%d%s",current-ID,current-name,current-sex,current-age,current-addr);
printf("修改成功\n");
printf("pause");
}
else
{
printf("没有找到\n");
system("pause");
}
}
void Print()
{
system("cls");
printf(" 请选择功能(按0退出)\n");
printf(" 1------添加学生\n");
printf(" 2------通过学号查询学生\n");
printf(" 3------通过姓名查询学生\n");
printf(" 4------删除学生\n");
printf(" 5------修改学生\n");
printf(" 6------显示所有学生\n");
}
int main()
{
char ch;
stu *head=NULL;
do
{
Print();
fflush(stdin);
ch=getchar();
//system("cls");
switch(ch)
{
case '1':Input(head);break;
case '2':FindByID(head);break;
case '3':FindByName(head);break;
case '4':Delete(head);break;
case '5':Modify(head);break;
case '6':Show(head);break;
}
}while(ch!='0');
}
求C语言学生档案管理界面的源代码
# includeiostream.h
# includestring.h
# includestdio.h
# includestdlib.h
# includefstream.h
//*****定义一个学生原子的的数据结构*****//
struct stuatom
{
char *name;
int id;
char sex;
float math, eng, comp, totll, aver;
void show();
void setup();
};
//*********定义一系列对学生的操作**********//
class student
{
private:
stuatom ob[100];
int stulen;
public:
student();
void input();
void order();
void save();
void Query();
void read();
void add();
void del();
};
//********对学生数据的初始化(类的构造函数)**********//
student::student()
{
//用for循环对全部数组中的数据初始化
for(int i=0;i100;i++)
{
ob[i].math=ob[i].eng=ob[i].comp =ob[i].totll =ob[i].aver =0;
ob[i].id =0;
ob[i].sex =' ';
ob[i].name =NULL;
}
this-stulen =0;
}
//********输入学生的数据,并判断是否在规定数据域内*******//
void stuatom::setup()
{
char n[20]; char s;
int b;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
do {
cout" 学号: ";
cinb;
if(b1020||b1001)
cout"Bad data input!!"endlendl;
}while (b1001||b1020);
id=b;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
do{
name=new char[strlen(n)+1];
cout" 姓名: ";
cinn;
if( strlen(n)6 || strlen(n)4 )
cout"Bad data input!!"endlendl;
}while ( strlen(n)6 strlen(n)4 );
strcpy(name,n);
cout" 性别(m/f):" ;
cins;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (s!='m' s!='f')
{
cout"Bad data input!!"endlendl;
cout" 性别(m/f):";
cins;
}
sex=s;
float m, e, co;
cout" 数学: ";
cinm;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (m0 || m100)
{
cout"Bad data input!!"endlendl;
cout" 数学: ";
cinm;
}
math=m;
cout" 英语: ";
cine;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (e0 || e100)
{
cout"Bad data input!!"endlendl;
cout" 英语: ";
cine;
}
eng=e;
cout" 计算机: ";
cinco;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (co0 || co100)
{
cout"Bad data input!!"endlendl;
cout" 计算机: ";
cinco;
}
comp=co;
totll=math+eng+comp;
aver=(math+eng+comp)/3;
}
//*******按照规定格式把该学生的数据显示在屏幕上******//
void stuatom::show()
{
cout.setf(ios::left);
cout.width(6);
cout""id" ";
cout.width(8);
coutname;
cout.width(10);
coutsex;
cout.width(9);
coutmath;
cout.width(9);
couteng;
cout.width(11);
coutcomp;
cout.width(10);
couttotllaverendl;
}
//**************输入学生的数据***********************//
void student::input()
{
int n;
coutendl"输入将要录入的学生数目: ";
cinn;
int j;
//通过循环输入要求输入学生个数的学生的数据。
for(j=0; jn; j++)
{
cout" 输入学生信息 "jendl;
ob[j].setup();
}
this-stulen=n; //学生个数赋值
//学生数据显示格式
system("cls");
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
//通过循环输出所有学生数据。
for(j=0; jn; j++)
{
ob[j].show();
}
coutendl;
cout" 是否保存? (Y/N): ";
char Y;
cinY;
system("cls");
}
//**************按照一定格式显示所要查询学生的信息。**************//
void student::Query()
{
int x , i;
coutendl" 输入要查询学生的学号: ";
cinx;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
for(i=0;i=this-stulen ;i++)
{ if (x==ob[i].id)
{
cout.setf(ios::left);
cout.width(6);
cout""ob[i].id" ";
cout.width(8);
coutob[i].name;
cout.width(10);
coutob[i].sex;
cout.width(9);
coutob[i].math;
cout.width(9);
coutob[i].eng;
cout.width(11);
coutob[i].comp;
cout.width(10);
coutob[i].totllob[i].averendl;
}
}
getchar();
}
//*******************保存学生数据**************************//
void student::save()
{
int i;
ofstream outfile;
outfile.open("list.txt",ios::trunc);
if(!outfile)
{
cout"Cannot open output file!\n,";
}
//通过循环把所有的学生数据保存在list.txt里边。
for(i=0; ithis-stulen; i++)
{
outfileob[i].id" "ob[i].name" "ob[i].sex" "
ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;
}
outfile.close();
}
//*************显示所有学生数据*********************//
void student::read()
{
int i;
system("cls");
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
for(i=0; ithis-stulen; i++)
{
ob[i].show();
}
getchar();
}
//*******************一个学生的数据****************//
void student::add()
{
int i, d=this-stulen ;
cout"输入要添加学生的信息:"endl;
ob[d].setup();
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
for(i=0; i=d; i++)
{
ob[i].show();
}
ofstream fout("list.txt",ios::app);
if(!fout)
{
cout"Cannot open output file!\n,";
}
//把添加的学生数据添加到list.txt里边去。
foutob[d].id" "ob[d].name" "ob[d].sex" "
ob[d].math" "ob[d].eng" "ob[d].comp" "ob[d].totll" "ob[d].averendl;
fout.close();
getchar();
}
//*********************删除指定名字学生的数据*******************//
void student::del()
{
int i,p; char x[8];
cout" 输入要删除学生名字:"endl;
cinx;
//通过for循环查找要删除学生的姓名
for(i=0; istulen; i++)
{
if(strcmp(ob[i].name,x)==0)
{
p=i;
coutendl"学号 姓名 性别 数学 英语 计算机 总成绩 平均成绩"endl;
coutob[i].id" "ob[i].name" "ob[i].sex" "ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;
break;
}
else
continue;
}
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1
stulen--;
for(i;istulen;i++)
{
ob[i]=ob[i+1];
}
this-read ();
cout" 删除成功!"endl;
getchar();
}
//***********把学生成绩排序******************//
void student::order()
{
int k,j;
float t; char n[20];
//排序算法。
for(j = 0; j=(2-1); j++)
{
for(k=1; k=(2-j); k++)
{
if(ob[k].totll ob[k + 1].totll)
{
t = ob[k].totll;
ob[k].totll = ob[k+1].totll;
ob[k+1].totll = t;
strcpy(n, ob[k].name);
strcpy(ob[k].name, ob[k+1].name);
strcpy(ob[k+1].name, n);
}
cout" 成绩排名:"endl;
cout" 姓名 总成绩 名次"endl;
for(k=0; k=stulen; k++)
{
cout" ";
cout.setf(ios::left);
cout.width(9);
coutob[k].name;
cout.width(9);
coutob[k].totllkendl;
}
getchar();
}
}
}
//********************选择菜单。*****************//
void menu()
{
cout"\n\n";
cout"------------------ 学生成绩系统 -----------------"endlendl;
cout"\t\t1.录入与保存学生信息.\n";
cout"\t\t2.读取学生信息.\n";
cout"\t\t3.删除学生信息.\n";
cout"\t\t4.追加学生信息.\n";
cout"\t\t5.查询学生信息.\n";
cout"\t\t6.显示成绩名次.\n";
cout"\t\t7.退出系统......\n\n\n";
cout"\t\t请选择功能项: ";
}
//---------------------------------------------------------------------------------------
void main()
{
student a;
while(1)
{
int SEL;
system("cls");
menu();
cinSEL;
switch(SEL)
{
case 1:
system("cls"); a.input();a.save();break;
case 2:
system("cls"); a.read(); break;
case 3:
system("cls"); a.del(); break;
case 4:
system("cls"); a.add();break;
case 5:
system("cls"); a.Query();break;
case 6:
system("cls"); a.order();break;
case 7:
coutendl" 按任意键退出.... "endl;
getchar();
exit(0);
default:
cout"Bad input!!\n";
break;
}
}
} 我比较忙,没有亲自帮你写,你自己改改吧,框架出来了。
c语言学生档案管理系统要全面的,无错的
#includestdio.h
#includestdlib.h
#includeconio.h
#includedos.h
#includestring.h
#define LEN sizeof(struct student)
#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n"
#define DATA stu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
struct student/*定义学生成绩结构体*/
{ int num;/*学号*/
char name[15];/*姓名*/
double elec;/*选修课*/
double expe;/*实验课*/
double requ;/*必修课*/
double sum;/*总分*/
};
struct student stu[50];/*定义结构体数组*/
void in();/*录入学生成绩信息*/
void show();/*显示学生信息*/
void order();/*按总分排序*/
void del();/*删除学生成绩信息*/
void modify();/*修改学生成绩信息*/
void menu();/*主菜单*/
void insert();/*插入学生信息*/
void total();/*计算总人数*/
void search();/*查找学生信息*/
void save();/*保存函数*/
void open();/*打开函数*/
void main()/*主函数*/
{ int n;
menu();
scanf("%d",n);/*输入选择功能的编号*/
while(n)
{ switch(n)
{ case 1: in();break;
case 2: search();break;
case 3: del();break;
case 4: modify();break;
case 5: insert();break;
case 6: order();break;
case 7: total();break;
case 8: save();break;
case 9: open();break;
default:break;
}
getch();
menu();/*执行完功能再次显示菜单界面*/
scanf("%d",n);
}
}
void in()/*录入学生信息*/
{ int i,m=0;/*m是记录的条数*/
char ch[2];
FILE *fp;/*定义文件指针*/
if((fp=fopen("data.txt","a+"))==NULL)/*打开指定文件*/
{ printf("无法打开\n");return;}
while(!feof(fp)) {
if(fread(stu[m] ,LEN,1,fp)==1)
m++;/*统计当前记录条数*/
}
fclose(fp);
if(m==0)
printf("没有记录!\n");
else
{
system("cls");
show();/*调用show函数,显示原有信息*/
}
if((fp=fopen("data.txt","wb"))==NULL)
{ printf("无法打开\n");return;}
for(i=0;im;i++) fwrite(stu[i] ,LEN,1,fp);/*向指定的磁盘文件写入信息*/
printf("确认输入:(Y/N):");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/
{
printf("学号:");scanf("%d",stu[m].num);/*输入学生学号*/
for(i=0;im;i++)
if(stu[i].num==stu[m].num)
{
printf("学号存在,输入任意键继续!");
getch();
fclose(fp);
return;
}
printf("姓名:");scanf("%s",stu[m].name);/*输入学生姓名*/
printf("选修课:");scanf("%lf",stu[m].elec);/*输入选修课成绩*/
printf("实验课:");scanf("%lf",stu[m].expe);/*输入实验课成绩*/
printf("必修课:");scanf("%lf",stu[m].requ);/*输入必修课成绩*/
stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*计算出总成绩*/
if(fwrite(stu[m],LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件*/
{ printf("无法保存!"); getch(); }
else { printf("%s 保持成功!\n",stu[m].name);m++;}
printf("继续?(Y/N):");/*询问是否继续*/
scanf("%s",ch);
}
fclose(fp);
printf("OK!\n");
}
void show()
{ FILE *fp;
int i,m=0;
fp=fopen("data.txt","rb");
while(!feof(fp))
{
if(fread(stu[m] ,LEN,1,fp)==1)
m++;
}
fclose(fp);
printf("学号 姓名 选修课 实验课 必修课 总成绩\t\n");
for(i=0;im;i++)
{
printf(FORMAT,DATA);/*将信息按指定格式打印*/
}
}
void menu()/*自定义函数实现菜单功能*/
{
system("cls");
printf("\n\n\n\n\n");
printf("\t\t|-------------学生信息管理系统-----------by:zxl|\n");
printf("\t\t|\t 0. 退出 |\n");
printf("\t\t|\t 1. 录入学生基本信息 |\n");
printf("\t\t|\t 2. 寻找某位学生信息 |\n");
printf("\t\t|\t 3. 删除学生基本信息 |\n");
printf("\t\t|\t 4. 修改学生基本信息 |\n");
printf("\t\t|\t 5. 插入新生基本信息 |\n");
printf("\t\t|\t 6. 排序学生基本信息 |\n");
printf("\t\t|\t 7. 浏览全班学生信息 |\n");
printf("\t\t|\t 8. 保存学生信息到磁盘 |\n");
printf("\t\t|\t 9. 打开学生信息从磁盘 |\n");
printf("\t\t|-----------------------------------------------|\n\n");
printf("\t\t\t选择(0-9):");
}
void order()/*自定义排序函数*/
{ FILE *fp;
struct student t;
int i=0,j=0,m=0;
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("无法打开!\n");
return;
}
while(!feof(fp))
if(fread(stu[m] ,LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf("没有记录!\n");
return;
}
if((fp=fopen("data.txt","wb"))==NULL)
{
printf("无法打开\n");
return;}
for(i=0;im-1;i++)
for(j=i+1;jm;j++)/*双重循环实现成绩比较并交换*/
if(stu[i].sumstu[j].sum)
{ t=stu[i];stu[i]=stu[j];stu[j]=t;}
if((fp=fopen("data.txt","wb"))==NULL)
{ printf("无法打开\n");return;}
for(i=0;im;i++)/*将重新排好序的内容重新写入指定的磁盘文件中*/
if(fwrite(stu[i] ,LEN,1,fp)!=1)
{
printf("%s 无法保存!\n");
getch();
}
fclose(fp);
printf("保存成功!");
getch();
}
void del()/*自定义删除函数*/
{FILE *fp;
int snum,i,j,m=0;
char ch[2];
if((fp=fopen("data.txt","r+"))==NULL)
{ printf("无法打开\n");return;}
while(!feof(fp)) if(fread(stu[m],LEN,1,fp)==1) m++;
fclose(fp);
if(m==0)
{
printf("没有记录!\n");
return;
}
printf("请输入学号:");
scanf("%d",snum);
for(i=0;im;i++)
if(snum==stu[i].num)
break;
printf("找到学号,删除?(Y/N)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/
for(j=i;jm;j++)
stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/
m--;/*记录的总个数减1*/
if((fp=fopen("data.txt","wb"))==NULL)
{ printf("无法打开\n");return;}
for(j=0;jm;j++)/*将更改后的记录重新写入指定的磁盘文件中*/
if(fwrite(stu[j] ,LEN,1,fp)!=1)
{ printf("无法保存!\n");
getch();}
fclose(fp);
printf("删除成功!\n");
getch();
}
void search()/*自定义查找函数*/
{ FILE *fp;
int snum,i,m=0;
char ch[2];
if((fp=fopen("data.txt","rb"))==NULL)
{ printf("无法打开\n");return;}
while(!feof(fp)) if(fread(stu[m],LEN,1,fp)==1) m++;
fclose(fp);
if(m==0) {printf("没有记录!\n");return;}
printf("请输入学号:");
scanf("%d",snum);
for(i=0;im;i++)
if(snum==stu[i].num)/*查找输入的学号是否在记录中*/
{ printf("找到学号,显示?(Y/N)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("学号 姓名 选修课 实验课 必修课 总成绩\t\n");
printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/
getch();
}break;
}
if(i==m) printf("无法找到该学生!\n");/*未找到要查找的信息*/
}
void modify()/*自定义修改函数*/
{ FILE *fp;
int i,j,m=0,snum;
if((fp=fopen("data.txt","r+"))==NULL)
{ printf("无法打开\n");return;}
while(!feof(fp))
if(fread(stu[m],LEN,1,fp)==1) m++;
if(m==0) {printf("无记录!\n");
fclose(fp);
return;
}
printf("请输入您要修改信息的学生的学号!\n");
scanf("%d",snum);
for(i=0;im;i++)
if(snum==stu[i].num)/*检索记录中是否有要修改的信息*/
break;
printf("找到学号,您可以修改!\n");
printf("姓名:");
scanf("%s",stu[i].name);/*输入名字*/
printf("选修课:");
scanf("%lf",stu[i].elec);/*输入选修课成绩*/
printf("实验课:");
scanf("%lf",stu[i].expe);/*输入实验课成绩*/
printf("必修课:");
scanf("%lf",stu[i].requ);/*输入必修课成绩*/
stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;
if((fp=fopen("data.txt","wb"))==NULL)
{ printf("无法打开\n");return;}
for(j=0;jm;j++)/*将新修改的信息写入指定的磁盘文件中*/
if(fwrite(stu[j] ,LEN,1,fp)!=1)
{ printf("无法保存!"); getch(); }
fclose(fp);
printf("修改成功!");
getch();
}
void insert()/*自定义插入函数*/
{ FILE *fp;
int i,j,k,m=0,snum;
if((fp=fopen("data.txt","r+"))==NULL)
{ printf("无法打开\n");return;}
while(!feof(fp))
if(fread(stu[m],LEN,1,fp)==1) m++;
if(m==0) {printf("无记录!\n");
fclose(fp);
getch();
return;
}
printf("输入要插入的位置(学号):");
scanf("%d",snum);/*输入要插入的位置*/
for(i=0;im;i++)
if(snum==stu[i].num)
break;
for(j=m-1;ji;j--)
stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/
printf("现在请输入新信息.\n");
printf("学号:");
scanf("%d",stu[i+1].num);
for(k=0;km;k++)
if(stu[k].num==stu[i+1].num)
{
printf("学号存在,按任意键继续!");
getch();
fclose(fp);
return;
}
printf("姓名:");
scanf("%s",stu[i+1].name);
printf("选修课:");
scanf("%lf",stu[i+1].elec);
printf("实验课:");
scanf("%lf",stu[i+1].expe);
printf("必修课:");
scanf("%lf",stu[i+1].requ);
stu[i+1].sum=stu[i+1].elec+stu[i+1].expe+stu[i+1].requ;
if((fp=fopen("data.txt","wb"))==NULL)
{ printf("无法打开\n");return;}
for(k=0;k=m;k++)
if(fwrite(stu[k] ,LEN,1,fp)!=1)/*将修改后的记录写入磁盘文件中*/
{ printf("无法保存!"); getch(); }
fclose(fp);
printf("插入成功!");
getch();
}
void total()
{ FILE *fp;
int m=0;
if((fp=fopen("data.txt","r+"))==NULL)
{ printf("无法打开\n");return;}
while(!feof(fp))
if(fread(stu[m],LEN,1,fp)==1)
m++;/*统计记录个数即学生个数*/
if(m==0) {printf("无记录!\n");fclose(fp);return;}
printf("本班有%d个学生!\n",m);/*将统计的个数输出*/
show();
getch();
fclose(fp);
}
这个是成绩管理系统,可行?不过都差不多,课程设计这东西很简单的
编写一个c语言程序,实现录入学生学号和姓名信息的功能
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。
2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。
3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。
4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。
5、然后在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。
6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。