# include <stdio.h> //前面三行表示的是这个程序所用到得头文件 也就是引用库函数
# include <string.h>
#include<windows.h>
#include<stdlib.h>//后面用到的 用来改变字体颜
void huanying();
int xuanze();
void xiugai();
void add();
void display(); //int void后面的是要自己定义的函数
void chaxun();
int remove();
void tongji();
int paixu();
int quit();
int menu_select();
struct person//这个是定义结构体数组 后面和这个一样的也是定义结构体数组 你看到有struct就是定义结构体 用来表示项目主持人的信息
{//下面的表示结构体中的成员 也就是这个结构体是由什么成员组成
char name[20];//姓名
char sex[4];//性别
int age;//年龄
int num;//手机号
};
struct begintime//定义一个"立项时间"结构体
{
int year;//年
int month;//月
};
struct endtime//定义一个"研究期限(开始时间和结束时间)"的结构体
{
int year;
int month;
int day;
int year1;
int month1;
int day1;
};
struct keyan//一个主结构体,前面的结构体是这个主结构体里成员的结构体
{
char name[20];
struct person zhuchi;
char biaohao[30];
struct begintime tm1;
char danwei[10];
char jibie[10];
struct endtime tm2;
char renyuan[100];
int spend1;
int spend2;
};
int n;
struct keyan k[10];
extern char savetag;
extern int arraysize;
int main()//主函数
{
huanying();
xuanze();//花括里面的这三个函数是调用后面定义的函数
return 0;
}
void huanying()//定义一个欢迎函数
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_BLUE);//这个就是用来改变字体颜的 使字体颜为蓝
printf("\t\t ************************\n");
printf("\t\t * 欢迎进入 *\n");
printf("\t\t * 科研项目管理系统 *\n");
printf("\t\t ************************\n");
}
int xuanze()//定义选择函数
{
for( ; ; )
{
switch(menu_select())
{
case 1:
add();
break;
case 2:
xiugai();
break;
case 3:
display();
break;
case 4:
chaxun();
break;
case 5:
remove();
break;
case 6:
//tongji(); 还剩下这个统计函数没有写
break;
case 7:
// paixu();
break;
case 8:
printf("\n亲,再见噢,嘻嘻!\n");
return 0;
break;
}
}
}
int menu_select()//主目录 也就是界面 部分
{
printf("\n");
printf("\t\t ****************\n");
printf("\t\t * 1.新增项目 *\n");
printf("\t\t * 2.修改项目 *\n");
printf("\t\t * 3.显示项目 *\n");
printf("\t\t * 4.查询项目 *\n");
printf("\t\t * 5.删除项目 *\n");
printf("\t\t * 6.项目统计 *\n");
printf("\t\t
* 7.项目排序 *\n");
printf("\t\t * 8.退出系统 *\n");
printf("\t\t ****************\n");
printf("亲,请您选择(1-8):");
for( ; ; )
{ int c;
scanf("%d",&c);//c是从1-8里面选择一个 数 比如选8就会退出程序
if(c>=1&&c<=8)
{
return c;
}
else
printf("\t\t亲,您输入有误,请重新选择!");//假如输入的数字不是1-8 就会提示”亲,您输入有误,请重新选择! “
break;
}
}
void add()//定义一个"新增项目" 函数
{
char a[2]; //定义一个字符数组
while(1)
{
printf("亲,您是否增加新项目(y/n)\n");
scanf("%s",a); //这个就是用来输入y或者n的 输入y就是增加项目 n就是不增加项目
if(a[0]=='n')//输入n就会停止 表示不增加新的项目
{
break;
}
else//否则输入的就是y 就会新增项目 下面就是表示项目包括的内容
{
printf("亲,请输入项目名称: ");
scanf("%s",k[n].name);
printf("亲,请输入主持人姓名: ");
scanf("%s",k[n].zhuchi.name);
printf("亲,请输入主持人年龄: ");
scanf("%d",&k[n].zhuchi.age);
printf("亲,请输入主持人性别(男性输入1 女性输入2): ");
scanf("%s",a);
if(a[0]=='1')
strcpy(k[n].zhuchi.sex,"男");
else
strcpy(k[n].zhuchi.sex,"女");
printf("亲,请输入主持人手机号码: ");
scanf("%d",&k[n].zhuchi.num);
printf("亲,请输入项目编号(如:11ca1042): ");
scanf("%s",k[n].biaohao);
printf("立项时间(年,月): ");
scanf("%d",&k[n].ar);
scanf("%d",&k[n].h);
printf("项目所属单位\n");
printf("1.计算机\n");
printf("2.电气\n");
printf("3.冶金\n");
printf("4.包材\n");
printf("5.机械\n");
printf("6.土木\n");
printf("7.理学\n");
printf("亲,请选择(输入序号): ");
scanf("%s",a);
if(a[0]=='1')
strcpy(k[n].danwei,"计算机");
if(a[0]=='2')
strcpy(k[n].danwei,"电气");
if(a[0]=='3')
strcpy(k[n].danwei,"冶金");
if(a[0]=='4')
strcpy(k[n].danwei,"包材");
if(a[0]=='5')
strcpy(k[n].danwei,"机械");
if(a[0]=='6')
strcpy(k[n].danwei,"土木");
if(a[0]=='7')
strcpy(k[n].danwei,"理学");
printf("亲,请输入项目级别\n");
printf("1.国家级\n");
printf("2.省部级\n");
printf("3.市厅级\n");
printf("亲,请选择(输入序号): ");
scanf("%s",a);
if(a[0]=='1')
strcpy(k[n].jibie,"国家级");
if(a[0]=='2')
strcpy(k[n].jibie,"省部级");
if(a[0]=='3')
strcpy(k[n].jibie,"市厅级");
printf("研究期限\n");
printf("亲,请输入起始时间(x年 x月 x日): ");
scanf("%d%d%d",&k[n].ar,&k[n].h,&k[n].tm2.day);
printf("亲,请输入结束时间(x年 x月 x日): ");
scanf("%d%d%d",&k[
n].ar1,&k[n].h1,&k[n].tm2.day1);
printf("亲,请输入主要研究人员(如:张三、李四、王麻子): ");
getchar();
scanf("%s",k[n].renyuan);
printf("亲,请输入下拨经费: ");
scanf("%d",&k[n].spend1);
printf("亲,请输入学校配套经费: ");
scanf("%d",&k[n].spend2);
printf("亲,是否退出新建项目 返回主菜单(y/n): ");
scanf("%s",a);
n++;
if(a[0]=='y')
break;
}
}
}
void xiugai() //定义一个修改函数
{
char i[20];
char a[2];
int j;
printf("亲,请输入项目编号: ");
scanf("%s",i);
getchar();
for(j=0;j<=n;j++)
{
if(strcmp(i,k[j].biaohao)==0)
{
printf("亲,是否修改项目名称(输入 y/n): ");
scanf("%s",a);
getchar();
c 字符串数组怎么定义if(a[0]=='y'||a[0]=='n')
{
printf("亲,请输修改后的项目名称: ");
scanf("%s",k[j].name);
}
printf("亲,是否修改的主持人姓名: ");
scanf("%s",a);
getchar();
printf("亲,请输入修改后的主持人姓名: ");
scanf("%s",k[j].zhuchi.name);
printf("亲,请输入修改后的主持人年龄: ");
scanf("%d",&k[j].zhuchi.age);
printf("亲,请输入修改后的主持人性别(男性输入1 女性输入2): ");
scanf("%s",a);
if(a[0]=='1')
strcpy(k[j].zhuchi.sex,"男");
else
strcpy(k[j].zhuchi.sex,"女");
printf("亲,请输入修改后的主持人手机号码: ");
scanf("%d",&k[j].zhuchi.num);
printf("修改后的立项时间(年,月): ");
scanf("%d",&k[j].ar);
scanf("%d",&k[j].h);
printf("修改后的项目所属单位\n");
printf("1.计算机\n");
printf("2.电气\n");
printf("3.冶金\n");
printf("4.包材\n");
printf("5.机械\n");
printf("6.土木\n");
printf("7.理学\n");
printf("亲,请选择(输入序号): ");
scanf("%s",a);
if(a[0]==1)
strcpy(k[j].danwei,"计算机");
if(a[0]==2)
strcpy(k[j].danwei,"电气");
if(a[0]==3)
strcpy(k[j].danwei,"冶金");
if(a[0]==4)
strcpy(k[j].danwei,"包材");
if(a[0]==5)
strcpy(k[j].danwei,"机械");
if(a[0]==6)
strcpy(k[j].danwei,"土木");
if(a[0]==7)
strcpy(k[j].danwei,"理学");
printf("亲,请输入修改后的项目级别\n");
printf("1.国家级\n");
printf("2.省部级\n");
printf("3.市厅级\n");
printf("亲,请选择(输入序号): ");
scanf("%s",a);
if(a[0]==1)
strcpy(k[j].jibie,"国家级");
if(a[0]==2)
strcpy(k[j].jibie,"省部级");
if(a[0]==3)
strcpy(k[j].jibie,"市厅级");
printf("研究期限\n");
////////////////////////////////////
printf("亲,请输入修改后的起始时间(x年 x月 x日): ");
scanf("%d%d%d",&k[j].ar,&k[j].h,&k[j].tm2.day);
printf("亲,请输入修改后的结束时间(x年 x月 x日): ");
scanf("%d
%d%d",&k[j].ar1,&k[j].h1,&k[j].tm2.day1);
////////////////////////////////////
printf("亲,请输入修改后的主要研究人员(如:张三、李四、王麻子): ");
getchar();
scanf("%s",k[j].renyuan);
printf("亲,请输入修改后的下拨经费: ");
scanf("%d",&k[j].spend1);
printf("亲,请输入修改后的学校配套经费: ");
scanf("%d",&k[j].spend2);
printf("亲,是否退出修改后的项目 返回主菜单(y/n): ");
scanf("%s",a);
if(a[0]=='y'||a[0]=='Y')
break;
}
if(strcmp(i,k[j].biaohao)!=0)
{
printf("亲,您所要修改的项目不存在");
break;
}
}
}
void display() //定义一个显示函数 本来这个函数是有问题的 我已经修改好了
{
int j;
int i;
printf("1.显示所有项目信息\n");
printf("2.按学院输出项目信息\n");
printf("亲,请选择1或2\n");
scanf("%d",&i);
if(i==1)
{
for(j=0;j<n;j++)
{
printf("项目名称: ");
puts(k[j].name);
printf("\n");
printf("主持人姓名: ");
puts(k[j].zhuchi.name);
printf("\n");
printf("主持人年龄: ");
printf("%d",k[j].zhuchi.age);
printf("主持人性别: ");
puts(k[j].zhuchi.sex);
printf("\n");
printf("主持人手机号码: ");
printf("%d",k[j].zhuchi.num);
printf("\n");
printf("项目编号: ");
////////////////////////////////
printf("%s",k[n].biaohao);
printf("立项时间: ");
printf("%d ",k[j].h);
printf("%d\n",k[j].ar);
printf("项目所属单位: ");
puts(k[j].danwei);
printf("项目级别: ");
puts(k[j].jibie);
printf("\n");
printf("研究期限: ");
printf("%d %d %d ",k[j].ar,k[j].h,k[j].tm2.day);
printf("%d %d %d\n",k[j].ar1,k[j].h1,k[j].tm2.day1);
printf("主要研究人员: ");
puts(k[j].renyuan);
printf("\n");
printf("下拨经费: ");
printf("%d\n",k[j].spend1);
printf("学校配套经费: ");
printf("%d",k[j].spend2);
}
}
}
void chaxun() //定义一个查询函数
{
char i[20];
int j;
printf("亲,请参与项目之老师姓名: ");
scanf("%s",i);
getchar();
for(j=0;j<=n;j++)
{
if((strcmp(i,k[j].zhuchi.name)==0)||(strcmp(i,k[j].renyuan)==0))//strcmp是一个比较字符串的函数
{printf("项目名称: ");
puts(k[j].name);
printf("\n");
printf("主持人姓名: ");
puts(k[j].zhuchi.name);
printf("\n");
printf("主持人年龄: ");
printf("%d",k[j].zhuchi.age);
printf("主持人性别: ");
puts(k[j].zhuchi.sex);
printf("\n");
printf("主持人手机号码: ");
printf("%d",k[j].zhuchi.num);
printf("\n");
printf("项目编号: ");
printf("%d",k[n].biaohao);
printf("立项时间: ");
printf("%d ",k[j].h);
printf("%d\n",k[j].ar);
printf("项目所属单位\n"
);
puts(k[j].danwei);
printf("项目级别: ");
puts(k[j].jibie);
printf("\n");
printf("研究期限: ");
printf("%d %d %d",k[j].ar,k[j].h,k[j].tm2.day);
printf("%d %d %d\n",k[j].ar1,k[j].h1,k[j].tm2.day1);
printf("主要研究人员: ");
puts(k[j].renyuan);
printf("\n");
printf("下拨经费: ");
printf("%d\n",k[j].spend1);
printf("学校配套经费: ");
printf("%d",k[j].spend2);
}
}
}
int remove() //定义一个删除函数
{
char s[20];
int i=0,j;
printf("亲,请输入您要删除的项目编号:");
gets(s);
while(strcmp(k[n].biaohao,s)!=0&&i<n) i++;
if(i==n)
{ printf("无此编号的项目\n");
return n;
}
for(j=i;j<n-1;j++)
{
strcpy(k[j].name,k[j+1].name);//strcpy是字符串复制函数 具体怎么用书上自己看
strcpy(k[j].zhuchi.name,k[j+1].zhuchi.name);
strcpy(k[j].zhuchi.sex,k[j+1].zhuchi.sex);
strcpy(k[j].biaohao,k[j+1].biaohao);
strcpy(k[j].jibie,k[j+1].jibie);
strcpy(k[j].renyuan,k[j+1].renyuan);
}
printf("成功删除\n");
return(n-1);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论