用c语言编写的一个小程序,200行以上,急!!!

微信小程序,微信公开课,用c语言编写的一个小程序,200行以上,急!!! 微信公开课

微信公开课小程序热门讨论「用c语言编写的一个小程序,200行以上,急!!!」最新回复-这是一款图书管理系统但是我没有写排序没有写归还因为归还和借出都差不多里面有图书删除操作学生查找图书查找学生输出图书输出图书借出插入图书插入学生最多借三本书没有对把数据格式化写入文件而是块读入读出插入学生和图书约定学生图书看、号不为0输入图书label和stu_num为0时就结束插入插入全部插在文件末尾程序很简单也是随便写的不过我觉得接近我们这种初学者以下附上代码#ifndefB_MANAGEMENT_H#defineB_MANAGEMENT_H#includestdio.h#defineMAX_BO3#defineLENTH_SBsizeof(sb_book)#defineLENTH_STsizeof(st_book)#definesb_bookstructb#definest_bookstructs//声明学生的数据结构structs{charname[20];intnum_student;charbook[MAX_BO][30];intnum_book;};//声明图书的数据结构structb{longbook_label;charbook_name[30];intbook_num;intbook_remain;sb_book*next;};//声明图书的操作sb_book*search_book(constchar*,FILE*,sb_book*);//用线性存储结构存储文件数据voiddelete_book();voidinsert_book(sb_book*);//声明学生的操作st_book*search_student(int,FILE*p,st_book*);voidinsert_student(st_book*);voidborrow_book(int,constchar*,sb_book*,st_book*,FILE*,FILE*);#endifvoidmain(){delete_book();}#includestdio.h#includestdlib.h#includebk_management.hvoidinsert_book(sb_book*pb_book){FILE*fp=NULL;fp=fopen(D:\\book.txt,a+);if(fp==NULL){printf(cannotopenfile);exit(0);}if(fwrite(pb_book,LENTH_SB,1,fp)==0){printf(failedtowritestringtobook.txt);exit(0);}fclose(fp);}#includebk_management.h#includemalloc.h#includestdlib.h#includestdio.hvoiddelete_book(){longdelete_label;FILE*fp=NULL;sb_book*p1,*p2,*head=NULL;printf(pleaseinputbook_label:);scanf(%ld,&delete_label);fp=fopen(D:\\book.txt,r);if(fp==NULL){printf(cannotopenfile);exit(0);}head=p1=p2=(sb_book*)malloc(LENTH_SB);fread(p1,LENTH_SB,1,fp);if(feof(fp))exit(0);//将文件中的数据读入内存形成链表,head为链表首指针while(!feof(fp)){p2=p1;p1=(sb_book*)malloc(LENTH_SB);fread(p1,LENTH_SB,1,fp);p2next=p1;}p1next=NULL;fclose(fp);//删除指定的书籍的数据块p1=p2=head;while(p1book_label!=delete_label&&p1next!=NULL){p2=p1;p1=p1next;}if(p1book_label==delete_label){if(p1==head)head=p1next;elsep2next=p1next;}else{printf(nobookyouwanttodelete);}//将数据块写会文件fp=fopen(D:\\book.txt,w);if(fp==NULL){printf(cannotopenfile);exit(0);}while(headnext!=NULL){fwrite(head,LENTH_SB,1,fp);head=headnext;}fclose(fp);}#includestdio.h#includebk_management.hvoidborrow_book(intnum_student,constchar*book_name,sb_bookbook[1000],st_bookstu[1000],FILE*fp_sb,FILE*fp_st){externsum_book;externsum_student;sb_book*book_sb;st_book*stu_st;stu_st=search_student(num_student,fp_st,stu);if(stu_stnum_bookMAX_BO){book_sb=search_book(book_name,fp_sb,book);(book_sbbook_remain);strcpy(stu_stbook[stu_stnum_book],book_name);(stu_stnum_book)++;fseek(fp_sb,sum_book*LENTH_SB,0);fwrite(book_sb,LENTH_SB,1,fp_sb);fseek(fp_st,sum_student*LENTH_ST,0);fwrite(stu_st,LENTH_ST,1,fp_st);}elseprintf(youcannotborrowbook!!!);}#includestdio.h#includestdlib.h#includebk_management.hvoidmain(){FILE*fp_sb=NULL,*fp_st=NULL;intstu_num;char_book[30];sb_bookbook[1000];st_bookstu[1000];fp_sb=fopen(D:\\book.txt,r+);fp_st=fopen(D:\\stu.txt,r+);if(fp_sb==NULL||fp_st==NULL){printf(failtoopenfile);exit(0);}printf(Pleaseinputstudentnumber:);scanf(%d,&stu_num);getchar();printf(pleaseinputbook:);gets(_book);borrow_book(stu_num,_book,book,stu,fp_sb,fp_st);getch();fclose(fp_sb);fclose(fp_st);}#includestdio.h#includestdlib.h#includebk_management.hvoidinsert_student(st_book*pt_book){FILE*fp=NULL;fp=fopen(D:\\stu.txt,a+);if(fp==NULL){printf(cannotopenfile);exit(0);}if(fwrite(pt_book,LENTH_ST,1,fp)==0){printf(failedtowritestringtobook.txt);exit(0);}fclose(fp);}#includestdio.h#includestdlib.h#includebk_management.hvoidmain(){st_bookstu[1000];inti,j;FILE*fp=NULL;fp=fopen(D:\\stu.txt,r);if(fp==NULL){printf(cannotopenfile);exit(0);}for(i=0;i1000;i++){fread(&stu[i],LENTH_ST,1,fp);if(feof(fp))break;printf(%8d%20s%8d\n,stu[i].num_student,stu[i].name,stu[i].num_book);for(j=0;jstu[i].num_book;j++)printf(%30s,,stu[i].book[j]);printf(\n);}getch();fclose(fp);}#includestdio.h#includebk_management.h#includestdlib.hintsum_student;st_book*search_student(intnum_stu,FILE*fp,st_bookstu[1000]){inti;for(i=0;(!feof(fp))&&i1000;i++){fread(&stu[i],LENTH_ST,1,fp);sum_student++;}for(i=0;num_stu!=stu[i].num_student&&isum_student;i++);sum_student=i;if(num_stu==stu[i].num_student)return&stu[i];elseprintf(nostudentyousearch);returnNULL;}#includestdio.h#includebk_management.h#includestdlib.hvoidmain(){FILE*fp=NULL;st_book_stu[1000];intnum_stu;st_book*stu;intj;fp=fopen(D:\\stu.txt,r);if(fp==NULL){printf(cannotopenfile);exit(0);}printf(pleaseinputstudentnumber:);scanf(%d,&num_stu);stu=search_student(num_stu,fp,_stu);if(stu!=NULL){printf(%8d%20s%8d\n,stunum_student,stuname,stunum_book);for(j=0;jstunum_book;j++)printf(%30s,,stubook[j]);printf(\n);}fclose(fp);getch();}#includestdio.h#includestdlib.h#includebk_management.hvoidmain(){sb_book*p;FILE*fp=NULL;fp=fopen(D:\\book.txt,r);if(fp==NULL){printf(cannotopenfile);exit(0);}while(1){p=(sb_book*)malloc(LENTH_SB);fread(p,LENTH_SB,1,fp);if(feof(fp))break;printf(%8d%30s%3d%3d\n,pbook_label,pbook_name,pbook_num,pbook_remain);}fclose(fp);getch();}#includebk_management.h#includemalloc.hvoidmain(){sb_book*pb;while(1){pb=(sb_book*)malloc(LENTH_SB);printf(pleaseinputbook_label:);scanf(%ld,&pbbook_label);getchar();printf(pleaseinputbook_name:);gets(pbbook_name);printf(pleaseinputbook_num:);scanf(%d,&pbbook_num);pbbook_remain=pbbook_num;if(pbbook_label==0)break;insert_book(pb);}}#includebk_management.h#includemalloc.hvoidmain(){st_book*pt;while(1){pt=(st_book*)malloc(LENTH_ST);printf(pleaseinputnum_student:);scanf(%d,&ptnum_student);getchar();printf(pleaseinputname:);gets(ptname);strcpy(ptbook[0],0);strcpy(ptbook[1],0);strcpy(ptbook[2],0);ptnum_book=0;if(ptnum_student==0)break;insert_student(pt);}}#includestdio.h#includebk_management.h#includestdlib.hintsum_book;sb_book*search_book(constchar*ptr,FILE*fp,sb_bookbook[1000]){inti;for(i=0;(!feof(fp))&&i1000;i++){fread(&book[i],LENTH_SB,1,fp);sum_book++;}for(i=0;strcmp(&book[i].book_name,ptr)&&isum_book;i++);sum_book=i;if(!strcmp(&book[i].book_name,ptr))return&book[i];elseprintf(nobookyousearch);returnNULL;}#includestdio.h#includestdlib.h#includebk_management.hvoidmain(){FILE*fp=NULL;charbook_name[30];sb_book*book;sb_book_book[1000];fp=fopen(D:\\book.txt,r);if(fp==NULL){printf(cannotopenfile);exit(0);}printf(pleaseinputbook_name:);gets(book_name);book=search_book(book_name,fp,_book);if(book!=NULL)printf(%8d%30s%3d%3d\n,bookbook_label,bookbook_name,bookbook_num,bookbook_remain);fclose(fp);getch();}
C语言课程设计报告-------学生成绩简单管理程序一、系统菜单的主要功能(1)输入若干条记录(2)显示所有记录(3)按学号排序(4)插入一条记录(5)按姓名查找,删除一条记录(6)查找并显示一条记录(7)输出统计信息(新增)(8)从正文中添加数据到结构体数组中(9)将所有数据写入文件中(0)退出程序二、题目分析该题主要考察学生对结构体,指针,文件的操作,以及C语言算法的掌握,所以完成此道题目要求较强的设计能力,尤其是要有一种大局观的意识。如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧,下面就各个子程序中的功能进行说明:功能1和4的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过gets将所有的多余的字符,回车读去,否则就会出错。功能2是显示所有的记录,通过循环输出,格式也比较重要。功能3为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要用到strcmp,strcpy等函数。功能5为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此记录都向前移一位,返回n-1。功能6的算法在5中就已经体现了,输入姓名,一一比较。功能7为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。功能8和9是对文件的操作,提前准备好数据。三、程序正文部分#includestdio.h/*引用库函数*/#includestdlib.h#includectype.h#includestring.htypedefstruct/*定义结构体数组*/{charnum[10];/*学号*/charname[20];/*姓名*/intscore;/*成绩*/}Student;Studentstu[80];/*结构体数组变量*/intmenu_select()/*菜单函数*/{charc;do{system(cls);/*运行前清屏*/printf(tt****StudentsGradeManagementSystem****n);/*菜单选择*/printf(tt|1.InputRecords|n);printf(tt|2.DisplayAllRecords|n);printf(tt|3.Sort|n);printf(tt|4.InsertaRecord|n);printf(tt|5.DeleteaRecord|n);printf(tt|6.Query|n);printf(tt|7.Statistic|n);printf(tt|8.AddRecordsfromaTextFile|n);printf(tt|9.WritetoaTextfile|n);printf(tt|0.Quit|n);printf(tt*****************************************n);printf(tttGiveyourChoice(0-9):);c=getchar();/*读入选择*/}while(c0||c9);return(c-0);/*返回选择*/}intInput(Studentstud[],intn)/*输入若干条记录*/{inti=0;charsign,x[10];/*x[10]为清除多余的数据所用*/while(sign!=n&&sign!=N)/*判断*/{printf(tttstudentsnum:);/*交互输入*/scanf(ttt%s,stud[n+i].num);printf(tttstudentsname:);scanf(ttt%s,stud[n+i].name);printf(tttstudentsscore:);scanf(ttt%d,&stud[n+i].score);gets(x);/*清除多余的输入*/printf(tttanymorerecords?(Y/N));scanf(ttt%c,&sign);/*输入判断*/i++;}return(n+i);}voidDisplay(Studentstud[],intn)/*显示所有记录*/{inti;printf(ttt-----------------------------------n);/*格式头*/printf(tttnumbernamescoren);printf(ttt-----------------------------------n);for(i=1;in+1;i++)/*循环输入*/{printf(ttt%-16s%-15s%dn,stud[i-1].num,stud[i-1].name,stud[i-1].score);if(i1&&i%10==0)/*每十个暂停*/{printf(ttt-----------------------------------n);/*格式*/printf(ttt);system(pause);printf(ttt-----------------------------------n);}}printf(ttt);system(pause);}voidSort_by_num(Studentstud[],intn)/*按学号排序*/{inti,j,*p,*q,s;chart[10];for(i=0;in-1;i++)/*冒泡法排序*/for(j=0;jn-1-i;j++)if(strcmp(stud[j].num,stud[j+1].num)0){strcpy(t,stud[j+1].num);strcpy(stud[j+1].num,stud[j].num);strcpy(stud[j].num,t);strcpy(t,stud[j+1].name);strcpy(stud[j+1].name,stud[j].name);strcpy(stud[j].name,t);p=&stud[j+1].score;q=&stud[j].score;s=*p;*p=*q;*q=s;}}intInsert_a_record(Studentstud[],intn)/*插入一条记录*/{charx[10];/*清除多余输入所用*/printf(tttstudentsnum:);/*交互式输入*/scanf(ttt%s,stud[n].num);printf(tttstudentsname:);scanf(ttt%s,stud[n].name);printf(tttstudentsscore:);scanf(ttt%d,&stud[n].score);gets(x);n++;Sort_by_num(stud,n);/*调用排序函数*/printf(tttInsertSuccessed!n);/*返回成功信息*/return(n);}intDelete_a_record(Studentstud[],intn)/*按姓名查找,删除一条记录*/{chars[20];inti=0,j;printf(ttttellmehis(her)name:);/*交互式问寻*/scanf(%s,s);while(strcmp(stud[i].name,s)!=0&&in)i++;/*查找判断*/if(i==n){printf(tttnotfind!n);/*返回失败信息*/return(n);}for(j=i;jn-1;j++)/*删除操作*/{strcpy(stud[j].num,stud[j+1].num);strcpy(stud[j].name,stud[j+1].name);stud[j].score=stud[j+1].score;}printf(tttDeleteSuccessed!n);/*返回成功信息*/return(n-1);}voidQuery_a_record(Studentstud[],intn)/*查找并显示一个记录*/{chars[20];inti=0;printf(tttinputhis(her)name:);/*交互式输入*/scanf(ttt%s,s);while(strcmp(stud[i].name,s)!=0&&in)i++;/*查找判断*/if(i==n){printf(tttnotfind!n);/*输入失败信息*/return;}printf(ttthis(her)number:%sn,stud[i].num);/*输出该学生信息*/printf(ttthis(her)score:%dn,stud[i].score);}voidStatistic(Studentstud[],intn)/*新增功能,输出统计信息*/{inti,j=0,k=0,sum=0;floataver;/*成绩平均值*/for(i=0;in;i++)/*循环输入判断*/{sum+=stud[i].score;if(stud[j].scorestud[i].score)j=i;if(stud[k].scorestud[i].score)k=i;}aver=1.0*sum/n;printf(tttthereare%drecords.n,n);/*总共记录数*/printf(tttthehignestscore:n);/*最高分*/printf(tttnumber:%sname:%sscore:%dn,stud[j].num,stud[j].name,stud[j].score);printf(tttthelowestscore:n);/*最低分*/printf(tttnumber:%sname:%sscore:%dn,stud[k].num,stud[k].name,stud[k].score);printf(ttttheaveragescoreis%5.2fn,aver);/*平均分*/}intAddfromText(Studentstud[],intn)/*从文件中读入数据*/{inti=0,num;FILE*fp;/*定义文件指针*/charfilename[20];/*定义文件名*/printf(tttInputthefilename:);scanf(ttt%s,filename);/*输入文件名*/if((fp=fopen(filename,rb))==NULL)/*打开文件*/{printf(tttcanntopenthefilen);/*打开失败信息*/printf(ttt);system(pause);return(n);}fscanf(fp,%d,&num);/*读入总记录量*/while(inum)/*循环读入数据*/{fscanf(fp,%s%s%d,stud[n+i].num,stud[n+i].name,&stud[n+i].score);i++;}n+=num;fclose(fp);/*关闭文件*/printf(tttSuccessed!n);printf(ttt);system(pause);return(n);}voidWritetoText(Studentstud[],intn)/*将所有记录写入文件*/{inti=0;FILE*fp;/*定义文件指针*/charfilename[20];/*定义文件名*/printf(tttWriteRecordstoaTextFilen);/*输入文件名*/printf(tttInputthefilename:);scanf(ttt%s,filename);if((fp=fopen(filename,w))==NULL)/*打开文件*/{printf(tttcanntopenthefilen);system(pause);return;}fprintf(fp,%dn,n);/*循环写入数据*/while(in){fprintf(fp,%-16s%-15s%dn,stud[i].num,stud[i].name,stud[i].score);i++;}fclose(fp);/*关闭文件*/printf(Successed!n);/*返回成功信息*/}voidmain()/*主函数*/{intn=0;for(;;){switch(menu_select())/*选择判断*/{case1:printf(tttInputRecordsn);/*输入若干条记录*/n=Input(stu,n);break;case2:printf(tttDisplayAllRecordsn);/*显示所有记录*/Display(stu,n);break;case3:printf(tttSortn);Sort_by_num(stu,n);/*按学号排序*/printf(tttSortSuceessed!n);printf(ttt);system(pause);break;case4:printf(tttInsertaRecordn);n=Insert_a_record(stu,n);/*插入一条记录*/printf(ttt);system(pause);break;case5:printf(tttDeleteaRecordn);n=Delete_a_record(stu,n);/*按姓名查找,删除一条记录*/printf(ttt);system(pause);break;case6:printf(tttQueryn);Query_a_record(stu,n);/*查找并显示一个记录*/printf(ttt);system(pause);break;case7:printf(tttStatisticn);Statistic(stu,n);/*新增功能,输出统计信息*/printf(ttt);system(pause);break;case8:printf(tttAddRecordsfromaTextFilen);n=AddfromText(stu,n);/*新增功能,输出统计信息*/break;case9:printf(tttWritetoaTextfilen);WritetoText(stu,n);/*循环写入数据*/printf(ttt);system(pause);break;case0:printf(tttHaveaGoodLuck,Bye-bye!n);/*结束程序*/printf(ttt);system(pause);exit(0);}}}四、函数调用关系图注:“→”代表调用Input函数打印链表记录Display函数输入若干条记录menu_select()函数选择菜单Sort_by_num函数显示所有记录Delete_a_record函数按姓名查找,删除一条记录Query_a_record查找并显示一条记录Statistic函数输出统计信息(新增)AddfromText函数从正文中添加数据到结构体数组中Main函数Insert_a_record插入一条记录WritetoText函数将所有数据写入文件中退出程序Reverse(head)函数按学号排序五、设计测试流程1、进入界面2、输入选项1,回车;按提示输入数据:3、回到主菜单;输入选项7,回车;输入文件名:data.txt,回车;出现成功提示,则读入文件操作成功。4、回到主菜单,输入2,回车每10个暂停显示数据5、回到主菜单,输入3,回车出现排序成功信息。6、回到主菜单,输入4,回车按提示插入一组数据7、回到主菜单,输入5,回车按提示输入姓名,删除数据出现删除成功的信息8、回到主菜单,输入6,回车输入姓名进行查询9、回到主菜单,输入7,回车出现统计信息10、回到主菜单,输入9,回车输入result.txt,回车出现成功写入文件的信息11、回到主菜单,输入0,回车退出系统 更多有关「用c语言编写的一个小程序,200行以上,急!!!」的疑问请扫码关注微信公开课+小程序!了解更多

「用c语言编写的一个小程序,200行以上,急!!!」热议话题订阅

微信小程序,微信公开课,用c语言编写的一个小程序,200行以上,急!!!
订阅小程序

方法1:微信扫描微信公开课小程序码即可订阅热议话题「用c语言编写的一个小程序,200行以上,急!!!」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「用c语言编写的一个小程序,200行以上,急!!!」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「用c语言编写的一个小程序,200行以上,急!!!」

微信公开课小程序热议话题「用c语言编写的一个小程序,200行以上,急!!!」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热议话题「用c语言编写的一个小程序,200行以上,急!!!」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。