程序设计题: 学生管理系统

2024-05-05 22:34

1. 程序设计题: 学生管理系统

你的分数太少了,不可能有人对这个感兴趣,你可以先回答别人的问题,得了足够的积分,你悬赏200分,可能性就更大了
另外还要说一句,你的要求太具体了,不可能有人会给你专门去做这个题目,或许人家有和你类似的程序可能给你参考下,你还是靠自己吧,你要是能学1个礼拜的编程,弄这个就小菜一碟。

程序设计题:  学生管理系统

2. C语言程序设计题目:学生信息管理系统设计

已经按你的要求改写并调试通过了。调试环境win-tc和Dev-c++. 
这是我在以前帮别人写的学生成绩管理系统的基础上改写的,学生信息用文件保存,从文件读入。同时为了简化起见,没有使用链表,容易理解。程序还具有很强的判断验错功能。对本题算法很简单,就是一个函数strcmp().其中student.dat内容如下,你可以自己用记事本修改并保存文件名为student.dat即可: 
100001 周云发 19 男 1985.10 香港秀水街 19944569659 123@163.com 
100009 程龙 18 男 1986.11 香港秀水街 19744569659 133@126.com 
100003 章自已 18 女 1986.12 香港古装城 19844569659 143@163.com 
100004 周讯 17 女 1987.06 香港秀水街 19644569659 153@126.com 
100008 李丽珍 19 女 1985.08 香港古装城 19544569659 163@163.com 
100007 蔡灼燕 17 女 1987.10 香港靓仔街 19444569659 173@126.com 
100012 刘得花 20 男 1984.06 香港古装城 19344569659 183@126.com 
100010 李嘉欣 20 女 1984.03 香港秀水街 19244569659 193@163.com 
100011 周星星 19 男 1985.07 香港靓仔街 19144569659 223@163.com 
100002 梁超伟 20 男 1984.01 香港秀水街 19044569659 233@163.com 
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。 
/* 简易学生信息管理系统 win-tc和Dev-c++下运行良好,注意不是vc++下*/ 
#include 
#include
#include 

#define BUFLEN 80 /* 缓冲区最大字符数 */ 
#define LEN 20 /* 学号和姓名最大字符数,实际请更改 */ 
#define N 200 /* 最大学生人数,实际请更改*/ 

struct record 
{ 
char code[LEN+1]; /* 学号 */ 
char name[LEN+1]; /* 姓名 */ 
int age;          /* 年龄 */
char sex[3];      /* 性别 */
char time[LEN+1]; /* 出生年月 */ 
char add[30];     /* 家庭地址 */
char tel[LEN+1];  /* 电话号码 */
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 readfile()/* 建立信息 */ 
{ 
char buf[BUFLEN],*p="student.dat"; 
FILE *fp; 
int i=0; 
if ((fp=fopen("student.dat","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,stu[i].add,stu[i].tel,stu[i].mail)==8) 
{ i++; 
i=i; 
} 
fclose(fp); 
n=i; 
printf("录入完毕!\n"); 
} 

void seek() 
{int i,j,item,flag; 
char s1[21]; /* 以姓名和学号最长长度+1为准 */ 
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("%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); 
} 
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("%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); 
} 
if(flag==0) 
printf("该姓名不存在!\n"); break; 
case 3:return; 
default:printf("请在1-3之间选择\n"); 
} 
} 
} 

void modify() /*修改信息*/ 
{int i,j,item,num; 
char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */ 
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 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"); 
} 

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("删除成功,显示结果请选择菜单6\n"); 
n--; 
} 
} 

