C语言课程设计——歌手大赛管理程序_第1页
C语言课程设计——歌手大赛管理程序_第2页
C语言课程设计——歌手大赛管理程序_第3页
C语言课程设计——歌手大赛管理程序_第4页
C语言课程设计——歌手大赛管理程序_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计题目名称:歌手大赛管理程序学号:10010133姓名:燕少博完成日期:2011年12月12日第2题 歌手大赛管理程序【题目描述】请设计一个歌手大赛的管理程序。歌手信息包括:歌手编号、姓名、身份证号、性别、出生日期(含年、月、日)、评委的打分(假设10个评委)等。该程序应该具有下列功能:(1) 录入全部歌手的基本信息,歌手的编号按顺序生成,评委的打分随机生成;(2) 显示全部歌手的信息;(3) 添加一个歌手的信息;(4) 给定歌手编号,修改此编号的歌手信息,要求有修改确认; (5)给定歌手名称,删除此名称的歌手信息,要求有删除确认; (6) 给定歌手编号,显示该歌手的基本情况、所有评委的

2、打分和最后得分;(7) 给定一个值,显示得分大于该值的歌手的信息和得分;(8) 给定一个出生日期,显示在此日期出生以后的所有歌手的信息和得分;(9)按歌手出生年龄排序。(10)自己提供一些按各类信息进行排序、统计各类信息的功能(自己发挥);【题目要求】(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。【输入要求】应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后(若需要,还可显示子菜单),根据应用程序的提示信息,从键盘输入相

3、应的信息。要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。【输出要求】(1) 应用程序运行后,要在屏幕上显示一个菜单;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。 (3)输出的结果要清晰美观,以表格形式上下对齐。【提示】使用结构类型和一维数组,用来保存软件信息。 歌手大赛管理程序一 程序说明1.系统概述歌手大赛管理程序是运行于Windows系统下的应用软件,主要对于歌手的姓名,性别,生日,歌名等自然信息以及得分进行增,减,改,查,统计,排序等操作,并且还可以对使用该系统的用户进行登录。系统给用户提供了一个简

4、单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。2.系统运行环境 *操作系统:windows98/2000/XP3功能需求描述(1).用户登录:根据用户输入的密码判断是否允许该用户使用本系统。(2).主菜单:列出了该系统的所有功能,用户可以根据需要选择相应的功能。主要包括:录入歌手信息,显示歌手信息,增加歌手信息,修改歌手信息,删除歌手信息,查询歌手,对歌手信息进行排序,对歌手信息进行统计,退出程序。(3).录入歌手信息:用户可根据提示从键盘输入歌手的各项信息。歌手信息包括:歌手姓名,歌手性别,歌手生日,歌手身份证号,歌手的歌名。(4).显示歌手信息:用户通过选择可以将从键

5、盘输入的歌手信息及按顺序生成的歌手编号及随机产生的歌手成绩输出到屏幕。(5).增加歌手信息:添加一个歌手的信息,用户选择后通过键盘输入所添加的歌手的信息,并将输入的歌手信息储存起来。(6).修改歌手信息:提示用户输入要修改的歌手的编号,姓名或者歌名。如果该歌手存在,用户可以对该歌手的姓名,性别,生日,身份证号及歌名进行修改,并将修改后的信息储存起来。(7).删除歌手信息:提示用户输入要删除的歌手的编号,姓名或者歌名。如果歌手存在,用户可以删除该歌手的所有信息。并将删除后的所有歌手信息储存起来。(8).查询歌手:提示用户输入要查询的歌手的编号,姓名或者歌名,如果该歌手存在,将输出该歌手的所有信息

6、。(9).排序:系统提供按出生年月日和成绩两种方式排序,用户可以根据需要选择相应的排序方式,并将排序后的歌手信息输出出来。(10).统计:提示用户输入出生年月日或成绩,将会输出在该年月日以后的所有歌手信息或成绩大于该值得所有用户信息。二问题分析在这个程序中,处理的主要对象是歌手的信息(歌手编号,姓名,歌名,身份证号,性别,出生年月日,评委的打分)。用下面的结构类型表示。 typedef struct int year; /*出生年份*/ int month; /*出生月份*/ int day; /*出生日期*/ DATE;typedef struct int num; /*编号*/ char

7、name32; /*姓名*/ char sex20; /*性别*/ char ID16; /*身份证号*/ DATE birthday; /*生日*/ char songname32; /*歌名*/ int grade; /*总成绩*/ int sorce10; /*评委打分*/ INFO;可以将解决这个问题的一系列操作分解成若干个模块。如下:歌手大赛管理程序main()统计模块statistics()显示歌手信息Shows()输入歌手信息Input()选择菜单menu()添加歌手信息add()修改歌手信息modify()删除歌手信息delete()查询模块Search()歌手排序sort()

8、用户登录load() 按歌名修改按姓名修改按编号修改按编号删除按姓名删除按歌名删除按成绩统计按年龄统计按编号查询按姓名查询按歌名查询按得分排序按年龄排序三设计上述10个模块分别用22个函数实现,除main()外,其余函数的原型设计如下。int load();这个函数负责用户登录。Void menu();这个函数负责显示菜单的内容。Int input();用于输入歌手信息;Int shows();用于显示歌手信息;Void add();这个函数用于增加歌手的信息。Void modify();这个函数用于修改歌手的信息。Void delete();这个函数用于删除歌手信息。Void search(

9、);用于查询歌手信息。Void sort();用于歌手信息的排序。其余辅助函数:int function(); int input(INFO s); void shows(INFO s); void menu(); void load(); int choiceitem();Main()函数的算法流程图开始 int modify(); int nummodify(); int namemondify(); 登录 int songnamemodify(); int add(); int delete();主菜单 int namedelete(); int numdelete(); int son

10、gnamedelete();Case 1 void search();输入 void numsearch(); void namesearch();N void songnamesearch();输出Case 2 void sort(); void sortbirthday();N void sortgrade();添加Case 3 void statistics(): void sbirthday();N void sgrade(); 子菜单Case 4 子菜单NCase 5 子菜单NCase 6子菜单YNCase 7N子菜单Case 8NCase 0YN非0结束N开始Y添加确认Y输入姓名输

11、入性别输入生日N输入歌名退出确认Y结束add()函数算法流程图完成确认开始NN菜单YYYNNNYcase 3case 4case 2case 1case 1YYYNNNYNcase 2case 4case 3case 2case 1YYYYNNNNcase 3case 4case 3case 2case 1Ncase 4结束modify()函数和delete()函数的算法流程图开始N菜单是否结束numsearch();case 1Nnamesearch();case 2Nsongnamesearch();case 3Ncase 4结束()函数的算法流程图开始N菜单是否结束Ysortbirthd

12、ay();case 1NYsortgrade();case 2Ncase 3Y结束sort()函数的算法流程图开始N开始是否结束Ycase 1sbirthday();NYcase 2sgrade();Ncase 3Y结束statistics()函数的算法流程图四程序代码#include #include #include #include #define N 100#define Z 10typedef struct int year; int month; int day; DATE;typedef struct int num; char name32; char sex20; char

13、ID40; DATE birthday; char songname32; int grade; int sorce10; INFO; int function(); int input(INFO s); void shows(INFO s); void menu(); void load(); int choiceitem(); int modify(); int nummodify(); int namemondify(); int songnamemodify(); int add(); int delete(); int namedelete(); int numdelete(); i

14、nt songnamedelete(); void search(); void numsearch(); void namesearch(); void songnamesearch(); void sort(); void sortbirthday(); void sortgrade(); void statistics(); void sbirthday(); void sgrade(); INFO sN; DATE date; int sum=0;main() clrscr(); load(); function();function() int choice; clrscr(); d

15、o clrscr(); menu(); scanf(%d,&choice); switch(choice) case 1: input(s); break; case 2: shows(s); break; case 3: add(); break; case 4: modify(); break; case 5: delete(); break; case 6: search(); break; case 7: sort(); break; case 8: statistics(); break; case 0: exit(0); while(choice!=0);void load() i

16、nt i; char password20; printf(nn =PLEASE LOAD=); for(i=0;i4;i+) printf(n = =); printf(n = welcome to use the system of singer info =); for(i=0;i3;i+) printf(n = =); printf(n =); printf(n the password :); gets(password); while(strcmp(password,song)!=0) printf(nn wrong!); printf(n please enter the pas

17、sword again :); gets(password); void menu() printf(nn =MENU=); printf(n = 1.input =); printf(n = 2.shows =); printf(n = 3.add =); printf(n = 4.modify =); printf(n = 5.delete =); printf(n = 6.search =); printf(n = 7.sort =); printf(n = 8.statistics =); printf(n = 0.exit =); printf(n =); printf(n plea

18、se choice0-8:); int input(INFO s) int i,q,a; system(cls); printf(n please enter the singer info :n); for(i=1;i=N;i+) int mum=0; system(cls); sum=sum+1; for(a=1;a16) system(cls); for(k=1;k16) for(i=(k-1)*16+1;i=k*16+1;i+) si.num=i; printf(|%2d,si.num); printf(%16s,); printf(%6s,si.sex); printf

19、(%20s,si.ID); printf(%6d/%2d/%2d,si.birthday.year, si.birthday.month,si.birthday.day); printf(%15s,si.songname); printf(%6d|n,si.grade); printf(n Press any key to the next page :); scanf(%c,z); if(z!=0) continue; if(sum-(k*16-15)=16) for(i=(k-1)*16+1;i=sum-(k-1)*16;i+) si.num=i; printf(|%2d,si.num);

20、 printf(%16s,); printf(%6s,si.sex); printf(%s,si.ID); printf(%6d/%2d/%2d,si.birthday.year, si.birthday.month,si.birthday.day); printf(%15s,si.songname); printf(%6d|n,si.grade); printf(n Press any key to the next page :); scanf(%c,z); if(z!=0) continue; printf(|=|); printf(nplease enter any ke

21、y to continue :); scanf(%c,c); function(); if(sum=16) system(cls); printf(|=SINGER INFO=|n); printf(|num | name| sex| idnum | birthday | songname |grade|n); printf(|-|n); for(i=1;i=sum;i+) si.num=i; printf(|%2d,si.num); printf(%16s,); printf(%6s,si.sex); printf(%20s,si.ID); printf(%6d/%2d/%2d

22、,si.birthday.year, si.birthday.month,si.birthday.day); printf(%15s,si.songname); printf(%6d|n,si.grade); printf(|=|); printf(nplease enter any key to continue :); scanf(%c,c); function(); int modify() int a,b; system(cls); printf( =CHOICE=n); printf( = 1.modify by number =n); printf( = 2.modify by n

23、ame =n); printf( = 3.modify by songname =n); printf( = 4.back to menu =n); printf( =n); printf( choice :); scanf(%d,&a); switch(a) case 1:nummodify(); break; case 2:namemodify(); break; case 3:songnamemodify(); break; case 4: function(); break; default: system(cls); printf(nn There is no this number

24、 !nn Press 1 to continue delete,press 2 back to menu :); scanf(%d,&b); if(b=1) delete(); if(b=2) function(); int nummodify() int i,k,l,h,ja; int j=0; int f; char js,jd; system(cls); printf(nnnnnplease enter the singers number you want to modify :); scanf(%d,&f); system(cls); for(i=1;i=sum;i+) si.num

25、=i; if(f=si.num) j+; printf(the %2d singer info is n,&si.num); printf(-n); printf(|num | name| sex| idnum | birthday | songname |grade|n); printf(-|n); si.num=i; printf(|%2d,si.num); printf(%16s,); printf(%6s,si.sex); printf(%20s,si.ID); printf(%6d/%2d/%2d,si.birthday.year, si.birthday.month,

26、si.birthday.day); printf(%15s,si.songname); printf(%6d|n,si.grade); printf(nn-|n); printf(n Are you sure to modify it ! n please choice !n 1(continue)n 2(back to menu):); scanf(%d,&h); if(h=2) return function(); else system(cls); printf( what info dou you want to modify :n); printf( -n); printf( = 1

27、.name =n); printf( = 2.sex =n); printf( = 3.idnum =n); printf( = 4.birthday =n); printf( = 5.songname =n); printf( -n); printf( please choice :); scanf(%d,&l); system(cls); switch(l) case 1:printf(nenter the name :); scanf(%s,); break; case 2:printf(nenter the sex(man/woman) :); scanf(%s,si.s

28、ex); break; case 3:printf(nenter the idnum(18number) :); scanf(%s,si.ID); while(strlen(si.ID)!=18) printf(n wrong! IDnum is 18 number!); printf(n enter the idnum again :); scanf(%s,si.ID); break; case 4:printf(nenter the birhtday :); scanf(%d%d%d,&si.birthday.year,&si.birthday.month,&si.birthday.day

29、); break; case 5:printf(nenter the songanme :); scanf(%s,si.songname); break; default:printf(nerror! please check up the number you enter !); printf(press any key to continue !); scanf(%c,js); if(js!=0) return modify(); system(cls); printf(nnmodify sucessfully! ); printf(nnnPress 1 to continue modif

30、y! press 2 back to menu!); scanf(%d,&ja); if(ja=1) modify(); if(ja=2) return function(); if(j=0) printf(nnThere is no this number! please check up!); printf(npress any key to continue!); scanf(%c,jd); if(jd!=0) return modify(); int namemodify() int i,k,l,h,ja; int j=0; char mname40; char js,jd; syst

31、em(cls); printf(nnnnnplease enter the singers name you want to modify :); gets(mname); system(cls); for(i=1;i=sum;i+) si.num=i; if(strcmp(mname,)=0) j+; printf(the %2d singer info is n,&si.num); printf(-n); printf(|num | name| sex| idnum | birthday | songname |grade|n); printf(-|n); si.num=i;

32、 printf(|%2d,si.num); printf(%16s,); printf(%6s,si.sex); printf(%20s,si.ID); printf(%6d/%2d/%2d,si.birthday.year, si.birthday.month,si.birthday.day); printf(%15s,si.songname); printf(%6d|n,si.grade); printf(nn-|n); printf(n Are you sure to modify it ! n please choice !n 1(continue)n 2(back to menu):); scanf(%d,&h); if(h=2) return function(); else system(cls); printf( what info dou you want to modify :n); printf( -n); printf( = 1.name =n); printf( = 2.sex =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论