精华内容
下载资源
问答
  • C语言学生成绩管理系统代码

    万次阅读 多人点赞 2018-03-21 20:27:20
    大学C语言实训课,C语言学生成绩管理系统。 #include<stdio.h> #include<string.h> #include<math.h> struct student { int num; char name[20]; float pingshi; float shiyan; ...

    分享:C语言学生成绩管理系统设计 《C语言程序设计》实训报告

    扫描下方公众号,发送 成绩系统 4个字,获取下载源码

    扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。

    回复 系统大全,即可获得关于C语言管理系统比较全面的文章内容,覆盖全网(有点夸张,但仍在更新补充中)

    以后有时间再给大家继续分享,有任何问题欢迎留言区交流。

    大学C语言实训课,C语言学生成绩管理系统。

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    struct student
    	{
    		int num;
    		char name[20];
    		float pingshi;
    		float shiyan;
    		float kaoshi;
    		double zongping;
    	}stu[4];
    void main()
    {
    	void a();
    	void b();
    	void c();
    	void d();
    	void e();
    	int n;
    	while(n!=6)
    	{	printf("\t大学计算机基础成绩管理系统\n");
    		printf("1:输入一个班学生大学计算机基础成绩记录\n");
    		printf("2:显示所有成绩记录\n");
    		printf("3:计算并输出平均成绩,均方差\n");
    		printf("4:输出成绩与排名\n");
    		printf("5:结果存入文件chengji.txt\n");
    		printf("6:退出系统\n");
    		printf("输入选项代码:");
    		scanf("%d",&n);
    		switch(n)
    		{
    			case 1:a();break;
    			case 2:b();break;
    			case 3:c();break;
    			case 4:d();break;
    			case 5:e();break;
    			case 6:printf("\n*******************谢谢使用!*******************\n");break;
    			break;    
    		}	
    	}
    getchar();
    }
    /* 子  函  数*/
    void a() /* 输入一个班的学生记录*/
    
    {
    	int i;
    
    	for(i=0;i<4;i++)
    
    	{   
    
    		printf("请输入学号 姓名 平时成绩 实验成绩 考试成绩:");
    
    		scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].pingshi,&stu[i].shiyan,&stu[i].kaoshi);
    		
    	}for(i=0;i<4;i++)
    stu[i].zongping=0.1*stu[i].pingshi+0.3*stu[i].shiyan+0.6*stu[i].kaoshi;
    }
    void b()/* 显示所有记录*/
    
    {
    	int i;
    
    	printf("学号        姓名       平时成绩       实验成绩      考试成绩     总评成绩\n");
    
    	for(i=0;i<4;i++)
    
    		printf("%d%14.2s%14.2f%14.2f%14.2f%14.2f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zongping);
    
    }
    
    void c()/* 求出全班平均成绩,显示均方差*/
    {  
    	int a[4]={0,1,2,3};
        int i,j;
        double total=0,pfc=0,bzc=0;
        double ave;
        for(i=0;i<4;i++)
    	{
    		total=total+stu[i].zongping;
    	}
        ave=total/4.0;
        printf("总评平均成绩是%f\n",ave);
    	for(i=0;i<4;i++)
    	{
    		pfc=pow((stu[i].zongping-ave),2)/4;
    	}
    	bzc=sqrt(pfc);
    	printf("\n平方差是%f\n",pfc);
    	printf("\n标准差是%f\n",bzc);
    }
    void d()
    
    {
    	int a[4]={0,1,2,3};
    	int i,j,temp;
    	for(j=0;j<3;j++)
    	{
    		for(i=0;i<3-j;i++)
    		if(stu[a[i]].zongping>stu[a[i+1]].zongping)
    		{	
    			temp=a[i];a[i]=a[i+1];
    			a[i+1]=temp;
    
    		}
    	}
    
    	printf("顺序为:\n");
    
    	printf("学号     姓名      总评成绩\n");
    
    	for(i=0;i<4;i++)
    
    		printf("%d%10.2s%15.2f\n",stu[a[i]].num,stu[a[i]].name,stu[a[i]].zongping);
    
    	printf("\n");
    
    }
    
    void e()
    {int i;
    FILE *fp;
    fp=fopen("chengji.txt","w");
    
    	fprintf(fp,"学号        姓名       平时成绩       实验成绩      考试成绩     总评成绩\n");
    
    	for(i=0;i<4;i++)
    
    		fprintf(fp,"%d%14.2s%14.2f%14.2f%14.2f%14.2f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zongping);
    
    printf("\n\n*******************恭喜,保存完成!*******************\n\n");
    }
    

    简单记录。

    关注微信公众号“资料在线”,回复“C语言源码”,即可获得C语言源码包

    更多资源等着你

    最新文章:C语言学生成绩管理系统设计 《C语言程序设计》实训报告

     

    展开全文
  • C语言航班管理系统代码
  • 学生信息管理系统C语言代码学生信息管理系统C语言代码学生信息管理系统C语言代码学生信息管理系统C语言代码
  • C语言学生管理系统C语言学生管C语言学生管理系统理系统C语言学生管理系统C语言学生管理系统C语言学生管理系统
  • 简单c语言超市管理系统全部代码 经过改编的 可能存在漏洞 问题应该不大
  • C语言图书管理系统代码,网上载的用Turbo C写的
  • 聚会车票管理系统代码车票管理系车票管理系统代码统代码车票管理系统代码车票管理系车票管理系统代码统代码
  • c语言学生管理系统 实现 基本功能和保存读取文件功能
  • 主要为大家详细介绍了C语言学籍管理系统代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 图书管理系统代码C语言实现图书管理系统代码,进行图书管理系统的构建与实现的设计,采用自顶向下,逐层细化,最终设计出详细的功能,从而实现整个系统。
  • C语言之学生管理系统代码(完整)

    万次阅读 多人点赞 2016-06-30 16:53:15
    printf("-----------------------------学生管理系统--------------------------------\n"); printf("\n\t1.添加学生信息 2.删除某个学生信息 3.显示某个学生信息\n"); printf("\t4.修改学生信息 5.删除所有学生...

     

    <span style="font-size:18px;">#include <stdio.h>
    #include <stdlib.h>
    
    #define FILENAME "student.dat"
    
    typedef enum{MAN, WOMAN} SEX;
    
    typedef struct tagStudent
    
    {
    
    	int num;		//学生的编号
    
    	char name[20];	//学生的姓名
    
    	SEX	sex;		//学生的性别
    
    	int age;		//学生的年龄
    
    	char major[20];	//学生的专业
    
    	struct tagStudent *next;//下一个节点的指针
    
    }STUDENT, *PSTUDENT;
    
    
    
    
    STUDENT g_head;	//头节点
    
    
    
    
    //1.显示菜单
    
    void ShowMenu();
    
    //2.获取用户选择的菜单的编号
    
    int GetMenuChoose();
    
    //3.创建一个节点,它会返回一个新创建的学生信息节点的指针
    
    PSTUDENT CreateStudent();
    
    //4.把学生信息节点加入到链表中
    
    int AddStudent(PSTUDENT pstu);
    
    //5.返回指定编号学生节点的上一个节点的指针
    
    PSTUDENT GetPrevAddr(int num);
    
    //6.显示所有学生信息
    
    void ShowAll();
    
    //7.显示信息数量
    
    int ShowStudentCount();
    
    //8.修改学生信息,参数为要修改的学生的编号
    
    void ModityStudent(int num);
    
    //9.获取用户的选择
    
    int Question(const char *pstr);
    
    //10.获取用户输入的学生的编号
    
    int GetInputNum();
    
    //11.删除编号为num的学生信息
    
    void DelStudent(int num);
    
    //12.删除所有的学生信息
    
    void DelAll();
    
    //13.把学生信息保存到文件当中
    
    void SaveToFile();
    
    //14.从文件中读取学生信息
    
    void LoadFromFile();
    
    
    
    
    int main()
    
    {
    
    	int running = 1;
    
    	while(running)
    
    	{
    
    		switch(GetMenuChoose())
    
    		{
    
    			case 0:
    
    			running = 0;
    
    			break;
    
    			case 1:
    
    //			printf("你选择了菜单1\n");
    
    			AddStudent(CreateStudent());
    
    			break;
    
    			case 2:
    
    //			printf("你选择了菜单2\n");
    
    			DelStudent(GetInputNum());
    
    			break;
    
    			case 3:
    
    			printf("你选择了菜单3\n");
    
    			break;
    
    			case 4:
    
    //			printf("你选择了菜单4\n");
    
    			ModityStudent(GetInputNum());
    
    			break;
    
    			case 5:
    
    //			printf("你选择了菜单5\n");
    
    			DelAll();
    
    			break;
    
    			case 6:
    
    //			printf("你选择了菜单6\n");
    
    			ShowAll();
    
    			break;
    
    			case 7:
    
    //			printf("你选择了菜单7\n");
    
    			ShowStudentCount();
    
    			break;
    
    			case 8:
    
    //			printf("你选择了菜单8\n");
    
    			LoadFromFile();
    
    			break;
    
    			case 9:
    
    //			printf("你选择了菜单9\n");
    
    			SaveToFile();
    
    			break;
    
    		}		
    
    		system("pause");		
    
    	}
    
    	
    
    	return 0;
    
    }
    
    //1.显示菜单
    
    void ShowMenu()
    
    {
    
    	system("cls");
    
    	printf("-----------------------------学生管理系统--------------------------------\n");
    
    	printf("\n\t1.添加学生信息    2.删除某个学生信息    3.显示某个学生信息\n");
    
    	printf("\t4.修改学生信息    5.删除所有学生信息    6.显示所有学生信息\n");
    
    	printf("\t7.显示信息数量    8.读取文件学生信息    9.保存学生信息至文件\n");
    
    	printf("\t0.退出系统\n");
    
    	printf("\n-------------------------------------------------------------------------\n");
    
    }
    
    //2.获取用户选择的菜单的编号
    
    int GetMenuChoose()
    
    {
    
    	int num;//保存用户选择的菜单编号
    
    	ShowMenu();
    
    	printf("请选择菜单(0 ~ 9):");
    
    	while(1 != scanf("%d", &num) || num < 0 || num > 9)
    
    	{
    
    		ShowMenu();
    
    		printf("选择菜单错误,请重新选择(0 ~ 9):");
    
    		fflush(stdin);//清空输入缓冲区
    
    	}
    
    	return num;
    
    }
    
    //3.创建一个节点,它会返回一个新创建的学生信息节点的指针
    
    PSTUDENT CreateStudent()
    
    {
    
    	int sex;
    
    	PSTUDENT pstu = (PSTUDENT)malloc(sizeof(STUDENT));//在堆内存申请空间,存储学生信息
    
    	if(!pstu)
    
    	{
    
    		printf("申请内存空间失败!\n");
    
    		return NULL;
    
    	}
    
    	printf("请输入学生的编号(整型):");
    
    	while(1 != scanf("%d", &pstu->num) || GetPrevAddr(pstu->num))
    
    	{
    
    		printf("学生编号输入错误或已经存在,请重新输入学生的编号(整型):");
    
    		fflush(stdin);
    
    	}
    
    	printf("请输入学生的姓名(小于20字符):");
    
    	scanf("%20s", pstu->name);//(*pstu).name
    
    	printf("请选择学生的性别(1.男  2.女):");
    
    	while(1 != scanf("%d", &sex) || sex < 1 || sex > 2)
    
    	{
    
    		printf("性别选择错误,请重新选择学生的性别(1.男  2.女):");
    
    		fflush(stdin);
    
    	}
    
    	if(1 == sex)
    
    		pstu->sex = MAN;
    
    	else
    
    		pstu->sex = WOMAN;
    
    	printf("请输入学生的年龄(10 ~ 40):");
    
    	while(1 != scanf("%d", &pstu->age) || pstu->age < 10 || pstu->age > 40)
    
    	{
    
    		printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):");
    
    		fflush(stdin);
    
    	}
    
    	printf("请输入学生的专业(小于20字符):");
    
    	scanf("%20s", pstu->major);
    
    	pstu->next = NULL;
    
    	return pstu;	
    
    }
    
    //4.把学生信息节点加入到链表中
    
    int AddStudent(PSTUDENT pstu)
    
    {
    
    	PSTUDENT ps = &g_head;
    
    	if(!pstu)
    
    	{
    
    		return 0;
    
    	}
    
    	//判断一下该学生信息是不是已经存在
    
    	if(GetPrevAddr(pstu->num))
    
    	{
    
    		printf("编号为%d的学生信息已经存在!\n", pstu->num);
    
    		free(pstu);//释放该节点内存空间
    
    		return 0;
    
    	}
    
    	//while循环的作用是找到当前链表的最后一个节点
    
    	while(ps->next)
    
    		ps = ps->next;
    
    	//把新节点加入到最后那个节点的后面
    
    	ps->next = pstu;
    
    	pstu->next = NULL;
    
    	return 1;	
    
    }
    
    //5.返回指定编号学生节点的上一个节点的指针
    
    PSTUDENT GetPrevAddr(int num)
    
    {
    
    	PSTUDENT pstu = &g_head;
    
    	while(pstu->next)
    
    	{
    
    		if(pstu->next->num == num)
    
    			return pstu;
    
    		pstu = pstu->next;
    
    	}
    
    	return NULL;	
    
    }
    
    //6.显示所有学生信息
    
    void ShowAll()
    
    {
    
    	PSTUDENT pstu = &g_head;
    
    	printf("--------------------------------------------------------------------\n");
    
    	printf("  编号        姓名            性别     年龄               专业\n");
    
    	printf("--------------------------------------------------------------------\n");
    
    	while(pstu->next)
    
    	{
    
    		printf("  %-8d  ", pstu->next->num);
    
    		printf("%-20s", pstu->next->name);
    
    		printf("%-6s", pstu->next->sex == MAN ? "男" : "女");
    
    		printf("%4d", pstu->next->age);
    
    		printf("%20s\n", pstu->next->major);
    
    		pstu = pstu->next;//让指针指向下一个节点
    
    	}
    
    	printf("--------------------------------------------------------------------\n");	
    
    }
    
    //7.显示信息数量
    
    int ShowStudentCount()
    
    {
    
    	int count = 0;
    
    	PSTUDENT pstu = &g_head;
    
    	while(pstu->next)
    
    	{
    
    		++count;
    
    		pstu = pstu->next;
    
    	}
    
    	printf("\n当前共有%d位学生信息。\n", count);
    
    	return count;
    
    }
    
    //8.修改学生信息,参数为要修改的学生的编号
    
    void ModityStudent(int num)
    
    {
    
    	PSTUDENT pstu = GetPrevAddr(num);//获取要修改的学生节点的上一个节点
    
    	int choose;
    
    	if(!pstu)
    
    	{
    
    		printf("没有编号为%d的学生信息。\n", num);
    
    		return;
    
    	}
    
    	pstu = pstu->next;//将要修改的学员节点的指针改为指向自己的
    
    	printf("当前学生的姓名为%s,", pstu->name);
    
    	if(Question("确定要修改吗?"))
    
    	{
    
    		printf("请输入学生的姓名(小于20字符):");
    
    		scanf("%20s", pstu->name);
    
    	}
    
    	printf("当前学生的性别为%s,", pstu->sex == MAN ? "男" : "女");
    
    	if(Question("确定要修改吗?"))
    
    	{
    
    		printf("请输入学生的性别(1.男 2.女):");
    
    		while(1 != scanf("%d", &choose) || choose < 1 || choose > 2)
    
    		{
    
    			printf("输入错误,请重新输入学生的性别(1.男 2.女):");
    
    			fflush(stdin);
    
    		}
    
    		if(1 == choose)
    
    			pstu->sex = MAN;
    
    		else
    
    			pstu->sex = WOMAN;
    
    	}
    
    	printf("当前学生的年龄为%d,", pstu->age);
    
    	if(Question("确定要修改吗?"))
    
    	{
    
    		printf("请输入学生的年龄(10 ~ 40):");
    
    		while(1 != scanf("%d", &pstu->age) || pstu->age < 10 || pstu->age > 40)
    
    		{
    
    			printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):");
    
    			fflush(stdin);
    
    		}		
    
    	}
    
    	printf("当前学生的专业为%s,", pstu->major);
    
    	if(Question("确定要修改吗?"))
    
    	{
    
    		printf("请输入学生的专业(小于20字符):");
    
    		scanf("%20s", pstu->major);
    
    	}
    
    	printf("修改完毕!\n");	
    
    }
    
    //9.获取用户的选择
    
    int Question(const char *pstr)
    
    {
    
    	char answer;
    
    	printf("%s请选择(y or n):", pstr);
    
    	while(1 != scanf(" %c", &answer) || (answer != 'y' && answer != 'n'))
    
    	{
    
    		printf("输入错误!%s请重新选择(y or n):", pstr);
    
    		fflush(stdin);//清空输入缓冲区,C库函数
    
    	}
    
    	if('y' == answer)
    
    		return 1;
    
    	else
    
    		return 0;	
    
    }
    
    //10.获取用户输入的学生的编号
    
    int GetInputNum()
    
    {
    
    	int num;
    
    	printf("请输入学生的编号(整型):");
    
    	while(1 != scanf("%d", &num))
    
    	{
    
    		printf("编号输入错误!请重新输入学生的编号(整型):");
    
    		fflush(stdin);
    
    	}
    
    	return num;	
    
    }
    
    //11.删除编号为num的学生信息
    
    void DelStudent(int num)
    
    {
    
    	PSTUDENT pstu, ptmp;
    
    	if(pstu = GetPrevAddr(num))
    
    	{
    
    		if(!Question("确定要删除该学生信息吗?"))
    
    		{
    
    			return;
    
    		}
    
    		ptmp = pstu->next;
    
    		pstu->next = ptmp->next;
    
    		free(ptmp);
    
    		printf("删除了编号为%d的学生信息。\n", num);
    
    	}
    
    	else
    
    	{
    
    		printf("没有找到编号为%d的学生信息。\n", num);
    
    	}	
    
    }
    
    //12.删除所有的学生信息
    
    void DelAll()
    
    {
    
    	PSTUDENT pstu = g_head.next, ptmp;
    
    	int count = 0;
    
    	if(!Question("确定要删除当前所有的学生信息吗?"))
    
    	{
    
    		return;
    
    	}
    
    	while(pstu)
    
    	{
    
    		ptmp = pstu;
    
    		pstu = pstu->next;
    
    		free(ptmp);
    
    		++count;
    
    	}
    
    	printf("共删除了%d位学生信息。\n", count);
    
    	g_head.next = NULL;
    
    }
    
    //13.把学生信息保存到文件当中
    
    void SaveToFile()
    
    {
    
    	FILE *pf = fopen(FILENAME, "wb");
    
    	PSTUDENT pstu = &g_head;
    
    	int i = 0, count = ShowStudentCount();
    
    	if(!pf)
    
    	{
    
    		printf("打开待写入的文件失败!\n");
    
    		return;
    
    	}
    
    	if(!Question("确定要将当前学生信息保存到文件中吗?"))
    
    	{
    
    		fclose(pf);
    
    		return;
    
    	}
    
    	fwrite(&count, 1, sizeof(count), pf);//把学生信息的数量先写入到文件头
    
    	while(pstu->next)
    
    	{
    
    		fwrite(pstu->next, 1, sizeof(STUDENT), pf);//把每位学生信息写入文件
    
    		++i;
    
    		pstu = pstu->next;
    
    	}
    
    	fclose(pf);
    
    	if(i == count)
    
    	{
    
    		printf("成功的写入了%d条学生信息。\n", count);
    
    	}
    
    	else
    
    	{
    
    		printf("应写入%d条学生信息,实际写入%d条学生信息。\n", count, i);
    
    	}	
    
    }
    
    //14.从文件中读取学生信息
    
    void LoadFromFile()
    
    {
    
    	int i, count = 0, repeat = 0;
    
    	FILE *pf;
    
    	PSTUDENT pstu;
    
    	printf("提示:从文件中读取学生信息会询问是否清空当前学生信息(不清空表示合并所有信息)。\n");
    
    	if((pf = fopen(FILENAME, "rb")) == NULL)
    
    	{
    
    		printf("文件还没有创建,请手工输入学生信息并保存吧!\n");
    
    		return;
    
    	}
    
    	DelAll();//删除之前的所有学生信息,然后从文件中读取
    
    	fread(&count, 1, sizeof count, pf);//获取学生信息的数量
    
    	for(i = 0; i < count; ++i)
    
    	{
    
    		pstu = (PSTUDENT)malloc(sizeof(STUDENT));
    
    		fread(pstu, 1, sizeof(STUDENT), pf);
    
    		if(!AddStudent(pstu))
    
    		{
    
    			++repeat;//保持有多少个和当前链表中相重复的学生信息
    
    		}
    
    	}
    
    	fclose(pf);
    
    	printf("文件读取完毕!新增学生信息%d条。\n", count - repeat);	
    
    }
    </span>

     

    如果帮到你了,请赞赏支持:

    展开全文
  • //清屏,clearbackground printf(" 图书管理系统\n"); printf(" 作者:rime\n"); printf("-------------------MENU-----------------\n"); printf(" 1.录入图书信息\n"); printf(" 2.删除库中信息\n"); printf...
    #include <stdio.h> 
    #include <string.h>
    #include <stdlib.h> 
    #include <conio.h> 
    #include <iostream>
    #define M 3 //将m定义成3
    #define N 100//n==100
    
    
    
    typedef struct book
    {
    	char xuhao[10];//序号
    	int score;	//价格
    	char bookname[20];//书名
    	char writer[20];//作者
    	char press[20]; //出版社
    	
    	
    	int sum;
    }BK;//结构体诞生
    
    BK bk[N];//结构体的数组形态
    int books=0;
    
    void clean();
    void ui();
    void backs();
    void change();
    void view();
    void seach();
    void sum();
    
    void luru()//录入信息
    {
    
    	int bs;//我们需要储存的书本信息
    	int i, k = 1;
    	system("CLS");//清屏
    	printf("请输入需要输入几个图书信息:");
    	scanf_s("%d", &bs);
    
    	for (i = books;i < books + bs;i++, k++)
    	{
    		printf("请输入第%d个书本的序号:", k);
    		scanf_s("%s", &bk[i].xuhao,10);
    		printf("请输入第%d个书本的书名:",k);
    		scanf_s("%s", bk[i].bookname,20);
    		printf("请输入第%d个书本的价格:", k);
    		scanf_s("%d", &bk[i].score);
    		printf("请输入第%d个书本的出版社", k);
    		scanf_s("%s", bk[i].press,20);
    		printf("请输入第%d个书本的作者", k);
    		scanf_s("%s", bk[i].writer,20);
    	}
    	books = books + bs;//将输入的人数返回,相当于记录了人数
    
    	backs();//初始化,方便使用,当然是返回到对应的函数,不过这个确实是对用户体验很有好处
    }
    
    
    
    void main()
    {
    	
    	ui();
    }
    
    
    void ui()
    {
    	int i = 0;
    	int a;
    	system("CLS");//清屏,clearbackground
    	printf("           图书管理系统\n");
    	printf("                作者:rime\n");
    	printf("-------------------MENU-----------------\n");
    	printf("         1.录入图书信息\n");
    	printf("         2.删除库中信息\n");
    	printf("         3.修改图书信息\n");
    	printf("         4.浏览图书信息\n");
    	printf("         5.查找\n");
    	printf("           5.1.按书名查找\n");
    	printf("           5.2按作者查找\n");
    	printf("           5.3按出版社查找\n");
    	printf("         6.根据价格从高到低排序\n");
    	printf("         7.退出系统\n");
    	printf(" 请输入序号:______\b\b\b");
    
    	
    
    	while (i == 0)//输入,服务的是工具不是人,还是尽量减少输入语句在方法里好
    	{
    		scanf_s("%d", &a);
    		switch (a)
    		{
    		case 1:
    			i++;luru();break;
    		case 2:
    			i++;clean();break;
    		case 3:
    			i++;change();break;
    		case 4:
    			i++;view();break;
    		case 5:
    			i++;seach();break;
    		case 6:
    			i++;sum();break;
    		case 7:
    			exit(0);break;
    		default:
    			printf("请重新输入\n");		
    		}
    	}
    }
    
    void backs() 
    {
    	char a[20];
    	printf("\n");
    	printf("还需要操作么?如果需要操作请输入:yes,否则请输入:no\n");
    	scanf_s("%s", &a,20);//简单的检测用户输入代码
    	if (strcmp(a, "yes") == 0)
    	{
    		ui();
    	}
    	else if (strcmp(a, "no") == 0)
    		exit(0);
    	else
    	{
    		printf("请输入正确的字符,谢谢!\n");
    		backs();
    	}
    }
    
    
    /// <summary>
    /// 清理数据
    /// </summary>
    void clean()
    {
    	char cleanof[10];
    	system("CLS");
    	printf("删除全部书本信息请输入\"all\",删除指定单个信息请输入\"one\"\n");
    	scanf_s("%s", cleanof,10);
    	if (strcmp(cleanof, "all") == 0)//假设为all,比较字符串,在strcmp下,相同返回0,否返回非零
    	{
    		books = 0;
    		printf("删除成功\n\n");
    	}
    	else if (strcmp(cleanof, "one") == 0)
    	{
    		struct book* p = NULL;//null初始化值
    		char choice[10] ;
    		int i, j, k = 0;
    		printf("请输入删除的书的序号:");
    		scanf_s("%s", &choice,10);
    		for (i = 0;i < books;i++)
    		{
    			if (strcmp(choice, bk[i].xuhao) == 0)//一个一个查下去,检查是否相同,相同则尽心
    			{
    				k = 1;j = i;break;
    			}
    		}
    
    		if (k==1)//只是为了防止k没有被更新新的值
    		{
    			if (books == 1)
    			{
    				p = &bk[1];
    				free(p);//释放p的内存,因为vs过于严谨,只能放在这里了,单独删除会出现问题
    				books = 0;//变0
    			}
    			else
    			{
    				for (i = j;i < books;i++)
    				{
    					bk[i] = bk[i + 1];//用前一个覆盖后一个,参考数据结构
    				}
    				books = books - 1;
    			}
    			printf("删除成功\n\n");
    		}
    		else//检测错误代码
    		{
    			printf("输入数据错误!\n");
    			clean();
    		}
    	}
    	else//检测错误代码
    	{
    		printf("输入数据错误!\n");
    		clean();
    	}
    	backs();
    }
    
    void change()
    {
    	system("CLS");
    	char a[10];
    	int i, j;
    	printf("请选择需要修改信息的序号:\n");
    	scanf_s("%s", &a, 10);
    	for (i = 0;i < books;i++)
    	{
    		if (strcmp(a, bk[i].xuhao) == 0)//一个一个查下去,检查是否相同,相同则尽心
    		{
    			j = i;
    		}
    	}
    	printf("请选择要进行的步骤:\n");
    	printf("1.序号修改\n");
    	printf("2.作者修改\n");
    	printf("3.出版商修改\n");
    	printf("4.价格修改\n");
    
    	scanf_s("%d", &i);
    	switch (i)
    	{
    	case 1:scanf_s("%s", bk[j].xuhao, 10);break;
    	case 2:scanf_s("%s", bk[j].writer, 20);break;
    	case 3:scanf_s("%s", bk[j].press, 20);break;
    	case 4:scanf_s("%d", &bk[j].score);break;
    	}
    	backs();
    }
    
    void view()
    {
    	int i, j;
    	system("CLS");
    	if (books == 0)
    	{
    		printf("系统里面没有任何学生的信息!(输入任意数字继续)\n");	//简单的防止报错问题,利用人数是否为0来做扳机	
    		scanf_s("%d", &i);
    	}
    	else
    	{
    		for (i = 0;i < books;i++)//简单的for循环打印
    		{
    			printf("第%d个书的序号为:%s\n", i + 1, bk[i].xuhao);
    			printf("第%d个书的书名为:%s\n", i + 1, bk[i].bookname);
    			printf("第%d个书的作者为:%s\n", i + 1, bk[i].writer);
    			printf("第%d个书的出版社为:%s\n", i + 1, bk[i].press);
    			printf("\n");
    		}
    	}
    	backs();//返回该函数,优化用户体验
    }
    
    
    void seach()//根据不同的方式查找学生信息函数
    {
    	char choice[10], xx[20];
    	int i, j, k = 0;
    	system("CLS");
    
    	if (books == 0)
    	{
    		printf("系统里面没有任何学生的信息!\n");
    		scanf_s("%d", &i);
    		backs();
    	}
    	printf("三种查找方式:书名,作者,出版社请输入查找方式:");
    	scanf_s("%s", choice,20);
    	if (strcmp(choice, "书名") == 0)
    	{
    		printf("请输入需要查找书籍的书名:");
    		scanf_s("%s", xx,20);
    		for (i = 0;i < books;i++)//靠学号检索
    		{
    			if (strcmp(xx, bk[i].bookname) == 0)
    			{
    				j = i;k = 1;break;//提取j
    			}
    		}
    		if (k == 0)//简单的查找错误代码,不过k==0前写方便
    		{
    			printf("输入信息有误:\n");
    		}
    		else//打印对的值
    		{
    			printf("您所查找的书的信息为:\n");
    			printf("----序号----书名----作者----出版社----价格\t\n");
    			printf("------%s------%s-------%s---------%s-------------%d\t\n", bk[j].xuhao, bk[j].bookname,bk[j].writer,bk[j].press,bk[j].score);
    		}
    
    	}
    	else if (strcmp(choice, "姓名") == 0)//为什么不用swicth 
    	{
    		printf("请输入需要查找的书籍的作者:\n");
    		scanf_s("%s", xx,20);
    		for (i = 0;i < books;i++)//相同思路不多说
    		{
    			if (strcmp(xx, bk[i].bookname) == 0)
    			{
    				j = i;k = 1;break;
    			}
    		}
    		if (k == 0)
    		{
    			printf("输入信息有误:\n");
    		}
    		else
    		{
    			printf("您所查找的书的信息为:\n");
    			printf("----序号----书名----作者----出版社----价格\t\n");
    			printf("------%s------%s-------%s---------%s-------------%d\t\n", bk[j].xuhao, bk[j].bookname, bk[j].writer, bk[j].press, bk[j].score);
    		}
    
    	}
    	else if (strcmp(choice, "成绩") == 0)//逻辑相同不多说
    	{
    		printf("请输入需要查找书的出版社:\n");
    		scanf_s("%s", xx,20);
    		for (i = 0;i < books;i++)
    		{
    			if (strcmp(xx, bk[i].press) == 0)
    			{
    				j = i;k = 1;break;
    			}
    		}
    		if (k == 0)
    			printf("输入信息有误:\n");
    		else
    		{
    			printf("您所查找的书的信息为:\n");
    			printf("----序号----书名----作者----出版社----价格\t\n");
    			printf("------%s------%s-------%s---------%s-------------%d\t\n", bk[j].xuhao, bk[j].bookname, bk[j].writer, bk[j].press, bk[j].score);
    		}
    	}
    	backs();
    }
    
    void sum()
    {
    	struct book* p1[N], ** p2, * temp;
    	int i, j;
    	system("CLS");
    	p2 = p1;
    	//将数组的初始地址赋给指针数组
    	for (i = 0;i < books;i++)
    	{
    
    		p1[i] = bk + i;
    	}
    
    	//冒泡法排序 
    	for (i = 0;i < books;i++)
    	{
    		for (j = i + 1;j < books;j++)//申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。
    		{
    			if ((*(p2 + i))->score < (*(p2 + j))->score)
    			{
    				temp = *(p2 + i);
    				*(p2 + i) = *(p2 + j);
    				*(p2 + j) = temp;
    			}//交换内容
    		}
    	}
    
    
    	printf("按照价格排序之后的信息为:\n");
    	printf("----书名-----作者------价格----\n");
    	for (i = 0;i < books;i++)
    	{
    		printf("----%s-----%s---------%d\n", (*(p2 + i))->bookname, (*(p2 + i))->writer, (*(p2 + i))->score);//同理,->取出对应数据
    	}
    	backs();
    }
    
    展开全文
  • 让你学会如何有C语言建立一个学生系统,机不可失,失不再来,快快来看吧!!
  • C语言学生管理系统核心代码,用链表制作,c语言高效代码!!!
  • C语言管理系统

    2020-05-21 15:55:52
    C语言管理系统简单来说就是使用C语言的链表,文件读写等知识实现数据的录入,添加,修改等。代码的实现过程并不复杂,主要是思路,系统都要实现什么操作,主方法中写什么,都要有什么函数。只要有了整体构架,实现...

    前言

        C语言管理系统简单来说就是使用C语言的链表,文件读写等知识实现数据的录入,添加,修改等。代码的实现过程并不复杂,主要是思路,系统都要实现什么操作,主方法中写什么,都要有什么函数。只要有了整体构架,实现起来很容易。

    请看我的药店管理系统

    实现过程分析

    1.整体构架

        要进行管理系统数据操作,肯定不只一个数据,所以要选用链表或数组用来操作数据,考虑到要进行添加,删除等操作用链表更方便安全。所以用有一个主链表来操作数据
    struct st
    {
    	char name[20];
    	int price;
    	int number;
    	int rnumber;
    	char kind[20]; 
    	struct st *next;  
    };
    struct st *note = NULL;
    
        药品信息是放在文件中得那么自然要读文件,返回结构体链表类型让note接收
    struct st *read(void);
    
        接下来用链表操作实现功能如添加函数
    void append(struct st *note);
    
        最后保存修改信息,即把修改好的数据写到文件中
    void save(struct st *note);  // 数据保存 
    

    2.功能模块图

    在这里插入图片描述

    3. 方法调用关系

        这里的menu1()是密码设置

    在这里插入图片描述

    重要代码分析

    登录模块(附加内容可不加)

        运行后先进入登录页面,登录页面有登录和注册两项,没有注册的要先注册。
    int choice;
    	printf("\n\n\n\n\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##                  1.登录                           ##\n");
    	printf("\t\t\t\t##                  2.注册                           ##\n");
    	printf("\t\t\t\t##                  0.退出                           ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&choice);
    	switch(choice)
    	{
    		case 1: login();break;
    		case 2: logon();break;
    		case 0: break;
    		default :
    			printf("\t\t\t\t输入错误请从新输入\n");
    			Sleep(1000);
    			system("cls");
    			menu1();
    			break;			
    	} 
    
        既然要登录注册肯定也与文件关联涉及读文件等这里用结构体储存用户名和用户密码
    struct log
    {
    	char username[20];    //用户名
    	char password[20];	  //用户密码
    }; 
    
        注册:
    		struct log a,b;
    		FILE *fp;
    		char t[20];
    		printf("\t\t\t\t欢迎来到注册界面!\n");
        	fp = fopen("username.txt","r");
        	fread(&b, sizeof(struct log), 1, fp); 
        	printf("\t\t\t\t请输入账号\n");
        	printf("\t\t\t\t");
        	scanf("%s",a.username);
        	while (1)    //判断用户名是否重复
        	{    
        		if (strcmp(a.username, b.username)) 
        		{
        			if (!feof(fp))  	//如果没到文件结尾
      
            			fread(&b, sizeof(struct log), 1, fp);	
            		else		
                		break;		//无重复用户名进入下一步
        		}
       			else
        		{   
        			printf("\t\t\t\t此用户名已存在!请重新输入!\n"); 
        			Sleep(1000);
            		fclose(fp);
            		logon();
            		return;//这里的return不能少负责执行完logon();又进入这里
       			}
        	}
        	printf("\t\t\t\t请输入密码\n");
        	printf("\t\t\t\t");
        	scanf(" %s",a.password);
        	printf("\t\t\t\t请确认密码\n");
        	printf("\t\t\t\t");
        	scanf(" %s",t);
        	//判断两次密码是否一样,一样的话写入文件注册完成
    		do
    		{
        	if(!strcmp(a.password,t))
    		{
             	fp = fopen("username.txt","a");	
    		    fwrite(&a, sizeof(struct log), 1, fp);
    		    printf("\t\t\t\t注册成功!\n"); 
    		    Sleep(500);
    		    fclose(fp);
    		    system("cls");
    			menu1();
    			return;
    		}
    		else
    		{
    			printf("\t\t\t\t两次密码不一致!请重新输入!\n");
    			printf("\t\t\t\t");
    		    scanf("%s",a.password);
    		    printf("\t\t\t\t请确认密码\n");
    		    printf("\t\t\t\t");
    		    scanf("%s",t);
    		}
    	}while(1);
    }
    
        登录:
    	system("cls");
        printf("\n\n\n");
    	struct log a,b;
        FILE *fp;
        printf("\t\t\t\t欢迎来到登录界面!\n");
        fp = fopen("username.txt","r");
        fread(&b, sizeof(struct log), 1, fp); 
        printf("\t\t\t\t请输入账号\n");
        printf("\t\t\t\t");
        scanf("%s",a.username);
        //判断用户名是否存在
        while (1)
        {   
    	    if (strcmp(a.username, b.username)==0)       
    	    	break;       
    	    else 
    	    {
    	        if (!feof(fp))                         
    	            fread(&b, sizeof(struct log), 1, fp);
    	        else
    	        {
    	            printf("\t\t\t\t此用户名不存在!\n");
    				Sleep(500);
    	            fclose(fp);
    				menu1();
    	        }
    	    }
        }
        printf("\t\t\t\t请输入密码\n");
        printf("\t\t\t\t");
        int i=0;
        while((a.password[i]=getch())!='\r')	//回车结束
    	{
    		if(a.password[i]=='\b')		//退格
    		{
    			printf("\b \b");
    			i--;
    		}
    		else
    		{
    			printf("*");		//加密输入
    			i++;
    		}
    	}
    	a.password[i]='\0';
        do
    	{      
    		if (strcmp(a.password, b.password)==0)                
    	    {  
    	        fclose(fp);
    	        printf("\n\t\t\t\t登录成功,欢迎使用!\n");
    	        Sleep(500);
    	        system("cls");
    	        break;
    	    }
    	    else
    	    {    
    			printf("\t\t\t\t密码不正确!请重新输入!\n");
    	       	i=0;
    	       	while((a.password[i]=getch())!='\r')
    			{
    				printf("\t\t\t\t");
    				if(a.password[i]=='\b')
    				{
    					printf("\b \b");
    					i--;
    				}
    				else
    				{
    					printf("*");
    					i++;
    				}
    			}
    			a.password[i]='\0';
    	    }
    	}while(strcmp(a.password, b.password)==0);
    

    代码展示

    //药店管理系统 
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<windows.h>
    struct st
    {
    	char name[20];
    	int price;
    	int number;
    	int rnumber;
    	char kind[20]; 
    	struct st *next;  //采用链表 
    };
    struct log
    {
    	char username[20];
    	char password[20];
    }; 
    struct st *read(void);  //数据读入 
    struct st *input();    //录入数据 
    void append(struct st *note);  //添加数据系统 
    void add1(struct st *note);
    void add2(struct st *note);
    void modify(struct st *note);  //修改数据 
    void dlete(struct st *note);  //删除数据 
    void find(struct st *note);  // 查找数据系统
    void find_1(struct st *note);
    void find_2(struct st *note);
    void count(struct st *note);  //统计数据系统
    void count_1(struct st *note);//按类别统计 
    void count_2(struct st *note);//按价位统计 
    void count_3(struct st *note);//按类别和价位统计 
    void sort(struct st *note);  // 数据排序系统
    void sort_1(struct st *note); 
    void sort_2(struct st *note);
    void sort_3(struct st *note);
    void print(struct st *note); // 数据打印 
    void save(struct st *note);  // 数据保存 
    void logon(); //账号注册
    void login(); //账号登录
    void menu1();
    void menu2();
    int main()
    {
    	menu1();   //用户登录注册 
    	menu2();   //主菜单 
    }
    void menu1()
    {
    	//system("color b5");
    	int choice;
    	printf("\n\n\n\n\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##                  1.登录                           ##\n");
    	printf("\t\t\t\t##                  2.注册                           ##\n");
    	printf("\t\t\t\t##                  0.退出                           ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&choice);
    	switch(choice)
    	{
    		case 1: login();break;
    		case 2: logon();break;
    		case 0: break;
    		default :
    			printf("\t\t\t\t输入错误请从新输入\n");
    			Sleep(1000);
    			system("cls");
    			menu1();
    			break;			
    	} 
    }
    void logon() //账号注册
    {
    		system("cls");
    		printf("\n\n\n");
    		struct log a,b;
    		FILE *fp;
    		char t[20];
    		printf("\t\t\t\t欢迎来到注册界面!\n");
        	fp = fopen("username.txt","r");
        	fread(&b, sizeof(struct log), 1, fp); 
        	printf("\t\t\t\t请输入账号\n");
        	printf("\t\t\t\t");
        	scanf("%s",a.username);
        	while (1)
        	{    
        		if (strcmp(a.username, b.username)) //如果没有注册过 
        		{
        			if (!feof(fp))  
            			fread(&b, sizeof(struct log), 1, fp);
            		else
                		break;
        		}
       			else
        		{   
        			printf("\t\t\t\t此用户名已存在!请重新输入!\n"); 
        			Sleep(1000);
            		fclose(fp);
            		logon();
            		return;
       			}
        	}
        	printf("\t\t\t\t请输入密码\n");
        	printf("\t\t\t\t");
        	scanf(" %s",a.password);
        	printf("\t\t\t\t请确认密码\n");
        	printf("\t\t\t\t");
        	scanf(" %s",t);
    		do
    		{
        	if(!strcmp(a.password,t))
    		{
             	fp = fopen("username.txt","a");
    		    fwrite(&a, sizeof(struct log), 1, fp);
    		    printf("\t\t\t\t注册成功!\n"); 
    		    Sleep(500);
    		    fclose(fp);
    		    system("cls");
    			menu1();
    			return;
    		}
    		else
    		{
    			printf("\t\t\t\t两次密码不一致!请重新输入!\n");
    			printf("\t\t\t\t");
    		    scanf("%s",a.password);
    		    printf("\t\t\t\t请确认密码\n");
    		    printf("\t\t\t\t");
    		    scanf("%s",t);
    		}
    	}while(1);
    }
    void login() //账号登录
    {
        system("cls");
        printf("\n\n\n");
    	struct log a,b;
        FILE *fp;
        printf("\t\t\t\t欢迎来到登录界面!\n");
        fp = fopen("username.txt","r");
        fread(&b, sizeof(struct log), 1, fp); 
        printf("\t\t\t\t请输入账号\n");
        printf("\t\t\t\t");
        scanf("%s",a.username);
        while (1)
        {   
    	    if (strcmp(a.username, b.username)==0)       
    	    	break;       
    	    else 
    	    {
    	        if (!feof(fp))                         
    	            fread(&b, sizeof(struct log), 1, fp);
    	        else
    	        {
    	            printf("\t\t\t\t此用户名不存在!\n");
    				Sleep(500);
    	            fclose(fp);
    				menu1();
    	        }
    	    }
        }
        printf("\t\t\t\t请输入密码\n");
        printf("\t\t\t\t");
        int i=0;
        while((a.password[i]=getch())!='\r')
    	{
    		if(a.password[i]=='\b')
    		{
    			printf("\b \b");
    			i--;
    		}
    		else
    		{
    			printf("*");
    			i++;
    		}
    	}
    	a.password[i]='\0';
        do
    	{      
    		if (strcmp(a.password, b.password)==0)                
    	    {  
    	        fclose(fp);
    	        printf("\n\t\t\t\t登录成功,欢迎使用!\n");
    	        Sleep(500);
    	        system("cls");
    	        break;
    	    }
    	    else
    	    {    
    			printf("\t\t\t\t密码不正确!请重新输入!\n");
    	       	i=0;
    	       	while((a.password[i]=getch())!='\r')
    			{
    				printf("\t\t\t\t");
    				if(a.password[i]=='\b')
    				{
    					printf("\b \b");
    					i--;
    				}
    				else
    				{
    					printf("*");
    					i++;
    				}
    			}
    			a.password[i]='\0';
    	    }
    	}while(strcmp(a.password, b.password)==0);
    }
    void menu2()
    {
    	struct st *note = NULL;
    	int choice,sum;
    	note = read();
    	if(note==NULL)
    	{
    		printf("\n\n\n\n\t\t\t\t录入基本信息按任意键继续\n");
    		getch();
    		note = input();
    	}	 
    	do
    	{
    		//clrscr();
    		system("cls");
    		printf("\n\n\n\t\t               ****************药店管理系统***************\n\n");
    		printf("\t\t                            1,添加药品信息\n\n");
    		printf("\t\t                            2,修改药品信息\n\n");
    		printf("\t\t                            3,删除药品信息\n\n");
    		printf("\t\t                            4,查询药品信息\n\n");
    		printf("\t\t                            5,统计药品信息\n\n");
    		printf("\t\t                            6,药品信息排序\n\n");
    		printf("\t\t                            7,打印药品信息\n\n");
    		printf("\t\t                            0,退出系统\n\n");
    		scanf("%d",&choice);
    		switch(choice)
    		{
    			case 1: append(note);break;
    			case 2: modify(note);break;
    			case 3: dlete(note);break;
    			case 4: find(note);break;
    			case 5: count(note);break;
    			case 6: sort(note);break;
    			case 7: print(note);break;
    			case 0:break;
    		}
    	}while(choice!=0);
    }
    struct st *read()
    {
    	FILE *fp;
    	struct st *head,*end,*note;
    	end=head=NULL;
    	int i;
    	fp = fopen("system.txt","rt");
    	if(fp==NULL)
    	{
    		printf("请建立文件\n");
    		exit(1);
    	}
    	i = fgetc(fp);
    	if(i==EOF)
    	{
    		fclose(fp);
    		return head;
    	}
    	rewind(fp);
    	while(!feof(fp))
    	{
    		note = (struct st *)malloc(sizeof(struct st));
    		fscanf(fp,"%d %s %d %s %d\n",&note->number,note->name,&note->price,note->kind,&note->rnumber);
    		//fread(note,sizeof(struct st),1,fp);
    		if(head==NULL)
    			head = note;
    		else 
    			end->next = NULL;
    		end = note;
    	}
    	if(head!=NULL)
    		end->next = NULL;
    	fclose(fp);
    	return head;
    }
    struct st *input()
    {
    	int i = 0;
    	struct st *head,*end,*note;
    	end = head = NULL;
    	printf("\t\t\t请输入药品信息,编号,名称,价格,类别,库存(编号-1结束)\n");
    	while(1)
    	{
    		note = (struct st *)malloc(sizeof(struct st));
    		printf("\t\t\t");
    		scanf("%d",&note->number);
    		if(note->number==-1)
    			break;
    		scanf("%s %d %s %d",note->name,&note->price,note->kind,&note->rnumber);
    		if(head==NULL)
    			head = note;
    		else 
    			end->next = note;
    		end = note;
    	}
    	if(head!=NULL)
    		end->next = NULL;
    	system("cls"); 
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##            是否保存录入信息                       ##\n");
    	printf("\t\t\t\t##               1.保存                              ##\n");
    	printf("\t\t\t\t##               2.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	int n;
    	scanf("%d",&n);
    	if(n==1)
    		save(head);
    	return head;	
    }
    void save(struct st *note)
    {
    	FILE *fp;
    	int i;
    	struct st *p = note;
    	char filename[20];
    	fp = fopen("system.txt","wb");
    	if((fp = fopen("system.txt","wb")) == NULL )
    	{
    		printf("读文件错误\n");
    		getch();	
    		exit(1);
    	}
    	while(p!=NULL)
    	{
    		fprintf(fp,"%04d %s %d %s %d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    		//fwrite(p,sizeof(struct st),1,fp);
    		p = p->next;
    	
    	}
    	printf("\n\t\t\t\t文件已保存成功\n");
    	fclose(fp); 
    }
    void append(struct st *head)    //添加药品信息系统
    {
    	while(1)
    	{
    		system("cls");
    		int n;
    		printf("\t\t\t\t#######################################################\n");
    		printf("\t\t\t\t#######################################################\n");                            
    		printf("\t\t\t\t##                                                   ##\n");
    		printf("\t\t\t\t##           欢迎进入药品添加系统                    ##\n");
    		printf("\t\t\t\t##               1.按序号添加                        ##\n");
    		printf("\t\t\t\t##               2.按类别添加                        ##\n");
    		printf("\t\t\t\t##               3.退出                              ##\n");
    		printf("\t\t\t\t#######################################################\n");
    		printf("\t\t\t\t#######################################################\n");
    		printf("\t\t\t\t请选择你将要进行的工作:");
    		scanf("%d",&n);
    		if(n==1)
    			add1(head);
    		else if(n==2)
    			add2(head);
    		else if(n==3)
    			break;
    		else
    		{
    			Sleep(500);
    			printf("\t\t\t\t输入错误\n");
    		}
    	}
     }  
    
    void add1(struct st *head)  //添加子系统一 
    {
    	system("cls");
    	struct st *p,*note;
    	note = head;
    	int n,flag=0;
    	printf("\t\t\t请输入要添加药品的编号,名称,价格,类别,库存\n\t\t\t\t");
    	p = (struct st *)malloc(sizeof(struct st));
    	scanf("%d %s %d %s %d",&p->number,p->name,&p->price,p->kind,&p->rnumber);
    	while(note->next!=NULL&&note->next->number<p->number)
    	{
    		flag=1;
    		if(note->next==NULL)
    			break;
    		note = note->next;
    	}
    	if(flag==0)
    	{
    		if(note->number>p->number)
    		{
    			p->next=note;
    			head = p;
    		}
    		else
    		{
    			p->next=NULL;
    			note->next = p;
    		}
    	}
    	else
    	{
    		p->next = note->next;
    		note->next = p;
    	}
    	printf("\n\n\n\n");
    	printf("\t\t\t#######################################################\n");
    	printf("\t\t\t#######################################################\n");                            
    	printf("\t\t\t##                                                   ##\n");
    	printf("\t\t\t##            是否保存添加信息                       ##\n");
    	printf("\t\t\t##               1.保存                              ##\n");
    	printf("\t\t\t##               2.退出                              ##\n");
    	printf("\t\t\t#######################################################\n");
    	printf("\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&n);
    	if(n==1)
    		save(head);
    } 
    void add2(struct st *head)  //添加子系统二 
    {
    	system("cls");
    	struct st *p,*note;
    	note = head;
    	int n;
    	printf("\t\t\t请输入要添加药品的编号,名称,价格,类别,库存\n\t\t\t\t");
    	p = (struct st *)malloc(sizeof(struct st));
    	scanf("%d %s %d %s %d",&p->number,p->name,&p->price,p->kind,&p->rnumber);
    	while(note!=NULL&&strcmp(note->kind,p->kind)!=0)
    	{
    		if(note->next==NULL)
    			break;
    		note = note->next;
    	}
    	p->next = note->next;
    	note->next = p;
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##            是否保存添加信息                       ##\n");
    	printf("\t\t\t\t##               1.保存                              ##\n");
    	printf("\t\t\t\t##               2.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&n);
    	if(n==1)
    		save(head);
    }
    
    void modify(struct st *head)  // 修改系统 
    {
    	system("cls");
    	struct st *note,*p;
    	note = head;
    	int number,n,flag=0;
    	printf("\t\t\t\t请输入要修改药品的编号\n\t\t\t\t");
    	scanf("%d",&number);
    	while(note!=NULL)
    	{
    		if(note->number==number)
    		{
    			flag=1;
    			printf("请输入要修改后的名称,价格,类别,库存\n");
    			scanf("%s %d %s %d",note->name,&note->price,note->kind,&note->rnumber);
    			break;
    		}
    		note = note->next;
    	}
    	if(flag==1)
    	{
    		printf("\t\t\t\t#######################################################\n");
    		printf("\t\t\t\t#######################################################\n");                            
    		printf("\t\t\t\t##                                                   ##\n");
    		printf("\t\t\t\t##            是否保存修改信息                       ##\n");
    		printf("\t\t\t\t##               1.保存                              ##\n");
    		printf("\t\t\t\t##               2.退出                              ##\n");
    		printf("\t\t\t\t#######################################################\n");
    		printf("\t\t\t\t#######################################################\n");
    		printf("\t\t\t\t请选择你将要进行的工作:");
    		scanf("%d",&n);
    		if(n==1)
    			save(head);
    	}
    	else
    	{
    		printf("\t\t\t\t没找到要修改的编号按任意键退出\n");
    		getch();
    	}
    	
    }
    void dlete(struct st *note)  //  删除系统 
    {
    	while(1)
    	{
    		system("cls"); 
    		struct st *head,*end,*p;
    		p = note;
    		end = head = NULL;
    		int number,flag=0;
    		printf("\t\t\t请输入要删除的商品编号\n\t\t\t\t");
    		scanf("%d",&number);
    		while(p!=NULL)
    		{
    			if(p->number==number)
    			{
    				flag=1;
    				p = p->next;
    			}
    			if(p==NULL)
    				break;
    			if(head == NULL)
    				head = p;
    			else
    				end->next = p;
    			end = p;
    			p = p->next;
    		}
    		if(head!=NULL)
    			end->next=NULL;
    		note = head;
    		if(flag==0)
    		{
    			printf("\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		else
    		{
    			printf("\t\t\t\t#######################################################\n");
    			printf("\t\t\t\t#######################################################\n");                            
    			printf("\t\t\t\t##                                                   ##\n");
    			printf("\t\t\t\t##            是否保存删除信息                       ##\n");
    			printf("\t\t\t\t##               1.保存                              ##\n");
    			printf("\t\t\t\t##               2.退出                              ##\n");
    			printf("\t\t\t\t#######################################################\n");
    			printf("\t\t\t\t#######################################################\n");
    			printf("\t\t\t\t请选择你将要进行的工作:");
    			int n;
    			scanf("%d",&n);
    			if(n==1)
    				save(note);
    		}
    		system("cls");
    		printf("\n\n\n\n");
    		printf("\t\t\t\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); 
    		printf("\t\t\t\t┃               是 否 继 续                     ┃\n");
    		printf("\t\t\t\t┃                 1.继续                        ┃\n");
    		//printf("\t\t\t\t┃                 2.返回上层                    ┃\n");
    		printf("\t\t\t\t┃                 0.退出                        ┃\n");
    		printf("\t\t\t\t┃                                               ┃\n");
    		printf("\t\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
    		int k;
    		printf("\t\t\t\t");
    		scanf("%d",&k);
    		if(k==0)
    			break;
    	}	
    }
    void find(struct st *note)
    {
    	system("cls");
    	int n;
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##           欢迎进入药品查找系统                    ##\n");
    	printf("\t\t\t\t##               1.按序号查找                        ##\n");
    	printf("\t\t\t\t##               2.按药名查找                        ##\n");
    	printf("\t\t\t\t##               3.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&n);
    	if(n==1)
    		find_1(note);
    	else if(n==2)
    		find_2(note);
    	else if(n==3)
    		return;
    	else
    	{
    		Sleep(500);
    		printf("\t\t\t\t输入错误\n");
    	}
    	
    }
    void find_1(struct st *note)
    {
    	while(1)
    	{
    		system("cls");
    		int n,flag=0;
    		struct st *p = note;
    		printf("\n\t\t\t请输入要查看的序号\n\t\t\t\t");
    		scanf("%d",&n);
    		while(p!=NULL)
    		{
    			if(p->number==n)
    			{
    				system("cls");
    				flag=1;
    				printf("\n\n\n\n\t\t\t\t");
    				printf("编号--名称--价格--类别--库存\n\t\t\t\t");
    				printf("%d   %s  %d  %s  %d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    				printf("\n\n\n\n\n\t\t\t\t\t\t\t\t按任意键继续\n");
    				getch();
    				system("cls");
    				break;
    			}
    			p = p->next;
    		}
    		if(flag==0)
    		{
    			system("cls");
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		printf("\n\n\n\n");
    		printf("\t\t\t\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); 
    		printf("\t\t\t\t┃               是 否 继 续                     ┃\n");
    		printf("\t\t\t\t┃                 1.继续                        ┃\n");
    		printf("\t\t\t\t┃                 2.返回上层                    ┃\n");
    		printf("\t\t\t\t┃                 0.退出                        ┃\n");
    		printf("\t\t\t\t┃                                               ┃\n");
    		printf("\t\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
    		int k;
    		printf("\t\t\t\t");
    		scanf("%d",&k);
    		if(k==0)
    			break;
    		else if(k==2)
    		{
    			find(note);
    			break;
    		}				
    	}
    }
    void find_2(struct st *note)
    {
    	while(1)
    	{
    		system("cls");
    		int flag=0;
    		char n[20]; 
    		struct st *p = note;
    		printf("\n\t\t\t请输入要查看的药名\n\t\t\t\t");
    		scanf("%s",n);
    		while(p!=NULL)
    		{
    			if(strcmp(p->name,n)==0)
    			{
    				system("cls");
    				flag=1;
    				printf("\n\n\n\n\t\t\t\t");
    				printf("编号--名称--价格--类别--库存\n\t\t\t\t");
    				printf("%d   %s  %d  %s  %d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    				printf("\n\n\n\n\n\t\t\t\t\t\t\t\t按任意键继续\n");
    				getch();
    				system("cls");
    				break;
    			}
    			p = p->next;
    		}
    		if(flag==0)
    		{
    			system("cls");
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		printf("\n\n\n\n");
    		printf("\t\t\t\t┏━━━━━━━━━━━━━━━━━━━━ 主菜单━━━━━━━━━━━━━━━━━━━━┓\n"); 
    		printf("\t\t\t\t┃               是 否 继 续                     ┃\n");
    		printf("\t\t\t\t┃                 1.继续                        ┃\n");
    		printf("\t\t\t\t┃                 2.返回上层                    ┃\n");
    		printf("\t\t\t\t┃                 0.退出                        ┃\n");
    		printf("\t\t\t\t┃                                               ┃\n");
    		printf("\t\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
    		int k;
    		printf("\t\t\t\t");
    		scanf("%d",&k);
    		if(k==0)
    			break;
    		else if(k==2)
    		{
    			find(note);
    			break;
    		}				
    	}
    }
    void count(struct st *note)
    {
    	system("cls");
    	int n;
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##           欢迎进入药品统计系统                    ##\n");
    	printf("\t\t\t\t##               1.按类别统计                        ##\n");
    	printf("\t\t\t\t##               2.按价位统计                        ##\n");
    	printf("\t\t\t\t##               3.按类别和价位统计                  ##\n");
    	printf("\t\t\t\t##               0.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&n);
    	if(n==1)
    		count_1(note);
    	else if(n==2)
    		count_2(note);
    	else if(n==3)
    		count_3(note);
    	else if(n==0)
    		return;
    	else
    	{
    		Sleep(500);
    		printf("\t\t\t\t输入错误\n");
    	}
    }
    void count_1(struct st *note)//按类别统计
    {
    	while(1)
    	{
    		system("cls");
    		int flag=0,i=0;
    		char n[20]; 
    		struct st *p = note,*head,*end;
    		end = head = NULL;
    		printf("\n\t\t\t请输入要统计的类别\n\t\t\t\t");
    		scanf("%s",n);
    		system("cls");
    		printf("\t\t\t\t编号--名称--价格--类别--库存\n");
    		while(p!=NULL)
    		{
    			if(strcmp(p->kind,n)==0)
    			{
    				flag=1;
    				i++;
    				printf("\t\t\t\t%d   %s  %d  %s  %d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    			}
    			p = p->next;
    		}
    		if(flag==0)
    		{
    			system("cls");
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		else
    		{
    			printf("\n\n\n\n\t\t\t\t%s类药品共有%d种\n\n\n\t\t\t\t",n,i);
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		
    		system("cls");
    		printf("\n\n\n\n");
    		printf("\t\t\t\t┏━━━━━━━━━━━━━━━━━━━━ 主菜单━━━━━━━━━━━━━━━━━━━━┓\n"); 
    		printf("\t\t\t\t┃               是 否 继 续                     ┃\n");
    		printf("\t\t\t\t┃                 1.继续                        ┃\n");
    		printf("\t\t\t\t┃                 2.返回上层                    ┃\n");
    		printf("\t\t\t\t┃                 0.退出                        ┃\n");
    		printf("\t\t\t\t┃                                               ┃\n");
    		printf("\t\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
    		int k;
    		printf("\t\t\t\t");
    		scanf("%d",&k);
    		if(k==0)
    			break;
    		else if(k==2)
    		{
    			count(note);
    			break;
    		}				
    	}
     } 
    void count_2(struct st *note)//按价位统计 
    {
    	while(1)
    	{
    		system("cls");
    		int flag=0,i=0;
    		int m,n; 
    		struct st *p = note,*head,*end;
    		end = head = NULL;
    		printf("\n\t\t\t请输入要统计的价位上限和下限\n\t\t\t\t");
    		scanf("%d%d",&m,&n);
    		system("cls");
    		printf("\t\t\t\t编号--名称--价格--类别--库存\n");
    		while(p!=NULL)
    		{
    			if(p->price>=n&&p->price<=m)
    			{
    				flag=1;
    				i++;
    				printf("\t\t\t\t%d   %s  %d  %s  %d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    
    			}
    			p = p->next;
    		}
    		if(flag==0)
    		{
    			system("cls");
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		else
    		{
    			printf("\n\n\n\n\t\t\t\t价位上限为%d下限为%d类药品共有%d种\n\n\n\t\t\t\t",m,n,i);
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		system("cls");
    		printf("\n\n\n\n");
    		printf("\t\t\t\t┏━━━━━━━━━━━━━━━━━━━━ 主菜单━━━━━━━━━━━━━━━━━━━━┓\n"); 
    		printf("\t\t\t\t┃               是 否 继 续                     ┃\n");
    		printf("\t\t\t\t┃                 1.继续                        ┃\n");
    		printf("\t\t\t\t┃                 2.返回上层                    ┃\n");
    		printf("\t\t\t\t┃                 0.退出                        ┃\n");
    		printf("\t\t\t\t┃                                               ┃\n");
    		printf("\t\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
    		int k;
    		printf("\t\t\t\t");
    		scanf("%d",&k);
    		if(k==0)
    			break;
    		else if(k==2)
    		{
    			count(note);
    			break;
    		}				
    	}
    }
    void count_3(struct st *note)//按类别和价位统计 
    {
    	while(1)
    	{
    		system("cls");
    		int flag=0,i=0;
    		int m,n;
    		char kid[20]; 
    		struct st *p = note,*head,*end;
    		end = head = NULL;
    		printf("\n\t\t\t请输入要统计的类别,价位上限和下限\n\t\t\t\t");
    		scanf("%s %d %d",kid,&m,&n);
    		system("cls");
    		printf("\t\t\t\t编号--名称--价格--类别--库存\n");
    		while(p!=NULL)
    		{
    			if(p->price>=n&&p->price<=m&&strcmp(p->kind,kid)==0)
    			{
    				flag=1;
    				i++;
    				printf("\t\t\t\t%d   %s  %d  %s  %d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    			}
    			p = p->next;
    		}
    		if(flag==0)
    		{
    			system("cls");
    			printf("\n\t\t\t没有找到信息按任意键继续\n");
    			getch();
    		}
    		else
    		{
    			printf("\n\n\n\n\t\t\t\t类别为%s价位上限为%d下限为%d类药品共有%d种\n\n\n\t\t\t\t",kid,m,n,i);
    			printf("\n\n\n\n\n\t\t\t\t\t\t\t\t按任意键继续\n");
    			getch();
    		}
    		system("cls");
    		printf("\n\n\n\n");
    		printf("\t\t\t\t┏━━━━━━━━━━━━━━━━━━━━ 主菜单━━━━━━━━━━━━━━━━━━━━┓\n"); 
    		printf("\t\t\t\t┃               是 否 继 续                     ┃\n");
    		printf("\t\t\t\t┃                 1.继续                        ┃\n");
    		printf("\t\t\t\t┃                 2.返回上层                    ┃\n");
    		printf("\t\t\t\t┃                 0.退出                        ┃\n");
    		printf("\t\t\t\t┃                                               ┃\n");
    		printf("\t\t\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
    		int k;
    		printf("\t\t\t\t");
    		scanf("%d",&k);
    		if(k==0)
    			break;
    		else if(k==2)
    		{
    			count(note);
    			break;
    		}				
    	}
    }
    void sort(struct st *head)
    {
    	system("cls");
    	int n;
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##           欢迎进入药品排序系统                    ##\n");
    	printf("\t\t\t\t##               1.按编码排序                        ##\n");
    	printf("\t\t\t\t##               2.按库存排序                        ##\n");
    	//printf("\t\t\t\t##               3.按编码和类别排序                  ##\n");
    	printf("\t\t\t\t##               0.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	scanf("%d",&n);
    	if(n==1)
    		sort_1(head);
    	else if(n==2)
    		sort_2(head);
    //	else if(n==3)
    	//	sort_3(head);
    	else if(n==0)
    		return;
    	else
    	{
    		Sleep(500);
    		printf("\t\t\t\t输入错误\n");
    	}
    }
    void sort_1(struct st *head)
    {
    	struct st *cur,*tail;
    	int nu,run,ch;
    	char na[20],kid[20];
    	cur=head;
    	tail=NULL; 
    	if(cur==NULL||cur->next==NULL)
    	{
    		printf("\t\t\t\t数据过少无法排序按任意键继续\n");
    		getch(); 
    		return;
    	}
    	while(cur!=tail)
    	{
    		while(cur->next!=tail)
    		{
    			if(cur->number>cur->next->number)
    			{
    				nu = cur->number;
    				cur->number=cur->next->number;
    				cur->next->number=nu;
    				run = cur->rnumber;
    				cur->rnumber=cur->next->rnumber;
    				cur->next->rnumber=run;
    				ch = cur->price;
    				cur->price=cur->next->price;
    				cur->next->price=ch;
    				strcpy(na,cur->name);
    				strcpy(cur->name,cur->next->name);
    				strcpy(cur->next->name,na);
    				strcpy(kid,cur->kind);
    				strcpy(cur->kind,cur->next->kind);
    				strcpy(cur->next->kind,kid);
    				 
    			}
    			cur=cur->next;
    		}
    		tail=cur;
    		cur=head; 
    	}
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##            是否保存排序结果                       ##\n");
    	printf("\t\t\t\t##               1.保存                              ##\n");
    	printf("\t\t\t\t##               2.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	int n;
    	scanf("%d",&n);
    	if(n==1)
    		save(cur);
    } 
    void sort_2(struct st *head)
    {
    	struct st *cur,*tail;
    	cur=head;
    	tail=NULL; 
    	if(cur==NULL||cur->next==NULL)
    	{
    		printf("\t\t\t\t数据过少无法排序按任意键继续\n");
    		getch(); 
    		return;
    	}
    	while(cur!=tail)
    	{
    		while(cur->next!=tail)
    		{
    			if(cur->rnumber<cur->next->rnumber)
    			{
    				int nu,run,ch;
    				char na[20],kid[20];
    				nu = cur->number;
    				cur->number=cur->next->number;
    				cur->next->number=nu;
    				run = cur->rnumber;
    				cur->rnumber=cur->next->rnumber;
    				cur->next->rnumber=run;
    				ch = cur->price;
    				cur->price=cur->next->price;
    				cur->next->price=ch;
    				strcpy(na,cur->name);
    				strcpy(cur->name,cur->next->name);
    				strcpy(cur->next->name,na);
    				strcpy(kid,cur->kind);
    				strcpy(cur->kind,cur->next->kind);
    				strcpy(cur->next->kind,kid);
    				 
    			}
    			cur=cur->next;
    		}
    		tail=cur;
    		cur=head;
    	}
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");                            
    	printf("\t\t\t\t##                                                   ##\n");
    	printf("\t\t\t\t##            是否保存排序结果                       ##\n");
    	printf("\t\t\t\t##               1.保存                              ##\n");
    	printf("\t\t\t\t##               2.退出                              ##\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t#######################################################\n");
    	printf("\t\t\t\t请选择你将要进行的工作:");
    	int n;
    	scanf("%d",&n);
    	if(n==1)
    		save(head);
    }
    //void sort_3(struct st *note)
    //{
    //	;
    //}
    void print(struct st *note)
    {
    	system("cls");
    	struct st *p;
    	printf("\t\t编号\t\t名称\t\t\t价格\t\t类别\t\t库存\n");
    	for(p = note;p!=NULL;p = p->next)
    	{
    		printf("\t\t%04d\t\t%s\t\t%04d\t\t%s\t\t%04d\n",p->number,p->name,p->price,p->kind,p->rnumber);
    	}
    	printf("\n\n\n\n\t\t\t\t\t\t\t\t按任意键返回\n");
    	getch();
    }
    
    
    展开全文
  • #include<stdio.h> #include<stdlib.h> #include<string.h> struct book{ int num; char bname[50]; char wname[20]; char press[50]; char sort[50]; int time; float price; struct book *next;...
  • 实用标准 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 10000 struct air { int num; char start[20]; char over[20]; char time[10]; int count; }s[N]; int i; int m=0;...
  • C语言大一工程实践职工管理系统,花里胡哨,贼棒~
  • C语言小项目代码大全.一些小游戏及管理系统
  • 数据库课程设计,前端C语言代码,幼儿园管理系统,可以在devc++运行
  • C语言,超市管理系统,源代码,超市管理系统代码
  • c语言学生成绩管理系统代码 包括项目步骤,解释说明等----应有尽有

空空如也

空空如也

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

c语言管理系统代码

c语言 订阅