void display() 
{ int i,j; 
printf("所有学生的信息为:\n"); 
for(i=0;i<n;i++) 
{ 
printf("%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); 
} 
} 

void save() 
{ int i,j,k,flag=0; 
FILE *fp; 
fp=fopen("student.dat","w"); 
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("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"); 
printf("请选择菜单编号:"); 
scanf("%d",&num); 
switch(num) 
{ 
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("请在1-8之间选择\n"); 
} 
}

3. 程序设计题目 学生信息管理系统

#include
#include 
#include  
#include
#include
#define N 5
#define MAXSIZE 100
typedef int keytype;
typedef struct
{
	int no;
    char name[30];
    char sex[4];
    int age;
}recordtype;
typedef struct
{
	recordtype r[MAXSIZE+1];
    int length;
}table;
void input(table *tab)
{
	void bubblesort1(table *tab);
	int i,j;
	int n;
	int count=0;
	printf("输入录入人数:");
	scanf("%d",&n);tab->length=n;
	printf("学号  姓名  性别(nv/nan) 年龄\n");
    for(i=1;ilength;i++)
	{
		scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
		if(i>=2){
		for(j=i-1;j>=1;j--)
			if(tab->r[i].no==tab->r[j].no)
			{
				printf("已有此人请重新输入\n");
				scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
			}		
		}
	}
	bubblesort1(tab);
	system("cls");
}
void output(table tab)
{
	int i;
	int c;
	printf("学号    姓名    性别(nv/nan) 年龄\n");
    for(i=1;i<=tab.length;i++) 
	{		
		printf("%-8d%-8s%-8s%-2d\n",tab.r[i].no,tab.r[i].name,tab.r[i].sex,tab.r[i].age);
	}
		printf("是否离开");
				scanf("%d",&c);
				if(c==1)
			   system("cls");
				else{ system("cls");output(tab);}

	system("cls");
}
void bubblesort(table *tab)
{
	void output(table );
	int i,j;
    recordtype t;
    for(i=1;ilength;i++)
    for(j=1;jlength;j++)
        if(tab->r[j].age>tab->r[j+1].age||tab->r[j].age==tab->r[j+1].age&&tab->r[j].no>tab->r[j+1].no)  
		{
			t=tab->r[j];tab->r[j]=tab->r[j+1];tab->r[j+1]=t;
		}
	 output(*tab);
	system("cls");
}
void bubblesort1(table *tab)
{
	int i,j;
    recordtype t;
    for(i=1;ilength;i++)
    for(j=1;jlength;j++)
        if(tab->r[j].no>tab->r[j+1].no)  
		{
			t=tab->r[j];tab->r[j]=tab->r[j+1];tab->r[j+1]=t;
		}
	system("cls");
}
void find(table tab)
{	
	int i,x;
	int sno;
	int c;
	char ssex[4];
	printf("选择您要查询的方式(按学号查询请输入1;按性别查询请输入2:):");
	scanf("%d",&x);
	switch(x)
	{	
		case 1: {
		      printf("输入你要查询的学号:");
	          scanf("%d",&sno);
              for(i=1;i<=tab.length;i++)
		        if(tab.r[i].no==sno)
				{	printf("学号    姓名    性别   年龄\n");
		            printf("%-8d%-8s%-8s%-2d\n",tab.r[i].no,tab.r[i].name,tab.r[i].sex,tab.r[i].age);
					break;
				}
			  if(i>tab.length) MessageBox(NULL,"无此人信息","确认",MB_OK);
	          printf("\n是否确定离开或者继续查询(1/0):") ;
	          scanf("%d",&c);
	          if(c==1){system("cls");}
	          else {system("cls");find(tab);}
			};break;
		case 2: {
		       printf("输入你要查询的性别:");
	           scanf("%s",&ssex);
			   for(i=1;i<=tab.length;i++)
				if(!strcmp(tab.r[i].sex,ssex))
				{	printf("学号    姓名    性别   年龄\n");
		            printf("%-8d%-8s%-8s%-2d\n",tab.r[i].no,tab.r[i].name,tab.r[i].sex,tab.r[i].age);				
				}	
				printf("是否离开(1/0)");
				scanf("%d",&c);
				if(c==1)
			   system("cls");
				else{find(tab); system("cls");}
			};break;
		default :{ ;find(tab);}
	}
}

void inset(table *tab)
{
	int i,j,n;
    printf("输入你要插入的个数:");
    scanf("%d",&n);
	printf("学号    姓名    性别   年龄\n");
    printf("\n");
    if((tab->length+n)>MAXSIZE+1)    
	;
    else 
	   for(i=tab->length+1;ilength+n;i++)
	   {scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
	     for(j=1;jlength;j++)
			if(tab->r[j].no==tab->r[i].no)
			{
				printf("此学号已存在\n");
				scanf("%d %s %s %d",&tab->r[i].no,&tab->r[i].name,&tab->r[i].sex,&tab->r[i].age);
			}
	   }
	tab->length=tab->length+n;
    bubblesort1(tab) ;
    system("cls");

}

void del(table *tab)
{
	int i,j;
    int num;
	int count=tab->length;
	
	printf("你要删除的学号:");
    scanf("%d",&num);
    for(i=1;ilength;i++) 
	{
		if(tab->r[i].no==num)
		{
			for(j=i;jlength;j++)
			{
				tab->r[j]=tab->r[j+1];				
			}
			tab->length=tab->length-1;
		}  
		
	}
	if(count==tab->length) 
	{
		
		system("cls");
	}
	else 
	{
		
		system("cls");

	}
}


void mume()
{
	printf("\t\t  ---------------------------------------------------------\n");
	printf("\t\t  ---------------------------------------------------------\n");
	printf("\t\t                   08计算机学生信息管理程序                \n");
	printf("\t\t  ---------------------------------------------------------\n");
    printf("\t\t  -----------------------目录------------------------------\n");
	printf("\t\t  ---------------------------------------------------------\n");
    printf("\t\t  ~~~   1 学生信息的录入                                  *\n");

	printf("\t\t  ~~~   2 删除                                             \n");

	printf("\t\t  ~~~   3 查询                                            *\n");
	printf("\t\t  ~~~   4 添加                                             \n");
    printf("\t\t  ~~~   5 排序                                            *\n");
	printf("\t\t  ~~~   6 浏览                                             \n");
	printf("\t\t  ~~~   7 退出系统                                        *\n");
	printf("\t\t  ---------------------------------------------------------\n");
	printf("\t\t ----------------------------------------------------------\n");
}



 int main()
{
	int i;
	table stu;
	while(1){
	mume();
   
	printf("请输入你需要进行的操作:");
    scanf("%d",&i);
	switch(i)
	{
 
	case 1:{system("cls"); input(&stu)  ;} ;break;
	case 2:{system("cls");   del(&stu);} ;break;
	case 3:{system("cls"); find(stu);} ;break;
    case 4:{system("cls"); inset(&stu)  ;  } ;break;
	case 5:{system("cls"); bubblesort(&stu) ; } ;break;
    case 6:{system("cls"); output(stu) ;  } ;break;
	case 7: return 0;
	default :;system("cls");
	}
	}
return 0;
}

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

4. C语言程序设计题:职工工资管理系统

你要的是命令行还是图形界面?
如果是命令行可以考虑下
如果是图形界面的话200分少了点,看看吧.
--------------------------------------------
既然不是图形界面,代码就简单.不过也有近300行.可能有些地方不怎么简洁..
你用的时候,把注释"delete this line"那行所在的代码删除或修改就OK了.
如果看不懂请给我留言,我发一份带详细注释的代码给你.
--------------------------------------------

/*
Microsoft Visual C++ .NET编译通过
by 做他@07.12.29
*/

#include "stdafx.h"
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std;

/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金 
*/
struct employee{
 string m_num;//编号
 string m_name;//姓名
 string m_dep;//部门
 double m_salary;//应付工资
 double m_insurance;//保险
 double m_tax;//税金
};

/*
(1)录入:输入职工数据,其中“实付工资”通过计算得到; 
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息) 
(3) 修改:允许对已经录入的数据重新进行编辑、修改; 
(4) 显示:显示全体职工数据; 
(5)查询: 
a. 输入职工姓名,显示该职工的全部数据; 
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。 
(6) 退出程序。
*/

list emps;

int _tmain(int argc, _TCHAR* argv[])
{
 void print(const employee &e);
 void input();
 void del();
 void mod();
 void show_all();
 void show_name();
 void show_dep();

 cout<<"简易职工薪水管理程序 by 做他\n";// delete this line
 cout<<"版权没有 请随意复制或修改任何代码\n";//delete this line

 cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
 int choose=0;
 cin>>choose;
 assert(!cin.fail());
 while (choose!=6)
 {
  if (choose==1) input();
  if (choose==2) del();
  if (choose==3) mod();
  if (choose==4) 
  {
   int choice=0;
   cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:";
   cin>>choice;
   if (choice==1) show_name();
   if (choice==2) show_dep();
   if (choice==3) 
   {
    cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
    cin>>choose;
    assert(!cin.fail());
    continue;
   }
  }
  if (choose==5) show_all();
  cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
  cin>>choose;
  assert(!cin.fail());
 }
 return 0;
}

void print(const employee &e)
{
 cout<<"编号:"<<e.m_num<<endl;
 cout<<"姓名:"<<e.m_name<<endl;
 cout<<"部门:"<<e.m_dep<<endl;
 cout<<"保险:"<<e.m_insurance<<endl;
 cout<<"税金:"<<e.m_tax<<endl;
 cout<<"应付工资:"<<e.m_salary<<endl;
 cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}

void input()
{
 string num,name,dep;
 double salary,ins,tax;
 cout<<"请输入员工编号:";
 cin>>num;
 cout<<"请输入员工姓名:";
 cin>>name;
 cout<<"请输入员工部门:";
 cin>>dep;
 cout<<"请输入员工保险:";
 cin>>ins;
 assert(!cin.fail());
 cout<<"请输入员工税金:";
 cin>>tax;
 assert(!cin.fail());
 cout<<"请输入员工应付工资:";
 cin>>salary;
 assert(!cin.fail());
 employee temp;
 temp.m_dep=dep;
 temp.m_insurance=ins;
 temp.m_name=name;
 temp.m_num=num;
 temp.m_salary=salary;
 temp.m_tax=tax;
 emps.push_back(temp);
 cout<<"员工录入操作完毕.\n";
}

void del()
{
 if (emps.size()==0)
 {
  cout<<"没有员工记录.\n";
  return;
 }
 string name;
 bool isfind=false;
 cout<<"请输入要删除的员工姓名:";
 cin>>name;
 list::iterator iter;
 for (iter=emps.begin();iter!=emps.end();iter++)
 {
  if (iter->m_name==name)
  {
   isfind=true;
   emps.erase(iter);
   cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n";
   return;
  }
 }
 if (!isfind)
 {
  cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
  return;
 }
}

void mod()
{
 if (emps.size()==0)
 {
  cout<<"员工记录为空.\n";
  return;
 }
 bool isfind=false;
 string name;
 cout<<"请输入要修改的员工姓名:";
 cin>>name;
 list::iterator iter;
 for (iter=emps.begin();iter!=emps.end();iter++)
 {
  if (iter->m_name==name)
  {
   isfind=true;
   cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
   break;
  }
 }
 if (isfind)
 {
  string num,name,dep;
  double tax,ins,salary;
  print(*iter);
  cout<<endl;
  cout<<"请输入新的员工编号:";
  cin>>num;
  cout<<"请输入新的员工姓名:";
  cin>>name;
  cout<<"请输入新的员工部门:";
  cin>>dep;
  cout<<"请输入新的员工保险:";
  cin>>ins;
  assert(!cin.fail());
  cout<<"请输入新的员工税金:";
  cin>>tax;
  assert(!cin.fail());
  cout<<"请输入新的员工工资:";
  cin>>salary;
  assert(!cin.fail());
  iter->m_dep=dep;
  iter->m_insurance=ins;
  iter->m_name=name;
  iter->m_num=num;
  iter->m_salary=salary;
  iter->m_tax=tax;
  cout<<"1 员工记录被成功修改.\n";
 }
 else
 {
  cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n";
 }
}

void show_all()
{
 if (emps.size()==0)
 {
  cout<<"员工记录为空.\n";
  return;
 }
 cout<<"显示全体员工数据:\n";
 cout<<"--------------------\n";
 list::iterator iter;
 for(iter=emps.begin();iter!=emps.end();iter++)
 {
  cout<<endl;
  print(*iter);
  cout<<endl;
 }
 cout<<"--------------------\n";
}

void show_name()
{
 if (emps.size()==0)
 {
  cout<<"员工记录为空.\n";
  return;
 }
 bool isfind=false;
 string name;
 cout<<"请输入要查询的员工姓名:";
 cin>>name;
 list::iterator iter;
 for(iter=emps.begin();iter!=emps.end();iter++)
 {
  if (iter->m_name==name)
  {
   isfind=true;
   cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
   print(*iter);
   break;
  }
 }
 if (!isfind)
 {
  cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
  return;
 }
}

void show_dep()
{
 if (emps.size()==0)
 {
  cout<<"员工记录为空.\n";
  return;
 }
 double isfind=0.00;
 double total_salary=0.00;
 string dep;
 cout<<"请输入要查询的部门名称:";
 cin>>dep;
 cout<<"部门["<<dep<<"]的员工信息:\n";
 cout<<"--------------------\n\n";
 list::iterator iter;
 for(iter=emps.begin();iter!=emps.end();iter++)
 {
  if (iter->m_dep==dep)
  {
   isfind++;
   total_salary+=iter->m_salary;
   print(*iter);
   cout<<endl;
   continue;
  }
 }
 cout<<"--------------------\n";
 if (isfind==0)
 {
  cout<<"没有找到名称为["<<dep<<"]的部门.\n";
 }
 else
 {
  cout<<"部门["<<dep<<"]工资统计:\n";
  cout<<"工资总额:"<<total_salary<<endl;
  cout<<"平均工资:"<<total_salary/isfind<<endl;
 }
}

5. 程序设计题:通信录管理系统

# include "stdio.h"
# include "string.h"
# include "malloc.h"
# include "process.h"
# define LEN sizeof (struct snode)
char cfilename[10];
int pd=0;
FILE *Ffp;
struct snode
{char cname [10];
 char caddress[28];
 char cmobile [15];
 char chomephone [16];
 char cofficephone [16];
 struct snode *pnext;
}*phead;


void titleletters()
{printf("**********************\n");
printf(" ****通迅管理系统****\n");
printf(" *******(四组)*******\n");
printf("**********************\n");}


void helpletters()
{printf("需要帮助,请输入?\n");
printf("建立一个空通迅录,请输入n\n");
printf("打开一个通迅录,请输入0\n");
printf("保存当前通迅录,请输入s\n");
printf("关闭当前通迅录,请输入c\n");
printf("增加一条记录,请输入a\n");
printf("游览当前通迅录,请输入v\n");
printf("编辑一条记录,请输入e\n");
printf("删除一条记录,请输入d\n");
printf("查找一条记录,请输入r\n");
printf("退出,请输入q\n");
}

void panduan()
{printf ("没有打开文件\n");
 return;
}
/*新建函数*/
void newlist()
{phead=NULL;
printf("一个新空通迅录已建立\n");}

/*打开函数*/
void openlist()
{struct snode *ppointer,*pinput;
printf("请输入文件名:");
scanf("%s",cfilename);
if((Ffp=fopen(cfilename,"r+"))==NULL)
{printf("不能打开这个文件。\n");
return;
}
rewind(Ffp);
phead=NULL;
if(!feof(Ffp))
{pinput=(struct snode*)malloc(LEN);
fscanf(Ffp,"%s %s %s %s %s\n",pinput->cname,pinput->caddress,pinput->cmobile,pinput->chomephone ,pinput->cofficephone);
pinput->pnext=NULL;
phead=pinput;
ppointer=phead;
}
 while(!feof(Ffp))
 {
  pinput=(struct snode*)malloc(LEN);
  fscanf(Ffp,"%s %s %s %s %s\n",pinput->cname,pinput->caddress,pinput->cmobile,pinput->chomephone ,pinput->cofficephone);
  pinput->pnext=NULL;
  ppointer->pnext=pinput;
  ppointer=ppointer->pnext;
 }
 printf("这个文件已打开.\n");
 pd=1;
}

/*保存函数*/
 void savelist()
 {if (!pd)
 {panduan();
 return;}
 struct snode *ppointer;
 if(Ffp==NULL)
 {
  printf("请输入文件名:");
  scanf("%s",cfilename);
  if((Ffp=fopen(cfilename,"w"))==NULL)
  {
   printf("不能保存空文件。\n");
   return;
  }
 }
 rewind(Ffp);
 ppointer=phead;
 while(ppointer!=NULL)
 {fprintf(Ffp,"%-8s   %-28s    %-10s    %-16s   %-10s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
 ppointer=ppointer->pnext;
 }
 printf("已保存\n");
 }


/*关闭函数*/
 void closelist()
 {if (!pd)
 {panduan();
 return;}
 if(fclose(Ffp)!=0)
 {printf("这个文件不能关闭\n");
 return;
 }
 phead=NULL;
 printf("这个文件已关闭\n");
 }
/*追加函数*/
 void appendrecord()
{if (!pd)
 {panduan();
 return;}
 char corder[2];
 int iinputcheck;
 struct snode *ppointer,*pinput;
re:
printf("请输入新记录:姓名 地址  家庭电话 手机  办公电话\n");
pinput=(struct snode*)malloc(LEN);
iinputcheck=scanf("%s%s%s%s%s",pinput->cname,pinput->caddress,pinput->cmobile,pinput->chomephone,pinput->cofficephone);
if(iinputcheck==0)
{
printf("输入数据错误\n");
return;
}
pinput->pnext=NULL;
if(phead==NULL)
{phead=pinput;
printf("这条记录已追加\n");
}
else 
{
 ppointer=phead;
 while((ppointer->pnext)!=NULL)
   ppointer=ppointer->pnext;
ppointer->pnext=pinput;
printf("这条记录已追加\n");
}
printf("想要追加其他记录吗(y/n)?");
scanf("%s",corder);
if(!strcmp(corder,"y"))
goto re;
}
/*浏览记录函数*/
void viewrecord ()                       
{if (!pd)
 {panduan();
 return;}
struct snode *ppointer;                 
if(phead==NULL)
{printf("此通讯录显示为空\n");
return;
}
printf ("%-8s %-28s %-10s %-16s %-10s\n","姓名","地址","家庭电话","手机","办公电话");
    ppointer=phead;
while(ppointer!=NULL)
{printf("%-8s,%-28s,%-10s,%-16s,%-10s\n",ppointer->cname,ppointer->caddress,
  ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
ppointer=ppointer->pnext;}
}
/*编辑记录函数*/
void editrecord()                              
{if (!pd)
 {panduan();
 return;}
char cnamekey[10];
int iinputcheck,ioutputcheck;
struct snode *ppointer;
if (phead==NULL)
{printf("这条记录显示为空\n");
return;
}
printf("请输入姓名\n");
    scanf("%s",cnamekey);
ppointer=phead;
while(ppointer!=NULL)
{if (!strcmp(cnamekey,ppointer->cname))
break;
ppointer=ppointer->pnext;
}
if (ppointer!=NULL)
{
 printf("这个记录:\n");
  ioutputcheck=printf("%-8s    %-28          %-10s     %-16s       %-10s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
 if(ioutputcheck<0)
 {
  printf("输出数据有错\n");
  return;
 }
 printf("请输入新记录\n");
  iinputcheck=scanf("%s     %s          %s     %s     %s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
 if (iinputcheck==0)
 {
  printf("输出数据有错\n");
  return;
 }
}
else
printf("这条记录没找到\n");
}
/*删除函数*/
void deleterecord()
{if (!pd)
 {panduan();
 return;}
char cnamekey[10];
struct snode *ppointer,*pformer;
if(phead==NULL)
  {printf("这条记录显示为空\n");
return;
  }
ppointer=phead;
pformer=NULL;
printf("请输入姓名: \n");
scanf("%s",cnamekey);
while (strcmp(cnamekey,ppointer->cname)&&((ppointer->pnext)!=NULL))
  {
   pformer=ppointer;
ppointer=ppointer->pnext;
  }
if (!strcmp(cnamekey,ppointer->cname))
 {
printf("这条记录已找到\n");
printf("%-10s         %-28s                     %-15s           %-16s           %-16s\n",ppointer->cname, ppointer->caddress,ppointer->cmobile, ppointer->chomephone, ppointer->cofficephone);
    if(ppointer==phead)
         phead=ppointer->pnext;
     else 
         pformer->pnext=ppointer->pnext;
     printf("这条记录已被删除\n");
     }
     else 
      printf("这条记录没找到\n");
}
/*查找函数*/
void searcgrecord ()
{if (!pd)
 {panduan();
 return;}
char cnamekey [10];
struct snode *ppointer;
if (phead=NULL)
{printf ("这条记录显示为空");
return;
}
printf ("请输入这个名字");
scanf ("%s",cnamekey);
ppointer=phead;
while(ppointer!=NULL)
{if  (!strcmp (cnamekey,ppointer->cname))break;
ppointer=ppointer->pnext;}
if (ppointer!=NULL)
{printf ("这条记录已找到\n");
printf ("%-10s %-28s %-15s %-16s %-16s\n",ppointer->cname,ppointer->caddress,ppointer->cmobile,ppointer->chomephone,ppointer->cofficephone);
}

else
printf ("这条记录没找到\n");
}


/*退出函数*/
void quitsystem()
{closelist();
exit (0);
}

/*主函数*/
main ()
{char a;
 titleletters();
 helpletters();
 while (1)
 {scanf("%c",&a);
 switch (a)
 {case '?':helpletters();break;
  case 'n':newlist() ;break;
  case 'o':openlist();break;
  case 's':savelist();break;
  case 'c':closelist();break;
  case 'a':appendrecord();break;
  case 'v':viewrecord ()  ;break;
  case 'e':editrecord() ;break;
  case 'd':deleterecord();break;
  case 'r':searcgrecord ();break;
  case 'q':quitsystem();break;
 }
 }
}

程序设计题:通信录管理系统

6. c语言程序设计题图书管理系统

/* Note:Your choice is C IDE */
#include "stdio.h"
#include
#include "conio.h"
#include
#include

void main()
{void adm1(),adm2(),build(),huan(),borrow(),dele();
    adm1();

}

void adm1()
{ FILE *fp,*p ;
  char adp[20],password[20];
  int i,n=0;
  textbackground(2);
  clrscr();
  gotoxy(25,12);
     fp=fopen("pass","r");
     if(fp==NULL) { printf("no exit ");getch();exit(0);}
     printf("input password:");
  for(;;)
   {

     window(42,12,53,12);
     textbackground(0);
     clrscr();
     gets(adp);
     for(i=0;adp[i]!='\0';i++);
     fgets(password,i+1,fp);
     gotoxy(55,12);
     if(strcmp(password,adp)==0) { window(55,12,70,12);clrscr();cprintf("YES");getch();adm2();getch();exit(0);}
     else{ n++;
           window(55,12,60,12);clrscr();gotoxy(55,12);cprintf("error");
           for(i=0;i<30;i++) delay(8000);
           if(n==2) { window(55,12,70,12);clrscr();gotoxy(55,12);cprintf("once again");for(i=0;i<=30;i++) delay(8000);}
           if(n==3) { window(55,12,70,12);clrscr();gotoxy(55,12);cprintf("3 second out");for(i=0;i<=30;i++) { delay(8000);}
                      exit(0);
                     }
         }
     fclose(fp);clrscr();

   }
}
void adm2()
  { char a;
     window(1,1,80,25);
    clrscr();
    for(;;)
      { clrscr();
        gotoxy(30,8);printf("built a new user (B)");
        gotoxy(30,10);printf("return book (R)");
        gotoxy(30,12);printf("borrow books (J)");
        gotoxy(30,14);printf("delete user (D)");
        a=getch();
        if(a=='b') build();
        if(a=='r') huan();
        if(a=='j') borrow();
        if(a=='d') dele();
        else continue;

       }

  }

void build()
  { FILE *f,*p;
     char id[20],name[20],sex[2],age[3],grad[50];
     window(1,1,80,25);
     clrscr();
     printf("ID number:");
     scanf("%s",id);
     printf("name:");
     scanf("%s",name);
     printf("sex:");
     scanf("%s",sex);
     printf("grad:");
     scanf("%s",grad);
     p=fopen(id,"w+");
     if(p==NULL) { printf("can't build that user");getch();adm2();}

     fprintf(p,"%s ",name);
     fprintf(p,"%s ",id);
     fprintf(p,"%s ",sex);
     fprintf(p,"%s ",grad);
     printf("bulid success");
     getch();
     fclose(p);
   }



void huan()
{
   FILE *fp,*p,*f;
   char id[20],a[5][50],name[20],c;
   int i=0,m,k;   clrscr();
   printf("input ID number:");
   scanf("%s",id);
   p=fopen(id,"r");
   if(p==NULL) { printf("error");getch();fclose(p);exit(0);}
   fscanf(p,"%s",name);
   fclose(p);
   fp=fopen(name,"r");
   do{ fscanf(fp,"%s",a[i++]);       }while(!feof(fp));

   for(k=0;k<i-1;k++) printf("\nbook %d: %s",k+1,a[k]);
   fclose(fp);
   f=fopen(name,"w+");
   for(;;)
   {
   printf("\n\npress the book number that you want to return.       \n\nPress 6 if you want to return all.      \n\npress 7 to cancle.\n");
   scanf("%d",&m);
   if(m==7)  { for(k=0;k<i-1;k++)
                 {
                   fprintf(f,"%s\n",a[k]);
                  }
              fclose(f);
              adm2();
            }
   if(m==6) remove(name);
   if(m<6)
    for(k=0;k<i-1;k++)
   { if(k!=m-1)
     fprintf(f,"%s\n",a[k]);
     }
   printf("book %d has returned.",m);
   printf("\ncontinue? (Y/N)");
   c=getch();
   if(c=='y') continue;
   if(c=='n') { fclose(f);adm2(); }
   }
}




void borrow()
   {  FILE *f,*m,*p;
      char id[20],book[5][50],name[20],c;
      int i=0,n=0,k;
      window(1,1,80,25);clrscr();
      printf("please input the user's ID:");
      scanf("%s",id);
      m=fopen(id,"r");
      if(m==NULL) { printf("user no exit"); getch();fclose(m);adm2();}
      fscanf(m,"%s",name);
      fclose(m);
       p=fopen(name,"r");
      if(p==NULL);
       else
         { while(!feof(p))
         {
          fscanf(p,"%s",book[i]);
          i++;
          }
         i--;
         for(k=0;k<i;k++) printf("\nbook %d :%s",k+1,book[k]);
         }
      fclose(p);
      f=fopen(name,"w");
      printf("\nhow many book do you want to borrow?:");
      do{printf("\ninput:");scanf("%d",&n);  }while(i+n>=6);
      for(k=i;k<i+n;k++)
        { printf("\nbook %d :",k+1);
          scanf("%s",book[k]);
        }
      for(k=0;k<i+n;k++) fprintf(f,"%s\n",book[k]);
      fputc('\0',f);
      printf("success");
      fclose(f);

 }







void dele()
   { FILE  *fp,*f;
     char id[20],a[4][20],c,b[5][50];
     int i=0,j=0,k;
     window(1,1,80,25);clrscr();
     printf("Input ID number:");
     scanf("%s",id);
     fp=fopen(id,"r");
     if(fp==NULL) { printf("\nuser isn't exit");getch(); fclose(fp);adm2();}
     else while(!feof(fp))
          { fscanf(fp,"%s",a[i++]);}
     printf("\nname: %s",a[0]);
     printf("\nID: %s",a[1]);
     printf("\nsex: %s",a[2]);
     printf("\ngrad: %s",a[3]);
     f=fopen(a[0],"r");
     if(f==NULL);
     else {
           while(!feof(f))
            { fscanf(f,"%s",b[j++]);}
             for(k=0;k<j-1;k++) printf("\nbook %d: %s",k+1,b[k]);
          }
     printf("\nDo you want to delete?  (Y/N): ");
     c=getch();
     fclose(fp);
     fclose(f);
     if(c=='y') { remove(id);remove(a[0]);printf("\nsuccess");getch();adm2();}
     if(c=='n') adm2();
    }


先在当前文件夹下新建一个pass.txt文件输入密码,再把.txt去掉运行的程序就可以了。
这是我以前写的一个图书管理系统,可能和你的要求不符,暴怒过参考下也行
呵呵,希望有帮助

7. 求大神写一道程序设计题:药房进销存管理系统

这个程序很简单,是最基本的进销存设计。但是作为学生,还是要扎实学点东西,网上可以买到很多答案,买不到能力。如果这么简单的设计都要别人代劳,建议还是学别的东东吧。

求大神写一道程序设计题:药房进销存管理系统

8. c语言程序设计题,设计一个《个人藏书管理系统》

您好,这样的:
已经按你的要求改写并调试通过了。调试环境win-tc和Dev-c++. 
这是我在以前帮别人写的学生成绩管理系统的基础上改写的,学生信息用文件保存,从文件读入。同时为了简化起见,没有使用链表,容易理解。程序还具有很强的判断验错功能。对本题算法很简单,就是一个函数strcmp().其中student.dat内容如下,你可以自己用记事本修改并保存文件名为student.dat即可: 
100001 周云发 19 男 1985.10 香港秀水街 19944569659 123@163.com 
100009 程龙 18 男 1986.11 香港秀水街 19744569659 133@126.com 
100003 章自已 18 女 1986.12 香港古装城 19844569659 143@163.com 
100004 周讯 17 女 1987.06 香港秀水街 19644569659 153@126.com 
100008 李丽珍 19 女 1985.08 香港古装城 19544569659 163@163.com 
100007 蔡灼燕 17 女 1987.10 香港靓仔街 19444569659 173@126.com 
100012 刘得花 20 男 1984.06 香港古装城 19344569659 183@126.com 
100010 李嘉欣 20 女 1984.03 香港秀水街 19244569659 193@163.com 
100011 周星星 19 男 1985.07 香港靓仔街 19144569659 223@163.com 
100002 梁超伟 20 男 1984.01 香港秀水街 19044569659 233@163.com 
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。 
/* 简易学生信息管理系统 win-tc和Dev-c++下运行良好,注意不是vc++下*/ 
#include 
#include
#include 

#define BUFLEN 80 /* 缓冲区最大字符数 */ 
#define LEN 20 /* 学号和姓名最大字符数,实际请更改 */ 
#define N 200 /* 最大学生人数,实际请更改*/ 

struct record 
{ 
char code[LEN+1]; /* 学号 */ 
char name[LEN+1]; /* 姓名 */ 
int age;          /* 年龄 */
char sex[3];      /* 性别 */
char time[LEN+1]; /* 出生年月 */ 
char add[30];     /* 家庭地址 */
char tel[LEN+1];  /* 电话号码 */
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 readfile()/* 建立信息 */ 
{ 
char buf[BUFLEN],*p="student.dat"; 
FILE *fp; 
int i=0; 
if ((fp=fopen("student.dat","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,stu[i].add,stu[i].tel,stu[i].mail)==8) 
{ i++; 
i=i; 
} 
fclose(fp); 
n=i; 
printf("录入完毕!\n"); 
} 

void seek() 
{int i,j,item,flag; 
char s1[21]; /* 以姓名和学号最长长度+1为准 */ 
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("%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); 
} 
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("%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); 
} 
if(flag==0) 
printf("该姓名不存在!\n"); break; 
case 3:return; 
default:printf("请在1-3之间选择\n"); 
} 
} 
} 

void modify() /*修改信息*/ 
{int i,j,item,num; 
char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */ 
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 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"); 
} 

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("删除成功,显示结果请选择菜单6\n"); 
n--; 
} 
} 

void display() 
{ int i,j; 
printf("所有学生的信息为:\n"); 
for(i=0;i<n;i++) 
{ 
printf("%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); 
} 
} 

void save() 
{ int i,j,k,flag=0; 
FILE *fp; 
fp=fopen("student.dat","w"); 
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("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"); 
printf("请选择菜单编号:"); 
scanf("%d",&num); 
switch(num) 
{ 
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("请在1-8之间选择\n"); 
} 
}