精华内容
下载资源
问答
  • 大一c语言课程设计
    千次阅读
    2021-05-20 09:20:13

    大一C语言课程设计

    C语言课程设计报告

    班 级: 电气1004

    学 号: 201009334

    姓 名: 雷海燕

    指导教师: 王果

    2011 年 07 月 18 日

    1 基本题目

    1.1题目

    1.1 题目

    有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。

    1.2 题目分析

    创建一个指针变量,指针变量中的初值为0至16。然后通过for循环将指针变量中所指的值是三的倍数的变量赋值为0,最后找出所要找的值。

    1.3 程序

    #include

    #define N 17

    int main()

    {

    int i,j,k,a[N+1],*p;

    for(i=0,p=a;p<=a+N;i++,p++)

    *p=i;

    p=a+1;

    k=N;

    for(i=0,j=1;k!=1;j++)

    {

    if(p>(a+N))

    p=a+1;

    if(*p!=0)

    i++;

    if(i%3==0&&i!=0)

    {

    *p=0;i=0;k--;

    }

    p++;

    }

    for(i=1;i<=N;i++)

    if(a[i]!=0)

    printf("最后留下的是%d\n",a[i]);

    return 0;

    }

    1.4流程图

    图1.1 基本题目的流程图

    1.5程序的运行结果

    基本体运行结果如图1.2所示:

    图1.2 基本题目运行结果

    2 改错题目

    2.1 改正后程序

    #include

    int main()

    {

    int x=1; int y;

    y=x++;

    printf("y=%d ",y);

    int z;

    z=++x;

    printf("z=%d\n",z)

    return 0;

    }

    2.2 程序运行结果

    程序完成的功能:用x的初始值算出y与z的值。

    改正后的运行结果如图2.1所示:

    图2.1 改正后的运行结果

    3.综合题目

    3.1 题目

    班级成绩管理系统,对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。

    3.2 程序的主要功能

    本程序实现对一个班学生某几门课程的录入,成绩的显示、成绩的保存、对成绩进行排、对成绩进行修改、对成绩进行统计(包括每门课程的最高分、平均分、超过每门平均分的人数等),运行程序后退出程序。

    3.3 各函数的功能

    (1)input函数

    利用嵌套循环语句,实现对N位学生,M门课程的输入。

    (2)output函数

    实现对先前输入学生成绩的输出。

    (3)save函数

    将输入数据存入指定文件中。

    (4)rank函数

    计算出所有学生的成绩总分,并按照分数从高到低,进行输出。

    (5)change函数

    判断密码是否正确,并对选中学生成绩进行修改。

    3.4程序流程图

    图3.1 综合题目的流程图

    3.4 源程序

    #include

    #include

    #include

    #define N 10/*学生人数*/

    #define M 4/*课程数*/

    #define PASS 890508/*修改密码*/

    void input();/*成绩输入*/

    void output();/*成绩显示*/

    void save();/*成绩保存*/

    void rank();/*成绩排序*/

    void tran();/*成绩修改*/

    void coun();/*成绩统计*/

    void errorinput();/*出错输出*/

    struct student/*成绩数据结构体*/

    {

    char name[10];

    int num;

    float score[M];

    double sum;

    }

    stud[N];

    char subject_name[N][10];

    int main()

    {

    char x;

    while(1)

    {

    system("cls");

    printf(" __________________________________________________

    更多相关内容
  • 大一C语言课程设计 大一C语言课程设计 PAGE / NUMPAGES 大一C语言课程设计 C语言课程设计报告 班 级 电气1004 学 号 201009334 姓 名 雷海燕 指导教师 王果 评语 评语 2011 年 07 月 1 基本题目 1.1题目 1.1 题目 有...
  • 大一 C语言课程设计

    2022-01-22 14:44:00
    计算机大一C语言课程设计

    第一次写文章,有点小激动,嘻嘻。
    寒假在家无聊准备做点事,本人大二的一名计算机专业在校生。下面是自己在大一时写过的一个课程设计,技术比较菜,希望大佬们勿喷。

    1.需求分析:@TOC
    利用C语言编写个人记账本,要求实现信息的输入,查询和修改,以及将数据静态保存在文件中。灵活运用指针,链表,结构体,文件等C语言的知识。

    2.设计方案@TOC
    用C语言编写一个个人的账单管理系统,该系统具有以下功能:
    (1)注册账号及使用账号登录功能;
    (2)显示全部账单信息,以及删除指定账单的功能;
    (3)增加账单,即记账功能;
    (4)给定某个日期,查找到该日期下的账单;
    (5)计算总的支出和收入情况;
    (6)数据导入功能
    (7)利用文件的建立、打开与读写对以上功能进行操作
    (8)能够实现多用户使用,不同用户的数据会单独生成一个文件来保存

    3.流程图@TOC

    根据需求分析,可以把这个系统的设计分为登录、显示、查找、增加、删除五大模块,其中显示模块可以分为三个分别是全部打印到屏幕、删除指定项、计算总收入支出;查找模块下有两个子模块,是按日期查找、和显示当日支出收入情况。
    4.具体实现@TOC
    头文件及定义

    //个人记账本 
    #include"stdio.h"
    #include"stdlib.h"
    #include"string.h" 
    #define  MAX   50
    //结构体定义及函数声明
    struct  person
    {
    	char name[30];
    	char  code[20];
    };
    
    typedef  struct node
    {
    	char  date[MAX];  //日期 
    	char  tip[MAX];	//备注 
    	int   in;       //收入 
    	int   out;      //支出 
    	struct node *next;
    }count,*Pcount;
    struct person  P;  //定义全局变量P  在多用户使用时生成该用户的文件 
      
      //函数声明 
    void   Create_Person(struct person *p);//创建用户 
    void   enter(struct person *p);//登录函数 
    void  begin(struct  person *p);//初始函数 
    void  Head(void);   //目录标签显示 
    Pcount  creat_count(Pcount H);//创建单链表 
    int  Import(Pcount c); //导入数据函数 
    Pcount  Add(Pcount c);//记账函数
    void  Find(Pcount c);//按日期查找 
    void   Sum_All(Pcount c);//总收入与总支出 
    void  Del(Pcount  c,int n );//删除一条账单 
    void   print(Pcount c) ;//打印账单
    void  Save(Pcount c,struct person *P);//保存数据函数
    void  Menu(struct person *p,Pcount c);//菜单
    void  Back_Menu(Pcount c);//返回菜单  
    void  destroy(Pcount *H);//销毁链表 
    
    

    主函数

    //主程序 
    int main( )
    {
    	Pcount c;
    	c=creat_count(c);
    	begin(&P); 
    	getchar();
        system("cls");
        printf("%s",P.name);
        Import(c); 
    	Menu(&P,c); 
    } 
    
    

    主要函数实现

    void   Create_Person(struct person *p)//创建用户
    {/* 将创建的的姓名和密码保存在一个文件中*/
    	FILE  *fp=NULL,*f=NULL;
    	char  st[]=".txt";
    	printf("创建姓名:");
    	scanf("%s",(*p).name);
    	printf("创建密码:");
    	scanf("%s",(*p).code);
    	if(fp=fopen("person.txt","a+"))
    	{
    		fprintf(fp,"%s\n",(*p).name);
    	    fprintf(fp,"%s\n",(*p).code);
    	    printf("创建成功!\n"); 	
    		fclose(fp);
    		
    	
    	}
    	else
    	{
    		printf("创建失败!");
    		getchar();
    	}	
    	strcat((*p).name,st);
    	if(f=fopen((*p).name,"w+"))  //创建以用户名命名的文件用来保存账单 
    	{
    		printf("\n用户文件创建成功!\n");
    		getchar();	
    		fclose(f);
    	}
    	else
    	{
    		printf("\n创建用户文件失败\n");
    	}	
    	system("cls");
    	begin(p);
    }
    void   enter(struct person *p)//登录函数 
    {
    	FILE  *fp=NULL;
    	char  st[]=".txt";
    	char  str_name[30];
    	char  str_code[20];
    	int flag=0;
    	printf("输入姓名:");
        scanf("%s",(*p).name);
    	printf("输入密码:");
    	scanf("%s",(*p).code);
    	if(fp=fopen("person.txt","r"))
    	{
    		while(!feof(fp))
    		{
    			fscanf(fp,"%s\n",str_name);
    			fscanf(fp,"%s\n",str_code);
    			if(strcmp((*p).name,str_name)==0&&strcmp((*p).code,str_code)==0)
    			{	
    				flag=1;
    				break; 
    			}
    		}
    		if(flag==1)
    		{
    			printf("登录成功!\n");
    			strcat((*p).name,st);//为了方便后面打开文件,将name后面加上后缀.txt 
    			fclose(fp);
    		}
    		else 
    		{
    			printf("账号或密码错误!\n");
    			system("pause");
    			system("cls");
    			begin(p);
    		}
    	}
    	else
    	{
    		printf("系统错误,请重新登录");
    		getchar();
    		enter(p);
    	}
    	
    }
    void  begin(struct  person *p) //开始函数 
    {
    	int  n;
    	printf("------------------欢迎使用个人记账本!------------------");
    	getchar();
    	system("cls"); 
    	printf("1.已有账号\n2.注册\n");	
    	scanf("%d",&n);
    	while(n!=1&&n!=2)//指令选择 
    	{ 
           printf("请输入正确的指令:");
           scanf("%d",&n);
           
    	}
    	if(n==1)
    	   {
    		   printf("请登录\n");
    	       enter(p);
    	    }
    	    else if(n==2)
    	    { 
    		   Create_Person(p); 
    	    }
    }
    
    void  Head(void)
    {/*表头函数*/ 
    	printf("    日期    \t备注    \t收入\t支出\n");
    } 
    
    
    /单链表 
    Pcount  creat_count(Pcount H) //创建账单链表头结点
    {
    	H=(Pcount)malloc(sizeof(count));
    	if(H)
    	{
    	    H->next=NULL;
    		 return H;
    	}
    	else
    	{
    		printf("创建失败!");
    		return  NULL; 
    	}
    }
    
    int   Import(Pcount c)//导入数据函数 
    {
    	Pcount p=NULL,q=NULL;
    	FILE *fp=NULL;
    	p=c;
    	if(fp=fopen(P.name,"r"))//读取账单文件信息,导入链表 
    	{
    		while(!feof(fp))
    		{
    			q=(Pcount)malloc(sizeof(count));
    			fscanf(fp,"%s\n",q->date);
    			fscanf(fp,"%s\n",q->tip);
    			fscanf(fp,"%d\n",&q->in);
    			fscanf(fp,"%d\n",&q->out);
    			q->next=p->next;
    			p->next=q;
    			p=p->next;
    		}
    		printf("导入数据成功!\n"); 
    		fclose(fp);
    		return 1;
    	}
    	else 
    	{
    		printf("导入数据失败!\n"); 
    		return 0;
    	}
    	free(p);
    	free(q);
    } 
    
    Pcount  Add(Pcount c)//记账函数
    /*利用单链表记入数据*/ 
    {
    	FILE *fp=NULL;	
    	int n=1;
    	Pcount p=NULL,q=NULL;
    	p=c;
    	if(fp=fopen(P.name,"a+"))
    	while(n)
    	{
    		printf("增加一条账单\n");
    		q=(Pcount)malloc(sizeof(count));
    	    printf("日期(年-月-日):");
    	    scanf("%s",q->date);
    	    printf("备注:");
    	    scanf("%s",q->tip);
    	    printf("收入:");
        	scanf("%d",&q->in);
    	    printf("支出:");
    	    scanf("%d",&q->out);
    		fprintf(fp,"%s\n",q->date);
    		fprintf(fp,"%s\n",q->tip);
    		fprintf(fp,"%d\n",q->in);
    		fprintf(fp,"%d\n",q->out); 
    	    q->next=p->next;
    	    p->next=q;
    	    p=p->next;
    	    getchar();
            printf("0.返回,1.继续:");
    		scanf("%d",&n); 
    	}
    	fclose(fp);
    	free(p);
    	return  c;
    }
    
    
    void  Find(Pcount c)
    {/*按日期查找日期相同的账单*/ 
        char st[MAX];
    	Pcount p=c->next;
    	int  a=0,b=0;
    	int flag=0;
    	printf("输入要查找的日期:");
    	getchar();
    	gets(st); 
    	Head();
    	while(p)
    	{
    		if(strcmp(p->date,st)==0)
    		{
    			printf("%s\t%s\t\t%d\t%d\n",p->date,p->tip,p->in,p->out);
    			flag++;
    			a+=p->in;
    		    b+=p->out;
    		}
    		p=p->next;
    	}
    	if(flag==0)
    	{
    		printf("未找到!\n");	
    	}
    	else
    	printf("          支出:%d,收入:%d\n",b,a);	
    	system("pause"); 
    	free(p);
    }
    
    void   Sum_All(Pcount c)//总收入与总支出 
    {
    	Pcount p;
    	p=c->next;
    	int  a=0;
    	int  b=0;
    	while(p)
    	{
    		a+=p->in;
    		b+=p->out;
    		p=p->next;
    	}
    	
    	printf("\n总收入:%d,总支出:%d,净值:%d\n",a,b,a-b);
    	free(p);
    }
     
     void  Del(Pcount  c,int n )
    {/*序号匹配删除*/ 
    	Pcount p,q;
    	int i=1;
    	p=c->next;
    	q=c;
    	if(n>0)
    	{ 
    	while(p)
    	{
    	    p=p->next;
    		if(i==n)
    		{
    			q->next=p->next;
    			free(p);
    			break;
    		}
    		
    		q=q->next;
    		i++;
    	} 
    	if(p==NULL)
    	{
    		printf("输入序号不正确,删除失败\n");
    	}
    	} 
    	free(p);
    	free(q);
    } 
    void   print(Pcount c) 
    {/*打印函数,将账单信息按日期打印出来*/
     
    	Pcount  p=NULL;
    	int  a=1;
    	p=c->next;
    	int  v=1;
    	int  n;
    	Head();
    	if(p)
        {
        		while (p)
        {
    		printf("%d  %s\t%s\t\t%d\t%d\n",v,p->date,p->tip,p->in,p->out);
    		v++;
    		p=p->next;
    	}
    	Sum_All(c);
    	while(a)
    	{
    		printf("        输入需要删除的序号( 0 取消删除):");
    	    scanf("%d",&n);
    	    Del(c,n);
    	    printf("        1.继续,0.退出:");
    		scanf("%d",&a); 
    	}
        }
    	else
    	{
    		printf("账单为空!添加账单\n"); 
    	}	
           free(p);
    	    //返回主菜单 
    }
    
    void  Save(Pcount c,struct person *P)//保存数据函数
    {
    	Pcount p=NULL;
    	FILE *fp=NULL;
    	p=c->next;
    	if(fp=fopen((*P).name,"w+"))//读取链表信息,保存在文件中 
    	{
    		while(p)
    		{
    			fprintf(fp,"%s\n",p->date);
    			fprintf(fp,"%s\n",p->tip);
    			fprintf(fp,"%d\n",p->in);
    			fprintf(fp,"%d\n",p->out);
    			p=p->next;
    		}
    		printf("       保存数据成功!\n"); 
    	}
    	else 
    	{
    		printf("       保存数据失败!\n"); 
    	}
    	free(p);
    } 
    
    void  Menu(struct person *p,Pcount c)
    {
    	int  choose;
    	system("cls");
    	printf("**********个人记账本系统**********\n");
    	printf("          1.查看全部账单\n");
    	printf("          2.记账\n");
    	printf("          3.查找账单\n");
    	printf("          4.退出系统\n");
    	printf("          选择需要进行的操作:\n");
    	do 
    	{
    		switch(choose=getchar())
    		{
    			case  '1': print(c); Menu(&P,c); break;
    		    case  '2': c=Add(c); Menu(&P,c);break;
    		    case  '3': Find(c); Menu(&P,c);break;
    		    case  '4': Save(c,&P);destroy(&c);exit(0);
    		    default : continue;
    		}
    		 
    	} while(1);
    } 
    
    void  Back_Menu(Pcount c)//返回菜单 
    {
    	printf("\n       按回车键返回菜单!\n");
    	getchar();
    	system("cls");
    	Menu(&P,c);
    }
    void  destroy(Pcount *H)//销毁链表 
    {
          Pcount p,q;
          p=*H;
          while ( p!=NULL)  
           { 
    	      q=p;
              p=p->next;
              free(q); 
           }  
          *H=NULL;  
    }
    

    注:当时用的DEV-C++来写的。
    第一次写文章,希望多多包涵,:)

    展开全文
  • 大一C语言课程设计

    2022-03-15 10:57:16
    下面是我的C语言图书管理代码,很简陋,但是还是有一点小问题,有没有大佬帮忙看一下, 就是,写入文件没问题,读文件并输出就有问题了,麻烦各位大佬看一下谢谢 #include<stdio.h> #include<string...

    下面是我的C语言图书管理代码,很简陋,但是还是有一点小问题,有没有大佬帮忙看一下,

    就是,写入文件没问题,读文件并输出就有问题了,麻烦各位大佬看一下谢谢

     

    #include<stdio.h>

    #include<string.h>

    #include<stdlib.h>

    #include<windows.h>

    #include<conio.h>

    struct book

    {

           char name[50];

           char auther[30];

           char ISBN[30];

           char publisher[40];

           int year;

           int number;

           float price;

           struct book*p;

    };

    struct book shu;//结构体全局变量

    void add_book();//添加图书

    void search_book();//查询图书

    void name();//按书名查找

    void auther();//作者名查找

    void ISBN();//按书的ISBN号查询

    void publisher();//按出版社查找

    void year();//按出版年份查找

    void price();//按图书的价格

    int condition=0;

    int main()

    {

           int n;

           while(condition==0)//界面

           {

                  system("cls");

                  printf("*****************欢迎登陆图书信息管理系统*****************\n");

                  printf("***************** 1.图书录入 2.图书浏览  *****************\n");

                  printf("*****************     请输入您的序号     *****************\n");

                  scanf("%d",&n);

                  if(n==1)

                  {

                         add_book();

                  }

                  else if(n==2)

                  {

                      search_book();

                  }

                  else

                  {

                         system("cls");//cls为清屏操作

               printf("*******  输入错误,请重新输入 ********\n");

                  }

           }

           return 0;

    }

    void add_book()//图书录入系统的子函数

    {

           system("cls");

           int xx;

           FILE *fp;//指针指向文件

           fp=fopen("F:\\mybook\\mybook.txt","a");

           if((fp)==NULL)//数据保存的文件地址

           {     

                  printf("file open error!\n");

                  exit(0);

           }

           printf("******     请输入书名     ******\n");

           scanf("%s",shu.name);

           printf("******    请输入作者名    ******\n");

           scanf("%s",shu.auther);

           printf("******    请输入ISBN号    ******\n");

           scanf("%s",shu.ISBN);

           printf("******   请输入出版社名   ******\n");

           scanf("%s",shu.publisher);

           printf("******   请输入出版年份   ******\n");

           scanf("%d",&shu.year);

           printf("******   请输入书的数量   ******\n");

           scanf("%d",&shu.number);

           printf("******   请输入书的价格   ******\n");

           scanf("%lf",&shu.price);

           fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

           if(fclose(fp))

           {

                  printf("Can not close the file!\n");

                  exit(0);

           }

           while(1)

           {

                  system("cls");//再次清屏

                  printf("添加成功!返回上一级请扣1,继续录入请扣2\n");

                  scanf("%d",&xx);

                  if(xx==1)

                         main();

                  else if(xx==2)

                         add_book();

                  else

                         printf("输入错误,请重新输入!\n");

           }

    }

    void search_book()//查询图书功能

    {

           system("cls");

           int c;

           printf("请选择您的查询方式!\n");

           printf("*****      1.以书名查询     ******\n");

           printf("*****      2.以作者查询     ******\n");

           printf("*****     3.以ISBN号查询    ******\n");

           printf("*****    4.以出版社名查询   ******\n");

           printf("*****    5.以出版年份查询   ******\n");

           printf("*****      6以价位查询      ******\n");

           scanf("%d",&c);

           switch(c)

           {

           case 1:

                  name();

                  break;

           case 2:

                  auther();

                  break;

           case 3:

                  ISBN();

                  break;

           case 4:

                  publisher();

                  break;

           case 5:

                  year();

                  break;

           case 6:

                  price();

                  break;

           }

    }

    void name()//书名查找

    {

           system("cls");

           FILE *fp;

           int x;

           char fname[50];

           printf("请输入图书的书名:\n");

           scanf("%s",fname);

           if((fp=fopen("F:\\mybook\\mybook.txt","r"))==NULL)

           {

                  printf("文件打开错误\n");

                  exit(0);

           }

           while(!feof (fp))

           {

                  fscanf(fp,"%s %s %s %s %d %d %lf",shu.name,shu.auther,shu.ISBN,shu.publisher,&shu.year,&shu.number,&shu.price);

                  if(strcmp(shu.name,fname)==0)

                  {

                         fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

                         x=x+1;

                  }

           }

           if(x==0)

                  printf("没有这本书!\n");

           if(fclose(fp))

           {

                  printf("打不开这个文件夹!\n");

                  exit(0);    

           }

           system("pause");

           search_book();

    }

    void auther()//作者名查找

    {

           system("cls");

           FILE *fp;

           int a;

           char fauther[30];

           printf("请输入图书的作者名:\n");

           scanf("%s",fauther);

           if((fp=fopen("F:\\mybook\\mybook.txt","r"))==NULL)

           {

                  printf("文件打开错误\n");

                  exit(0);

           }

           while(!feof (fp))

           {

                  fscanf(fp,"%s %s %s %s %d %d %lf",shu.name,shu.auther,shu.ISBN,shu.publisher,&shu.year,&shu.number,&shu.price);

                  if(strcmp(shu.auther,fauther)==0)

                  {

                         fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

                         a=a+1;

                  }

           }

           if(a==0)

                  printf("没有这本书!\n");

           if(fclose(fp))

           {

                  printf("打不开这个文件夹!\n");

                  exit(0);    

           }

           system("pause");

           search_book();

    }

    void ISBN()//按书的ISBN号查询

    {

           system("cls");

           FILE *fp;

           int b;

           char fISBN[30];

           printf("请输入图书的ISBN号:\n");

           scanf("%s",fISBN);

           if((fp=fopen("F:\\mybook\\mybook.txt","r"))==NULL)

           {

                  printf("文件打开错误\n");

                  exit(0);

           }

           while(!feof (fp))

           {

                  fscanf(fp,"%s %s %s %s %d %d %lf",shu.name,shu.auther,shu.ISBN,shu.publisher,&shu.year,&shu.number,&shu.price);

                  if(strcmp(shu.ISBN,fISBN)==0)

                  {

                         fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

                         b=b+1;

                  }

           }

           if(b==0)

                  printf("没有这本书!\n");

           if(fclose(fp))

           {

                  printf("打不开这个文件夹!\n");

                  exit(0);    

           }

           system("pause");

           search_book();

    }

    void publisher()//按出版社查找

    {

           system("cls");

           FILE *fp;

           int c;

           char fpublisher[40];

           printf("请输入图书的出版社名称:\n");

           scanf("%s",fpublisher);

           if((fp=fopen("F:\\mybook\\mybook.txt","r"))==NULL)

           {

                  printf("文件打开错误\n");

                  exit(0);

           }

           while(!feof (fp))

           {

                  fscanf(fp,"%s %s %s %s %d %d %lf",shu.name,shu.auther,shu.ISBN,shu.publisher,&shu.year,&shu.number,&shu.price);

                  if(strcmp(shu.publisher,fpublisher)==0)

                  {

                         fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

                         c=c+1;

                  }

           }

           if(c==0)

                  printf("没有这本书!\n");

           if(fclose(fp))

           {

                  printf("打不开这个文件夹!\n");

                  exit(0);    

           }

           system("pause");

           search_book();

    }

    void year()//按出版年份查找

    {

           system("cls");

           FILE *fp;

           int d;

           int fyear;

           printf("请输入图书的出版年份:\n");

           scanf("%d",&fyear);

           if((fp=fopen("F:\\mybook\\mybook.txt","r"))==NULL)

           {

                  printf("文件打开错误\n");

                  exit(0);

           }

           while(!feof (fp))

           {

                  fscanf(fp,"%s %s %s %s %d %d %lf",shu.name,shu.auther,shu.ISBN,shu.publisher,&shu.year,&shu.number,&shu.price);

                  if(shu.year==fyear)

                  {

                         fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

                         d=d+1;

                  }

           }

           if(d==0)

                  printf("没有这本书!\n");

           if(fclose(fp))

           {

                  printf("打不开这个文件夹!\n");

                  exit(0);    

           }

           system("pause");

           search_book();

    }

    void price()//按图书的价格

    {

           system("cls");

           FILE *fp;

           int g;

           int fprice;

           printf("请输入图书的价位:\n");

           scanf("%lf",fprice);

           if((fp=fopen("F:\\mybook\\mybook.txt","r"))==NULL)

           {

                  printf("文件打开错误\n");

                  exit(0);

           }

           while(!feof (fp))

           {

                  fscanf(fp,"%s %s %s %s %d %d %lf",shu.name,shu.auther,shu.ISBN,shu.publisher,&shu.year,&shu.number,&shu.price);

                  if(shu.price==fprice)

                  {

                         fprintf(fp,"%s %s %s %s %d %d %lf\n",shu.name,shu.auther,shu.ISBN,shu.publisher,shu.year,shu.number,shu.price);

                         g=g+1;

                  }

           }

           if(g==0)

                  printf("没有这本书!\n");

           if(fclose(fp))

           {

                  printf("打不开这个文件夹!\n");

                  exit(0);    

           }

           system("pause");

           search_book();

    展开全文
  • 这是我大一放假时的C语言课程设计的作业,用easyX实现了人人模式,人机困难简单两种模式,下棋提示,背景音乐、鼠标操作。包含设计报告。 由于时间紧迫,没有对代码进行优化,比较乱。有兴趣的小伙伴可以下载下来看...
  • 大一 C语言课程设计(运动员管理系统)

    千次阅读 多人点赞 2021-11-30 19:28:32
    运动员管理系统登录密码完整代码效果...完整代码 #include <stdio.h> #include <stdlib.h> #include <...#define FORMAT "\t\t\t%-12s%-15s%-60s" #define DATA ids[i].name, ids[i].x, ids[i].score ...int

    登录密码

    初始密码:123456 (可在main方法中自行修改)

    完整代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define L sizeof(ID)
    #define FORMAT "\t\t\t%-12s%-15s%-60s"
    #define DATA ids[i].name, ids[i].x, ids[i].score
    int n;
    int i = 0;
    int j = 0;
    int c;
    int k;
    FILE *p; //定义指向FILE类型文件的指针变量
    char name[12];
    typedef struct
    {
    	char name[12];	//姓名
    	char x[15];		//号码与项目
    	char score[60]; //成绩
    } ID;				//声明新的类型名ID 代表上面结构体类型
    ID ids[100];
    void menu() //菜单
    {
    	system("cls");
    	printf("\n\n\n");
    	printf("\t\t\t\t\t\t\t\t\t|----------------------------------------------|\n");
    	printf("\t\t\t\t\t\t\t\t\t|                                              |\n");
    	printf("\t\t\t\t\t\t\t\t\t|                 运动员信息                   |\n");
    	printf("\t\t\t\t\t\t\t\t\t|                                              |\n");
    	printf("\t\t\t\t\t\t\t\t\t|     1.录入运动员信息     2.查询运动员信息    |\n");
    	printf("\t\t\t\t\t\t\t\t\t|                                              |\n");
    	printf("\t\t\t\t\t\t\t\t\t|     3.修改运动员信息     4.删除运动员信息    |\n");
    	printf("\t\t\t\t\t\t\t\t\t|                                              |\n");
    	printf("\t\t\t\t\t\t\t\t\t|     5.显示全部运动员信息 0.退出系统          |\n");
    	printf("\t\t\t\t\t\t\t\t\t|                                              |\n");
    	printf("\t\t\t\t\t\t\t\t\t|----------------------------------------------|\n");
    	printf("\t\t\t\t\t\t\t\t\t\t请在(0—5)选择要进行的操作!\n"); //菜单的主页面
    }
    
    void all() //全部运动员信息展示
    {
    	system("cls"); //清屏
    	printf("\n\n\n\n");
    	p = fopen("data.txt", "rb"); //打开文件并将fopen函数的返回值赋给指针变量p
    	j = 0;
    	while (!feof(p))					  //判断p指向的文件是否结束
    		if (fread(&ids[j], L, 1, p) == 1) //将p指向的文件中读入结构体数组ids的一个元素 每次读入一个 则读入成功 其返回值为1
    			j++;						  //每读一个 j就加1
    	fclose(p);							  //把p指向的文件关闭 以后p不再指向该文件
    	if (j == 0)
    	{
    		printf("\t\t\t\t目前没有运动员信息\n\t\t\t");
    		system("pause");
    		return;
    	}
    	printf("\t\t\t姓名        号码与成绩     成绩\n");
    	for (i = 0; i < j; i++) //输出运动员信息
    	{
    		printf(FORMAT, DATA);
    		printf("\n");
    	}
    	printf("\t\t\t输入任意键返回主界面\n\t");
    	system("pause");
    }
    
    void input()
    {
    	system("cls"); //清屏
    	printf("\n\n\n");
    	if ((p = fopen("data.txt", "a+")) == NULL) //打开文件,先检查是否有错,有错则输出无法打开文件
    	{
    		printf("\t\t\t\t\t无法打开文件\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	while (!feof(p)) //判断p指向的文件是否结束
    	{
    		if (fread(&ids[j], L, 1, p) == 1) //将p指向的文件中读入结构体数组ids的一个元素 每次读入一个 则读入成功 其返回值为1
    			j++;
    	}
    	fclose(p); //把p指向的文件关闭 以后p不再指向该文件
    	if (j == 0)
    		printf("\t\t\t\t\t目前没有运动员\n");
    	else
    	{
    		system("cls"); //清屏
    		printf("\n\n\n\n");
    		all();
    	}
    	if ((p = fopen("data.txt", "wb")) == NULL) //打开文件,先检查是否有错,有错则输出无法打开文件,p指向该文件
    	{
    		printf("\t\t\t\t\t文件无法打开\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	for (i = 0; i < j; i++) //建立运动员信息
    		fwrite(&ids[i], L, 1, p);
    	printf("\t\t\t\t\t输入1开始建立运动员信息 输入0结束\n\t\t\t\t\t");
    	scanf("%d", &c);
    	while (c)
    	{
    		printf("\t\t\t\t\t输入运动员姓名\n\t\t\t\t\t");
    		scanf("%s", &ids[j].name);
    		for (i = 0; i < j; i++)
    			if (strcmp(ids[j].name, ids[i].name) == 0)
    			{
    				printf("\t\t\t\t\t该运动员已存在\n\t\t\t\t\t");
    				system("pause");
    				fclose(p);
    				return;
    			}
    		printf("\t\t\t\t\t运动员号码与项目:\n\t\t\t\t\t");
    		scanf("%s", &ids[j].x);
    		printf("\t\t\t\t\t运动员的成绩:\n\t\t\t\t\t");
    		scanf("%s", &ids[j].score);
    		if (fwrite(&ids[j], L, 1, p) != 1)
    		{
    			printf("\t\t\t\t\t写入失败\n\t\t\t\t\t");
    			system("pause");
    			return;
    		}
    		else
    		{
    			printf("\t\t\t\t\t运动员信息 %s 写入成功\n", &ids[j].name);
    			j++;
    		}
    		printf("\t\t\t\t\t是否继续输入?输入1继续 输入0结束\n\t\t\t\t\t");
    		scanf("%d", &c);
    	}
    	fclose(p);
    	printf("\t\t\t\t\t已关闭文件\n");
    	printf("\t\t\t\t\t任意键返回主界面\n\t\t\t\t\t");
    	system("pause");
    }
    void search()
    {
    	system("cls");
    	printf("\n\n\n\n");
    	if ((p = fopen("data.txt", "rb")) == NULL)
    	{
    		printf("\t\t\t\t\t打开文件失败\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	while (!feof(p))
    		if (fread(&ids[j], L, 1, p) == 1)
    			j++;
    	fclose(p);
    	if (j == 0)
    	{
    		printf("\t\t\t\t\t目前没有运动员信息\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	printf("\t\t\t\t\t请输入要查找的运动员姓名\n\t\t\t\t\t");
    	scanf("%s", name);
    	for (i = 0; i < j; i++)
    		if (strcmp(ids[i].name, name) == 0)
    		{
    			printf("\t\t\t\t\t已找到运动员\n");
    			printf("\t\t\t\t\t是否显示此运动员? 输入1显示 输入0不显示\n\t\t\t\t\t");
    			scanf("%d", &c);
    			if (c)
    			{
    				printf("\t\t\t姓名        号码与项目     成绩\t\t\t\t\t\n");
    				printf(FORMAT, DATA);
    			}
    			break;
    		}
    	if (i == j)
    		printf("\t\t\t\t\t未查询到该运动员\n");
    	printf("\t\t\t\t\t任意键返回主页面\n\t\t\t\t\t");
    	system("pause");
    }
    void updata()
    {
    	system("cls");
    	printf("\n\n\n\n");
    	if ((p = fopen("data.txt", "rb")) == NULL)
    	{
    		printf("\t\t\t\t\t无法打开文件\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	while (!feof(p))
    	{
    		if (fread(&ids[j], L, 1, p) == 1)
    			j++;
    	}
    	if (j == 0)
    	{
    		printf("\t\t\t\t\t目前还没有运动员\n");
    		fclose(p);
    		return;
    	}
    	fclose(p);
    	all();
    	printf("\t\t\t\t\t输入你想修改的运动员信息\n");
    	printf("\t\t\t\t\t姓名:");
    	scanf("%s", name);
    	for (i = 0; i < j; i++)
    	{
    		if (strcmp(name, ids[i].name) == 0)
    		{
    			printf("\t\t\t\t\t已找到该运动员,请修改\n");
    			printf("\t\t\t\t\t姓名:");
    			scanf("%s", &ids[i].name);
    			printf("\t\t\t\t\t号码与项目:");
    			scanf("%s", &ids[i].x);
    			printf("\t\t\t\t\t成绩:");
    			scanf("%s", &ids[i].score);
    			fopen("data.txt", "wb");
    			for (c = 0; c < j; c++)
    				if (fwrite(&ids[c], L, 1, p) != 1)
    				{
    					printf("\t\t\t\t\t没有成功保存\n");
    					system("pause");
    					return;
    				}
    			printf("\t\t\t\t\t运动员 %s 的信息修改成功\n", name);
    			fclose(p);
    			break;
    		}
    	}
    	if (i == j)
    		printf("\t\t\t\t\t没有找到该运动员\n");
    	printf("\t\t\t\t\t输入任意键返回主界面\n\t\t\t\t\t");
    	system("pause");
    }
    void dlt()
    {
    	system("cls");
    	printf("\n\n\n\n");
    
    	if ((p = fopen("data.txt", "r+")) == NULL)
    	{
    		printf("\t\t\t\t\t目前没有文件\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	j = 0;
    	while (!feof(p))
    	{
    		if (fread(&ids[j], L, 1, p) == 1)
    		{
    			j++;
    		}
    	}
    	fclose(p);
    	if (j == 0)
    	{
    		printf("\t\t\t\t\t目前没有运动员信息\n\t\t\t\t\t");
    		system("pause");
    		return;
    	}
    	printf("\t\t\t\t\t输入你想删除的运动员姓名: ");
    	scanf("%s", name);
    	for (i = 0; i < j; i++)
    	{
    		if (strcmp(name, ids[i].name) == 0)
    		{
    			printf("\t\t\t\t\t已找到该运动员,是否删除 1 确定 0 取消\n");
    			printf("\t\t\t姓名        号码与项目     成绩\t\t\t\t\t\n");
    			printf(FORMAT, DATA);
    			printf("\n\t\t\t");
    			scanf("%d", &k);
    			if (k)
    			{
    				for (n = i; n < j; n++)
    				{
    					ids[n] = ids[n + 1];
    				}
    				j -= 1;
    			}
    			break;
    		}
    	}
    	fopen("data.txt", "wb");
    	for (i = 0; i < j; i++)
    	{
    		if (fwrite(&ids[i], L, 1, p) != 1)
    		{
    			printf("\t\t\t\t\t没有修改成功\n");
    			system("pause");
    			return;
    		}
    	}
    	printf("\t\t\t\t\t运动员 %s 的信息删除成功\n", name);
    	fclose(p);
    	printf("\t\t\t\t\t输入任意键返回主界面\n\t\t\t\t\t");
    	system("pause");
    }
    main()
    {
    	char s[20];
    	printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t请输入密码以进入系统:");
    	scanf("%s", s);
    	if (strcmp(s, "123456") == 0)	//密码
    	{
    
    		void menu();
    		void input();
    		void search();
    		void updata();
    		void dlt();
    		void all();
    	repeat:
    		menu();
    		scanf("%d", &n);
    		while (n)
    		{
    			switch (n)
    			{
    			case 1:
    				input();
    				break;
    			case 2:
    				search();
    				break;
    			case 3:
    				updata();
    				break;
    			case 4:
    				dlt();
    				break;
    			case 5:
    				all();
    				break;
    			}
    			goto repeat;
    		}
    	}
    	else
    		printf("密码输入错误!系统已关闭!");
    	return 0;
    }
    

    效果展示

    运行环境:VS Code

    1. 输入密码
      在这里插入图片描述

    2. 成功进入
      在这里插入图片描述

    3. 录入运动员信息
      在这里插入图片描述

    4. 查询运动员信息
      在这里插入图片描述

    5. 修改运动员信息
      在这里插入图片描述

    6. 删除运动员信息
      在这里插入图片描述

    7. 显示全部运动员信息
      在这里插入图片描述

    8. 退出系统
      在这里插入图片描述

    结语

    都看到这了,点个赞再走呗~嘻嘻

    展开全文
  • 简要说明: 完成时间:2019年暑假 内容:大一上期C语言程序设计作业,编写的图书管理系统 运行环境:Visual C++ 6.0 编码格式为GBK,如果打开中文为乱码请转换成UTF-8
  • 大一C语言课程设计报告
  • #include#include#define N 12//文件通讯录条数。void menu()//菜单界面{printf("\t\t\t\t************************************\n");printf("\t\t\t\t**************菜单界面**************\n");...
  • 猜测大一的同学只要是学习C语言的应该最后都会有课程设计,我们一组当时分配到的题目是写图书馆管理系统。系统并不是很完善,只是实现功能,望大佬勿喷。其中程序的主要贡献者是我舍友范同学(Robin),我是负责了其中...
  • 大一C语言课程设计

    2011-07-16 09:32:45
    大一要做的C语言课程设计大一要做的C语言课程设计大一要做的C语言课程设计大一要做的C语言课程设计大一要做的C语言课程设计大一要做的C语言课程设计
  • 高级语言程序设计 课程设计评语:学 院 班 级姓 名 学 号成 绩 指导老师年 月 日一、目的1. 进一步掌握和利用C语言进行程设计的能力;2、? 进一步理解和运用结构化程设计的思想和方法;3、? 初步掌握开发一个小型...
  • 自动化与电气工程学院 C 语言课程设计;- 1 -;自动化与电气工程学院 C 语言课程设计;自动化与电气工程学院 C 语言课程设计 1.5 程序的运行结果 基本体运行结果如图 1.2 所示 ;自动化与电气工程学院 C 语言课程设计;...
  • C语言课程设计报告 班 级 电气 1004 学 号 201009334 姓 名 雷海燕 指导教师 王果 评语 2011 年 07 月 18 日 自动化与电气工程学院 C 语言课程设计 基本题目 1.1 题目 1.1 题目 17 个人围成一圈从 0 号的人开始报数...
  • http://124.160.107.91:9021/indexcs/simple.jsp?loginErr=0 电子信息类 大一学年C语言修晓杰 课后答案
  • 2022年大一C语言课程设计图书信息管理系统.docx
  • 大一C语言课程设计图书信息管理系统参照.pdf
  • 大一C语言课程设计报告图书信息管理系统.doc
  • 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力(二...
  • 大一C语言课程设计之推箱子小游戏

    千次阅读 2022-05-01 21:08:32
    大一C语言课程设计之推箱子小游戏 先看一下效果 因为技术原因,开发说明没有加进去 按任意键以后 )] 同时响起来 你笑起来真好看的bgm 胜利界面会弹出一个弹出框 私信我或者加我qq:652455342得源码和.exe文件 ...
  • 大一C语言程序设计题顺序接构程序设计第一部分1.*******************I am a student*******************#includeint main(void){printf("**********************\nI am a student\n*********************\n");...
  • 1. 交换两个变量的值,需要借助第三个变量; 2. 大小写字母之间的ASCII码相差32; 3. 在用scanf()函数输入时,如果格式控制字符串中有其他字符,应原样输入; 4. 输入整数用%d,输入单精度实数用%f,输入字符用%c;...
  • C语言 课程设计 大作业 学生成绩管理系统 含源代码、docx详细报告。 全独立手写,和网上其他能找到的绝不重复。
  • <p><strong><strong><strong> 数学小帮手</strong></strong></strong></p> ...请自行设计,如何出题、如何验证。 谢谢xie ; margin-right:0pt">  ; margin-right:0pt">  ; margin-right:0pt"> </p>
  • C语言课程设计——学生考勤管理系统
  • 大一C语言课程设计图书信息管理系统》由会员分享,可在线阅读,更多相关《大一C语言课程设计图书信息管理系统(16页珍藏版)》请在人人文库网上搜索。1、高级语言程序设计 课程设计评语:学 院 班 级 姓 名 学 号 成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,785
精华内容 2,714
关键字:

大一c语言课程设计

友情链接: Lab1_Filipe_PEREIRA.rar